[Pkg-javascript-commits] [SCM] Yahoo! User Interface Toolkit (yui) branch, master, updated. debian/2.8.1-1-2-gca8622f

Jaldhar H. Vyas jaldhar at braincells.com
Sat Nov 27 18:24:31 UTC 2010


The following commit has been merged in the master branch:
commit ca8622f0c3f9a752f7afb32bab6faa3d1cff0537
Author: Jaldhar H. Vyas <jaldhar at braincells.com>
Date:   Sat Nov 27 13:23:19 2010 -0500

    Added upstream 2.8.2r1; deleted .swf files; added src directory containing actionscript source so the .swf files can be recreated.

diff --git a/build/animation/animation-debug.js b/build/animation/animation-debug.js
index 13638e9..7f2b7f6 100644
--- a/build/animation/animation-debug.js
+++ b/build/animation/animation-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 
@@ -1393,4 +1393,4 @@ YAHOO.util.Easing = {
 
     Y.Scroll = Scroll;
 })();
-YAHOO.register("animation", YAHOO.util.Anim, {version: "2.8.1", build: "19"});
+YAHOO.register("animation", YAHOO.util.Anim, {version: "2.8.2r1", build: "7"});
diff --git a/build/animation/animation-min.js b/build/animation/animation-min.js
index 7ea8055..08b4718 100644
--- a/build/animation/animation-min.js
+++ b/build/animation/animation-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var B=YAHOO.util;var A=function(D,C,E,F){if(!D){}this.init(D,C,E,F);};A.NAME="Anim";A.prototype={toString:function(){var C=this.getEl()||{};var D=C.id||C.tagName;return(this.constructor.NAME+": "+D);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(C,E,D){return this.method(this.currentFrame,E,D-E,this.totalFrames);},setAttribute:function(C,F,E){var D=this.getEl();if(this.patterns.noNegatives.test(C)){F=(F>0)?F:0;}if(C in D&&!("style" in D&&C in D.style)){D[C]=F;}else{B.Dom.setStyle(D,C,F+E);}},getAttribute:function(C){var E=this.getEl();var G=B.Dom.getStyle(E,C);if(G!=="auto"&&!this.patterns.offsetUnit.test(G)){return parseFloat(G);}var D=this.patterns.offsetAttribute.exec(C)||[];var H=!!(D[3]);var F=!!(D[2]);if("style" in E){if(F||(B.Dom.getStyle(E,"position")=="absolute"&&H)){G=E["offset"+D[0].charAt(0).toUpperCase()+D[0].substr(1)];}else{G=0;}}else{if(C in E){G=E[C];}}return G;},getDefaultUnit:function(C){if(this.patterns.defaultUnit.test(C)){return"px";}return"";},setRuntimeAttribute:function(D){var I;var E;var F=this.attributes;this.runtimeAttributes[D]={};var H=function(J){return(typeof J!=="undefined");};if(!H(F[D]["to"])&&!H(F[D]["by"])){return false;}I=(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);if(H(F[D]["to"])){E=F[D]["to"];}else{if(H(F[D]["by"])){if(I.constructor==Array){E=[];for(var G=0,C=I.length;G<C;++G){E[G]=I[G]+F[D]["by"][G]*1;}}else{E=I+F[D]["by"]*1;}}}this.runtimeAttributes[D].start=I;this.runtimeAttributes[D].end=E;this.runtimeAttributes[D].unit=(H(F[D].unit))?F[D]["unit"]:this.getDefaultUnit(D);return true;},init:function(E,J,I,C){var D=false;var F=null;var H=0;E=B.Dom.get(E);this.attributes=J||{};this.duration=!YAHOO.lang.isUndefined(I)?I:1;this.method=C||B.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=B.AnimMgr.fps;this.setEl=function(M){E=B.Dom.get(M);};this.getEl=function(){return E;};this.isAnimated=function(){return D;};this.getStartTime=function(){return F;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(B.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}B.AnimMgr.registerElement(this);return true;};this.stop=function(M){if(!this.isAnimated()){return false;}if(M){this.currentFrame=this.totalFrames;this._onTween.fire();}B.AnimMgr.stop(this);};var L=function(){this.onStart.fire();this.runtimeAttributes={};for(var M in this.attributes){this.setRuntimeAttribute(M);}D=true;H=0;F=new Date();};var K=function(){var O={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};O.toString=function(){return("duration: "+O.duration+", currentFrame: "+O.currentFrame);};this.onTween.fire(O);var N=this.runtimeAttributes;for(var M in N){this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);}H+=1;};var G=function(){var M=(new Date()-F)/1000;var N={duration:M,frames:H,fps:H/M};N.toString=function(){return("duration: "+N.duration+", frames: "+N.frames+", fps: "+N.fps);};D=false;H=0;this.onComplete.fire(N);};this._onStart=new B.CustomEvent("_start",this,true);this.onStart=new B.CustomEvent("start",this);this.onTween=new B.CustomEvent("tween",this);this._onTween=new B.CustomEvent("_tween",this,true);this.onComplete=new B.CustomEvent("complete",this);this._onComplete=new B.CustomEvent("_complete",this,true);this._onStart.subscribe(L);this._onTween.subscribe(K);this._onComplete.subscribe(G);}};B.Anim=A;})();YAHOO.util.AnimMgr=new function(){var C=null;var B=[];var A=0;this.fps=1000;this.delay=1;this.registerElement=function(F){B[B.length]=F;A+=1;F._onStart.fire();this.start();};this.unRegister=function(G,F){F=F||E(G);if(!G.isAnimated()||F===-1){return false;}G._onComplete.fire();B.splice(F,1);A-=1;if(A<=0){this.stop();}return true;};this.start=function(){if(C===null){C=setInterval(this.run,this.delay);}};this.stop=function(H){if(!H){clearInterval(C);for(var G=0,F=B.length;G<F;++G){this.unRegister(B[0],0);}B=[];C=null;A=0;}else{this.unRegister(H);}};this.run=function(){for(var H=0,F=B.length;H<F;++H){var G=B[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrames||G.totalFrames===null){G.currentFrame+=1;if(G.useSeconds){D(G);}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var E=function(H){for(var G=0,F=B.length;G<F;++G){if(B[G]===H){return G;}}return -1;};var D=function(G){var J=G.totalFrames;var I=G.currentFrame;var H=(G.currentFrame*G.duration*1000/G.totalFrames);var F=(new Date()-G.getStartTime());var K=0;if(F<G.duration*1000){K=Math.round((F/H-1)*G.currentFrame);}else{K=J-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=J){K=J-(I+1);}G.currentFrame+=K;}};this._queue=B;this._getIndex=E;};YAHOO.util.Bezier=new function(){this.getPosition=function(E,D){var F=E.length;var C=[];for(var B=0;B<F;++B){C[B]=[E[B][0],E[B][1]];}for(var A=1;A<F;++A){for(B=0;B<F-A;++B){C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0][0],C[0][1]];};};(function(){var A=function(F,E,G,H){A.superclass.constructor.call(this,F,E,G,H);};A.NAME="ColorAnim";A.DEFAULT_BGCOLOR="#fff";var C=YAHOO.util;YAHOO.extend(A,C.Anim);var D=A.superclass;var B=A.prototype;B.patterns.color=/color$/i;B.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;B.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;B.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;B.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;B.parseColor=function(E){if(E.length==3){return E;}var F=this.patterns.hex.exec(E);if(F&&F.length==4){return[parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16)];}F=this.patterns.rgb.exec(E);if(F&&F.length==4){return[parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10)];}F=this.patterns.hex3.exec(E);if(F&&F.length==4){return[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];
 }return null;};B.getAttribute=function(E){var G=this.getEl();if(this.patterns.color.test(E)){var I=YAHOO.util.Dom.getStyle(G,E);var H=this;if(this.patterns.transparent.test(I)){var F=YAHOO.util.Dom.getAncestorBy(G,function(J){return !H.patterns.transparent.test(I);});if(F){I=C.Dom.getStyle(F,E);}else{I=A.DEFAULT_BGCOLOR;}}}else{I=D.getAttribute.call(this,E);}return I;};B.doMethod=function(F,J,G){var I;if(this.patterns.color.test(F)){I=[];for(var H=0,E=J.length;H<E;++H){I[H]=D.doMethod.call(this,F,J[H],G[H]);}I="rgb("+Math.floor(I[0])+","+Math.floor(I[1])+","+Math.floor(I[2])+")";}else{I=D.doMethod.call(this,F,J,G);}return I;};B.setRuntimeAttribute=function(F){D.setRuntimeAttribute.call(this,F);if(this.patterns.color.test(F)){var H=this.attributes;var J=this.parseColor(this.runtimeAttributes[F].start);var G=this.parseColor(this.runtimeAttributes[F].end);if(typeof H[F]["to"]==="undefined"&&typeof H[F]["by"]!=="undefined"){G=this.parseColor(H[F].by);for(var I=0,E=J.length;I<E;++I){G[I]=J[I]+G[I];}}this.runtimeAttributes[F].start=J;this.runtimeAttributes[F].end=G;}};C.ColorAnim=A;})();
@@ -20,4 +20,4 @@ Redistribution and use in source and binary forms, with or without modification,
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 YAHOO.util.Easing={easeNone:function(B,A,D,C){return D*B/C+A;},easeIn:function(B,A,D,C){return D*(B/=C)*B+A;},easeOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A;},easeBoth:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B+A;}return -D/2*((--B)*(B-2)-1)+A;},easeInStrong:function(B,A,D,C){return D*(B/=C)*B*B*B+A;},easeOutStrong:function(B,A,D,C){return -D*((B=B/C-1)*B*B*B-1)+A;},easeBothStrong:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B*B*B+A;}return -D/2*((B-=2)*B*B*B-2)+A;},elasticIn:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return -(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;},elasticOut:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;},elasticBoth:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F/2)==2){return A+G;}if(!E){E=F*(0.3*1.5);}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}if(C<1){return -0.5*(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;}return B*Math.pow(2,-10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;},backIn:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*(B/=D)*B*((C+1)*B-C)+A;},backOut:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*((B=B/D-1)*B*((C+1)*B+C)+1)+A;},backBoth:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}if((B/=D/2)<1){return E/2*(B*B*(((C*=(1.525))+1)*B-C))+A;}return E/2*((B-=2)*B*(((C*=(1.525))+1)*B+C)+2)+A;},bounceIn:function(B,A,D,C){return D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;},bounceOut:function(B,A,D,C){if((B/=C)<(1/2.75)){return D*(7.5625*B*B)+A;}else{if(B<(2/2.75)){return D*(7.5625*(B-=(1.5/2.75))*B+0.75)+A;}else{if(B<(2.5/2.75)){return D*(7.5625*(B-=(2.25/2.75))*B+0.9375)+A;}}}return D*(7.5625*(B-=(2.625/2.75))*B+0.984375)+A;},bounceBoth:function(B,A,D,C){if(B<C/2){return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;}return YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;}};(function(){var A=function(H,G,I,J){if(H){A.superclass.constructor.call(this,H,G,I,J);}};A.NAME="Motion";var E=YAHOO.util;YAHOO.extend(A,E.ColorAnim);var F=A.superclass;var C=A.prototype;C.patterns.points=/^points$/i;C.setAttribute=function(G,I,H){if(this.patterns.points.test(G)){H=H||"px";F.setAttribute.call(this,"left",I[0],H);F.setAttribute.call(this,"top",I[1],H);}else{F.setAttribute.call(this,G,I,H);}};C.getAttribute=function(G){if(this.patterns.points.test(G)){var H=[F.getAttribute.call(this,"left"),F.getAttribute.call(this,"top")];}else{H=F.getAttribute.call(this,G);}return H;};C.doMethod=function(G,K,H){var J=null;if(this.patterns.points.test(G)){var I=this.method(this.currentFrame,0,100,this.totalFrames)/100;J=E.Bezier.getPosition(this.runtimeAttributes[G],I);}else{J=F.doMethod.call(this,G,K,H);}return J;};C.setRuntimeAttribute=function(P){if(this.patterns.points.test(P)){var H=this.getEl();var J=this.attributes;var G;var L=J["points"]["control"]||[];var I;var M,O;if(L.length>0&&!(L[0] instanceof Array)){L=[L];}else{var K=[];for(M=0,O=L.length;M<O;++M){K[M]=L[M];}L=K;}if(E.Dom.getStyle(H,"position")=="static"){E.Dom.setStyle(H,"position","relative");}if(D(J["points"]["from"])){E.Dom.setXY(H,J["points"]["from"]);
-}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=this.getAttribute("points");if(D(J["points"]["to"])){I=B.call(this,J["points"]["to"],G);var N=E.Dom.getXY(this.getEl());for(M=0,O=L.length;M<O;++M){L[M]=B.call(this,L[M],G);}}else{if(D(J["points"]["by"])){I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];for(M=0,O=L.length;M<O;++M){L[M]=[G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=[G];if(L.length>0){this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);}this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;}else{F.setRuntimeAttribute.call(this,P);}};var B=function(G,I){var H=E.Dom.getXY(this.getEl());G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return G;};var D=function(G){return(typeof G!=="undefined");};E.Motion=A;})();(function(){var D=function(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}};D.NAME="Scroll";var B=YAHOO.util;YAHOO.extend(D,B.ColorAnim);var C=D.superclass;var A=D.prototype;A.doMethod=function(E,H,F){var G=null;if(E=="scroll"){G=[this.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];}else{G=C.doMethod.call(this,E,H,F);}return G;};A.getAttribute=function(E){var G=null;var F=this.getEl();if(E=="scroll"){G=[F.scrollLeft,F.scrollTop];}else{G=C.getAttribute.call(this,E);}return G;};A.setAttribute=function(E,H,G){var F=this.getEl();if(E=="scroll"){F.scrollLeft=H[0];F.scrollTop=H[1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=D;})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=this.getAttribute("points");if(D(J["points"]["to"])){I=B.call(this,J["points"]["to"],G);var N=E.Dom.getXY(this.getEl());for(M=0,O=L.length;M<O;++M){L[M]=B.call(this,L[M],G);}}else{if(D(J["points"]["by"])){I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];for(M=0,O=L.length;M<O;++M){L[M]=[G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=[G];if(L.length>0){this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);}this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;}else{F.setRuntimeAttribute.call(this,P);}};var B=function(G,I){var H=E.Dom.getXY(this.getEl());G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return G;};var D=function(G){return(typeof G!=="undefined");};E.Motion=A;})();(function(){var D=function(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}};D.NAME="Scroll";var B=YAHOO.util;YAHOO.extend(D,B.ColorAnim);var C=D.superclass;var A=D.prototype;A.doMethod=function(E,H,F){var G=null;if(E=="scroll"){G=[this.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];}else{G=C.doMethod.call(this,E,H,F);}return G;};A.getAttribute=function(E){var G=null;var F=this.getEl();if(E=="scroll"){G=[F.scrollLeft,F.scrollTop];}else{G=C.getAttribute.call(this,E);}return G;};A.setAttribute=function(E,H,G){var F=this.getEl();if(E=="scroll"){F.scrollLeft=H[0];F.scrollTop=H[1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=D;})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/animation/animation.js b/build/animation/animation.js
index ebc8e87..d92a436 100644
--- a/build/animation/animation.js
+++ b/build/animation/animation.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 
@@ -1389,4 +1389,4 @@ YAHOO.util.Easing = {
 
     Y.Scroll = Scroll;
 })();
-YAHOO.register("animation", YAHOO.util.Anim, {version: "2.8.1", build: "19"});
+YAHOO.register("animation", YAHOO.util.Anim, {version: "2.8.2r1", build: "7"});
diff --git a/build/assets/skins/sam/autocomplete.css b/build/assets/skins/sam/autocomplete.css
index 33e9d1d..aa3435d 100644
--- a/build/assets/skins/sam/autocomplete.css
+++ b/build/assets/skins/sam/autocomplete.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-ac{position:relative;font-family:arial;font-size:100%;}.yui-skin-sam .yui-ac-input{position:absolute;width:100%;}.yui-skin-sam .yui-ac-container{position:absolute;top:1.6em;width:100%;}.yui-skin-sam .yui-ac-content{position:absolute;width:100%;border:1px solid #808080;background:#fff;overflow:hidden;z-index:9050;}.yui-skin-sam .yui-ac-shadow{position:absolute;margin:.3em;width:100%;background:#000;-moz-opacity:.10;opacity:.10;filter:alpha(opacity=10);z-index:9049;}.yui-skin-sam .yui-ac iframe{opacity:0;filter:alpha(opacity=0);padding-right:.3em;padding-bottom:.3em;}.yui-skin-sam .yui-ac-content ul{margin:0;padding:0;width:100%;}.yui-skin-sam .yui-ac-content li{margin:0;padding:2px 5px;cursor:default;white-space:nowrap;list-style:none;zoom:1;}.yui-skin-sam .yui-ac-content li.yui-ac-prehighlight{background:#B3D4FF;}.yui-skin-sam .yui-ac-content li.yui-ac-highlight{background:#426FD9;color:#FFF;}
diff --git a/build/assets/skins/sam/button.css b/build/assets/skins/sam/button.css
index 81e5e35..40cc1dd 100644
--- a/build/assets/skins/sam/button.css
+++ b/build/assets/skins/sam/button.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-button{display:-moz-inline-box;display:inline-block;vertical-align:text-bottom;}.yui-button .first-child{display:block;*display:inline-block;}.yui-button button,.yui-button a{display:block;*display:inline-block;border:none;margin:0;}.yui-button button{background-color:transparent;*overflow:visible;cursor:pointer;}.yui-button a{text-decoration:none;}.yui-skin-sam .yui-button{border-width:1px 0;border-style:solid;border-color:#808080;background:url(sprite.png) repeat-x 0 0;margin:auto .25em;}.yui-skin-sam .yui-button .first-child{border-width:0 1px;border-style:solid;border-color:#808080;margin:0 -1px;_margin:0;}.yui-skin-sam .yui-button button,.yui-skin-sam .yui-button a,.yui-skin-sam .yui-button a:visited{padding:0 10px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-button a{*line-height:1.875;*padding-bottom:1px;}.yui-skin-sam .yui-split-button button,.yui-skin-sam .yui-menu-button button{padding-right:20px;background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-button button{background-image:url(menu-button-arrow.png);}.yui-skin-sam .yui-split-button button{background-image:url(split-button-arrow.png);}.yui-skin-sam .yui-button-focus{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-focus .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-focus button{background-image:url(split-button-arrow-focus.png);}.yui-skin-sam .yui-button-hover{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-hover .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-hover button{background-image:url(split-button-arrow-hover.png);}.yui-skin-sam .yui-button-active{border-color:#7D98B8;background-position:0 -1700px;}.yui-skin-sam .yui-button-active .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-activeoption{border-color:#808080;background-position:0 0;}.yui-skin-sam .yui-split-button-activeoption .first-child{border-color:#808080;}.yui-skin-sam .yui-split-button-activeoption button{background-image:url(split-button-arrow-active.png);}.yui-skin-sam .yui-radio-button-checked,.yui-skin-sam .yui-checkbox-button-checked{border-color:#304369;background-position:0 -1400px;}.yui-skin-sam .yui-radio-button-checked .first-child,.yui-skin-sam .yui-checkbox-button-checked .first-child{border-color:#304369;}.yui-skin-sam .yui-radio-button-checked button,.yui-skin-sam .yui-checkbox-button-checked button{color:#fff;}.yui-skin-sam .yui-button-disabled{border-color:#ccc;background-position:0 -1500px;}.yui-skin-sam .yui-button-disabled .first-child{border-color:#ccc;}.yui-skin-sam .yui-button-disabled button,.yui-skin-sam .yui-button-disabled a,.yui-skin-sam .yui-button-disabled a:visited{color:#A6A6A6;cursor:default;}.yui-skin-sam .yui-menu-button-disabled button{background-image:url(menu-button-arrow-disabled.png);}.yui-skin-sam .yui-split-button-disabled button{background-image:url(split-button-arrow-disabled.png);}
diff --git a/build/assets/skins/sam/calendar.css b/build/assets/skins/sam/calendar.css
index 93561b7..206ceff 100644
--- a/build/assets/skins/sam/calendar.css
+++ b/build/assets/skins/sam/calendar.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-calcontainer{position:relative;float:left;_overflow:hidden;}.yui-calcontainer iframe{position:absolute;border:none;margin:0;padding:0;z-index:0;width:100%;height:100%;left:0;top:0;}.yui-calcontainer iframe.fixedsize{width:50em;height:50em;top:-1px;left:-1px;}.yui-calcontainer.multi .groupcal{z-index:1;float:left;position:relative;}.yui-calcontainer .title{position:relative;z-index:1;}.yui-calcontainer .close-icon{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar{position:relative;}.yui-calendar .calnavleft{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar .calnavright{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar .calheader{position:relative;width:100%;text-align:center;}.yui-calcontainer .yui-cal-nav-mask{position:absolute;z-index:2;margin:0;padding:0;width:100%;height:100%;_width:0;_height:0;left:0;top:0;display:none;}.yui-calcontainer .yui-cal-nav{position:absolute;z-index:3;top:0;display:none;}.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn{display:-moz-inline-box;display:inline-block;}.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button{display:block;*display:inline-block;*overflow:visible;border:none;background-color:transparent;cursor:pointer;}.yui-calendar .calbody a:hover{background:inherit;}p#clear{clear:left;padding-top:10px;}.yui-skin-sam .yui-calcontainer{background-color:#f2f2f2;border:1px solid #808080;padding:10px;}.yui-skin-sam .yui-calcontainer.multi{padding:0 5px 0 5px;}.yui-skin-sam .yui-calcontainer.multi .groupcal{background-color:transparent;border:none;padding:10px 5px 10px 5px;margin:0;}.yui-skin-sam .yui-calcontainer .title{background:url(sprite.png) repeat-x 0 0;border-bottom:1px solid #ccc;font:100% sans-serif;color:#000;font-weight:bold;height:auto;padding:.4em;margin:0 -10px 10px -10px;top:0;left:0;text-align:left;}.yui-skin-sam .yui-calcontainer.multi .title{margin:0 -5px 0 -5px;}.yui-skin-sam .yui-calcontainer.withtitle{padding-top:0;}.yui-skin-sam .yui-calcontainer .calclose{background:url(sprite.png) no-repeat 0 -300px;width:25px;height:15px;top:.4em;right:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar{border-spacing:0;border-collapse:collapse;font:100% sans-serif;text-align:center;margin:0;}.yui-skin-sam .yui-calendar .calhead{background:transparent;border:none;vertical-align:middle;padding:0;}.yui-skin-sam .yui-calendar .calheader{background:transparent;font-weight:bold;padding:0 0 .6em 0;text-align:center;}.yui-skin-sam .yui-calendar .calheader img{border:none;}.yui-skin-sam .yui-calendar .calnavleft{background:url(sprite.png) no-repeat 0 -450px;width:25px;height:15px;top:0;bottom:0;left:-10px;margin-left:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar .calnavright{background:url(sprite.png) no-repeat 0 -500px;width:25px;height:15px;top:0;bottom:0;right:-10px;margin-right:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar .calweekdayrow{height:2em;}.yui-skin-sam .yui-calendar .calweekdayrow th{padding:0;border:none;}.yui-skin-sam .yui-calendar .calweekdaycell{color:#000;font-weight:bold;text-align:center;width:2em;}.yui-skin-sam .yui-calendar .calfoot{background-color:#f2f2f2;}.yui-skin-sam .yui-calendar .calrowhead,.yui-skin-sam .yui-calendar .calrowfoot{color:#a6a6a6;font-size:85%;font-style:normal;font-weight:normal;border:none;}.yui-skin-sam .yui-calendar .calrowhead{text-align:right;padding:0 2px 0 0;}.yui-skin-sam .yui-calendar .calrowfoot{text-align:left;padding:0 0 0 2px;}.yui-skin-sam .yui-calendar td.calcell{border:1px solid #ccc;background:#fff;padding:1px;height:1.6em;line-height:1.6em;text-align:center;white-space:nowrap;}.yui-skin-sam .yui-calendar td.calcell a{color:#06c;display:block;height:100%;text-decoration:none;}.yui-skin-sam .yui-calendar td.calcell.today{background-color:#000;}.yui-skin-sam .yui-calendar td.calcell.today a{background-color:#fff;}.yui-skin-sam .yui-calendar td.calcell.oom{background-color:#ccc;color:#a6a6a6;cursor:default;}.yui-skin-sam .yui-calendar td.calcell.selected{background-color:#fff;color:#000;}.yui-skin-sam .yui-calendar td.calcell.selected a{background-color:#b3d4ff;color:#000;}.yui-skin-sam .yui-calendar td.calcell.calcellhover{background-color:#426fd9;color:#fff;cursor:pointer;}.yui-skin-sam .yui-calendar td.calcell.calcellhover a{background-color:#426fd9;color:#fff;}.yui-skin-sam .yui-calendar td.calcell.previous{color:#e0e0e0;}.yui-skin-sam .yui-calendar td.calcell.restricted{text-decoration:line-through;}.yui-skin-sam .yui-calendar td.calcell.highlight1{background-color:#cf9;}.yui-skin-sam .yui-calendar td.calcell.highlight2{background-color:#9cf;}.yui-skin-sam .yui-calendar td.calcell.highlight3{background-color:#fcc;}.yui-skin-sam .yui-calendar td.calcell.highlight4{background-color:#cf9;}.yui-skin-sam .yui-calendar a.calnav{border:1px solid #f2f2f2;padding:0 4px;text-decoration:none;color:#000;zoom:1;}.yui-skin-sam .yui-calendar a.calnav:hover{background:url(sprite.png) repeat-x 0 0;border-color:#A0A0A0;cursor:pointer;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-mask{background-color:#000;opacity:.25;filter:alpha(opacity=25);}.yui-skin-sam .yui-calcontainer .yui-cal-nav{font-family:arial,helvetica,clean,sans-serif;font-size:93%;border:1px solid #808080;left:50%;margin-left:-7em;width:14em;padding:0;top:2.5em;background-color:#f2f2f2;}.yui-skin-sam .yui-calcontainer.withtitle .yui-cal-nav{top:4.5em;}.yui-skin-sam .yui-calcontainer.multi .yui-cal-nav{width:16em;margin-left:-8em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-y,.yui-skin-sam .yui-calcontainer .yui-cal-nav-m,.yui-skin-sam .yui-calcontainer .yui-cal-nav-b{padding:5px 10px 5px 10px;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-b{text-align:center;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-e{margin-top:5px;padding:5px;background-color:#EDF5FF;border-top:1px solid black;display:none;}.yui-skin-sam .yui-calcontainer .yui-cal-nav label{display:block;font-weight:bold;}
 .yui-skin-sam .yui-calcontainer .yui-cal-nav-mc{width:100%;_width:auto;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-y input.yui-invalid{background-color:#FFEE69;border:1px solid #000;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-yc{width:4em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn{border:1px solid #808080;background:url(sprite.png) repeat-x 0 0;background-color:#ccc;margin:auto .15em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button{padding:0 8px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default{border:1px solid #304369;background-color:#426fd9;background:url(sprite.png) repeat-x 0 -1400px;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default button{color:#fff;}
diff --git a/build/assets/skins/sam/carousel.css b/build/assets/skins/sam/carousel.css
index 874e478..2db4ed1 100644
--- a/build/assets/skins/sam/carousel.css
+++ b/build/assets/skins/sam/carousel.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-carousel{visibility:hidden;overflow:hidden;position:relative;text-align:left;zoom:1;}.yui-carousel.yui-carousel-visible{visibility:visible;}.yui-carousel-content{overflow:hidden;position:relative;text-align:center;}.yui-carousel-element li{border:1px solid #ccc;list-style:none;margin:1px;overflow:hidden;padding:0;position:absolute;text-align:center;}.yui-carousel-vertical .yui-carousel-element li{display:block;float:none;}.yui-log .carousel{background:#f2e886;}.yui-carousel-nav{zoom:1;}.yui-carousel-nav:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-carousel-button-focus{outline:1px dotted #000;}.yui-carousel-min-width{min-width:115px;}.yui-carousel-element{overflow:hidden;position:relative;margin:0 auto;padding:0;text-align:left;*margin:0;}.yui-carousel-horizontal .yui-carousel-element{width:320000px;}.yui-carousel-vertical .yui-carousel-element{height:320000px;}.yui-skin-sam .yui-carousel-nav select{position:static;}.yui-carousel .yui-carousel-item-selected{border:1px dashed #000;margin:1px;}.yui-skin-sam .yui-carousel,.yui-skin-sam .yui-carousel-vertical{border:1px solid #808080;}.yui-skin-sam .yui-carousel-nav{background:url(sprite.png) repeat-x 0 0;padding:3px;text-align:right;}.yui-skin-sam .yui-carousel-button{background:url(sprite.png) no-repeat 0 -600px;float:right;height:19px;margin:5px;overflow:hidden;width:40px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-button{background-position:0 -800px;}.yui-skin-sam .yui-carousel-button-disabled{background-position:0 -2000px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-button-disabled{background-position:0 -2100px;}.yui-skin-sam .yui-carousel-button input,.yui-skin-sam .yui-carousel-button button{background-color:transparent;border:0;cursor:pointer;display:block;height:44px;margin:-2px 0 0 -2px;padding:0 0 0 50px;}.yui-skin-sam span.yui-carousel-first-button{background-position:0 -550px;margin-left:-100px;margin-right:50px;*margin:5px 5px 5px -90px;}.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button{background-position:0 -750px;}.yui-skin-sam span.yui-carousel-first-button-disabled{background-position:0 -1950px;}.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button-disabled{background-position:0 -2050px;}.yui-skin-sam .yui-carousel-nav ul{float:right;height:19px;margin:0;margin-left:-220px;margin-right:100px;*margin-left:-160px;*margin-right:0;padding:0;}.yui-skin-sam .yui-carousel-min-width .yui-carousel-nav ul{*margin-left:-170px;}.yui-skin-sam .yui-carousel-nav select{position:relative;*right:50px;top:4px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select{position:static;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav ul,.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select{float:none;margin:0;*zoom:1;}.yui-skin-sam .yui-carousel-nav ul li{background:url(sprite.png) no-repeat 0 -650px;cursor:pointer;float:left;height:9px;list-style:none;margin:10px 0 0 5px;overflow:hidden;padding:0;width:9px;}.yui-skin-sam .yui-carousel-nav ul:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-skin-sam .yui-carousel-nav ul li a{display:block;width:100%;height:100%;text-indent:-10000px;text-align:left;overflow:hidden;}.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-focus{outline:1px dotted #000;}.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-selected{background-position:0 -700px;}.yui-skin-sam .yui-carousel-item-loading{background:url(ajax-loader.gif) no-repeat 50% 50%;position:absolute;text-indent:-150px;}
diff --git a/build/assets/skins/sam/colorpicker.css b/build/assets/skins/sam/colorpicker.css
index f930c63..3a88151 100644
--- a/build/assets/skins/sam/colorpicker.css
+++ b/build/assets/skins/sam/colorpicker.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-picker-panel{background:#e3e3e3;border-color:#888;}.yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.yui-picker{position:relative;}.yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}.yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../build/colorpicker/assets/picker_mask.png',sizingMethod='scale');}.yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.yui-picker-controls .hd{background:transparent;border-width:0!important;}.yui-picker-controls .bd{height:100px;border-width:0!important;}.yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.yui-picker-controls li{padding:2px;list-style:none;margin:0;}.yui-picker-controls input{font-size:.85em;width:2.4em;}.yui-picker-hex-controls{clear:both;padding:2px;}.yui-picker-hex-controls input{width:4.6em;}.yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;}
diff --git a/build/assets/skins/sam/container.css b/build/assets/skins/sam/container.css
index fc0fb17..f40833d 100644
--- a/build/assets/skins/sam/container.css
+++ b/build/assets/skins/sam/container.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-overlay,.yui-panel-container{visibility:hidden;position:absolute;z-index:2;}.yui-panel{position:relative;}.yui-panel-container form{margin:0;}.mask{z-index:1;display:none;position:absolute;top:0;left:0;right:0;bottom:0;}.mask.block-scrollbars{overflow:auto;}.masked select,.drag select,.hide-select select{_visibility:hidden;}.yui-panel-container select{_visibility:inherit;}.hide-scrollbars,.hide-scrollbars *{overflow:hidden;}.hide-scrollbars select{display:none;}.show-scrollbars{overflow:auto;}.yui-panel-container.show-scrollbars,.yui-tt.show-scrollbars{overflow:visible;}.yui-panel-container.show-scrollbars .underlay,.yui-tt.show-scrollbars .yui-tt-shadow{overflow:auto;}.yui-panel-container.shadow .underlay.yui-force-redraw{padding-bottom:1px;}.yui-effect-fade .underlay,.yui-effect-fade .yui-tt-shadow{display:none;}.yui-tt-shadow{position:absolute;}.yui-override-padding{padding:0!important;}.yui-panel-container .container-close{overflow:hidden;text-indent:-10000em;text-decoration:none;}.yui-overlay.yui-force-redraw,.yui-panel-container.yui-force-redraw{margin-bottom:1px;}.yui-skin-sam .mask{background-color:#000;opacity:.25;filter:alpha(opacity=25);}.yui-skin-sam .yui-panel-container{padding:0 1px;*padding:2px;}.yui-skin-sam .yui-panel{position:relative;left:0;top:0;border-style:solid;border-width:1px 0;border-color:#808080;z-index:1;*border-width:1px;*zoom:1;_zoom:normal;}.yui-skin-sam .yui-panel .hd,.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{border-style:solid;border-width:0 1px;border-color:#808080;margin:0 -1px;*margin:0;*border:0;}.yui-skin-sam .yui-panel .hd{border-bottom:solid 1px #ccc;}.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{background-color:#F2F2F2;}.yui-skin-sam .yui-panel .hd{padding:0 10px;font-size:93%;line-height:2;*line-height:1.9;font-weight:bold;color:#000;background:url(sprite.png) repeat-x 0 -200px;}.yui-skin-sam .yui-panel .bd{padding:10px;}.yui-skin-sam .yui-panel .ft{border-top:solid 1px #808080;padding:5px 10px;font-size:77%;}.yui-skin-sam .container-close{position:absolute;top:5px;right:6px;width:25px;height:15px;background:url(sprite.png) no-repeat 0 -300px;cursor:pointer;}.yui-skin-sam .yui-panel-container .underlay{right:-1px;left:-1px;}.yui-skin-sam .yui-panel-container.matte{padding:9px 10px;background-color:#fff;}.yui-skin-sam .yui-panel-container.shadow{_padding:2px 4px 0 2px;}.yui-skin-sam .yui-panel-container.shadow .underlay{position:absolute;top:2px;left:-3px;right:-3px;bottom:-3px;*top:4px;*left:-1px;*right:-1px;*bottom:-1px;_top:0;_left:0;_right:0;_bottom:0;_margin-top:3px;_margin-left:-1px;background-color:#000;opacity:.12;filter:alpha(opacity=12);}.yui-skin-sam .yui-dialog .ft{border-top:none;padding:0 10px 10px 10px;font-size:100%;}.yui-skin-sam .yui-dialog .ft .button-group{display:block;text-align:right;}.yui-skin-sam .yui-dialog .ft button.default{font-weight:bold;}.yui-skin-sam .yui-dialog .ft span.default{border-color:#304369;background-position:0 -1400px;}.yui-skin-sam .yui-dialog .ft span.default .first-child{border-color:#304369;}.yui-skin-sam .yui-dialog .ft span.default button{color:#fff;}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled{background-position:0 -1500px;border-color:#ccc;}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled .first-child{border-color:#ccc;}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled button{color:#a6a6a6;}.yui-skin-sam .yui-simple-dialog .bd .yui-icon{background:url(sprite.png) no-repeat 0 0;width:16px;height:16px;margin-right:10px;float:left;}.yui-skin-sam .yui-simple-dialog .bd span.blckicon{background-position:0 -1100px;}.yui-skin-sam .yui-simple-dialog .bd span.alrticon{background-position:0 -1050px;}.yui-skin-sam .yui-simple-dialog .bd span.hlpicon{background-position:0 -1150px;}.yui-skin-sam .yui-simple-dialog .bd span.infoicon{background-position:0 -1200px;}.yui-skin-sam .yui-simple-dialog .bd span.warnicon{background-position:0 -1900px;}.yui-skin-sam .yui-simple-dialog .bd span.tipicon{background-position:0 -1250px;}.yui-skin-sam .yui-tt .bd{position:relative;top:0;left:0;z-index:1;color:#000;padding:2px 5px;border-color:#D4C237 #A6982B #A6982B #A6982B;border-width:1px;border-style:solid;background-color:#FFEE69;}.yui-skin-sam .yui-tt.show-scrollbars .bd{overflow:auto;}.yui-skin-sam .yui-tt-shadow{top:2px;right:-3px;left:-3px;bottom:-3px;background-color:#000;}.yui-skin-sam .yui-tt-shadow-visible{opacity:.12;filter:alpha(opacity=12);}
diff --git a/build/assets/skins/sam/datatable.css b/build/assets/skins/sam/datatable.css
index 9b04c26..5163388 100644
--- a/build/assets/skins/sam/datatable.css
+++ b/build/assets/skins/sam/datatable.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-dt-mask{position:absolute;z-index:9500;}.yui-dt-tmp{position:absolute;left:-9000px;}.yui-dt-scrollable .yui-dt-bd{overflow:auto;}.yui-dt-scrollable .yui-dt-hd{overflow:hidden;position:relative;}.yui-dt-scrollable .yui-dt-bd thead tr,.yui-dt-scrollable .yui-dt-bd thead th{position:absolute;left:-1500px;}.yui-dt-scrollable tbody{-moz-outline:none;}.yui-skin-sam thead .yui-dt-sortable{cursor:pointer;}.yui-skin-sam thead .yui-dt-draggable{cursor:move;}.yui-dt-coltarget{position:absolute;z-index:999;}.yui-dt-hd{zoom:1;}th.yui-dt-resizeable .yui-dt-resizerliner{position:relative;}.yui-dt-resizer{position:absolute;right:0;bottom:0;height:100%;cursor:e-resize;cursor:col-resize;background-color:#CCC;opacity:0;filter:alpha(opacity=0);}.yui-dt-resizerproxy{visibility:hidden;position:absolute;z-index:9000;background-color:#CCC;opacity:0;filter:alpha(opacity=0);}th.yui-dt-hidden .yui-dt-liner,td.yui-dt-hidden .yui-dt-liner,th.yui-dt-hidden .yui-dt-resizer{display:none;}.yui-dt-editor{position:absolute;z-index:9000;}.yui-skin-sam .yui-dt table{margin:0;padding:0;font-family:arial;font-size:inherit;border-collapse:separate;*border-collapse:collapse;border-spacing:0;border:1px solid #7F7F7F;}.yui-skin-sam .yui-dt thead{border-spacing:0;}.yui-skin-sam .yui-dt caption{color:#000;font-size:85%;font-weight:normal;font-style:italic;line-height:1;padding:1em 0;text-align:center;}.yui-skin-sam .yui-dt th{background:#D8D8DA url(sprite.png) repeat-x 0 0;}.yui-skin-sam .yui-dt th,.yui-skin-sam .yui-dt th a{font-weight:normal;text-decoration:none;color:#000;vertical-align:bottom;}.yui-skin-sam .yui-dt th{margin:0;padding:0;border:none;border-right:1px solid #CBCBCB;}.yui-skin-sam .yui-dt tr.yui-dt-first td{border-top:1px solid #7F7F7F;}.yui-skin-sam .yui-dt th .yui-dt-liner{white-space:nowrap;}.yui-skin-sam .yui-dt-liner{margin:0;padding:0;padding:4px 10px 4px 10px;}.yui-skin-sam .yui-dt-coltarget{width:5px;background-color:red;}.yui-skin-sam .yui-dt td{margin:0;padding:0;border:none;border-right:1px solid #CBCBCB;text-align:left;}.yui-skin-sam .yui-dt-list td{border-right:none;}.yui-skin-sam .yui-dt-resizer{width:6px;}.yui-skin-sam .yui-dt-mask{background-color:#000;opacity:.25;filter:alpha(opacity=25);}.yui-skin-sam .yui-dt-message{background-color:#FFF;}.yui-skin-sam .yui-dt-scrollable table{border:none;}.yui-skin-sam .yui-dt-scrollable .yui-dt-hd{border-left:1px solid #7F7F7F;border-top:1px solid #7F7F7F;border-right:1px solid #7F7F7F;}.yui-skin-sam .yui-dt-scrollable .yui-dt-bd{border-left:1px solid #7F7F7F;border-bottom:1px solid #7F7F7F;border-right:1px solid #7F7F7F;background-color:#FFF;}.yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td{border-bottom:1px solid #7F7F7F;}.yui-skin-sam th.yui-dt-asc,.yui-skin-sam th.yui-dt-desc{background:url(sprite.png) repeat-x 0 -100px;}.yui-skin-sam th.yui-dt-sortable .yui-dt-label{margin-right:10px;}.yui-skin-sam th.yui-dt-asc .yui-dt-liner{background:url(dt-arrow-up.png) no-repeat right;}.yui-skin-sam th.yui-dt-desc .yui-dt-liner{background:url(dt-arrow-dn.png) no-repeat right;}tbody .yui-dt-editable{cursor:pointer;}.yui-dt-editor{text-align:left;background-color:#F2F2F2;border:1px solid #808080;padding:6px;}.yui-dt-editor label{padding-left:4px;padding-right:6px;}.yui-dt-editor .yui-dt-button{padding-top:6px;text-align:right;}.yui-dt-editor .yui-dt-button button{background:url(sprite.png) repeat-x 0 0;border:1px solid #999;width:4em;height:1.8em;margin-left:6px;}.yui-dt-editor .yui-dt-button button.yui-dt-default{background:url(sprite.png) repeat-x 0 -1400px;background-color:#5584E0;border:1px solid #304369;color:#FFF;}.yui-dt-editor .yui-dt-button button:hover{background:url(sprite.png) repeat-x 0 -1300px;color:#000;}.yui-dt-editor .yui-dt-button button:active{background:url(sprite.png) repeat-x 0 -1700px;color:#000;}.yui-skin-sam tr.yui-dt-even{background-color:#FFF;}.yui-skin-sam tr.yui-dt-odd{background-color:#EDF5FF;}.yui-skin-sam tr.yui-dt-even td.yui-dt-asc,.yui-skin-sam tr.yui-dt-even td.yui-dt-desc{background-color:#EDF5FF;}.yui-skin-sam tr.yui-dt-odd td.yui-dt-asc,.yui-skin-sam tr.yui-dt-odd td.yui-dt-desc{background-color:#DBEAFF;}.yui-skin-sam .yui-dt-list tr.yui-dt-even{background-color:#FFF;}.yui-skin-sam .yui-dt-list tr.yui-dt-odd{background-color:#FFF;}.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc,.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc{background-color:#EDF5FF;}.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc,.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc{background-color:#EDF5FF;}.yui-skin-sam th.yui-dt-highlighted,.yui-skin-sam th.yui-dt-highlighted a{background-color:#B2D2FF;}.yui-skin-sam tr.yui-dt-highlighted,.yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc,.yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc,.yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted,.yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted{cursor:pointer;background-color:#B2D2FF;}.yui-skin-sam .yui-dt-list th.yui-dt-highlighted,.yui-skin-sam .yui-dt-list th.yui-dt-highlighted a{background-color:#B2D2FF;}.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted,.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc,.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc,.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted,.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted{cursor:pointer;background-color:#B2D2FF;}.yui-skin-sam th.yui-dt-selected,.yui-skin-sam th.yui-dt-selected a{background-color:#446CD7;}.yui-skin-sam tr.yui-dt-selected td,.yui-skin-sam tr.yui-dt-selected td.yui-dt-asc,.yui-skin-sam tr.yui-dt-selected td.yui-dt-desc{background-color:#426FD9;color:#FFF;}.yui-skin-sam tr.yui-dt-even td.yui-dt-selected,.yui-skin-sam tr.yui-dt-odd td.yui-dt-selected{background-color:#446CD7;color:#FFF;}.yui-skin-sam .yui-dt-list th.yui-dt-selected,.yui-skin-sam .yui-dt-list th.yui-dt-selected a{background-color:#446CD7;}
 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td,.yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc,.yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc{background-color:#426FD9;color:#FFF;}.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected,.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected{background-color:#446CD7;color:#FFF;}.yui-skin-sam .yui-dt-paginator{display:block;margin:6px 0;white-space:nowrap;}.yui-skin-sam .yui-dt-paginator .yui-dt-first,.yui-skin-sam .yui-dt-paginator .yui-dt-last,.yui-skin-sam .yui-dt-paginator .yui-dt-selected{padding:2px 6px;}.yui-skin-sam .yui-dt-paginator a.yui-dt-first,.yui-skin-sam .yui-dt-paginator a.yui-dt-last{text-decoration:none;}.yui-skin-sam .yui-dt-paginator .yui-dt-previous,.yui-skin-sam .yui-dt-paginator .yui-dt-next{display:none;}.yui-skin-sam a.yui-dt-page{border:1px solid #CBCBCB;padding:2px 6px;text-decoration:none;background-color:#fff;}.yui-skin-sam .yui-dt-selected{border:1px solid #fff;background-color:#fff;}
diff --git a/build/assets/skins/sam/editor.css b/build/assets/skins/sam/editor.css
index 610b3ef..1515ce3 100644
--- a/build/assets/skins/sam/editor.css
+++ b/build/assets/skins/sam/editor.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-busy{cursor:wait!important;}.yui-toolbar-container fieldset,.yui-editor-container fieldset{padding:0;margin:0;border:0;}.yui-toolbar-container legend{display:none;}.yui-skin-sam .yui-toolbar-container .yui-button button,.yui-skin-sam .yui-toolbar-container .yui-button a,.yui-skin-sam .yui-toolbar-container .yui-button a:visited{font-size:0;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-select button,.yui-skin-sam .yui-toolbar-container .yui-toolbar-select a,.yui-skin-sam .yui-toolbar-container .yui-toolbar-select a:visited,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton button,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a:visited{font-size:12px;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down{font-size:0;line-height:0;padding:0;}.yui-toolbar-container .yui-toolbar-subcont{padding:.25em 0;zoom:1;}.yui-toolbar-container-collapsed .yui-toolbar-subcont{display:none;}.yui-toolbar-container .yui-toolbar-subcont:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-container span.yui-toolbar-draghandle{cursor:move;border-left:1px solid #999;border-right:1px solid #999;overflow:hidden;text-indent:77777px;width:2px;height:20px;display:block;clear:none;float:left;margin:0 0 0 .2em;}.yui-toolbar-container .yui-toolbar-titlebar.draggable{cursor:move;}.yui-toolbar-container .yui-toolbar-titlebar{position:relative;}.yui-toolbar-container .yui-toolbar-titlebar h2{font-weight:bold;letter-spacing:0;border:none;color:#000;margin:0;padding:.2em;}.yui-toolbar-container .yui-toolbar-titlebar h2 a{text-decoration:none;color:#000;cursor:default;}.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-draghandle{height:40px;}.yui-toolbar-container .yui-toolbar-group{float:left;margin-right:.5em;zoom:1;}.yui-toolbar-container .yui-toolbar-group:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-container .yui-toolbar-group h3{font-size:75%;padding:0 0 0 .25em;margin:0;}.yui-toolbar-container span.yui-toolbar-separator{width:2px;padding:0;height:18px;margin:.2em 0 .2em .1em;display:none;float:left;}.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-separator{height:45px;*height:50px;}.yui-toolbar-container.yui-toolbar-grouped .yui-toolbar-group span.yui-toolbar-separator{height:18px;display:block;}.yui-toolbar-container ul li{margin:0;padding:0;list-style-type:none;}.yui-toolbar-container .yui-toolbar-nogrouplabels h3{display:none;}.yui-toolbar-container .yui-push-button,.yui-toolbar-container .yui-color-button,.yui-toolbar-container .yui-menu-button{position:relative;cursor:pointer;}.yui-toolbar-container .yui-button .first-child,.yui-toolbar-container .yui-button .first-child a{height:100%;width:100%;overflow:hidden;font-size:0;}.yui-toolbar-container .yui-button-disabled{cursor:default;}.yui-toolbar-container .yui-button-disabled .yui-toolbar-icon{opacity:.5;filter:alpha(opacity=50);}.yui-toolbar-container .yui-button-disabled .up,.yui-toolbar-container .yui-button-disabled .down{opacity:.5;filter:alpha(opacity=50);}.yui-toolbar-container .yui-button a{overflow:hidden;}.yui-toolbar-container .yui-toolbar-select .first-child a{cursor:pointer;}.yui-toolbar-fontname-arial{font-family:Arial;}.yui-toolbar-fontname-arial-black{font-family:Arial Black;}.yui-toolbar-fontname-comic-sans-ms{font-family:Comic Sans MS;}.yui-toolbar-fontname-courier-new{font-family:Courier New;}.yui-toolbar-fontname-times-new-roman{font-family:Times New Roman;}.yui-toolbar-fontname-verdana{font-family:Verdana;}.yui-toolbar-fontname-impact{font-family:Impact;}.yui-toolbar-fontname-lucida-console{font-family:Lucida Console;}.yui-toolbar-fontname-tahoma{font-family:Tahoma;}.yui-toolbar-fontname-trebuchet-ms{font-family:Trebuchet MS;}.yui-toolbar-container .yui-toolbar-spinbutton{position:relative;}.yui-toolbar-container .yui-toolbar-spinbutton .first-child a{z-index:0;opacity:1;}.yui-toolbar-container .yui-toolbar-spinbutton a.up,.yui-toolbar-container .yui-toolbar-spinbutton a.down{position:absolute;display:block;right:0;cursor:pointer;z-index:1;padding:0;margin:0;}.yui-toolbar-container .yui-overlay{position:absolute;}.yui-toolbar-container .yui-overlay ul li{margin:0;list-style-type:none;}.yui-toolbar-container{z-index:1;}.yui-editor-container .yui-editor-editable-container{position:relative;z-index:0;width:100%;}.yui-editor-container .yui-editor-masked{background-color:#CCC;height:100%;width:100%;position:absolute;top:0;left:0;opacity:.5;filter:alpha(opacity=50);}.yui-editor-container iframe{border:0;padding:0;margin:0;zoom:1;display:block;}.yui-editor-container .yui-editor-editable{padding:0;margin:0;}.yui-editor-container .dompath{font-size:85%;}.yui-editor-panel .hd{text-align:left;position:relative;}.yui-editor-panel .hd h3{font-weight:bold;padding:.25em 0 .25em .25em;margin:0;}.yui-editor-panel .bd{width:100%;zoom:1;position:relative;}.yui-editor-panel .bd div.yui-editor-body-cont{padding:.25em .1em;zoom:1;}.yui-editor-panel .bd .gecko form{overflow:auto;}.yui-editor-panel .bd div.yui-editor-body-cont:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-editor-panel .ft{text-align:right;width:99%;float:left;clear:both;}.yui-editor-panel .ft span.tip{display:block;position:relative;padding:.5em .5em .5em 23px;text-align:left;zoom:1;}.yui-editor-panel label{clear:both;float:left;padding:0;width:100%;text-align:left;zoom:1;}.yui-editor-panel .gecko label{overflow:auto;}.yui-editor-panel label strong{float:left;width:6em;}.yui-editor-panel .removeLink{width:80%;text-align:right;}.yui-editor-panel label input{margin-left:.25em;float:left;}.yui-editor-panel .yui-toolbar-group{margin-bottom:.75em;}.yui-editor-panel .height-width{float:left;}.yui-editor-panel .height-width span{font-style:italic;display:block;float:left;overflow:visible;}.yui-editor-panel .height-width span.info{font-size:70%;margin-top:3px;float:none;}
 .yui-editor-panel .yui-toolbar-bordersize,.yui-editor-panel .yui-toolbar-bordertype{font-size:75%;}.yui-editor-panel .yui-toolbar-container span.yui-toolbar-separator{border:none;}.yui-editor-panel .yui-toolbar-bordersize span a span,.yui-editor-panel .yui-toolbar-bordertype span a span{display:block;height:8px;left:4px;position:absolute;top:3px;_top:-5px;width:24px;text-indent:52px;font-size:0;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-solid{border-bottom:1px solid black;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dotted{border-bottom:1px dotted black;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dashed{border-bottom:1px dashed black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-0{*top:0;text-indent:0;font-size:75%;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-1{border-bottom:1px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-2{border-bottom:2px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-3{top:2px;*top:-5px;border-bottom:3px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-4{top:1px;*top:-5px;border-bottom:4px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-5{top:1px;*top:-5px;border-bottom:5px solid black;}.yui-toolbar-container .yui-toolbar-bordersize-menu,.yui-toolbar-container .yui-toolbar-bordertype-menu{width:95px!important;}.yui-toolbar-bordersize-menu .yuimenuitemlabel,.yui-toolbar-bordertype-menu .yuimenuitemlabel,.yui-toolbar-bordersize-menu .yuimenuitemlabel,.yui-toolbar-bordertype-menu .yuimenuitemlabel:hover{margin:0 3px 7px 17px;}.yui-toolbar-bordersize-menu .yuimenuitemlabel .checkedindicator,.yui-toolbar-bordertype-menu .yuimenuitemlabel .checkedindicator{position:absolute;left:-12px;*top:14px;*left:0;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-1 a{border-bottom:1px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-2 a{border-bottom:2px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-3 a{border-bottom:3px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-4 a{border-bottom:4px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-5 a{border-bottom:5px solid black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-solid a{border-bottom:1px solid black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dashed a{border-bottom:1px dashed black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dotted a{border-bottom:1px dotted black;height:14px;}h2.yui-editor-skipheader,h3.yui-editor-skipheader{height:0;margin:0;padding:0;border:none;width:0;overflow:hidden;position:absolute;}.yui-toolbar-colors{width:133px;zoom:1;display:none;z-index:100;overflow:hidden;}.yui-toolbar-colors:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-colors a{height:9px;width:9px;float:left;display:block;overflow:hidden;text-indent:999px;margin:0;cursor:pointer;border:1px solid #F6F7EE;}.yui-toolbar-colors a:hover{border:1px solid black;}.yui-color-button-menu{overflow:visible;background-color:transparent;}.yui-toolbar-colors span{position:relative;display:block;padding:3px;overflow:hidden;float:left;width:100%;zoom:1;}.yui-toolbar-colors span:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-colors span em{height:35px;width:30px;float:left;display:block;overflow:hidden;text-indent:999px;margin:.75px;border:1px solid black;}.yui-toolbar-colors span strong{font-weight:normal;padding-left:3px;display:block;font-size:85%;float:left;width:65%;}.yui-toolbar-group-undoredo h3,.yui-toolbar-group-insertitem h3,.yui-toolbar-group-indentlist h3{width:68px;}.yui-toolbar-group-indentlist2 h3{width:122px;}.yui-toolbar-group-alignment h3{width:130px;}.yui-skin-sam .yui-editor-container{border:1px solid #808080;}.yui-skin-sam .yui-toolbar-container{zoom:1;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar{background:url(sprite.png) repeat-x 0 -200px;position:relative;}.yui-skin-sam .yui-editor-container .draggable .yui-toolbar-titlebar{cursor:move;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar h2{color:#000;font-weight:bold;margin:0;padding:.3em 1em;font-size:100%;text-align:left;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-group h3{color:#808080;font-size:75%;margin:1em 0 0;padding-bottom:0;padding-left:.25em;text-align:left;}.yui-toolbar-container span.yui-toolbar-separator{border:none;text-indent:33px;overflow:hidden;margin:0 .25em;}.yui-skin-sam .yui-toolbar-container{background-color:#F2F2F2;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-subcont{padding:0 1em .35em;border-bottom:1px solid #808080;}.yui-skin-sam .yui-toolbar-container-collapsed .yui-toolbar-titlebar{border-bottom:1px solid #808080;}.yui-skin-sam .yui-editor-container .visible .yui-menu-shadow,.yui-skin-sam .yui-editor-panel .visible .yui-menu-shadow{display:none;}.yui-skin-sam .yui-editor-container ul{list-style-type:none;margin:0;padding:0;}.yui-skin-sam .yui-editor-container ul li{list-style-type:none;margin:0;padding:0;}.yui-skin-sam .yui-toolbar-group ul li.yui-toolbar-groupitem{float:left;}.yui-skin-sam .yui-editor-container .dompath{background-color:#F2F2F2;border-top:1px solid #808080;color:#999;text-align:left;padding:.25em;}.yui-skin-sam .yui-toolbar-container .collapse{background:url(sprite.png) no-repeat 0 -400px;}.yui-skin-sam .yui-toolbar-container .collapsed{background:url(sprite.png) no-repeat 0 -350px;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar span.collapse{cursor:pointer;position:absolute;top:4px;right:2px;display:block;overflow:hidden;height:15px;width:15px;text-indent:9999px;}
diff --git a/build/assets/skins/sam/imagecropper.css b/build/assets/skins/sam/imagecropper.css
index 8b70fb9..dad5f82 100644
--- a/build/assets/skins/sam/imagecropper.css
+++ b/build/assets/skins/sam/imagecropper.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-crop{position:relative;}.yui-crop .yui-crop-mask{position:absolute;top:0;left:0;height:100%;width:100%;}.yui-crop .yui-resize{position:absolute;top:10px;left:10px;border:0;}.yui-crop .yui-crop-resize-mask{position:absolute;top:0;left:0;height:100%;width:100%;background-position:-10px -10px;overflow:hidden;}.yui-skin-sam .yui-crop .yui-crop-mask{background-color:#000;opacity:.5;filter:alpha(opacity=50);}.yui-skin-sam .yui-crop .yui-resize{border:1px dashed #fff;}
diff --git a/build/assets/skins/sam/layout.css b/build/assets/skins/sam/layout.css
index f8dbee2..190f270 100644
--- a/build/assets/skins/sam/layout.css
+++ b/build/assets/skins/sam/layout.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-layout-loading{visibility:hidden;}body.yui-layout{overflow:hidden;position:relative;padding:0;margin:0;}.yui-layout-doc{position:relative;overflow:hidden;padding:0;margin:0;}.yui-layout-unit{height:50px;width:50px;padding:0;margin:0;float:none;z-index:0;}.yui-layout-unit-top{position:absolute;top:0;left:0;width:100%;}.yui-layout-unit-left{position:absolute;top:0;left:0;}.yui-layout-unit-right{position:absolute;top:0;right:0;}.yui-layout-unit-bottom{position:absolute;bottom:0;left:0;width:100%;}.yui-layout-unit-center{position:absolute;top:0;left:0;width:100%;}.yui-layout div.yui-layout-hd{position:absolute;top:0;left:0;zoom:1;width:100%;}.yui-layout div.yui-layout-bd{position:absolute;top:0;left:0;zoom:1;width:100%;}.yui-layout .yui-layout-noscroll div.yui-layout-bd{overflow:hidden;}.yui-layout .yui-layout-scroll div.yui-layout-bd{overflow:auto;}.yui-layout div.yui-layout-ft{position:absolute;bottom:0;left:0;width:100%;zoom:1;}.yui-layout .yui-layout-unit div.yui-layout-hd h2{text-align:left;}.yui-layout .yui-layout-unit div.yui-layout-hd .collapse{cursor:pointer;height:13px;position:absolute;right:2px;top:2px;width:17px;font-size:0;}.yui-layout .yui-layout-unit div.yui-layout-hd .close{cursor:pointer;height:13px;position:absolute;right:2px;top:2px;width:17px;font-size:0;}.yui-layout .yui-layout-unit div.yui-layout-hd .collapse-close{right:25px;}.yui-layout .yui-layout-clip{position:absolute;height:20px;background-color:#c0c0c0;display:none;}.yui-layout .yui-layout-clip .collapse{cursor:pointer;height:13px;position:absolute;right:2px;top:2px;width:17px;font-size:0;}.yui-layout .yui-layout-wrap{height:100%;width:100%;position:absolute;left:0;}.yui-skin-sam .yui-layout .yui-resize-proxy{border:none;font-size:0;margin:0;padding:0;}.yui-skin-sam .yui-layout .yui-resize-resizing .yui-resize-handle{display:none;zoom:1;}.yui-skin-sam .yui-layout .yui-resize-proxy div{position:absolute;border:1px solid #808080;background-color:#EDF5FF;}.yui-skin-sam .yui-layout .yui-resize .yui-resize-handle-active{zoom:1;}.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-l{width:5px;height:100%;top:0;left:0;zoom:1;}.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-r{width:5px;top:0;right:0;height:100%;position:absolute;zoom:1;}.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-b{width:100%;bottom:0;left:0;height:5px;}.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-t{width:100%;top:0;left:0;height:5px;}.yui-skin-sam .yui-layout .yui-layout-unit-left div.yui-layout-hd .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -160px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip-left .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -140px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit-right div.yui-layout-hd .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -200px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip-right .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -120px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit-top div.yui-layout-hd .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -220px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip-top .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -240px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit-bottom div.yui-layout-hd .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -260px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip-bottom .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -180px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-hd .close{background:transparent url(layout_sprite.png) no-repeat -20px -100px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-hd{background:url(sprite.png) repeat-x 0 -1400px;border:1px solid #808080;}.yui-skin-sam .yui-layout{background-color:#EDF5FF;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-hd h2{font-weight:bold;color:#fff;padding:3px;margin:0;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd{border:1px solid #808080;border-bottom:none;border-top:none;*border-bottom-width:0;*border-top-width:0;background-color:#f2f2f2;text-align:left;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd-noft{border-bottom:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd-nohd{border-top:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip{position:absolute;height:20px;background-color:#EDF5FF;display:none;border:1px solid #808080;}.yui-skin-sam .yui-layout div.yui-layout-ft{border:1px solid #808080;border-top:none;*border-top-width:0;background-color:#f2f2f2;}.yui-skin-sam .yui-layout-unit .yui-resize-handle{background-color:transparent;zoom:1;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-r{right:0;top:0;background-image:none;zoom:1;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-l{left:0;top:0;background-image:none;zoom:1;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-b{right:0;bottom:0;background-image:none;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-t{right:0;top:0;background-image:none;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-r .yui-layout-resize-knob,.yui-skin-sam .yui-layout-unit .yui-resize-handle-l .yui-layout-resize-knob{position:absolute;height:16px;width:6px;top:45%;left:0;display:block;background:transparent url(layout_sprite.png) no-repeat 0 -5px;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-t .yui-layout-resize-knob,.yui-skin-sam .yui-layout-unit .yui-resize-handle-b .yui-layout-resize-knob{position:absolute;height:6px;width:16px;left:45%;background:transparent url(layout_sprite.png) no-repeat -20px 0;zoom:1;}
diff --git a/build/assets/skins/sam/logger.css b/build/assets/skins/sam/logger.css
index f71ebb5..e6ae845 100644
--- a/build/assets/skins/sam/logger.css
+++ b/build/assets/skins/sam/logger.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-log{padding:1em;width:31em;background-color:#AAA;color:#000;border:1px solid black;font-family:monospace;font-size:77%;text-align:left;z-index:9000;}.yui-skin-sam .yui-log-container{position:absolute;top:1em;right:1em;}.yui-skin-sam .yui-log input{margin:0;padding:0;font-family:arial;font-size:100%;font-weight:normal;}.yui-skin-sam .yui-log .yui-log-btns{position:relative;float:right;bottom:.25em;}.yui-skin-sam .yui-log .yui-log-hd{margin-top:1em;padding:.5em;background-color:#575757;}.yui-skin-sam .yui-log .yui-log-hd h4{margin:0;padding:0;font-size:108%;font-weight:bold;color:#FFF;}.yui-skin-sam .yui-log .yui-log-bd{width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto;}.yui-skin-sam .yui-log p{margin:1px;padding:.1em;}.yui-skin-sam .yui-log pre{margin:0;padding:0;}.yui-skin-sam .yui-log pre.yui-log-verbose{white-space:pre-wrap;white-space:-moz-pre-wrap!important;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;}.yui-skin-sam .yui-log .yui-log-ft{margin-top:.5em;}.yui-skin-sam .yui-log .yui-log-ft .yui-log-sourcefilters{width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em;}.yui-skin-sam .yui-log .yui-log-filtergrp{margin-right:.5em;}.yui-skin-sam .yui-log .info{background-color:#A7CC25;}.yui-skin-sam .yui-log .warn{background-color:#F58516;}.yui-skin-sam .yui-log .error{background-color:#E32F0B;}.yui-skin-sam .yui-log .time{background-color:#A6C9D7;}.yui-skin-sam .yui-log .window{background-color:#F2E886;}
diff --git a/build/assets/skins/sam/menu.css b/build/assets/skins/sam/menu.css
index 06fe68f..e4b18ca 100644
--- a/build/assets/skins/sam/menu.css
+++ b/build/assets/skins/sam/menu.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yuimenu{top:-999em;left:-999em;}.yuimenubar{position:static;}.yuimenu .yuimenu,.yuimenubar .yuimenu{position:absolute;}.yuimenubar li,.yuimenu li{list-style-type:none;}.yuimenubar ul,.yuimenu ul,.yuimenubar li,.yuimenu li,.yuimenu h6,.yuimenubar h6{margin:0;padding:0;}.yuimenuitemlabel,.yuimenubaritemlabel{text-align:left;white-space:nowrap;}.yuimenubar ul{*zoom:1;}.yuimenubar .yuimenu ul{*zoom:normal;}.yuimenubar>.bd>ul:after{content:".";display:block;clear:both;visibility:hidden;height:0;line-height:0;}.yuimenubaritem{float:left;}.yuimenubaritemlabel,.yuimenuitemlabel{display:block;}.yuimenuitemlabel .helptext{font-style:normal;display:block;margin:-1em 0 0 10em;}.yui-menu-shadow{position:absolute;visibility:hidden;z-index:-1;}.yui-menu-shadow-visible{top:2px;right:-3px;left:-3px;bottom:-3px;visibility:visible;}.hide-scrollbars *{overflow:hidden;}.hide-scrollbars select{display:none;}.yuimenu.show-scrollbars,.yuimenubar.show-scrollbars{overflow:visible;}.yuimenu.hide-scrollbars .yui-menu-shadow,.yuimenubar.hide-scrollbars .yui-menu-shadow{overflow:hidden;}.yuimenu.show-scrollbars .yui-menu-shadow,.yuimenubar.show-scrollbars .yui-menu-shadow{overflow:auto;}.yui-overlay.yui-force-redraw{margin-bottom:1px;}.yui-skin-sam .yuimenubar{font-size:93%;line-height:2;*line-height:1.9;border:solid 1px #808080;background:url(sprite.png) repeat-x 0 0;}.yui-skin-sam .yuimenubarnav .yuimenubaritem{border-right:solid 1px #ccc;}.yui-skin-sam .yuimenubaritemlabel{padding:0 10px;color:#000;text-decoration:none;cursor:default;border-style:solid;border-color:#808080;border-width:1px 0;*position:relative;margin:-1px 0;}.yui-skin-sam .yuimenubaritemlabel:visited{color:#000;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel{padding-right:20px;*display:inline-block;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu{background:url(menubaritem_submenuindicator.png) right center no-repeat;}.yui-skin-sam .yuimenubaritem-selected{background:url(sprite.png) repeat-x 0 -1700px;}.yui-skin-sam .yuimenubaritemlabel-selected{border-color:#7D98B8;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-selected{border-left-width:1px;margin-left:-1px;*left:-1px;}.yui-skin-sam .yuimenubaritemlabel-disabled,.yui-skin-sam .yuimenubaritemlabel-disabled:visited{cursor:default;color:#A6A6A6;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu-disabled{background-image:url(menubaritem_submenuindicator_disabled.png);}.yui-skin-sam .yuimenu{font-size:93%;line-height:1.5;*line-height:1.45;}.yui-skin-sam .yuimenubar .yuimenu,.yui-skin-sam .yuimenu .yuimenu{font-size:100%;}.yui-skin-sam .yuimenu .bd{*zoom:1;_zoom:normal;border:solid 1px #808080;background-color:#fff;}.yui-skin-sam .yuimenu .yuimenu .bd{*zoom:normal;}.yui-skin-sam .yuimenu ul{padding:3px 0;border-width:1px 0 0 0;border-color:#ccc;border-style:solid;}.yui-skin-sam .yuimenu ul.first-of-type{border-width:0;}.yui-skin-sam .yuimenu h6{font-weight:bold;border-style:solid;border-color:#ccc;border-width:1px 0 0 0;color:#a4a4a4;padding:3px 10px 0 10px;}.yui-skin-sam .yuimenu ul.hastitle,.yui-skin-sam .yuimenu h6.first-of-type{border-width:0;}.yui-skin-sam .yuimenu .yui-menu-body-scrolled{border-color:#ccc #808080;overflow:hidden;}.yui-skin-sam .yuimenu .topscrollbar,.yui-skin-sam .yuimenu .bottomscrollbar{height:16px;border:solid 1px #808080;background:#fff url(sprite.png) no-repeat 0 0;}.yui-skin-sam .yuimenu .topscrollbar{border-bottom-width:0;background-position:center -950px;}.yui-skin-sam .yuimenu .topscrollbar_disabled{background-position:center -975px;}.yui-skin-sam .yuimenu .bottomscrollbar{border-top-width:0;background-position:center -850px;}.yui-skin-sam .yuimenu .bottomscrollbar_disabled{background-position:center -875px;}.yui-skin-sam .yuimenuitem{_border-bottom:solid 1px #fff;}.yui-skin-sam .yuimenuitemlabel{padding:0 20px;color:#000;text-decoration:none;cursor:default;}.yui-skin-sam .yuimenuitemlabel:visited{color:#000;}.yui-skin-sam .yuimenuitemlabel .helptext{margin-top:-1.5em;*margin-top:-1.45em;}.yui-skin-sam .yuimenuitem-hassubmenu{background-image:url(menuitem_submenuindicator.png);background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yuimenuitem-checked{background-image:url(menuitem_checkbox.png);background-position:left center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-shadow-visible{background-color:#000;opacity:.12;filter:alpha(opacity=12);}.yui-skin-sam .yuimenuitem-selected{background-color:#B3D4FF;}.yui-skin-sam .yuimenuitemlabel-disabled,.yui-skin-sam .yuimenuitemlabel-disabled:visited{cursor:default;color:#A6A6A6;}.yui-skin-sam .yuimenuitem-hassubmenu-disabled{background-image:url(menuitem_submenuindicator_disabled.png);}.yui-skin-sam .yuimenuitem-checked-disabled{background-image:url(menuitem_checkbox_disabled.png);}
diff --git a/build/assets/skins/sam/paginator.css b/build/assets/skins/sam/paginator.css
index 53c9542..ca1d99e 100644
--- a/build/assets/skins/sam/paginator.css
+++ b/build/assets/skins/sam/paginator.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-pg-container{display:block;margin:6px 0;white-space:nowrap;}.yui-skin-sam .yui-pg-first,.yui-skin-sam .yui-pg-previous,.yui-skin-sam .yui-pg-next,.yui-skin-sam .yui-pg-last,.yui-skin-sam .yui-pg-current,.yui-skin-sam .yui-pg-pages,.yui-skin-sam .yui-pg-page{display:inline-block;font-family:arial,helvetica,clean,sans-serif;padding:3px 6px;zoom:1;}.yui-skin-sam .yui-pg-pages{padding:0;}.yui-skin-sam .yui-pg-current{padding:3px 0;}.yui-skin-sam a.yui-pg-first:link,.yui-skin-sam a.yui-pg-first:visited,.yui-skin-sam a.yui-pg-first:active,.yui-skin-sam a.yui-pg-first:hover,.yui-skin-sam a.yui-pg-previous:link,.yui-skin-sam a.yui-pg-previous:visited,.yui-skin-sam a.yui-pg-previous:active,.yui-skin-sam a.yui-pg-previous:hover,.yui-skin-sam a.yui-pg-next:link,.yui-skin-sam a.yui-pg-next:visited,.yui-skin-sam a.yui-pg-next:active,.yui-skin-sam a.yui-pg-next:hover,.yui-skin-sam a.yui-pg-last:link,.yui-skin-sam a.yui-pg-last:visited,.yui-skin-sam a.yui-pg-last:active,.yui-skin-sam a.yui-pg-last:hover,.yui-skin-sam a.yui-pg-page:link,.yui-skin-sam a.yui-pg-page:visited,.yui-skin-sam a.yui-pg-page:active,.yui-skin-sam a.yui-pg-page:hover{color:#06c;text-decoration:underline;outline:0;}.yui-skin-sam span.yui-pg-first,.yui-skin-sam span.yui-pg-previous,.yui-skin-sam span.yui-pg-next,.yui-skin-sam span.yui-pg-last{color:#a6a6a6;}.yui-skin-sam .yui-pg-page{background-color:#fff;border:1px solid #CBCBCB;padding:2px 6px;text-decoration:none;}.yui-skin-sam .yui-pg-current-page{background-color:transparent;border:none;font-weight:bold;padding:3px 6px;}.yui-skin-sam .yui-pg-page{margin-left:1px;margin-right:1px;}.yui-skin-sam .yui-pg-first,.yui-skin-sam .yui-pg-previous{padding-left:0;}.yui-skin-sam .yui-pg-next,.yui-skin-sam .yui-pg-last{padding-right:0;}.yui-skin-sam .yui-pg-current,.yui-skin-sam .yui-pg-rpp-options{margin-left:1em;margin-right:1em;}
diff --git a/build/assets/skins/sam/profilerviewer.css b/build/assets/skins/sam/profilerviewer.css
index 2c9ea77..36eb86c 100644
--- a/build/assets/skins/sam/profilerviewer.css
+++ b/build/assets/skins/sam/profilerviewer.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-pv{background-color:#4a4a4a;font:arial;position:relative;width:99%;z-index:1000;margin-bottom:1em;overflow:hidden;}.yui-skin-sam .yui-pv .hd{background:url(header_background.png) repeat-x;min-height:30px;overflow:hidden;zoom:1;padding:2px 0;}.yui-skin-sam .yui-pv .hd h4{padding:8px 10px;margin:0;font:bold 14px arial;color:#fff;}.yui-skin-sam .yui-pv .hd a{background:#3f6bc3;font:bold 11px arial;color:#fff;padding:4px;margin:3px 10px 0 0;border:1px solid #3f567d;cursor:pointer;display:block;float:right;}.yui-skin-sam .yui-pv .hd span{display:none;}.yui-skin-sam .yui-pv .hd span.yui-pv-busy{height:18px;width:18px;background:url(wait.gif) no-repeat;overflow:hidden;display:block;float:right;margin:4px 10px 0 0;}.yui-skin-sam .yui-pv .hd:after,.yui-pv .bd:after,.yui-skin-sam .yui-pv-chartlegend dl:after{content:'.';visibility:hidden;clear:left;height:0;display:block;}.yui-skin-sam .yui-pv .bd{position:relative;zoom:1;overflow-x:auto;overflow-y:hidden;}.yui-skin-sam .yui-pv .yui-pv-table{padding:0 10px;margin:5px 0 10px 0;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-bd td{color:#eeee5c;font:12px arial;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd{background:#929292;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even{background:#58637a;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-desc{background:#384970;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-desc{background:#6F6E6E;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th{background-image:none;background:#2E2D2D;}.yui-skin-sam .yui-pv th.yui-dt-asc .yui-dt-liner{background:transparent url(asc.gif) no-repeat scroll right center;}.yui-skin-sam .yui-pv th.yui-dt-desc .yui-dt-liner{background:transparent url(desc.gif) no-repeat scroll right center;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th a{color:#fff;font:bold 12px arial;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-desc{background:#333;}.yui-skin-sam .yui-pv-chartcontainer{padding:0 10px;}.yui-skin-sam .yui-pv-chart{height:250px;clear:right;margin:5px 0 0 0;color:#fff;}.yui-skin-sam .yui-pv-chartlegend div{float:right;margin:0 0 0 10px;_width:250px;}.yui-skin-sam .yui-pv-chartlegend dl{border:1px solid #999;padding:.2em 0 .2em .5em;zoom:1;margin:5px 0;}.yui-skin-sam .yui-pv-chartlegend dt{float:left;display:block;height:.7em;width:.7em;padding:0;}.yui-skin-sam .yui-pv-chartlegend dd{float:left;display:block;color:#fff;margin:0 1em 0 .5em;padding:0;font:11px arial;}.yui-skin-sam .yui-pv-minimized{height:35px;}.yui-skin-sam .yui-pv-minimized .bd{top:-3000px;}.yui-skin-sam .yui-pv-minimized .hd a.yui-pv-refresh{display:none;}
diff --git a/build/assets/skins/sam/progressbar.css b/build/assets/skins/sam/progressbar.css
index 5d2fe4d..427d6cb 100644
--- a/build/assets/skins/sam/progressbar.css
+++ b/build/assets/skins/sam/progressbar.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-pb-bar,.yui-pb-mask{width:100%;height:100%;}.yui-pb{position:relative;top:0;left:0;width:200px;height:20px;padding:0;border:none;margin:0;text-align:left;}.yui-pb-mask{position:absolute;top:0;left:0;z-index:2;}.yui-pb-mask div{width:50%;height:50%;background-repeat:no-repeat;padding:0;position:absolute;}.yui-pb-tl{background-position:top left;}.yui-pb-tr{background-position:top right;left:50%;}.yui-pb-bl{background-position:bottom left;top:50%;}.yui-pb-br{background-position:bottom right;left:50%;top:50%;}.yui-pb-bar{margin:0;position:absolute;left:0;top:0;z-index:1;}.yui-pb-ltr .yui-pb-bar{_position:static;}.yui-pb-rtl .yui-pb-bar{background-position:right;}.yui-pb-btt .yui-pb-bar{background-position:left bottom;}.yui-pb-bar{background-color:blue;}.yui-pb{border:thin solid #808080;}.yui-skin-sam .yui-pb{background-color:transparent;border:solid #808080;border-width:1px 0;}.yui-skin-sam .yui-pb-rtl,.yui-skin-sam .yui-pb-ltr{background-image:url(back-h.png);background-repeat:repeat-x;}.yui-skin-sam .yui-pb-ttb,.yui-skin-sam .yui-pb-btt{background-image:url(back-v.png);background-repeat:repeat-y;}.yui-skin-sam .yui-pb-bar{background-color:transparent;}.yui-skin-sam .yui-pb-ltr .yui-pb-bar,.yui-skin-sam .yui-pb-rtl .yui-pb-bar{background-image:url(bar-h.png);background-repeat:repeat-x;}.yui-skin-sam .yui-pb-ttb .yui-pb-bar,.yui-skin-sam .yui-pb-btt .yui-pb-bar{background-image:url(bar-v.png);background-repeat:repeat-y;}.yui-skin-sam .yui-pb-mask{border:solid #808080;border-width:0 1px;margin:0 -1px;}.yui-skin-sam .yui-pb-caption{color:#000;text-align:center;margin:0 auto;}.yui-skin-sam .yui-pb-range{color:#a6a6a6;}
diff --git a/build/assets/skins/sam/resize.css b/build/assets/skins/sam/resize.css
index b40410f..c6f8bbc 100644
--- a/build/assets/skins/sam/resize.css
+++ b/build/assets/skins/sam/resize.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-resize{position:relative;zoom:1;z-index:0;}.yui-resize-wrap{zoom:1;}.yui-draggable{cursor:move;}.yui-resize .yui-resize-handle{position:absolute;z-index:1;font-size:0;margin:0;padding:0;zoom:1;height:1px;width:1px;}.yui-resize .yui-resize-handle-br{height:5px;width:5px;bottom:0;right:0;cursor:se-resize;z-index:2;zoom:1;}.yui-resize .yui-resize-handle-bl{height:5px;width:5px;bottom:0;left:0;cursor:sw-resize;z-index:2;zoom:1;}.yui-resize .yui-resize-handle-tl{height:5px;width:5px;top:0;left:0;cursor:nw-resize;z-index:2;zoom:1;}.yui-resize .yui-resize-handle-tr{height:5px;width:5px;top:0;right:0;cursor:ne-resize;z-index:2;zoom:1;}.yui-resize .yui-resize-handle-r{width:5px;height:100%;top:0;right:0;cursor:e-resize;zoom:1;}.yui-resize .yui-resize-handle-l{height:100%;width:5px;top:0;left:0;cursor:w-resize;zoom:1;}.yui-resize .yui-resize-handle-b{width:100%;height:5px;bottom:0;right:0;cursor:s-resize;zoom:1;}.yui-resize .yui-resize-handle-t{width:100%;height:5px;top:0;right:0;cursor:n-resize;zoom:1;}.yui-resize-proxy{position:absolute;border:1px dashed #000;visibility:hidden;z-index:1000;}.yui-resize-hover .yui-resize-handle,.yui-resize-hidden .yui-resize-handle{opacity:0;filter:alpha(opacity=0);}.yui-resize-ghost{opacity:.5;filter:alpha(opacity=50);}.yui-resize-knob .yui-resize-handle{height:6px;width:6px;}.yui-resize-knob .yui-resize-handle-tr{right:-3px;top:-3px;}.yui-resize-knob .yui-resize-handle-tl{left:-3px;top:-3px;}.yui-resize-knob .yui-resize-handle-bl{left:-3px;bottom:-3px;}.yui-resize-knob .yui-resize-handle-br{right:-3px;bottom:-3px;}.yui-resize-knob .yui-resize-handle-t{left:45%;top:-3px;}.yui-resize-knob .yui-resize-handle-r{right:-3px;top:45%;}.yui-resize-knob .yui-resize-handle-l{left:-3px;top:45%;}.yui-resize-knob .yui-resize-handle-b{left:45%;bottom:-3px;}.yui-resize-status{position:absolute;top:-999px;left:-999px;padding:2px;font-size:80%;display:none;zoom:1;z-index:9999;}.yui-resize-status strong,.yui-resize-status em{font-weight:normal;font-style:normal;padding:1px;zoom:1;}.yui-skin-sam .yui-resize .yui-resize-handle{background-color:#F2F2F2;zoom:1;}.yui-skin-sam .yui-resize .yui-resize-handle-active{background-color:#7D98B8;zoom:1;}.yui-skin-sam .yui-resize .yui-resize-handle-l,.yui-skin-sam .yui-resize .yui-resize-handle-r,.yui-skin-sam .yui-resize .yui-resize-handle-l-active,.yui-skin-sam .yui-resize .yui-resize-handle-r-active{height:100%;zoom:1;}.yui-skin-sam .yui-resize-knob .yui-resize-handle{border:1px solid #808080;}.yui-skin-sam .yui-resize-hover .yui-resize-handle-active{opacity:1;filter:alpha(opacity=100);}.yui-skin-sam .yui-resize-proxy{border:1px dashed #426FD9;}.yui-skin-sam .yui-resize-status{border:1px solid #A6982B;border-top:1px solid #D4C237;background-color:#FFEE69;color:#000;}.yui-skin-sam .yui-resize-status strong,.yui-skin-sam .yui-resize-status em{float:left;display:block;clear:both;padding:1px;text-align:center;}.yui-skin-sam .yui-resize .yui-resize-handle-inner-r,.yui-skin-sam .yui-resize .yui-resize-handle-inner-l{background:transparent url(layout_sprite.png) no-repeat 0 -5px;height:16px;width:5px;position:absolute;top:45%;}.yui-skin-sam .yui-resize .yui-resize-handle-inner-t,.yui-skin-sam .yui-resize .yui-resize-handle-inner-b{background:transparent url(layout_sprite.png) no-repeat -20px 0;height:5px;width:16px;position:absolute;left:50%;}.yui-skin-sam .yui-resize .yui-resize-handle-br{background-image:url(layout_sprite.png);background-repeat:no-repeat;background-position:-22px -62px;}.yui-skin-sam .yui-resize .yui-resize-handle-tr{background-image:url(layout_sprite.png);background-repeat:no-repeat;background-position:-22px -42px;}.yui-skin-sam .yui-resize .yui-resize-handle-tl{background-image:url(layout_sprite.png);background-repeat:no-repeat;background-position:-22px -82px;}.yui-skin-sam .yui-resize .yui-resize-handle-bl{background-image:url(layout_sprite.png);background-repeat:no-repeat;background-position:-22px -23px;}.yui-skin-sam .yui-resize-knob .yui-resize-handle-t,.yui-skin-sam .yui-resize-knob .yui-resize-handle-r,.yui-skin-sam .yui-resize-knob .yui-resize-handle-b,.yui-skin-sam .yui-resize-knob .yui-resize-handle-l,.yui-skin-sam .yui-resize-knob .yui-resize-handle-tl,.yui-skin-sam .yui-resize-knob .yui-resize-handle-tr,.yui-skin-sam .yui-resize-knob .yui-resize-handle-bl,.yui-skin-sam .yui-resize-knob .yui-resize-handle-br,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-t,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-r,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-b,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-l,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-tl,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-tr,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-bl,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-br{background-image:none;}.yui-skin-sam .yui-resize-knob .yui-resize-handle-l,.yui-skin-sam .yui-resize-knob .yui-resize-handle-r,.yui-skin-sam .yui-resize-knob .yui-resize-handle-l-active,.yui-skin-sam .yui-resize-knob .yui-resize-handle-r-active{height:6px;width:6px;}.yui-skin-sam .yui-resize-textarea .yui-resize-handle-r{right:-8px;}.yui-skin-sam .yui-resize-textarea .yui-resize-handle-b{bottom:-8px;}.yui-skin-sam .yui-resize-textarea .yui-resize-handle-br{right:-8px;bottom:-8px;}
diff --git a/build/assets/skins/sam/simpleeditor.css b/build/assets/skins/sam/simpleeditor.css
index 610b3ef..1515ce3 100644
--- a/build/assets/skins/sam/simpleeditor.css
+++ b/build/assets/skins/sam/simpleeditor.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-busy{cursor:wait!important;}.yui-toolbar-container fieldset,.yui-editor-container fieldset{padding:0;margin:0;border:0;}.yui-toolbar-container legend{display:none;}.yui-skin-sam .yui-toolbar-container .yui-button button,.yui-skin-sam .yui-toolbar-container .yui-button a,.yui-skin-sam .yui-toolbar-container .yui-button a:visited{font-size:0;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-select button,.yui-skin-sam .yui-toolbar-container .yui-toolbar-select a,.yui-skin-sam .yui-toolbar-container .yui-toolbar-select a:visited,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton button,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a:visited{font-size:12px;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down{font-size:0;line-height:0;padding:0;}.yui-toolbar-container .yui-toolbar-subcont{padding:.25em 0;zoom:1;}.yui-toolbar-container-collapsed .yui-toolbar-subcont{display:none;}.yui-toolbar-container .yui-toolbar-subcont:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-container span.yui-toolbar-draghandle{cursor:move;border-left:1px solid #999;border-right:1px solid #999;overflow:hidden;text-indent:77777px;width:2px;height:20px;display:block;clear:none;float:left;margin:0 0 0 .2em;}.yui-toolbar-container .yui-toolbar-titlebar.draggable{cursor:move;}.yui-toolbar-container .yui-toolbar-titlebar{position:relative;}.yui-toolbar-container .yui-toolbar-titlebar h2{font-weight:bold;letter-spacing:0;border:none;color:#000;margin:0;padding:.2em;}.yui-toolbar-container .yui-toolbar-titlebar h2 a{text-decoration:none;color:#000;cursor:default;}.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-draghandle{height:40px;}.yui-toolbar-container .yui-toolbar-group{float:left;margin-right:.5em;zoom:1;}.yui-toolbar-container .yui-toolbar-group:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-container .yui-toolbar-group h3{font-size:75%;padding:0 0 0 .25em;margin:0;}.yui-toolbar-container span.yui-toolbar-separator{width:2px;padding:0;height:18px;margin:.2em 0 .2em .1em;display:none;float:left;}.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-separator{height:45px;*height:50px;}.yui-toolbar-container.yui-toolbar-grouped .yui-toolbar-group span.yui-toolbar-separator{height:18px;display:block;}.yui-toolbar-container ul li{margin:0;padding:0;list-style-type:none;}.yui-toolbar-container .yui-toolbar-nogrouplabels h3{display:none;}.yui-toolbar-container .yui-push-button,.yui-toolbar-container .yui-color-button,.yui-toolbar-container .yui-menu-button{position:relative;cursor:pointer;}.yui-toolbar-container .yui-button .first-child,.yui-toolbar-container .yui-button .first-child a{height:100%;width:100%;overflow:hidden;font-size:0;}.yui-toolbar-container .yui-button-disabled{cursor:default;}.yui-toolbar-container .yui-button-disabled .yui-toolbar-icon{opacity:.5;filter:alpha(opacity=50);}.yui-toolbar-container .yui-button-disabled .up,.yui-toolbar-container .yui-button-disabled .down{opacity:.5;filter:alpha(opacity=50);}.yui-toolbar-container .yui-button a{overflow:hidden;}.yui-toolbar-container .yui-toolbar-select .first-child a{cursor:pointer;}.yui-toolbar-fontname-arial{font-family:Arial;}.yui-toolbar-fontname-arial-black{font-family:Arial Black;}.yui-toolbar-fontname-comic-sans-ms{font-family:Comic Sans MS;}.yui-toolbar-fontname-courier-new{font-family:Courier New;}.yui-toolbar-fontname-times-new-roman{font-family:Times New Roman;}.yui-toolbar-fontname-verdana{font-family:Verdana;}.yui-toolbar-fontname-impact{font-family:Impact;}.yui-toolbar-fontname-lucida-console{font-family:Lucida Console;}.yui-toolbar-fontname-tahoma{font-family:Tahoma;}.yui-toolbar-fontname-trebuchet-ms{font-family:Trebuchet MS;}.yui-toolbar-container .yui-toolbar-spinbutton{position:relative;}.yui-toolbar-container .yui-toolbar-spinbutton .first-child a{z-index:0;opacity:1;}.yui-toolbar-container .yui-toolbar-spinbutton a.up,.yui-toolbar-container .yui-toolbar-spinbutton a.down{position:absolute;display:block;right:0;cursor:pointer;z-index:1;padding:0;margin:0;}.yui-toolbar-container .yui-overlay{position:absolute;}.yui-toolbar-container .yui-overlay ul li{margin:0;list-style-type:none;}.yui-toolbar-container{z-index:1;}.yui-editor-container .yui-editor-editable-container{position:relative;z-index:0;width:100%;}.yui-editor-container .yui-editor-masked{background-color:#CCC;height:100%;width:100%;position:absolute;top:0;left:0;opacity:.5;filter:alpha(opacity=50);}.yui-editor-container iframe{border:0;padding:0;margin:0;zoom:1;display:block;}.yui-editor-container .yui-editor-editable{padding:0;margin:0;}.yui-editor-container .dompath{font-size:85%;}.yui-editor-panel .hd{text-align:left;position:relative;}.yui-editor-panel .hd h3{font-weight:bold;padding:.25em 0 .25em .25em;margin:0;}.yui-editor-panel .bd{width:100%;zoom:1;position:relative;}.yui-editor-panel .bd div.yui-editor-body-cont{padding:.25em .1em;zoom:1;}.yui-editor-panel .bd .gecko form{overflow:auto;}.yui-editor-panel .bd div.yui-editor-body-cont:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-editor-panel .ft{text-align:right;width:99%;float:left;clear:both;}.yui-editor-panel .ft span.tip{display:block;position:relative;padding:.5em .5em .5em 23px;text-align:left;zoom:1;}.yui-editor-panel label{clear:both;float:left;padding:0;width:100%;text-align:left;zoom:1;}.yui-editor-panel .gecko label{overflow:auto;}.yui-editor-panel label strong{float:left;width:6em;}.yui-editor-panel .removeLink{width:80%;text-align:right;}.yui-editor-panel label input{margin-left:.25em;float:left;}.yui-editor-panel .yui-toolbar-group{margin-bottom:.75em;}.yui-editor-panel .height-width{float:left;}.yui-editor-panel .height-width span{font-style:italic;display:block;float:left;overflow:visible;}.yui-editor-panel .height-width span.info{font-size:70%;margin-top:3px;float:none;}
 .yui-editor-panel .yui-toolbar-bordersize,.yui-editor-panel .yui-toolbar-bordertype{font-size:75%;}.yui-editor-panel .yui-toolbar-container span.yui-toolbar-separator{border:none;}.yui-editor-panel .yui-toolbar-bordersize span a span,.yui-editor-panel .yui-toolbar-bordertype span a span{display:block;height:8px;left:4px;position:absolute;top:3px;_top:-5px;width:24px;text-indent:52px;font-size:0;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-solid{border-bottom:1px solid black;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dotted{border-bottom:1px dotted black;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dashed{border-bottom:1px dashed black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-0{*top:0;text-indent:0;font-size:75%;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-1{border-bottom:1px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-2{border-bottom:2px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-3{top:2px;*top:-5px;border-bottom:3px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-4{top:1px;*top:-5px;border-bottom:4px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-5{top:1px;*top:-5px;border-bottom:5px solid black;}.yui-toolbar-container .yui-toolbar-bordersize-menu,.yui-toolbar-container .yui-toolbar-bordertype-menu{width:95px!important;}.yui-toolbar-bordersize-menu .yuimenuitemlabel,.yui-toolbar-bordertype-menu .yuimenuitemlabel,.yui-toolbar-bordersize-menu .yuimenuitemlabel,.yui-toolbar-bordertype-menu .yuimenuitemlabel:hover{margin:0 3px 7px 17px;}.yui-toolbar-bordersize-menu .yuimenuitemlabel .checkedindicator,.yui-toolbar-bordertype-menu .yuimenuitemlabel .checkedindicator{position:absolute;left:-12px;*top:14px;*left:0;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-1 a{border-bottom:1px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-2 a{border-bottom:2px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-3 a{border-bottom:3px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-4 a{border-bottom:4px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-5 a{border-bottom:5px solid black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-solid a{border-bottom:1px solid black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dashed a{border-bottom:1px dashed black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dotted a{border-bottom:1px dotted black;height:14px;}h2.yui-editor-skipheader,h3.yui-editor-skipheader{height:0;margin:0;padding:0;border:none;width:0;overflow:hidden;position:absolute;}.yui-toolbar-colors{width:133px;zoom:1;display:none;z-index:100;overflow:hidden;}.yui-toolbar-colors:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-colors a{height:9px;width:9px;float:left;display:block;overflow:hidden;text-indent:999px;margin:0;cursor:pointer;border:1px solid #F6F7EE;}.yui-toolbar-colors a:hover{border:1px solid black;}.yui-color-button-menu{overflow:visible;background-color:transparent;}.yui-toolbar-colors span{position:relative;display:block;padding:3px;overflow:hidden;float:left;width:100%;zoom:1;}.yui-toolbar-colors span:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-colors span em{height:35px;width:30px;float:left;display:block;overflow:hidden;text-indent:999px;margin:.75px;border:1px solid black;}.yui-toolbar-colors span strong{font-weight:normal;padding-left:3px;display:block;font-size:85%;float:left;width:65%;}.yui-toolbar-group-undoredo h3,.yui-toolbar-group-insertitem h3,.yui-toolbar-group-indentlist h3{width:68px;}.yui-toolbar-group-indentlist2 h3{width:122px;}.yui-toolbar-group-alignment h3{width:130px;}.yui-skin-sam .yui-editor-container{border:1px solid #808080;}.yui-skin-sam .yui-toolbar-container{zoom:1;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar{background:url(sprite.png) repeat-x 0 -200px;position:relative;}.yui-skin-sam .yui-editor-container .draggable .yui-toolbar-titlebar{cursor:move;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar h2{color:#000;font-weight:bold;margin:0;padding:.3em 1em;font-size:100%;text-align:left;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-group h3{color:#808080;font-size:75%;margin:1em 0 0;padding-bottom:0;padding-left:.25em;text-align:left;}.yui-toolbar-container span.yui-toolbar-separator{border:none;text-indent:33px;overflow:hidden;margin:0 .25em;}.yui-skin-sam .yui-toolbar-container{background-color:#F2F2F2;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-subcont{padding:0 1em .35em;border-bottom:1px solid #808080;}.yui-skin-sam .yui-toolbar-container-collapsed .yui-toolbar-titlebar{border-bottom:1px solid #808080;}.yui-skin-sam .yui-editor-container .visible .yui-menu-shadow,.yui-skin-sam .yui-editor-panel .visible .yui-menu-shadow{display:none;}.yui-skin-sam .yui-editor-container ul{list-style-type:none;margin:0;padding:0;}.yui-skin-sam .yui-editor-container ul li{list-style-type:none;margin:0;padding:0;}.yui-skin-sam .yui-toolbar-group ul li.yui-toolbar-groupitem{float:left;}.yui-skin-sam .yui-editor-container .dompath{background-color:#F2F2F2;border-top:1px solid #808080;color:#999;text-align:left;padding:.25em;}.yui-skin-sam .yui-toolbar-container .collapse{background:url(sprite.png) no-repeat 0 -400px;}.yui-skin-sam .yui-toolbar-container .collapsed{background:url(sprite.png) no-repeat 0 -350px;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar span.collapse{cursor:pointer;position:absolute;top:4px;right:2px;display:block;overflow:hidden;height:15px;width:15px;text-indent:9999px;}
diff --git a/build/assets/skins/sam/skin.css b/build/assets/skins/sam/skin.css
index fd9b524..351e70a 100644
--- a/build/assets/skins/sam/skin.css
+++ b/build/assets/skins/sam/skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-ac{position:relative;font-family:arial;font-size:100%;}.yui-skin-sam .yui-ac-input{position:absolute;width:100%;}.yui-skin-sam .yui-ac-container{position:absolute;top:1.6em;width:100%;}.yui-skin-sam .yui-ac-content{position:absolute;width:100%;border:1px solid #808080;background:#fff;overflow:hidden;z-index:9050;}.yui-skin-sam .yui-ac-shadow{position:absolute;margin:.3em;width:100%;background:#000;-moz-opacity:.10;opacity:.10;filter:alpha(opacity=10);z-index:9049;}.yui-skin-sam .yui-ac iframe{opacity:0;filter:alpha(opacity=0);padding-right:.3em;padding-bottom:.3em;}.yui-skin-sam .yui-ac-content ul{margin:0;padding:0;width:100%;}.yui-skin-sam .yui-ac-content li{margin:0;padding:2px 5px;cursor:default;white-space:nowrap;list-style:none;zoom:1;}.yui-skin-sam .yui-ac-content li.yui-ac-prehighlight{background:#B3D4FF;}.yui-skin-sam .yui-ac-content li.yui-ac-highlight{background:#426FD9;color:#FFF;}
 .yui-button{display:-moz-inline-box;display:inline-block;vertical-align:text-bottom;}.yui-button .first-child{display:block;*display:inline-block;}.yui-button button,.yui-button a{display:block;*display:inline-block;border:none;margin:0;}.yui-button button{background-color:transparent;*overflow:visible;cursor:pointer;}.yui-button a{text-decoration:none;}.yui-skin-sam .yui-button{border-width:1px 0;border-style:solid;border-color:#808080;background:url(sprite.png) repeat-x 0 0;margin:auto .25em;}.yui-skin-sam .yui-button .first-child{border-width:0 1px;border-style:solid;border-color:#808080;margin:0 -1px;_margin:0;}.yui-skin-sam .yui-button button,.yui-skin-sam .yui-button a,.yui-skin-sam .yui-button a:visited{padding:0 10px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-button a{*line-height:1.875;*padding-bottom:1px;}.yui-skin-sam .yui-split-button button,.yui-skin-sam .yui-menu-button button{padding-right:20px;background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-button button{background-image:url(menu-button-arrow.png);}.yui-skin-sam .yui-split-button button{background-image:url(split-button-arrow.png);}.yui-skin-sam .yui-button-focus{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-focus .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-focus button{background-image:url(split-button-arrow-focus.png);}.yui-skin-sam .yui-button-hover{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-hover .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-hover button{background-image:url(split-button-arrow-hover.png);}.yui-skin-sam .yui-button-active{border-color:#7D98B8;background-position:0 -1700px;}.yui-skin-sam .yui-button-active .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-activeoption{border-color:#808080;background-position:0 0;}.yui-skin-sam .yui-split-button-activeoption .first-child{border-color:#808080;}.yui-skin-sam .yui-split-button-activeoption button{background-image:url(split-button-arrow-active.png);}.yui-skin-sam .yui-radio-button-checked,.yui-skin-sam .yui-checkbox-button-checked{border-color:#304369;background-position:0 -1400px;}.yui-skin-sam .yui-radio-button-checked .first-child,.yui-skin-sam .yui-checkbox-button-checked .first-child{border-color:#304369;}.yui-skin-sam .yui-radio-button-checked button,.yui-skin-sam .yui-checkbox-button-checked button{color:#fff;}.yui-skin-sam .yui-button-disabled{border-color:#ccc;background-position:0 -1500px;}.yui-skin-sam .yui-button-disabled .first-child{border-color:#ccc;}.yui-skin-sam .yui-button-disabled button,.yui-skin-sam .yui-button-disabled a,.yui-skin-sam .yui-button-disabled a:visited{color:#A6A6A6;cursor:default;}.yui-skin-sam .yui-menu-button-disabled button{background-image:url(menu-button-arrow-disabled.png);}.yui-skin-sam .yui-split-button-disabled button{background-image:url(split-button-arrow-disabled.png);}
diff --git a/build/assets/skins/sam/slider.css b/build/assets/skins/sam/slider.css
index ba41bf4..895f1c6 100644
--- a/build/assets/skins/sam/slider.css
+++ b/build/assets/skins/sam/slider.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-h-slider,.yui-v-slider,.yui-region-slider{position:relative;}.yui-h-slider .yui-slider-thumb,.yui-v-slider .yui-slider-thumb,.yui-region-slider .yui-slider-thumb{position:absolute;cursor:default;}.yui-skin-sam .yui-h-slider{background:url(bg-h.gif) no-repeat 5px 0;height:28px;width:228px;}.yui-skin-sam .yui-h-slider .yui-slider-thumb{top:4px;}.yui-skin-sam .yui-v-slider{background:url(bg-v.gif) no-repeat 12px 0;height:228px;width:48px;}.yui-skin-sam .yui-region-slider{height:228px;width:228px;}
diff --git a/build/assets/skins/sam/tabview.css b/build/assets/skins/sam/tabview.css
index b9568e5..b52b029 100644
--- a/build/assets/skins/sam/tabview.css
+++ b/build/assets/skins/sam/tabview.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-navset .yui-nav li,.yui-navset .yui-navset-top .yui-nav li,.yui-navset .yui-navset-bottom .yui-nav li{margin:0 .5em 0 0;}.yui-navset-left .yui-nav li,.yui-navset-right .yui-nav li{margin:0 0 .5em;}.yui-navset .yui-content .yui-hidden{border:0;height:0;width:0;padding:0;position:absolute;left:-999999px;overflow:hidden;visibility:hidden;}.yui-navset .yui-navset-left .yui-nav,.yui-navset .yui-navset-right .yui-nav,.yui-navset-left .yui-nav,.yui-navset-right .yui-nav{width:6em;}.yui-navset-top .yui-nav,.yui-navset-bottom .yui-nav{width:auto;}.yui-navset .yui-navset-left,.yui-navset-left{padding:0 0 0 6em;}.yui-navset-right{padding:0 6em 0 0;}.yui-navset-top,.yui-navset-bottom{padding:auto;}.yui-nav,.yui-nav li{margin:0;padding:0;list-style:none;}.yui-navset li em{font-style:normal;}.yui-navset{position:relative;zoom:1;}.yui-navset .yui-content,.yui-navset .yui-content div{zoom:1;}.yui-navset .yui-content:after{content:'';display:block;clear:both;}.yui-navset .yui-nav li,.yui-navset .yui-navset-top .yui-nav li,.yui-navset .yui-navset-bottom .yui-nav li{display:inline-block;display:-moz-inline-stack;*display:inline;vertical-align:bottom;cursor:pointer;zoom:1;}.yui-navset-left .yui-nav li,.yui-navset-right .yui-nav li{display:block;}.yui-navset .yui-nav a{position:relative;}.yui-navset .yui-nav li a,.yui-navset-top .yui-nav li a,.yui-navset-bottom .yui-nav li a{display:block;display:inline-block;vertical-align:bottom;zoom:1;}.yui-navset-left .yui-nav li a,.yui-navset-right .yui-nav li a{display:block;}.yui-navset-bottom .yui-nav li a{vertical-align:text-top;}.yui-navset .yui-nav li a em,.yui-navset-top .yui-nav li a em,.yui-navset-bottom .yui-nav li a em{display:block;}.yui-navset .yui-navset-left .yui-nav,.yui-navset .yui-navset-right .yui-nav,.yui-navset-left .yui-nav,.yui-navset-right .yui-nav{position:absolute;z-index:1;}.yui-navset-top .yui-nav,.yui-navset-bottom .yui-nav{position:static;}.yui-navset .yui-navset-left .yui-nav,.yui-navset-left .yui-nav{left:0;right:auto;}.yui-navset .yui-navset-right .yui-nav,.yui-navset-right .yui-nav{right:0;left:auto;}.yui-skin-sam .yui-navset .yui-nav,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav{border:solid #2647a0;border-width:0 0 5px;zoom:1;}.yui-skin-sam .yui-navset .yui-nav li,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav li{margin:0 .16em 0 0;padding:1px 0 0;zoom:1;}.yui-skin-sam .yui-navset .yui-nav .selected,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav .selected{margin:0 .16em -1px 0;}.yui-skin-sam .yui-navset .yui-nav a,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav a{background:#d8d8d8 url(sprite.png) repeat-x;border:solid #a3a3a3;border-width:0 1px;color:#000;position:relative;text-decoration:none;}.yui-skin-sam .yui-navset .yui-nav a em,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav a em{border:solid #a3a3a3;border-width:1px 0 0;cursor:hand;padding:.25em .75em;left:0;right:0;bottom:0;top:-1px;position:relative;}.yui-skin-sam .yui-navset .yui-nav .selected a,.yui-skin-sam .yui-navset .yui-nav .selected a:focus,.yui-skin-sam .yui-navset .yui-nav .selected a:hover{background:#2647a0 url(sprite.png) repeat-x left -1400px;color:#fff;}.yui-skin-sam .yui-navset .yui-nav a:hover,.yui-skin-sam .yui-navset .yui-nav a:focus{background:#bfdaff url(sprite.png) repeat-x left -1300px;outline:0;}.yui-skin-sam .yui-navset .yui-nav .selected a em{padding:.35em .75em;}.yui-skin-sam .yui-navset .yui-nav .selected a,.yui-skin-sam .yui-navset .yui-nav .selected a em{border-color:#243356;}.yui-skin-sam .yui-navset .yui-content{background:#edf5ff;}.yui-skin-sam .yui-navset .yui-content,.yui-skin-sam .yui-navset .yui-navset-top .yui-content{border:1px solid #808080;border-top-color:#243356;padding:.25em .5em;}.yui-skin-sam .yui-navset-left .yui-nav,.yui-skin-sam .yui-navset .yui-navset-left .yui-nav,.yui-skin-sam .yui-navset .yui-navset-right .yui-nav,.yui-skin-sam .yui-navset-right .yui-nav{border-width:0 5px 0 0;Xposition:absolute;top:0;bottom:0;}.yui-skin-sam .yui-navset .yui-navset-right .yui-nav,.yui-skin-sam .yui-navset-right .yui-nav{border-width:0 0 0 5px;}.yui-skin-sam .yui-navset-left .yui-nav li,.yui-skin-sam .yui-navset .yui-navset-left .yui-nav li,.yui-skin-sam .yui-navset-right .yui-nav li{margin:0 0 .16em;padding:0 0 0 1px;}.yui-skin-sam .yui-navset-right .yui-nav li{padding:0 1px 0 0;}.yui-skin-sam .yui-navset-left .yui-nav .selected,.yui-skin-sam .yui-navset .yui-navset-left .yui-nav .selected{margin:0 -1px .16em 0;}.yui-skin-sam .yui-navset-right .yui-nav .selected{margin:0 0 .16em -1px;}.yui-skin-sam .yui-navset-left .yui-nav a,.yui-skin-sam .yui-navset-right .yui-nav a{border-width:1px 0;}.yui-skin-sam .yui-navset-left .yui-nav a em,.yui-skin-sam .yui-navset .yui-navset-left .yui-nav a em,.yui-skin-sam .yui-navset-right .yui-nav a em{border-width:0 0 0 1px;padding:.2em .75em;top:auto;left:-1px;}.yui-skin-sam .yui-navset-right .yui-nav a em{border-width:0 1px 0 0;left:auto;right:-1px;}.yui-skin-sam .yui-navset-left .yui-nav a,.yui-skin-sam .yui-navset-left .yui-nav .selected a,.yui-skin-sam .yui-navset-left .yui-nav a:hover,.yui-skin-sam .yui-navset-right .yui-nav a,.yui-skin-sam .yui-navset-right .yui-nav .selected a,.yui-skin-sam .yui-navset-right .yui-nav a:hover,.yui-skin-sam .yui-navset-bottom .yui-nav a,.yui-skin-sam .yui-navset-bottom .yui-nav .selected a,.yui-skin-sam .yui-navset-bottom .yui-nav a:hover{background-image:none;}.yui-skin-sam .yui-navset-left .yui-content{border:1px solid #808080;border-left-color:#243356;}.yui-skin-sam .yui-navset-bottom .yui-nav,.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav{border-width:5px 0 0;}.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav .selected,.yui-skin-sam .yui-navset-bottom .yui-nav .selected{margin:-1px .16em 0 0;}.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav li,.yui-skin-sam .yui-navset-bottom .yui-nav li{padding:0 0 1px 0;vertical-align:top;}.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav a em,.yui-skin-sam .yui-navset-bottom .yui-nav a em{border-width:0 0 1px;top:auto;bottom:-1px;}
 .yui-skin-sam .yui-navset-bottom .yui-content,.yui-skin-sam .yui-navset .yui-navset-bottom .yui-content{border:1px solid #808080;border-bottom-color:#243356;}
diff --git a/build/assets/skins/sam/treeview.css b/build/assets/skins/sam/treeview.css
index e0c0c1f..804afb5 100644
--- a/build/assets/skins/sam/treeview.css
+++ b/build/assets/skins/sam/treeview.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 table.ygtvtable{margin-bottom:0;border:none;border-collapse:collapse;}td.ygtvcell{border:none;padding:0;}a.ygtvspacer{text-decoration:none;outline-style:none;display:block;}.ygtvtn{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -5600px no-repeat;cursor:pointer;}.ygtvtm{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -4000px no-repeat;}.ygtvtmh,.ygtvtmhh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -4800px no-repeat;}.ygtvtp{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -6400px no-repeat;}.ygtvtph,.ygtvtphh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -7200px no-repeat;}.ygtvln{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -1600px no-repeat;cursor:pointer;}.ygtvlm{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 0 no-repeat;}.ygtvlmh,.ygtvlmhh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -800px no-repeat;}.ygtvlp{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -2400px no-repeat;}.ygtvlph,.ygtvlphh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -3200px no-repeat;cursor:pointer;}.ygtvloading{width:18px;height:22px;background:url(treeview-loading.gif) 0 0 no-repeat;}.ygtvdepthcell{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8000px no-repeat;}.ygtvblankdepthcell{width:18px;height:22px;}* html .ygtvchildren{height:2%;}.ygtvlabel,.ygtvlabel:link,.ygtvlabel:visited,.ygtvlabel:hover{margin-left:2px;text-decoration:none;background-color:white;cursor:pointer;}.ygtvcontent{cursor:default;}.ygtvspacer{height:22px;width:18px;}.ygtvfocus{background-color:#c0e0e0;border:none;}.ygtvfocus .ygtvlabel,.ygtvfocus .ygtvlabel:link,.ygtvfocus .ygtvlabel:visited,.ygtvfocus .ygtvlabel:hover{background-color:#c0e0e0;}.ygtvfocus a{outline-style:none;}.ygtvok{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8800px no-repeat;}.ygtvok:hover{background:url(treeview-sprite.gif) 0 -8844px no-repeat;}.ygtvcancel{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8822px no-repeat;}.ygtvcancel:hover{background:url(treeview-sprite.gif) 0 -8866px no-repeat;}.ygtv-label-editor{background-color:#f2f2f2;border:1px solid silver;position:absolute;display:none;overflow:hidden;margin:auto;z-index:9000;}.ygtv-edit-TextNode{width:190px;}.ygtv-edit-TextNode .ygtvcancel,.ygtv-edit-TextNode .ygtvok{border:none;}.ygtv-edit-TextNode .ygtv-button-container{float:right;}.ygtv-edit-TextNode .ygtv-input input{width:140px;}.ygtv-edit-DateNode .ygtvcancel{border:none;}.ygtv-edit-DateNode .ygtvok{display:none;}.ygtv-edit-DateNode .ygtv-button-container{text-align:right;margin:auto;}.ygtv-highlight .ygtv-highlight1,.ygtv-highlight .ygtv-highlight1 .ygtvlabel{background-color:blue;color:white;}.ygtv-highlight .ygtv-highlight2,.ygtv-highlight .ygtv-highlight2 .ygtvlabel{background-color:silver;}.ygtv-highlight .ygtv-highlight0 .ygtvfocus .ygtvlabel,.ygtv-highlight .ygtv-highlight1 .ygtvfocus .ygtvlabel,.ygtv-highlight .ygtv-highlight2 .ygtvfocus .ygtvlabel{background-color:#c0e0e0;}.ygtv-highlight .ygtvcontent{padding-right:1em;}.ygtv-checkbox .ygtv-highlight0 .ygtvcontent{padding-left:1em;background:url(check0.gif) no-repeat;}.ygtv-checkbox .ygtv-highlight0 .ygtvfocus.ygtvcontent,.ygtv-checkbox .ygtv-highlight1 .ygtvfocus.ygtvcontent,.ygtv-checkbox .ygtv-highlight2 .ygtvfocus.ygtvcontent{background-color:#c0e0e0;}.ygtv-checkbox .ygtv-highlight1 .ygtvcontent{padding-left:1em;background:url(check1.gif) no-repeat;}.ygtv-checkbox .ygtv-highlight2 .ygtvcontent{padding-left:1em;background:url(check2.gif) no-repeat;}
diff --git a/build/assets/skins/sam/yuitest.css b/build/assets/skins/sam/yuitest.css
index 049d5fc..7e727bb 100644
--- a/build/assets/skins/sam/yuitest.css
+++ b/build/assets/skins/sam/yuitest.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
diff --git a/build/autocomplete/assets/autocomplete-core.css b/build/autocomplete/assets/autocomplete-core.css
index 46ec748..9d0ab6d 100644
--- a/build/autocomplete/assets/autocomplete-core.css
+++ b/build/autocomplete/assets/autocomplete-core.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* This file intentionally left blank */
diff --git a/build/autocomplete/assets/skins/sam/autocomplete-skin.css b/build/autocomplete/assets/skins/sam/autocomplete-skin.css
index ceaa2a5..23aa5e3 100644
--- a/build/autocomplete/assets/skins/sam/autocomplete-skin.css
+++ b/build/autocomplete/assets/skins/sam/autocomplete-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* styles for entire widget */
 .yui-skin-sam .yui-ac {
diff --git a/build/autocomplete/assets/skins/sam/autocomplete.css b/build/autocomplete/assets/skins/sam/autocomplete.css
index 33e9d1d..aa3435d 100644
--- a/build/autocomplete/assets/skins/sam/autocomplete.css
+++ b/build/autocomplete/assets/skins/sam/autocomplete.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-ac{position:relative;font-family:arial;font-size:100%;}.yui-skin-sam .yui-ac-input{position:absolute;width:100%;}.yui-skin-sam .yui-ac-container{position:absolute;top:1.6em;width:100%;}.yui-skin-sam .yui-ac-content{position:absolute;width:100%;border:1px solid #808080;background:#fff;overflow:hidden;z-index:9050;}.yui-skin-sam .yui-ac-shadow{position:absolute;margin:.3em;width:100%;background:#000;-moz-opacity:.10;opacity:.10;filter:alpha(opacity=10);z-index:9049;}.yui-skin-sam .yui-ac iframe{opacity:0;filter:alpha(opacity=0);padding-right:.3em;padding-bottom:.3em;}.yui-skin-sam .yui-ac-content ul{margin:0;padding:0;width:100%;}.yui-skin-sam .yui-ac-content li{margin:0;padding:2px 5px;cursor:default;white-space:nowrap;list-style:none;zoom:1;}.yui-skin-sam .yui-ac-content li.yui-ac-prehighlight{background:#B3D4FF;}.yui-skin-sam .yui-ac-content li.yui-ac-highlight{background:#426FD9;color:#FFF;}
diff --git a/build/autocomplete/autocomplete-debug.js b/build/autocomplete/autocomplete-debug.js
index ddc8aef..308ecb7 100644
--- a/build/autocomplete/autocomplete-debug.js
+++ b/build/autocomplete/autocomplete-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -3006,4 +3006,4 @@ YAHOO.widget.AutoComplete._cloneObject = function(o) {
 
 
 
-YAHOO.register("autocomplete", YAHOO.widget.AutoComplete, {version: "2.8.1", build: "19"});
+YAHOO.register("autocomplete", YAHOO.widget.AutoComplete, {version: "2.8.2r1", build: "7"});
diff --git a/build/autocomplete/autocomplete-min.js b/build/autocomplete/autocomplete-min.js
index 75e2887..e9dfe5e 100644
--- a/build/autocomplete/autocomplete-min.js
+++ b/build/autocomplete/autocomplete-min.js
@@ -2,11 +2,11 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.widget.DS_JSArray=YAHOO.util.LocalDataSource;YAHOO.widget.DS_JSFunction=YAHOO.util.FunctionDataSource;YAHOO.widget.DS_XHR=function(B,A,D){var C=new YAHOO.util.XHRDataSource(B,D);C._aDeprecatedSchema=A;return C;};YAHOO.widget.DS_ScriptNode=function(B,A,D){var C=new YAHOO.util.ScriptNodeDataSource(B,D);C._aDeprecatedSchema=A;return C;};YAHOO.widget.DS_XHR.TYPE_JSON=YAHOO.util.DataSourceBase.TYPE_JSON;YAHOO.widget.DS_XHR.TYPE_XML=YAHOO.util.DataSourceBase.TYPE_XML;YAHOO.widget.DS_XHR.TYPE_FLAT=YAHOO.util.DataSourceBase.TYPE_TEXT;YAHOO.widget.AutoComplete=function(G,B,J,C){if(G&&B&&J){if(J&&YAHOO.lang.isFunction(J.sendRequest)){this.dataSource=J;}else{return;}this.key=0;var D=J.responseSchema;if(J._aDeprecatedSchema){var K=J._aDeprecatedSchema;if(YAHOO.lang.isArray(K)){if((J.responseType===YAHOO.util.DataSourceBase.TYPE_JSON)||(J.responseType===YAHOO.util.DataSourceBase.TYPE_UNKNOWN)){D.resultsList=K[0];this.key=K[1];D.fields=(K.length<3)?null:K.slice(1);}else{if(J.responseType===YAHOO.util.DataSourceBase.TYPE_XML){D.resultNode=K[0];this.key=K[1];D.fields=K.slice(1);}else{if(J.responseType===YAHOO.util.DataSourceBase.TYPE_TEXT){D.recordDelim=K[0];D.fieldDelim=K[1];}}}J.responseSchema=D;}}if(YAHOO.util.Dom.inDocument(G)){if(YAHOO.lang.isString(G)){this._sName="instance"+YAHOO.widget.AutoComplete._nIndex+" "+G;this._elTextbox=document.getElementById(G);}else{this._sName=(G.id)?"instance"+YAHOO.widget.AutoComplete._nIndex+" "+G.id:"instance"+YAHOO.widget.AutoComplete._nIndex;this._elTextbox=G;}YAHOO.util.Dom.addClass(this._elTextbox,"yui-ac-input");}else{return;}if(YAHOO.util.Dom.inDocument(B)){if(YAHOO.lang.isString(B)){this._elContainer=document.getElementById(B);}else{this._elContainer=B;}if(this._elContainer.style.display=="none"){}var E=this._elContainer.parentNode;var A=E.tagName.toLowerCase();if(A=="div"){YAHOO.util.Dom.addClass(E,"yui-ac");}else{}}else{return;}if(this.dataSource.dataType===YAHOO.util.DataSourceBase.TYPE_LOCAL){this.applyLocalFilter=true;}if(C&&(C.constructor==Object)){for(var I in C){if(I){this[I]=C[I];}}}this._initContainerEl();this._initProps();this._initListEl();this._initContainerHelperEls();var H=this;var F=this._elTextbox;YAHOO.util.Event.addListener(F,"keyup",H._onTextboxKeyUp,H);YAHOO.util.Event.addListener(F,"keydown",H._onTextboxKeyDown,H);YAHOO.util.Event.addListener(F,"focus",H._onTextboxFocus,H);YAHOO.util.Event.addListener(F,"blur",H._onTextboxBlur,H);YAHOO.util.Event.addListener(B,"mouseover",H._onContainerMouseover,H);YAHOO.util.Event.addListener(B,"mouseout",H._onContainerMouseout,H);YAHOO.util.Event.addListener(B,"click",H._onContainerClick,H);YAHOO.util.Event.addListener(B,"scroll",H._onContainerScroll,H);YAHOO.util.Event.addListener(B,"resize",H._onContainerResize,H);YAHOO.util.Event.addListener(F,"keypress",H._onTextboxKeyPress,H);YAHOO.util.Event.addListener(window,"unload",H._onWindowUnload,H);this.textboxFocusEvent=new YAHOO.util.CustomEvent("textboxFocus",this);this.textboxKeyEvent=new YAHOO.util.CustomEvent("textboxKey",this);this.dataRequestEvent=new YAHOO.util.CustomEvent("dataRequest",this);this.dataReturnEvent=new YAHOO.util.CustomEvent("dataReturn",this);this.dataErrorEvent=new YAHOO.util.CustomEvent("dataError",this);this.containerPopulateEvent=new YAHOO.util.CustomEvent("containerPopulate",this);this.containerExpandEvent=new YAHOO.util.CustomEvent("containerExpand",this);this.typeAheadEvent=new YAHOO.util.CustomEvent("typeAhead",this);this.itemMouseOverEvent=new YAHOO.util.CustomEvent("itemMouseOver",this);this.itemMouseOutEvent=new YAHOO.util.CustomEvent("itemMouseOut",this);this.itemArrowToEvent=new YAHOO.util.CustomEvent("itemArrowTo",this);this.itemArrowFromEvent=new YAHOO.util.CustomEvent("itemArrowFrom",this);this.itemSelectEvent=new YAHOO.util.CustomEvent("itemSelect",this);this.unmatchedItemSelectEvent=new YAHOO.util.CustomEvent("unmatchedItemSelect",this);this.selectionEnforceEvent=new YAHOO.util.CustomEvent("selectionEnforce",this);this.containerCollapseEvent=new YAHOO.util.CustomEvent("containerCollapse",this);this.textboxBlurEvent=new YAHOO.util.CustomEvent("textboxBlur",this);this.textboxChangeEvent=new YAHOO.util.CustomEvent("textboxChange",this);F.setAttribute("autocomplete","off");YAHOO.widget.AutoComplete._nIndex++;}else{}};YAHOO.widget.AutoComplete.prototype.dataSource=null;YAHOO.widget.AutoComplete.prototype.applyLocalFilter=null;YAHOO.widget.AutoComplete.prototype.queryMatchCase=false;YAHOO.widget.AutoComplete.prototype.queryMatchContains=false;YAHOO.widget.AutoComplete.prototype.queryMatchSubset=false;YAHOO.widget.AutoComplete.prototype.minQueryLength=1;YAHOO.widget.AutoComplete.prototype.maxResultsDisplayed=10;YAHOO.widget.AutoComplete.prototype.queryDelay=0.2;YAHOO.widget.AutoComplete.prototype.typeAheadDelay=0.5;YAHOO.widget.AutoComplete.prototype.queryInterval=500;YAHOO.widget.AutoComplete.prototype.highlightClassName="yui-ac-highlight";YAHOO.widget.AutoComplete.prototype.prehighlightClassName=null;YAHOO.widget.AutoComplete.prototype.delimChar=null;YAHOO.widget.AutoComplete.prototype.autoHighlight=true;YAHOO.widget.AutoComplete.prototype.typeAhead=false;YAHOO.widget.AutoComplete.prototype.animHoriz=false;YAHOO.widget.AutoComplete.prototype.animVert=true;YAHOO.widget.AutoComplete.prototype.animSpeed=0.3;YAHOO.widget.AutoComplete.prototype.forceSelection=false;YAHOO.widget.AutoComplete.prototype.allowBrowserAutocomplete=true;YAHOO.widget.AutoComplete.prototype.alwaysShowContainer=false;YAHOO.widget.AutoComplete.prototype.useIFrame=false;YAHOO.widget.AutoComplete.prototype.useShadow=false;YAHOO.widget.AutoComplete.prototype.suppressInputUpdate=false;YAHOO.widget.AutoComplete.prototype.resultTypeList=true;YAHOO.widget.AutoComplete.prototype.queryQuestionMark=true;YAHOO.widget.AutoComplete.prototype.autoSnapContainer=true;YAHOO.widget.AutoComplete.prototype.toString=function(){return"AutoComplete "+this._sName;};YAHOO.widget.AutoComplete.prototype.getInputEl=function(){return this._elTextbox;};YAHOO.widget.AutoComplete.prototype.getContainerEl=function(){return this._elContainer;
 };YAHOO.widget.AutoComplete.prototype.isFocused=function(){return this._bFocused;};YAHOO.widget.AutoComplete.prototype.isContainerOpen=function(){return this._bContainerOpen;};YAHOO.widget.AutoComplete.prototype.getListEl=function(){return this._elList;};YAHOO.widget.AutoComplete.prototype.getListItemMatch=function(A){if(A._sResultMatch){return A._sResultMatch;}else{return null;}};YAHOO.widget.AutoComplete.prototype.getListItemData=function(A){if(A._oResultData){return A._oResultData;}else{return null;}};YAHOO.widget.AutoComplete.prototype.getListItemIndex=function(A){if(YAHOO.lang.isNumber(A._nItemIndex)){return A._nItemIndex;}else{return null;}};YAHOO.widget.AutoComplete.prototype.setHeader=function(B){if(this._elHeader){var A=this._elHeader;if(B){A.innerHTML=B;A.style.display="";}else{A.innerHTML="";A.style.display="none";}}};YAHOO.widget.AutoComplete.prototype.setFooter=function(B){if(this._elFooter){var A=this._elFooter;if(B){A.innerHTML=B;A.style.display="";}else{A.innerHTML="";A.style.display="none";}}};YAHOO.widget.AutoComplete.prototype.setBody=function(A){if(this._elBody){var B=this._elBody;YAHOO.util.Event.purgeElement(B,true);if(A){B.innerHTML=A;B.style.display="";}else{B.innerHTML="";B.style.display="none";}this._elList=null;}};YAHOO.widget.AutoComplete.prototype.generateRequest=function(B){var A=this.dataSource.dataType;if(A===YAHOO.util.DataSourceBase.TYPE_XHR){if(!this.dataSource.connMethodPost){B=(this.queryQuestionMark?"?":"")+(this.dataSource.scriptQueryParam||"query")+"="+B+(this.dataSource.scriptQueryAppend?("&"+this.dataSource.scriptQueryAppend):"");}else{B=(this.dataSource.scriptQueryParam||"query")+"="+B+(this.dataSource.scriptQueryAppend?("&"+this.dataSource.scriptQueryAppend):"");}}else{if(A===YAHOO.util.DataSourceBase.TYPE_SCRIPTNODE){B="&"+(this.dataSource.scriptQueryParam||"query")+"="+B+(this.dataSource.scriptQueryAppend?("&"+this.dataSource.scriptQueryAppend):"");}}return B;};YAHOO.widget.AutoComplete.prototype.sendQuery=function(B){this._bFocused=true;var A=(this.delimChar)?this._elTextbox.value+B:B;this._sendQuery(A);};YAHOO.widget.AutoComplete.prototype.snapContainer=function(){var A=this._elTextbox,B=YAHOO.util.Dom.getXY(A);B[1]+=YAHOO.util.Dom.get(A).offsetHeight+2;YAHOO.util.Dom.setXY(this._elContainer,B);};YAHOO.widget.AutoComplete.prototype.expandContainer=function(){this._toggleContainer(true);};YAHOO.widget.AutoComplete.prototype.collapseContainer=function(){this._toggleContainer(false);};YAHOO.widget.AutoComplete.prototype.clearList=function(){var B=this._elList.childNodes,A=B.length-1;for(;A>-1;A--){B[A].style.display="none";}};YAHOO.widget.AutoComplete.prototype.getSubsetMatches=function(E){var D,C,A;for(var B=E.length;B>=this.minQueryLength;B--){A=this.generateRequest(E.substr(0,B));this.dataRequestEvent.fire(this,D,A);C=this.dataSource.getCachedResponse(A);if(C){return this.filterResults.apply(this.dataSource,[E,C,C,{scope:this}]);}}return null;};YAHOO.widget.AutoComplete.prototype.preparseRawResponse=function(C,B,A){var D=((this.responseStripAfter!=="")&&(B.indexOf))?B.indexOf(this.responseStripAfter):-1;if(D!=-1){B=B.substring(0,D);}return B;};YAHOO.widget.AutoComplete.prototype.filterResults=function(K,M,Q,L){if(L&&L.argument&&L.argument.query){K=L.argument.query;}if(K&&K!==""){Q=YAHOO.widget.AutoComplete._cloneObject(Q);var I=L.scope,P=this,C=Q.results,N=[],B=I.maxResultsDisplayed,J=(P.queryMatchCase||I.queryMatchCase),A=(P.queryMatchContains||I.queryMatchContains);for(var D=0,H=C.length;D<H;D++){var F=C[D];var E=null;if(YAHOO.lang.isString(F)){E=F;}else{if(YAHOO.lang.isArray(F)){E=F[0];}else{if(this.responseSchema.fields){var O=this.responseSchema.fields[0].key||this.responseSchema.fields[0];E=F[O];}else{if(this.key){E=F[this.key];}}}}if(YAHOO.lang.isString(E)){var G=(J)?E.indexOf(decodeURIComponent(K)):E.toLowerCase().indexOf(decodeURIComponent(K).toLowerCase());if((!A&&(G===0))||(A&&(G>-1))){N.push(F);}}if(H>B&&N.length===B){break;}}Q.results=N;}else{}return Q;};YAHOO.widget.AutoComplete.prototype.handleResponse=function(C,A,B){if((this instanceof YAHOO.widget.AutoComplete)&&this._sName){this._populateList(C,A,B);}};YAHOO.widget.AutoComplete.prototype.doBeforeLoadData=function(C,A,B){return true;};YAHOO.widget.AutoComplete.prototype.formatResult=function(B,D,A){var C=(A)?A:"";return C;};YAHOO.widget.AutoComplete.prototype.doBeforeExpandContainer=function(D,A,C,B){return true;};YAHOO.widget.AutoComplete.prototype.destroy=function(){var B=this.toString();var A=this._elTextbox;var D=this._elContainer;this.textboxFocusEvent.unsubscribeAll();this.textboxKeyEvent.unsubscribeAll();this.dataRequestEvent.unsubscribeAll();this.dataReturnEvent.unsubscribeAll();this.dataErrorEvent.unsubscribeAll();this.containerPopulateEvent.unsubscribeAll();this.containerExpandEvent.unsubscribeAll();this.typeAheadEvent.unsubscribeAll();this.itemMouseOverEvent.unsubscribeAll();this.itemMouseOutEvent.unsubscribeAll();this.itemArrowToEvent.unsubscribeAll();this.itemArrowFromEvent.unsubscribeAll();this.itemSelectEvent.unsubscribeAll();this.unmatchedItemSelectEvent.unsubscribeAll();this.selectionEnforceEvent.unsubscribeAll();this.containerCollapseEvent.unsubscribeAll();this.textboxBlurEvent.unsubscribeAll();this.textboxChangeEvent.unsubscribeAll();YAHOO.util.Event.purgeElement(A,true);YAHOO.util.Event.purgeElement(D,true);D.innerHTML="";for(var C in this){if(YAHOO.lang.hasOwnProperty(this,C)){this[C]=null;}}};YAHOO.widget.AutoComplete.prototype.textboxFocusEvent=null;YAHOO.widget.AutoComplete.prototype.textboxKeyEvent=null;YAHOO.widget.AutoComplete.prototype.dataRequestEvent=null;YAHOO.widget.AutoComplete.prototype.dataReturnEvent=null;YAHOO.widget.AutoComplete.prototype.dataErrorEvent=null;YAHOO.widget.AutoComplete.prototype.containerPopulateEvent=null;YAHOO.widget.AutoComplete.prototype.containerExpandEvent=null;YAHOO.widget.AutoComplete.prototype.typeAheadEvent=null;YAHOO.widget.AutoComplete.prototype.itemMouseOverEvent=null;YAHOO.widget.AutoComplete.prototype.itemMouseOutEvent=null;
 YAHOO.widget.AutoComplete.prototype.itemArrowToEvent=null;YAHOO.widget.AutoComplete.prototype.itemArrowFromEvent=null;YAHOO.widget.AutoComplete.prototype.itemSelectEvent=null;YAHOO.widget.AutoComplete.prototype.unmatchedItemSelectEvent=null;YAHOO.widget.AutoComplete.prototype.selectionEnforceEvent=null;YAHOO.widget.AutoComplete.prototype.containerCollapseEvent=null;YAHOO.widget.AutoComplete.prototype.textboxBlurEvent=null;YAHOO.widget.AutoComplete.prototype.textboxChangeEvent=null;YAHOO.widget.AutoComplete._nIndex=0;YAHOO.widget.AutoComplete.prototype._sName=null;YAHOO.widget.AutoComplete.prototype._elTextbox=null;YAHOO.widget.AutoComplete.prototype._elContainer=null;YAHOO.widget.AutoComplete.prototype._elContent=null;YAHOO.widget.AutoComplete.prototype._elHeader=null;YAHOO.widget.AutoComplete.prototype._elBody=null;YAHOO.widget.AutoComplete.prototype._elFooter=null;YAHOO.widget.AutoComplete.prototype._elShadow=null;YAHOO.widget.AutoComplete.prototype._elIFrame=null;YAHOO.widget.AutoComplete.prototype._bFocused=false;YAHOO.widget.AutoComplete.prototype._oAnim=null;YAHOO.widget.AutoComplete.prototype._bContainerOpen=false;YAHOO.widget.AutoComplete.prototype._bOverContainer=false;YAHOO.widget.AutoComplete.prototype._elList=null;YAHOO.widget.AutoComplete.prototype._nDisplayedItems=0;YAHOO.widget.AutoComplete.prototype._sCurQuery=null;YAHOO.widget.AutoComplete.prototype._sPastSelections="";YAHOO.widget.AutoComplete.prototype._sInitInputValue=null;YAHOO.widget.AutoComplete.prototype._elCurListItem=null;YAHOO.widget.AutoComplete.prototype._elCurPrehighlightItem=null;YAHOO.widget.AutoComplete.prototype._bItemSelected=false;YAHOO.widget.AutoComplete.prototype._nKeyCode=null;YAHOO.widget.AutoComplete.prototype._nDelayID=-1;YAHOO.widget.AutoComplete.prototype._nTypeAheadDelayID=-1;YAHOO.widget.AutoComplete.prototype._iFrameSrc="javascript:false;";YAHOO.widget.AutoComplete.prototype._queryInterval=null;YAHOO.widget.AutoComplete.prototype._sLastTextboxValue=null;YAHOO.widget.AutoComplete.prototype._initProps=function(){var B=this.minQueryLength;if(!YAHOO.lang.isNumber(B)){this.minQueryLength=1;}var E=this.maxResultsDisplayed;if(!YAHOO.lang.isNumber(E)||(E<1)){this.maxResultsDisplayed=10;}var F=this.queryDelay;if(!YAHOO.lang.isNumber(F)||(F<0)){this.queryDelay=0.2;}var C=this.typeAheadDelay;if(!YAHOO.lang.isNumber(C)||(C<0)){this.typeAheadDelay=0.2;}var A=this.delimChar;if(YAHOO.lang.isString(A)&&(A.length>0)){this.delimChar=[A];}else{if(!YAHOO.lang.isArray(A)){this.delimChar=null;}}var D=this.animSpeed;if((this.animHoriz||this.animVert)&&YAHOO.util.Anim){if(!YAHOO.lang.isNumber(D)||(D<0)){this.animSpeed=0.3;}if(!this._oAnim){this._oAnim=new YAHOO.util.Anim(this._elContent,{},this.animSpeed);}else{this._oAnim.duration=this.animSpeed;}}if(this.forceSelection&&A){}};YAHOO.widget.AutoComplete.prototype._initContainerHelperEls=function(){if(this.useShadow&&!this._elShadow){var A=document.createElement("div");A.className="yui-ac-shadow";A.style.width=0;A.style.height=0;this._elShadow=this._elContainer.appendChild(A);}if(this.useIFrame&&!this._elIFrame){var B=document.createElement("iframe");B.src=this._iFrameSrc;B.frameBorder=0;B.scrolling="no";B.style.position="absolute";B.style.width=0;B.style.height=0;B.style.padding=0;B.tabIndex=-1;B.role="presentation";B.title="Presentational iframe shim";this._elIFrame=this._elContainer.appendChild(B);}};YAHOO.widget.AutoComplete.prototype._initContainerEl=function(){YAHOO.util.Dom.addClass(this._elContainer,"yui-ac-container");if(!this._elContent){var C=document.createElement("div");C.className="yui-ac-content";C.style.display="none";this._elContent=this._elContainer.appendChild(C);var B=document.createElement("div");B.className="yui-ac-hd";B.style.display="none";this._elHeader=this._elContent.appendChild(B);var D=document.createElement("div");D.className="yui-ac-bd";this._elBody=this._elContent.appendChild(D);var A=document.createElement("div");A.className="yui-ac-ft";A.style.display="none";this._elFooter=this._elContent.appendChild(A);}else{}};YAHOO.widget.AutoComplete.prototype._initListEl=function(){var C=this.maxResultsDisplayed,A=this._elList||document.createElement("ul"),B;while(A.childNodes.length<C){B=document.createElement("li");B.style.display="none";B._nItemIndex=A.childNodes.length;A.appendChild(B);}if(!this._elList){var D=this._elBody;YAHOO.util.Event.purgeElement(D,true);D.innerHTML="";this._elList=D.appendChild(A);}this._elBody.style.display="";};YAHOO.widget.AutoComplete.prototype._focus=function(){var A=this;setTimeout(function(){try{A._elTextbox.focus();}catch(B){}},0);};YAHOO.widget.AutoComplete.prototype._enableIntervalDetection=function(){var A=this;if(!A._queryInterval&&A.queryInterval){A._queryInterval=setInterval(function(){A._onInterval();},A.queryInterval);}};YAHOO.widget.AutoComplete.prototype.enableIntervalDetection=YAHOO.widget.AutoComplete.prototype._enableIntervalDetection;YAHOO.widget.AutoComplete.prototype._onInterval=function(){var A=this._elTextbox.value;var B=this._sLastTextboxValue;if(A!=B){this._sLastTextboxValue=A;this._sendQuery(A);}};YAHOO.widget.AutoComplete.prototype._clearInterval=function(){if(this._queryInterval){clearInterval(this._queryInterval);this._queryInterval=null;}};YAHOO.widget.AutoComplete.prototype._isIgnoreKey=function(A){if((A==9)||(A==13)||(A==16)||(A==17)||(A>=18&&A<=20)||(A==27)||(A>=33&&A<=35)||(A>=36&&A<=40)||(A>=44&&A<=45)||(A==229)){return true;}return false;};YAHOO.widget.AutoComplete.prototype._sendQuery=function(D){if(this.minQueryLength<0){this._toggleContainer(false);return;}if(this.delimChar){var A=this._extractQuery(D);D=A.query;this._sPastSelections=A.previous;}if((D&&(D.length<this.minQueryLength))||(!D&&this.minQueryLength>0)){if(this._nDelayID!=-1){clearTimeout(this._nDelayID);}this._toggleContainer(false);return;}D=encodeURIComponent(D);this._nDelayID=-1;if(this.dataSource.queryMatchSubset||this.queryMatchSubset){var C=this.getSubsetMatches(D);if(C){this.handleResponse(D,C,{query:D});return;
 }}if(this.dataSource.responseStripAfter){this.dataSource.doBeforeParseData=this.preparseRawResponse;}if(this.applyLocalFilter){this.dataSource.doBeforeCallback=this.filterResults;}var B=this.generateRequest(D);this.dataRequestEvent.fire(this,D,B);this.dataSource.sendRequest(B,{success:this.handleResponse,failure:this.handleResponse,scope:this,argument:{query:D}});};YAHOO.widget.AutoComplete.prototype._populateListItem=function(B,A,C){B.innerHTML=this.formatResult(A,C,B._sResultMatch);};YAHOO.widget.AutoComplete.prototype._populateList=function(K,F,C){if(this._nTypeAheadDelayID!=-1){clearTimeout(this._nTypeAheadDelayID);}K=(C&&C.query)?C.query:K;var H=this.doBeforeLoadData(K,F,C);if(H&&!F.error){this.dataReturnEvent.fire(this,K,F.results);if(this._bFocused){var M=decodeURIComponent(K);this._sCurQuery=M;this._bItemSelected=false;var R=F.results,A=Math.min(R.length,this.maxResultsDisplayed),J=(this.dataSource.responseSchema.fields)?(this.dataSource.responseSchema.fields[0].key||this.dataSource.responseSchema.fields[0]):0;if(A>0){if(!this._elList||(this._elList.childNodes.length<A)){this._initListEl();}this._initContainerHelperEls();var I=this._elList.childNodes;for(var Q=A-1;Q>=0;Q--){var P=I[Q],E=R[Q];if(this.resultTypeList){var B=[];B[0]=(YAHOO.lang.isString(E))?E:E[J]||E[this.key];var L=this.dataSource.responseSchema.fields;if(YAHOO.lang.isArray(L)&&(L.length>1)){for(var N=1,S=L.length;N<S;N++){B[B.length]=E[L[N].key||L[N]];}}else{if(YAHOO.lang.isArray(E)){B=E;}else{if(YAHOO.lang.isString(E)){B=[E];}else{B[1]=E;}}}E=B;}P._sResultMatch=(YAHOO.lang.isString(E))?E:(YAHOO.lang.isArray(E))?E[0]:(E[J]||"");P._oResultData=E;this._populateListItem(P,E,M);P.style.display="";}if(A<I.length){var G;for(var O=I.length-1;O>=A;O--){G=I[O];G.style.display="none";}}this._nDisplayedItems=A;this.containerPopulateEvent.fire(this,K,R);if(this.autoHighlight){var D=this._elList.firstChild;this._toggleHighlight(D,"to");this.itemArrowToEvent.fire(this,D);this._typeAhead(D,K);}else{this._toggleHighlight(this._elCurListItem,"from");}H=this._doBeforeExpandContainer(this._elTextbox,this._elContainer,K,R);this._toggleContainer(H);}else{this._toggleContainer(false);}return;}}else{this.dataErrorEvent.fire(this,K,F);}};YAHOO.widget.AutoComplete.prototype._doBeforeExpandContainer=function(D,A,C,B){if(this.autoSnapContainer){this.snapContainer();}return this.doBeforeExpandContainer(D,A,C,B);};YAHOO.widget.AutoComplete.prototype._clearSelection=function(){var A=(this.delimChar)?this._extractQuery(this._elTextbox.value):{previous:"",query:this._elTextbox.value};this._elTextbox.value=A.previous;this.selectionEnforceEvent.fire(this,A.query);};YAHOO.widget.AutoComplete.prototype._textMatchesOption=function(){var A=null;for(var B=0;B<this._nDisplayedItems;B++){var C=this._elList.childNodes[B];var D=(""+C._sResultMatch).toLowerCase();if(D==this._sCurQuery.toLowerCase()){A=C;break;}}return(A);};YAHOO.widget.AutoComplete.prototype._typeAhead=function(B,D){if(!this.typeAhead||(this._nKeyCode==8)){return;}var A=this,C=this._elTextbox;if(C.setSelectionRange||C.createTextRange){this._nTypeAheadDelayID=setTimeout(function(){var F=C.value.length;A._updateValue(B);var G=C.value.length;A._selectText(C,F,G);var E=C.value.substr(F,G);A.typeAheadEvent.fire(A,D,E);},(this.typeAheadDelay*1000));}};YAHOO.widget.AutoComplete.prototype._selectText=function(D,A,B){if(D.setSelectionRange){D.setSelectionRange(A,B);}else{if(D.createTextRange){var C=D.createTextRange();C.moveStart("character",A);C.moveEnd("character",B-D.value.length);C.select();}else{D.select();}}};YAHOO.widget.AutoComplete.prototype._extractQuery=function(H){var C=this.delimChar,F=-1,G,E,B=C.length-1,D;for(;B>=0;B--){G=H.lastIndexOf(C[B]);if(G>F){F=G;}}if(C[B]==" "){for(var A=C.length-1;A>=0;A--){if(H[F-1]==C[A]){F--;break;}}}if(F>-1){E=F+1;while(H.charAt(E)==" "){E+=1;}D=H.substring(0,E);H=H.substr(E);}else{D="";}return{previous:D,query:H};};YAHOO.widget.AutoComplete.prototype._toggleContainerHelpers=function(D){var E=this._elContent.offsetWidth+"px";var B=this._elContent.offsetHeight+"px";if(this.useIFrame&&this._elIFrame){var C=this._elIFrame;if(D){C.style.width=E;C.style.height=B;C.style.padding="";}else{C.style.width=0;C.style.height=0;C.style.padding=0;}}if(this.useShadow&&this._elShadow){var A=this._elShadow;if(D){A.style.width=E;A.style.height=B;}else{A.style.width=0;A.style.height=0;}}};YAHOO.widget.AutoComplete.prototype._toggleContainer=function(I){var D=this._elContainer;if(this.alwaysShowContainer&&this._bContainerOpen){return;}if(!I){this._toggleHighlight(this._elCurListItem,"from");this._nDisplayedItems=0;this._sCurQuery=null;if(this._elContent.style.display=="none"){return;}}var A=this._oAnim;if(A&&A.getEl()&&(this.animHoriz||this.animVert)){if(A.isAnimated()){A.stop(true);}var G=this._elContent.cloneNode(true);D.appendChild(G);G.style.top="-9000px";G.style.width="";G.style.height="";G.style.display="";var F=G.offsetWidth;var C=G.offsetHeight;var B=(this.animHoriz)?0:F;var E=(this.animVert)?0:C;A.attributes=(I)?{width:{to:F},height:{to:C}}:{width:{to:B},height:{to:E}};if(I&&!this._bContainerOpen){this._elContent.style.width=B+"px";this._elContent.style.height=E+"px";}else{this._elContent.style.width=F+"px";this._elContent.style.height=C+"px";}D.removeChild(G);G=null;var H=this;var J=function(){A.onComplete.unsubscribeAll();if(I){H._toggleContainerHelpers(true);H._bContainerOpen=I;H.containerExpandEvent.fire(H);}else{H._elContent.style.display="none";H._bContainerOpen=I;H.containerCollapseEvent.fire(H);}};this._toggleContainerHelpers(false);this._elContent.style.display="";A.onComplete.subscribe(J);A.animate();}else{if(I){this._elContent.style.display="";this._toggleContainerHelpers(true);this._bContainerOpen=I;this.containerExpandEvent.fire(this);}else{this._toggleContainerHelpers(false);this._elContent.style.display="none";this._bContainerOpen=I;this.containerCollapseEvent.fire(this);}}};YAHOO.widget.AutoComplete.prototype._toggleHighlight=function(A,C){if(A){var B=this.highlightClassName;
 if(this._elCurListItem){YAHOO.util.Dom.removeClass(this._elCurListItem,B);this._elCurListItem=null;}if((C=="to")&&B){YAHOO.util.Dom.addClass(A,B);this._elCurListItem=A;}}};YAHOO.widget.AutoComplete.prototype._togglePrehighlight=function(B,C){var A=this.prehighlightClassName;if(this._elCurPrehighlightItem){YAHOO.util.Dom.removeClass(this._elCurPrehighlightItem,A);}if(B==this._elCurListItem){return;}if((C=="mouseover")&&A){YAHOO.util.Dom.addClass(B,A);this._elCurPrehighlightItem=B;}else{YAHOO.util.Dom.removeClass(B,A);}};YAHOO.widget.AutoComplete.prototype._updateValue=function(C){if(!this.suppressInputUpdate){var F=this._elTextbox;var E=(this.delimChar)?(this.delimChar[0]||this.delimChar):null;var B=C._sResultMatch;var D="";if(E){D=this._sPastSelections;D+=B+E;if(E!=" "){D+=" ";}}else{D=B;}F.value=D;if(F.type=="textarea"){F.scrollTop=F.scrollHeight;}var A=F.value.length;this._selectText(F,A,A);this._elCurListItem=C;}};YAHOO.widget.AutoComplete.prototype._selectItem=function(A){this._bItemSelected=true;this._updateValue(A);this._sPastSelections=this._elTextbox.value;this._clearInterval();this.itemSelectEvent.fire(this,A,A._oResultData);this._toggleContainer(false);};YAHOO.widget.AutoComplete.prototype._jumpSelection=function(){if(this._elCurListItem){this._selectItem(this._elCurListItem);}else{this._toggleContainer(false);}};YAHOO.widget.AutoComplete.prototype._moveSelection=function(G){if(this._bContainerOpen){var H=this._elCurListItem,D=-1;if(H){D=H._nItemIndex;}var E=(G==40)?(D+1):(D-1);if(E<-2||E>=this._nDisplayedItems){return;}if(H){this._toggleHighlight(H,"from");this.itemArrowFromEvent.fire(this,H);}if(E==-1){if(this.delimChar){this._elTextbox.value=this._sPastSelections+this._sCurQuery;}else{this._elTextbox.value=this._sCurQuery;}return;}if(E==-2){this._toggleContainer(false);return;}var F=this._elList.childNodes[E],B=this._elContent,C=YAHOO.util.Dom.getStyle(B,"overflow"),I=YAHOO.util.Dom.getStyle(B,"overflowY"),A=((C=="auto")||(C=="scroll")||(I=="auto")||(I=="scroll"));if(A&&(E>-1)&&(E<this._nDisplayedItems)){if(G==40){if((F.offsetTop+F.offsetHeight)>(B.scrollTop+B.offsetHeight)){B.scrollTop=(F.offsetTop+F.offsetHeight)-B.offsetHeight;}else{if((F.offsetTop+F.offsetHeight)<B.scrollTop){B.scrollTop=F.offsetTop;}}}else{if(F.offsetTop<B.scrollTop){this._elContent.scrollTop=F.offsetTop;}else{if(F.offsetTop>(B.scrollTop+B.offsetHeight)){this._elContent.scrollTop=(F.offsetTop+F.offsetHeight)-B.offsetHeight;}}}}this._toggleHighlight(F,"to");this.itemArrowToEvent.fire(this,F);if(this.typeAhead){this._updateValue(F);}}};YAHOO.widget.AutoComplete.prototype._onContainerMouseover=function(A,C){var D=YAHOO.util.Event.getTarget(A);var B=D.nodeName.toLowerCase();while(D&&(B!="table")){switch(B){case"body":return;case"li":if(C.prehighlightClassName){C._togglePrehighlight(D,"mouseover");}else{C._toggleHighlight(D,"to");}C.itemMouseOverEvent.fire(C,D);break;case"div":if(YAHOO.util.Dom.hasClass(D,"yui-ac-container")){C._bOverContainer=true;return;}break;default:break;}D=D.parentNode;if(D){B=D.nodeName.toLowerCase();}}};YAHOO.widget.AutoComplete.prototype._onContainerMouseout=function(A,C){var D=YAHOO.util.Event.getTarget(A);var B=D.nodeName.toLowerCase();while(D&&(B!="table")){switch(B){case"body":return;case"li":if(C.prehighlightClassName){C._togglePrehighlight(D,"mouseout");}else{C._toggleHighlight(D,"from");}C.itemMouseOutEvent.fire(C,D);break;case"ul":C._toggleHighlight(C._elCurListItem,"to");break;case"div":if(YAHOO.util.Dom.hasClass(D,"yui-ac-container")){C._bOverContainer=false;return;}break;default:break;}D=D.parentNode;if(D){B=D.nodeName.toLowerCase();}}};YAHOO.widget.AutoComplete.prototype._onContainerClick=function(A,C){var D=YAHOO.util.Event.getTarget(A);var B=D.nodeName.toLowerCase();while(D&&(B!="table")){switch(B){case"body":return;case"li":C._toggleHighlight(D,"to");C._selectItem(D);return;default:break;}D=D.parentNode;if(D){B=D.nodeName.toLowerCase();}}};YAHOO.widget.AutoComplete.prototype._onContainerScroll=function(A,B){B._focus();};YAHOO.widget.AutoComplete.prototype._onContainerResize=function(A,B){B._toggleContainerHelpers(B._bContainerOpen);};YAHOO.widget.AutoComplete.prototype._onTextboxKeyDown=function(A,B){var C=A.keyCode;if(B._nTypeAheadDelayID!=-1){clearTimeout(B._nTypeAheadDelayID);}switch(C){case 9:if(!YAHOO.env.ua.opera&&(navigator.userAgent.toLowerCase().indexOf("mac")==-1)||(YAHOO.env.ua.webkit>420)){if(B._elCurListItem){if(B.delimChar&&(B._nKeyCode!=C)){if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);}}B._selectItem(B._elCurListItem);}else{B._toggleContainer(false);}}break;case 13:if(!YAHOO.env.ua.opera&&(navigator.userAgent.toLowerCase().indexOf("mac")==-1)||(YAHOO.env.ua.webkit>420)){if(B._elCurListItem){if(B._nKeyCode!=C){if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);}}B._selectItem(B._elCurListItem);}else{B._toggleContainer(false);}}break;case 27:B._toggleContainer(false);return;case 39:B._jumpSelection();break;case 38:if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);B._moveSelection(C);}break;case 40:if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);B._moveSelection(C);}break;default:B._bItemSelected=false;B._toggleHighlight(B._elCurListItem,"from");B.textboxKeyEvent.fire(B,C);break;}if(C===18){B._enableIntervalDetection();}B._nKeyCode=C;};YAHOO.widget.AutoComplete.prototype._onTextboxKeyPress=function(A,B){var C=A.keyCode;if(YAHOO.env.ua.opera||(navigator.userAgent.toLowerCase().indexOf("mac")!=-1)&&(YAHOO.env.ua.webkit<420)){switch(C){case 9:if(B._bContainerOpen){if(B.delimChar){YAHOO.util.Event.stopEvent(A);}if(B._elCurListItem){B._selectItem(B._elCurListItem);}else{B._toggleContainer(false);}}break;case 13:if(B._bContainerOpen){YAHOO.util.Event.stopEvent(A);if(B._elCurListItem){B._selectItem(B._elCurListItem);}else{B._toggleContainer(false);}}break;default:break;}}else{if(C==229){B._enableIntervalDetection();}}};YAHOO.widget.AutoComplete.prototype._onTextboxKeyUp=function(A,C){var B=this.value;C._initProps();var D=A.keyCode;if(C._isIgnoreKey(D)){return;
-}if(C._nDelayID!=-1){clearTimeout(C._nDelayID);}C._nDelayID=setTimeout(function(){C._sendQuery(B);},(C.queryDelay*1000));};YAHOO.widget.AutoComplete.prototype._onTextboxFocus=function(A,B){if(!B._bFocused){B._elTextbox.setAttribute("autocomplete","off");B._bFocused=true;B._sInitInputValue=B._elTextbox.value;B.textboxFocusEvent.fire(B);}};YAHOO.widget.AutoComplete.prototype._onTextboxBlur=function(A,C){if(!C._bOverContainer||(C._nKeyCode==9)){if(!C._bItemSelected){var B=C._textMatchesOption();if(!C._bContainerOpen||(C._bContainerOpen&&(B===null))){if(C.forceSelection){C._clearSelection();}else{C.unmatchedItemSelectEvent.fire(C,C._sCurQuery);}}else{if(C.forceSelection){C._selectItem(B);}}}C._clearInterval();C._bFocused=false;if(C._sInitInputValue!==C._elTextbox.value){C.textboxChangeEvent.fire(C);}C.textboxBlurEvent.fire(C);C._toggleContainer(false);}else{C._focus();}};YAHOO.widget.AutoComplete.prototype._onWindowUnload=function(A,B){if(B&&B._elTextbox&&B.allowBrowserAutocomplete){B._elTextbox.setAttribute("autocomplete","on");}};YAHOO.widget.AutoComplete.prototype.doBeforeSendQuery=function(A){return this.generateRequest(A);};YAHOO.widget.AutoComplete.prototype.getListItems=function(){var C=[],B=this._elList.childNodes;for(var A=B.length-1;A>=0;A--){C[A]=B[A];}return C;};YAHOO.widget.AutoComplete._cloneObject=function(D){if(!YAHOO.lang.isValue(D)){return D;}var F={};if(YAHOO.lang.isFunction(D)){F=D;}else{if(YAHOO.lang.isArray(D)){var E=[];for(var C=0,B=D.length;C<B;C++){E[C]=YAHOO.widget.AutoComplete._cloneObject(D[C]);}F=E;}else{if(YAHOO.lang.isObject(D)){for(var A in D){if(YAHOO.lang.hasOwnProperty(D,A)){if(YAHOO.lang.isValue(D[A])&&YAHOO.lang.isObject(D[A])||YAHOO.lang.isArray(D[A])){F[A]=YAHOO.widget.AutoComplete._cloneObject(D[A]);}else{F[A]=D[A];}}}}else{F=D;}}}return F;};YAHOO.register("autocomplete",YAHOO.widget.AutoComplete,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}if(C._nDelayID!=-1){clearTimeout(C._nDelayID);}C._nDelayID=setTimeout(function(){C._sendQuery(B);},(C.queryDelay*1000));};YAHOO.widget.AutoComplete.prototype._onTextboxFocus=function(A,B){if(!B._bFocused){B._elTextbox.setAttribute("autocomplete","off");B._bFocused=true;B._sInitInputValue=B._elTextbox.value;B.textboxFocusEvent.fire(B);}};YAHOO.widget.AutoComplete.prototype._onTextboxBlur=function(A,C){if(!C._bOverContainer||(C._nKeyCode==9)){if(!C._bItemSelected){var B=C._textMatchesOption();if(!C._bContainerOpen||(C._bContainerOpen&&(B===null))){if(C.forceSelection){C._clearSelection();}else{C.unmatchedItemSelectEvent.fire(C,C._sCurQuery);}}else{if(C.forceSelection){C._selectItem(B);}}}C._clearInterval();C._bFocused=false;if(C._sInitInputValue!==C._elTextbox.value){C.textboxChangeEvent.fire(C);}C.textboxBlurEvent.fire(C);C._toggleContainer(false);}else{C._focus();}};YAHOO.widget.AutoComplete.prototype._onWindowUnload=function(A,B){if(B&&B._elTextbox&&B.allowBrowserAutocomplete){B._elTextbox.setAttribute("autocomplete","on");}};YAHOO.widget.AutoComplete.prototype.doBeforeSendQuery=function(A){return this.generateRequest(A);};YAHOO.widget.AutoComplete.prototype.getListItems=function(){var C=[],B=this._elList.childNodes;for(var A=B.length-1;A>=0;A--){C[A]=B[A];}return C;};YAHOO.widget.AutoComplete._cloneObject=function(D){if(!YAHOO.lang.isValue(D)){return D;}var F={};if(YAHOO.lang.isFunction(D)){F=D;}else{if(YAHOO.lang.isArray(D)){var E=[];for(var C=0,B=D.length;C<B;C++){E[C]=YAHOO.widget.AutoComplete._cloneObject(D[C]);}F=E;}else{if(YAHOO.lang.isObject(D)){for(var A in D){if(YAHOO.lang.hasOwnProperty(D,A)){if(YAHOO.lang.isValue(D[A])&&YAHOO.lang.isObject(D[A])||YAHOO.lang.isArray(D[A])){F[A]=YAHOO.widget.AutoComplete._cloneObject(D[A]);}else{F[A]=D[A];}}}}else{F=D;}}}return F;};YAHOO.register("autocomplete",YAHOO.widget.AutoComplete,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/autocomplete/autocomplete.js b/build/autocomplete/autocomplete.js
index 04b8605..a92e9a5 100644
--- a/build/autocomplete/autocomplete.js
+++ b/build/autocomplete/autocomplete.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /////////////////////////////////////////////////////////////////////////////
 //
@@ -2963,4 +2963,4 @@ YAHOO.widget.AutoComplete._cloneObject = function(o) {
 
 
 
-YAHOO.register("autocomplete", YAHOO.widget.AutoComplete, {version: "2.8.1", build: "19"});
+YAHOO.register("autocomplete", YAHOO.widget.AutoComplete, {version: "2.8.2r1", build: "7"});
diff --git a/build/base/base-min.css b/build/base/base-min.css
index 6eaa260..c354440 100644
--- a/build/base/base-min.css
+++ b/build/base/base-min.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 body{margin:10px;}h1{font-size:138.5%;}h2{font-size:123.1%;}h3{font-size:108%;}h1,h2,h3{margin:1em 0;}h1,h2,h3,h4,h5,h6,strong,dt{font-weight:bold;}optgroup{font-weight:normal;}abbr,acronym{border-bottom:1px dotted #000;cursor:help;}em{font-style:italic;}del{text-decoration:line-through;}blockquote,ul,ol,dl{margin:1em;}ol,ul,dl{margin-left:2em;}ol li{list-style:decimal outside;}ul li{list-style:disc outside;}dl dd{margin-left:1em;}th,td{border:1px solid #000;padding:.5em;}th{font-weight:bold;text-align:center;}caption{margin-bottom:.5em;text-align:center;}sup{vertical-align:super;}sub{vertical-align:sub;}p,fieldset,table,pre{margin-bottom:1em;}button,input[type="checkbox"],input[type="radio"],input[type="reset"],input[type="submit"]{padding:1px;}
\ No newline at end of file
diff --git a/build/base/base.css b/build/base/base.css
index 95d63c1..57f3943 100644
--- a/build/base/base.css
+++ b/build/base/base.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * YUI Base
diff --git a/build/button/assets/button-core.css b/build/button/assets/button-core.css
index 8afb04f..22c3287 100644
--- a/build/button/assets/button-core.css
+++ b/build/button/assets/button-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-button  {
 
diff --git a/build/button/assets/skins/sam/button-skin.css b/build/button/assets/skins/sam/button-skin.css
index 3a385fd..9f3afe7 100644
--- a/build/button/assets/skins/sam/button-skin.css
+++ b/build/button/assets/skins/sam/button-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-button  {
 
diff --git a/build/button/assets/skins/sam/button.css b/build/button/assets/skins/sam/button.css
index 3fb0849..590c6f5 100644
--- a/build/button/assets/skins/sam/button.css
+++ b/build/button/assets/skins/sam/button.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-button{display:-moz-inline-box;display:inline-block;vertical-align:text-bottom;}.yui-button .first-child{display:block;*display:inline-block;}.yui-button button,.yui-button a{display:block;*display:inline-block;border:none;margin:0;}.yui-button button{background-color:transparent;*overflow:visible;cursor:pointer;}.yui-button a{text-decoration:none;}.yui-skin-sam .yui-button{border-width:1px 0;border-style:solid;border-color:#808080;background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;margin:auto .25em;}.yui-skin-sam .yui-button .first-child{border-width:0 1px;border-style:solid;border-color:#808080;margin:0 -1px;_margin:0;}.yui-skin-sam .yui-button button,.yui-skin-sam .yui-button a,.yui-skin-sam .yui-button a:visited{padding:0 10px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-button a{*line-height:1.875;*padding-bottom:1px;}.yui-skin-sam .yui-split-button button,.yui-skin-sam .yui-menu-button button{padding-right:20px;background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-button button{background-image:url(menu-button-arrow.png);}.yui-skin-sam .yui-split-button button{background-image:url(split-button-arrow.png);}.yui-skin-sam .yui-button-focus{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-focus .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-focus button{background-image:url(split-button-arrow-focus.png);}.yui-skin-sam .yui-button-hover{border-color:#7D98B8;background-position:0 -1300px;}.yui-skin-sam .yui-button-hover .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-hover button{background-image:url(split-button-arrow-hover.png);}.yui-skin-sam .yui-button-active{border-color:#7D98B8;background-position:0 -1700px;}.yui-skin-sam .yui-button-active .first-child{border-color:#7D98B8;}.yui-skin-sam .yui-split-button-activeoption{border-color:#808080;background-position:0 0;}.yui-skin-sam .yui-split-button-activeoption .first-child{border-color:#808080;}.yui-skin-sam .yui-split-button-activeoption button{background-image:url(split-button-arrow-active.png);}.yui-skin-sam .yui-radio-button-checked,.yui-skin-sam .yui-checkbox-button-checked{border-color:#304369;background-position:0 -1400px;}.yui-skin-sam .yui-radio-button-checked .first-child,.yui-skin-sam .yui-checkbox-button-checked .first-child{border-color:#304369;}.yui-skin-sam .yui-radio-button-checked button,.yui-skin-sam .yui-checkbox-button-checked button{color:#fff;}.yui-skin-sam .yui-button-disabled{border-color:#ccc;background-position:0 -1500px;}.yui-skin-sam .yui-button-disabled .first-child{border-color:#ccc;}.yui-skin-sam .yui-button-disabled button,.yui-skin-sam .yui-button-disabled a,.yui-skin-sam .yui-button-disabled a:visited{color:#A6A6A6;cursor:default;}.yui-skin-sam .yui-menu-button-disabled button{background-image:url(menu-button-arrow-disabled.png);}.yui-skin-sam .yui-split-button-disabled button{background-image:url(split-button-arrow-disabled.png);}
diff --git a/build/button/button-debug.js b/build/button/button-debug.js
index 51069cd..49689e3 100644
--- a/build/button/button-debug.js
+++ b/build/button/button-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
 * @module button
@@ -4691,4 +4691,4 @@ version: 2.8.1
     });
 
 })();
-YAHOO.register("button", YAHOO.widget.Button, {version: "2.8.1", build: "19"});
+YAHOO.register("button", YAHOO.widget.Button, {version: "2.8.2r1", build: "7"});
diff --git a/build/button/button-min.js b/build/button/button-min.js
index 31fb89d..fd32af9 100644
--- a/build/button/button-min.js
+++ b/build/button/button-min.js
@@ -2,10 +2,10 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var G=YAHOO.util.Dom,M=YAHOO.util.Event,I=YAHOO.lang,L=YAHOO.env.ua,B=YAHOO.widget.Overlay,J=YAHOO.widget.Menu,D={},K=null,E=null,C=null;function F(O,N,R,P){var S,Q;if(I.isString(O)&&I.isString(N)){if(L.ie){Q='<input type="'+O+'" name="'+N+'"';if(P){Q+=" checked";}Q+=">";S=document.createElement(Q);}else{S=document.createElement("input");S.name=N;S.type=O;if(P){S.checked=true;}}S.value=R;}return S;}function H(O,V){var N=O.nodeName.toUpperCase(),S=(this.CLASS_NAME_PREFIX+this.CSS_CLASS_NAME),T=this,U,P,Q;function W(X){if(!(X in V)){U=O.getAttributeNode(X);if(U&&("value" in U)){V[X]=U.value;}}}function R(){W("type");if(V.type=="button"){V.type="push";}if(!("disabled" in V)){V.disabled=O.disabled;}W("name");W("value");W("title");}switch(N){case"A":V.type="link";W("href");W("target");break;case"INPUT":R();if(!("checked" in V)){V.checked=O.checked;}break;case"BUTTON":R();P=O.parentNode.parentNode;if(G.hasClass(P,S+"-checked")){V.checked=true;}if(G.hasClass(P,S+"-disabled")){V.disabled=true;}O.removeAttribute("value");O.setAttribute("type","button");break;}O.removeAttribute("id");O.removeAttribute("name");if(!("tabindex" in V)){V.tabindex=O.tabIndex;}if(!("label" in V)){Q=N=="INPUT"?O.value:O.innerHTML;if(Q&&Q.length>0){V.label=Q;}}}function A(P){var O=P.attributes,N=O.srcelement,R=N.nodeName.toUpperCase(),Q=this;if(R==this.NODE_NAME){P.element=N;P.id=N.id;G.getElementsBy(function(S){switch(S.nodeName.toUpperCase()){case"BUTTON":case"A":case"INPUT":H.call(Q,S,O);break;}},"*",N);}else{switch(R){case"BUTTON":case"A":case"INPUT":H.call(this,N,O);break;}}}YAHOO.widget.Button=function(R,O){if(!B&&YAHOO.widget.Overlay){B=YAHOO.widget.Overlay;}if(!J&&YAHOO.widget.Menu){J=YAHOO.widget.Menu;}var Q=YAHOO.widget.Button.superclass.constructor,P,N;if(arguments.length==1&&!I.isString(R)&&!R.nodeName){if(!R.id){R.id=G.generateId();}Q.call(this,(this.createButtonElement(R.type)),R);}else{P={element:null,attributes:(O||{})};if(I.isString(R)){N=G.get(R);if(N){if(!P.attributes.id){P.attributes.id=R;}P.attributes.srcelement=N;A.call(this,P);if(!P.element){P.element=this.createButtonElement(P.attributes.type);}Q.call(this,P.element,P.attributes);}}else{if(R.nodeName){if(!P.attributes.id){if(R.id){P.attributes.id=R.id;}else{P.attributes.id=G.generateId();}}P.attributes.srcelement=R;A.call(this,P);if(!P.element){P.element=this.createButtonElement(P.attributes.type);}Q.call(this,P.element,P.attributes);}}}};YAHOO.extend(YAHOO.widget.Button,YAHOO.util.Element,{_button:null,_menu:null,_hiddenFields:null,_onclickAttributeValue:null,_activationKeyPressed:false,_activationButtonPressed:false,_hasKeyEventHandlers:false,_hasMouseEventHandlers:false,_nOptionRegionX:0,CLASS_NAME_PREFIX:"yui-",NODE_NAME:"SPAN",CHECK_ACTIVATION_KEYS:[32],ACTIVATION_KEYS:[13,32],OPTION_AREA_WIDTH:20,CSS_CLASS_NAME:"button",_setType:function(N){if(N=="split"){this.on("option",this._onOption);}},_setLabel:function(O){this._button.innerHTML=O;var P,N=L.gecko;if(N&&N<1.9&&G.inDocument(this.get("element"))){P=(this.CLASS_NAME_PREFIX+this.CSS_CLASS_NAME);this.removeClass(P);I.later(0,this,this.addClass,P);}},_setTabIndex:function(N){this._button.tabIndex=N;},_setTitle:function(N){if(this.get("type")!="link"){this._button.title=N;}},_setDisabled:function(N){if(this.get("type")!="link"){if(N){if(this._menu){this._menu.hide();}if(this.hasFocus()){this.blur();}this._button.setAttribute("disabled","disabled");this.addStateCSSClasses("disabled");this.removeStateCSSClasses("hover");this.removeStateCSSClasses("active");this.removeStateCSSClasses("focus");}else{this._button.removeAttribute("disabled");this.removeStateCSSClasses("disabled");}}},_setHref:function(N){if(this.get("type")=="link"){this._button.href=N;}},_setTarget:function(N){if(this.get("type")=="link"){this._button.setAttribute("target",N);}},_setChecked:function(N){var O=this.get("type");if(O=="checkbox"||O=="radio"){if(N){this.addStateCSSClasses("checked");}else{this.removeStateCSSClasses("checked");}}},_setMenu:function(U){var P=this.get("lazyloadmenu"),R=this.get("element"),N,W=false,X,O,Q;function V(){X.render(R.parentNode);this.removeListener("appendTo",V);}function T(){X.cfg.queueProperty("container",R.parentNode);this.removeListener("appendTo",T);}function S(){var Y;if(X){G.addClass(X.element,this.get("menuclassname"));G.addClass(X.element,this.CLASS_NAME_PREFIX+this.get("type")+"-button-menu");X.showEvent.subscribe(this._onMenuShow,null,this);X.hideEvent.subscribe(this._onMenuHide,null,this);X.renderEvent.subscribe(this._onMenuRender,null,this);if(J&&X instanceof J){if(P){Y=this.get("container");if(Y){X.cfg.queueProperty("container",Y);}else{this.on("appendTo",T);}}X.cfg.queueProperty("clicktohide",false);X.keyDownEvent.subscribe(this._onMenuKeyDown,this,true);X.subscribe("click",this._onMenuClick,this,true);this.on("selectedMenuItemChange",this._onSelectedMenuItemChange);Q=X.srcElement;if(Q&&Q.nodeName.toUpperCase()=="SELECT"){Q.style.display="none";Q.parentNode.removeChild(Q);}}else{if(B&&X instanceof B){if(!K){K=new YAHOO.widget.OverlayManager();}K.register(X);}}this._menu=X;if(!W&&!P){if(G.inDocument(R)){X.render(R.parentNode);}else{this.on("appendTo",V);}}}}if(B){if(J){N=J.prototype.CSS_CLASS_NAME;}if(U&&J&&(U instanceof J)){X=U;W=true;S.call(this);}else{if(B&&U&&(U instanceof B)){X=U;W=true;X.cfg.queueProperty("visible",false);S.call(this);}else{if(J&&I.isArray(U)){X=new J(G.generateId(),{lazyload:P,itemdata:U});this._menu=X;this.on("appendTo",S);}else{if(I.isString(U)){O=G.get(U);if(O){if(J&&G.hasClass(O,N)||O.nodeName.toUpperCase()=="SELECT"){X=new J(U,{lazyload:P});S.call(this);}else{if(B){X=new B(U,{visible:false});S.call(this);}}}}else{if(U&&U.nodeName){if(J&&G.hasClass(U,N)||U.nodeName.toUpperCase()=="SELECT"){X=new J(U,{lazyload:P});S.call(this);}else{if(B){if(!U.id){G.generateId(U);}X=new B(U,{visible:false});S.call(this);}}}}}}}}},_setOnClick:function(N){if(this._onclickAttributeValue&&(this._onclickAttributeValue!=N)){this.removeListener("click",this._onclickAttributeValue.fn);
 this._onclickAttributeValue=null;}if(!this._onclickAttributeValue&&I.isObject(N)&&I.isFunction(N.fn)){this.on("click",N.fn,N.obj,N.scope);this._onclickAttributeValue=N;}},_isActivationKey:function(N){var S=this.get("type"),O=(S=="checkbox"||S=="radio")?this.CHECK_ACTIVATION_KEYS:this.ACTIVATION_KEYS,Q=O.length,R=false,P;if(Q>0){P=Q-1;do{if(N==O[P]){R=true;break;}}while(P--);}return R;},_isSplitButtonOptionKey:function(P){var O=(M.getCharCode(P)==40);var N=function(Q){M.preventDefault(Q);this.removeListener("keypress",N);};if(O){if(L.opera){this.on("keypress",N);}M.preventDefault(P);}return O;},_addListenersToForm:function(){var T=this.getForm(),S=YAHOO.widget.Button.onFormKeyPress,R,N,Q,P,O;if(T){M.on(T,"reset",this._onFormReset,null,this);M.on(T,"submit",this._onFormSubmit,null,this);N=this.get("srcelement");if(this.get("type")=="submit"||(N&&N.type=="submit")){Q=M.getListeners(T,"keypress");R=false;if(Q){P=Q.length;if(P>0){O=P-1;do{if(Q[O].fn==S){R=true;break;}}while(O--);}}if(!R){M.on(T,"keypress",S);}}}},_showMenu:function(R){if(YAHOO.widget.MenuManager){YAHOO.widget.MenuManager.hideVisible();}if(K){K.hideAll();}var N=this._menu,Q=this.get("menualignment"),P=this.get("focusmenu"),O;if(this._renderedMenu){N.cfg.setProperty("context",[this.get("element"),Q[0],Q[1]]);N.cfg.setProperty("preventcontextoverlap",true);N.cfg.setProperty("constraintoviewport",true);}else{N.cfg.queueProperty("context",[this.get("element"),Q[0],Q[1]]);N.cfg.queueProperty("preventcontextoverlap",true);N.cfg.queueProperty("constraintoviewport",true);}this.focus();if(J&&N&&(N instanceof J)){O=N.focus;N.focus=function(){};if(this._renderedMenu){N.cfg.setProperty("minscrollheight",this.get("menuminscrollheight"));N.cfg.setProperty("maxheight",this.get("menumaxheight"));}else{N.cfg.queueProperty("minscrollheight",this.get("menuminscrollheight"));N.cfg.queueProperty("maxheight",this.get("menumaxheight"));}N.show();N.focus=O;N.align();if(R.type=="mousedown"){M.stopPropagation(R);}if(P){N.focus();}}else{if(B&&N&&(N instanceof B)){if(!this._renderedMenu){N.render(this.get("element").parentNode);}N.show();N.align();}}},_hideMenu:function(){var N=this._menu;if(N){N.hide();}},_onMouseOver:function(O){var Q=this.get("type"),N,P;if(Q==="split"){N=this.get("element");P=(G.getX(N)+(N.offsetWidth-this.OPTION_AREA_WIDTH));this._nOptionRegionX=P;}if(!this._hasMouseEventHandlers){if(Q==="split"){this.on("mousemove",this._onMouseMove);}this.on("mouseout",this._onMouseOut);this._hasMouseEventHandlers=true;}this.addStateCSSClasses("hover");if(Q==="split"&&(M.getPageX(O)>P)){this.addStateCSSClasses("hoveroption");}if(this._activationButtonPressed){this.addStateCSSClasses("active");}if(this._bOptionPressed){this.addStateCSSClasses("activeoption");}if(this._activationButtonPressed||this._bOptionPressed){M.removeListener(document,"mouseup",this._onDocumentMouseUp);}},_onMouseMove:function(N){var O=this._nOptionRegionX;if(O){if(M.getPageX(N)>O){this.addStateCSSClasses("hoveroption");}else{this.removeStateCSSClasses("hoveroption");}}},_onMouseOut:function(N){var O=this.get("type");this.removeStateCSSClasses("hover");if(O!="menu"){this.removeStateCSSClasses("active");}if(this._activationButtonPressed||this._bOptionPressed){M.on(document,"mouseup",this._onDocumentMouseUp,null,this);}if(O==="split"&&(M.getPageX(N)>this._nOptionRegionX)){this.removeStateCSSClasses("hoveroption");}},_onDocumentMouseUp:function(P){this._activationButtonPressed=false;this._bOptionPressed=false;var Q=this.get("type"),N,O;if(Q=="menu"||Q=="split"){N=M.getTarget(P);O=this._menu.element;if(N!=O&&!G.isAncestor(O,N)){this.removeStateCSSClasses((Q=="menu"?"active":"activeoption"));this._hideMenu();}}M.removeListener(document,"mouseup",this._onDocumentMouseUp);},_onMouseDown:function(P){var Q,O=true;function N(){this._hideMenu();this.removeListener("mouseup",N);}if((P.which||P.button)==1){if(!this.hasFocus()){this.focus();}Q=this.get("type");if(Q=="split"){if(M.getPageX(P)>this._nOptionRegionX){this.fireEvent("option",P);O=false;}else{this.addStateCSSClasses("active");this._activationButtonPressed=true;}}else{if(Q=="menu"){if(this.isActive()){this._hideMenu();this._activationButtonPressed=false;}else{this._showMenu(P);this._activationButtonPressed=true;}}else{this.addStateCSSClasses("active");this._activationButtonPressed=true;}}if(Q=="split"||Q=="menu"){this._hideMenuTimer=I.later(250,this,this.on,["mouseup",N]);}}return O;},_onMouseUp:function(P){var Q=this.get("type"),N=this._hideMenuTimer,O=true;if(N){N.cancel();}if(Q=="checkbox"||Q=="radio"){this.set("checked",!(this.get("checked")));}this._activationButtonPressed=false;if(Q!="menu"){this.removeStateCSSClasses("active");}if(Q=="split"&&M.getPageX(P)>this._nOptionRegionX){O=false;}return O;},_onFocus:function(O){var N;this.addStateCSSClasses("focus");if(this._activationKeyPressed){this.addStateCSSClasses("active");}C=this;if(!this._hasKeyEventHandlers){N=this._button;M.on(N,"blur",this._onBlur,null,this);M.on(N,"keydown",this._onKeyDown,null,this);M.on(N,"keyup",this._onKeyUp,null,this);this._hasKeyEventHandlers=true;}this.fireEvent("focus",O);},_onBlur:function(N){this.removeStateCSSClasses("focus");if(this.get("type")!="menu"){this.removeStateCSSClasses("active");}if(this._activationKeyPressed){M.on(document,"keyup",this._onDocumentKeyUp,null,this);}C=null;this.fireEvent("blur",N);},_onDocumentKeyUp:function(N){if(this._isActivationKey(M.getCharCode(N))){this._activationKeyPressed=false;M.removeListener(document,"keyup",this._onDocumentKeyUp);}},_onKeyDown:function(O){var N=this._menu;if(this.get("type")=="split"&&this._isSplitButtonOptionKey(O)){this.fireEvent("option",O);}else{if(this._isActivationKey(M.getCharCode(O))){if(this.get("type")=="menu"){this._showMenu(O);}else{this._activationKeyPressed=true;this.addStateCSSClasses("active");}}}if(N&&N.cfg.getProperty("visible")&&M.getCharCode(O)==27){N.hide();this.focus();}},_onKeyUp:function(N){var O;if(this._isActivationKey(M.getCharCode(N))){O=this.get("type");if(O=="checkbox"||O=="radio"){this.set("checked",!(this.get("checked")));
 }this._activationKeyPressed=false;if(this.get("type")!="menu"){this.removeStateCSSClasses("active");}}},_onClick:function(P){var R=this.get("type"),Q,N,O;switch(R){case"submit":if(P.returnValue!==false){this.submitForm();}break;case"reset":Q=this.getForm();if(Q){Q.reset();}break;case"split":if(this._nOptionRegionX>0&&(M.getPageX(P)>this._nOptionRegionX)){O=false;}else{this._hideMenu();N=this.get("srcelement");if(N&&N.type=="submit"&&P.returnValue!==false){this.submitForm();}}break;}return O;},_onDblClick:function(O){var N=true;if(this.get("type")=="split"&&M.getPageX(O)>this._nOptionRegionX){N=false;}return N;},_onAppendTo:function(N){I.later(0,this,this._addListenersToForm);},_onFormReset:function(O){var P=this.get("type"),N=this._menu;if(P=="checkbox"||P=="radio"){this.resetValue("checked");}if(J&&N&&(N instanceof J)){this.resetValue("selectedMenuItem");}},_onFormSubmit:function(N){this.createHiddenFields();},_onDocumentMouseDown:function(Q){var N=M.getTarget(Q),P=this.get("element"),O=this._menu.element;if(N!=P&&!G.isAncestor(P,N)&&N!=O&&!G.isAncestor(O,N)){this._hideMenu();if(L.ie&&N.focus){N.setActive();}M.removeListener(document,"mousedown",this._onDocumentMouseDown);}},_onOption:function(N){if(this.hasClass(this.CLASS_NAME_PREFIX+"split-button-activeoption")){this._hideMenu();this._bOptionPressed=false;}else{this._showMenu(N);this._bOptionPressed=true;}},_onMenuShow:function(N){M.on(document,"mousedown",this._onDocumentMouseDown,null,this);var O=(this.get("type")=="split")?"activeoption":"active";this.addStateCSSClasses(O);},_onMenuHide:function(N){var O=(this.get("type")=="split")?"activeoption":"active";this.removeStateCSSClasses(O);if(this.get("type")=="split"){this._bOptionPressed=false;}},_onMenuKeyDown:function(P,O){var N=O[0];if(M.getCharCode(N)==27){this.focus();if(this.get("type")=="split"){this._bOptionPressed=false;}}},_onMenuRender:function(P){var S=this.get("element"),O=S.parentNode,N=this._menu,R=N.element,Q=N.srcElement,T;if(O!=R.parentNode){O.appendChild(R);}this._renderedMenu=true;if(Q&&Q.nodeName.toLowerCase()==="select"&&Q.value){T=N.getItem(Q.selectedIndex);this.set("selectedMenuItem",T,true);this._onSelectedMenuItemChange({newValue:T});}},_onMenuClick:function(O,N){var Q=N[1],P;if(Q){this.set("selectedMenuItem",Q);P=this.get("srcelement");if(P&&P.type=="submit"){this.submitForm();}this._hideMenu();}},_onSelectedMenuItemChange:function(O){var P=O.prevValue,Q=O.newValue,N=this.CLASS_NAME_PREFIX;if(P){G.removeClass(P.element,(N+"button-selectedmenuitem"));}if(Q){G.addClass(Q.element,(N+"button-selectedmenuitem"));}},_onLabelClick:function(N){this.focus();var O=this.get("type");if(O=="radio"||O=="checkbox"){this.set("checked",(!this.get("checked")));}},createButtonElement:function(N){var P=this.NODE_NAME,O=document.createElement(P);O.innerHTML="<"+P+' class="first-child">'+(N=="link"?"<a></a>":'<button type="button"></button>')+"</"+P+">";return O;},addStateCSSClasses:function(O){var P=this.get("type"),N=this.CLASS_NAME_PREFIX;if(I.isString(O)){if(O!="activeoption"&&O!="hoveroption"){this.addClass(N+this.CSS_CLASS_NAME+("-"+O));}this.addClass(N+P+("-button-"+O));}},removeStateCSSClasses:function(O){var P=this.get("type"),N=this.CLASS_NAME_PREFIX;if(I.isString(O)){this.removeClass(N+this.CSS_CLASS_NAME+("-"+O));this.removeClass(N+P+("-button-"+O));}},createHiddenFields:function(){this.removeHiddenFields();var V=this.getForm(),Z,O,S,X,Y,T,U,N,R,W,P,Q=false;if(V&&!this.get("disabled")){O=this.get("type");S=(O=="checkbox"||O=="radio");if((S&&this.get("checked"))||(E==this)){Z=F((S?O:"hidden"),this.get("name"),this.get("value"),this.get("checked"));if(Z){if(S){Z.style.display="none";}V.appendChild(Z);}}X=this._menu;if(J&&X&&(X instanceof J)){Y=this.get("selectedMenuItem");P=X.srcElement;Q=(P&&P.nodeName.toUpperCase()=="SELECT");if(Y){U=(Y.value===null||Y.value==="")?Y.cfg.getProperty("text"):Y.value;T=this.get("name");if(Q){W=P.name;}else{if(T){W=(T+"_options");}}if(U&&W){N=F("hidden",W,U);V.appendChild(N);}}else{if(Q){N=V.appendChild(P);}}}if(Z&&N){this._hiddenFields=[Z,N];}else{if(!Z&&N){this._hiddenFields=N;}else{if(Z&&!N){this._hiddenFields=Z;}}}R=this._hiddenFields;}return R;},removeHiddenFields:function(){var Q=this._hiddenFields,O,P;function N(R){if(G.inDocument(R)){R.parentNode.removeChild(R);}}if(Q){if(I.isArray(Q)){O=Q.length;if(O>0){P=O-1;do{N(Q[P]);}while(P--);}}else{N(Q);}this._hiddenFields=null;}},submitForm:function(){var Q=this.getForm(),P=this.get("srcelement"),O=false,N;if(Q){if(this.get("type")=="submit"||(P&&P.type=="submit")){E=this;}if(L.ie){O=Q.fireEvent("onsubmit");}else{N=document.createEvent("HTMLEvents");N.initEvent("submit",true,true);O=Q.dispatchEvent(N);}if((L.ie||L.webkit)&&O){Q.submit();}}return O;},init:function(P,d){var V=d.type=="link"?"a":"button",a=d.srcelement,S=P.getElementsByTagName(V)[0],U;if(!S){U=P.getElementsByTagName("input")[0];if(U){S=document.createElement("button");S.setAttribute("type","button");U.parentNode.replaceChild(S,U);}}this._button=S;YAHOO.widget.Button.superclass.init.call(this,P,d);var T=this.get("id"),Z=T+"-button";S.id=Z;var X,Q;var e=function(f){return(f.htmlFor===T);};var c=function(){Q.setAttribute((L.ie?"htmlFor":"for"),Z);};if(a&&this.get("type")!="link"){X=G.getElementsBy(e,"label");if(I.isArray(X)&&X.length>0){Q=X[0];}}D[T]=this;var b=this.CLASS_NAME_PREFIX;this.addClass(b+this.CSS_CLASS_NAME);this.addClass(b+this.get("type")+"-button");M.on(this._button,"focus",this._onFocus,null,this);this.on("mouseover",this._onMouseOver);this.on("mousedown",this._onMouseDown);this.on("mouseup",this._onMouseUp);this.on("click",this._onClick);var R=this.get("onclick");this.set("onclick",null);this.set("onclick",R);this.on("dblclick",this._onDblClick);var O;if(Q){if(this.get("replaceLabel")){this.set("label",Q.innerHTML);O=Q.parentNode;O.removeChild(Q);}else{this.on("appendTo",c);M.on(Q,"click",this._onLabelClick,null,this);this._label=Q;}}this.on("appendTo",this._onAppendTo);var N=this.get("container"),Y=this.get("element"),W=G.inDocument(Y);
 if(N){if(a&&a!=Y){O=a.parentNode;if(O){O.removeChild(a);}}if(I.isString(N)){M.onContentReady(N,this.appendTo,N,this);}else{this.on("init",function(){I.later(0,this,this.appendTo,N);});}}else{if(!W&&a&&a!=Y){O=a.parentNode;if(O){this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:O});O.replaceChild(Y,a);this.fireEvent("appendTo",{type:"appendTo",target:O});}}else{if(this.get("type")!="link"&&W&&a&&a==Y){this._addListenersToForm();}}}this.fireEvent("init",{type:"init",target:this});},initAttributes:function(O){var N=O||{};YAHOO.widget.Button.superclass.initAttributes.call(this,N);this.setAttributeConfig("type",{value:(N.type||"push"),validator:I.isString,writeOnce:true,method:this._setType});this.setAttributeConfig("label",{value:N.label,validator:I.isString,method:this._setLabel});this.setAttributeConfig("value",{value:N.value});this.setAttributeConfig("name",{value:N.name,validator:I.isString});this.setAttributeConfig("tabindex",{value:N.tabindex,validator:I.isNumber,method:this._setTabIndex});this.configureAttribute("title",{value:N.title,validator:I.isString,method:this._setTitle});this.setAttributeConfig("disabled",{value:(N.disabled||false),validator:I.isBoolean,method:this._setDisabled});this.setAttributeConfig("href",{value:N.href,validator:I.isString,method:this._setHref});this.setAttributeConfig("target",{value:N.target,validator:I.isString,method:this._setTarget});this.setAttributeConfig("checked",{value:(N.checked||false),validator:I.isBoolean,method:this._setChecked});this.setAttributeConfig("container",{value:N.container,writeOnce:true});this.setAttributeConfig("srcelement",{value:N.srcelement,writeOnce:true});this.setAttributeConfig("menu",{value:null,method:this._setMenu,writeOnce:true});this.setAttributeConfig("lazyloadmenu",{value:(N.lazyloadmenu===false?false:true),validator:I.isBoolean,writeOnce:true});this.setAttributeConfig("menuclassname",{value:(N.menuclassname||(this.CLASS_NAME_PREFIX+"button-menu")),validator:I.isString,method:this._setMenuClassName,writeOnce:true});this.setAttributeConfig("menuminscrollheight",{value:(N.menuminscrollheight||90),validator:I.isNumber});this.setAttributeConfig("menumaxheight",{value:(N.menumaxheight||0),validator:I.isNumber});this.setAttributeConfig("menualignment",{value:(N.menualignment||["tl","bl"]),validator:I.isArray});this.setAttributeConfig("selectedMenuItem",{value:null});this.setAttributeConfig("onclick",{value:N.onclick,method:this._setOnClick});this.setAttributeConfig("focusmenu",{value:(N.focusmenu===false?false:true),validator:I.isBoolean});this.setAttributeConfig("replaceLabel",{value:false,validator:I.isBoolean,writeOnce:true});},focus:function(){if(!this.get("disabled")){this._button.focus();}},blur:function(){if(!this.get("disabled")){this._button.blur();}},hasFocus:function(){return(C==this);},isActive:function(){return this.hasClass(this.CLASS_NAME_PREFIX+this.CSS_CLASS_NAME+"-active");},getMenu:function(){return this._menu;},getForm:function(){var N=this._button,O;if(N){O=N.form;}return O;},getHiddenFields:function(){return this._hiddenFields;},destroy:function(){var P=this.get("element"),N=this._menu,T=this._label,O,S;if(N){if(K&&K.find(N)){K.remove(N);}N.destroy();}M.purgeElement(P);M.purgeElement(this._button);M.removeListener(document,"mouseup",this._onDocumentMouseUp);M.removeListener(document,"keyup",this._onDocumentKeyUp);M.removeListener(document,"mousedown",this._onDocumentMouseDown);if(T){M.removeListener(T,"click",this._onLabelClick);O=T.parentNode;O.removeChild(T);}var Q=this.getForm();if(Q){M.removeListener(Q,"reset",this._onFormReset);M.removeListener(Q,"submit",this._onFormSubmit);}this.unsubscribeAll();O=P.parentNode;if(O){O.removeChild(P);}delete D[this.get("id")];var R=(this.CLASS_NAME_PREFIX+this.CSS_CLASS_NAME);S=G.getElementsByClassName(R,this.NODE_NAME,Q);if(I.isArray(S)&&S.length===0){M.removeListener(Q,"keypress",YAHOO.widget.Button.onFormKeyPress);}},fireEvent:function(O,N){var P=arguments[0];if(this.DOM_EVENTS[P]&&this.get("disabled")){return false;}return YAHOO.widget.Button.superclass.fireEvent.apply(this,arguments);},toString:function(){return("Button "+this.get("id"));}});YAHOO.widget.Button.onFormKeyPress=function(R){var P=M.getTarget(R),S=M.getCharCode(R),Q=P.nodeName&&P.nodeName.toUpperCase(),N=P.type,T=false,V,X,O,W;function U(a){var Z,Y;switch(a.nodeName.toUpperCase()){case"INPUT":case"BUTTON":if(a.type=="submit"&&!a.disabled){if(!T&&!O){O=a;}}break;default:Z=a.id;if(Z){V=D[Z];if(V){T=true;if(!V.get("disabled")){Y=V.get("srcelement");if(!X&&(V.get("type")=="submit"||(Y&&Y.type=="submit"))){X=V;}}}}break;}}if(S==13&&((Q=="INPUT"&&(N=="text"||N=="password"||N=="checkbox"||N=="radio"||N=="file"))||Q=="SELECT")){G.getElementsBy(U,"*",this);if(O){O.focus();}else{if(!O&&X){M.preventDefault(R);if(L.ie){X.get("element").fireEvent("onclick");}else{W=document.createEvent("HTMLEvents");W.initEvent("click",true,true);if(L.gecko<1.9){X.fireEvent("click",W);}else{X.get("element").dispatchEvent(W);}}}}}};YAHOO.widget.Button.addHiddenFieldsToForm=function(N){var R=YAHOO.widget.Button.prototype,T=G.getElementsByClassName((R.CLASS_NAME_PREFIX+R.CSS_CLASS_NAME),"*",N),Q=T.length,S,O,P;if(Q>0){for(P=0;P<Q;P++){O=T[P].id;if(O){S=D[O];if(S){S.createHiddenFields();}}}}};YAHOO.widget.Button.getButton=function(N){return D[N];};})();(function(){var C=YAHOO.util.Dom,B=YAHOO.util.Event,D=YAHOO.lang,A=YAHOO.widget.Button,E={};YAHOO.widget.ButtonGroup=function(J,H){var I=YAHOO.widget.ButtonGroup.superclass.constructor,K,G,F;if(arguments.length==1&&!D.isString(J)&&!J.nodeName){if(!J.id){F=C.generateId();J.id=F;}I.call(this,(this._createGroupElement()),J);}else{if(D.isString(J)){G=C.get(J);if(G){if(G.nodeName.toUpperCase()==this.NODE_NAME){I.call(this,G,H);}}}else{K=J.nodeName.toUpperCase();if(K&&K==this.NODE_NAME){if(!J.id){J.id=C.generateId();}I.call(this,J,H);}}}};YAHOO.extend(YAHOO.widget.ButtonGroup,YAHOO.util.Element,{_buttons:null,NODE_NAME:"DIV",CLASS_NAME_PREFIX:"yui-",CSS_CLASS_NAME:"buttongroup",_createGroupElement:function(){var F=document.createElement(this.NODE_NAME);
-return F;},_setDisabled:function(G){var H=this.getCount(),F;if(H>0){F=H-1;do{this._buttons[F].set("disabled",G);}while(F--);}},_onKeyDown:function(K){var G=B.getTarget(K),I=B.getCharCode(K),H=G.parentNode.parentNode.id,J=E[H],F=-1;if(I==37||I==38){F=(J.index===0)?(this._buttons.length-1):(J.index-1);}else{if(I==39||I==40){F=(J.index===(this._buttons.length-1))?0:(J.index+1);}}if(F>-1){this.check(F);this.getButton(F).focus();}},_onAppendTo:function(H){var I=this._buttons,G=I.length,F;for(F=0;F<G;F++){I[F].appendTo(this.get("element"));}},_onButtonCheckedChange:function(G,F){var I=G.newValue,H=this.get("checkedButton");if(I&&H!=F){if(H){H.set("checked",false,true);}this.set("checkedButton",F);this.set("value",F.get("value"));}else{if(H&&!H.set("checked")){H.set("checked",true,true);}}},init:function(I,H){this._buttons=[];YAHOO.widget.ButtonGroup.superclass.init.call(this,I,H);this.addClass(this.CLASS_NAME_PREFIX+this.CSS_CLASS_NAME);var K=(YAHOO.widget.Button.prototype.CLASS_NAME_PREFIX+"radio-button"),J=this.getElementsByClassName(K);if(J.length>0){this.addButtons(J);}function F(L){return(L.type=="radio");}J=C.getElementsBy(F,"input",this.get("element"));if(J.length>0){this.addButtons(J);}this.on("keydown",this._onKeyDown);this.on("appendTo",this._onAppendTo);var G=this.get("container");if(G){if(D.isString(G)){B.onContentReady(G,function(){this.appendTo(G);},null,this);}else{this.appendTo(G);}}},initAttributes:function(G){var F=G||{};YAHOO.widget.ButtonGroup.superclass.initAttributes.call(this,F);this.setAttributeConfig("name",{value:F.name,validator:D.isString});this.setAttributeConfig("disabled",{value:(F.disabled||false),validator:D.isBoolean,method:this._setDisabled});this.setAttributeConfig("value",{value:F.value});this.setAttributeConfig("container",{value:F.container,writeOnce:true});this.setAttributeConfig("checkedButton",{value:null});},addButton:function(J){var L,K,G,F,H,I;if(J instanceof A&&J.get("type")=="radio"){L=J;}else{if(!D.isString(J)&&!J.nodeName){J.type="radio";L=new A(J);}else{L=new A(J,{type:"radio"});}}if(L){F=this._buttons.length;H=L.get("name");I=this.get("name");L.index=F;this._buttons[F]=L;E[L.get("id")]=L;if(H!=I){L.set("name",I);}if(this.get("disabled")){L.set("disabled",true);}if(L.get("checked")){this.set("checkedButton",L);}K=L.get("element");G=this.get("element");if(K.parentNode!=G){G.appendChild(K);}L.on("checkedChange",this._onButtonCheckedChange,L,this);}return L;},addButtons:function(G){var H,I,J,F;if(D.isArray(G)){H=G.length;J=[];if(H>0){for(F=0;F<H;F++){I=this.addButton(G[F]);if(I){J[J.length]=I;}}}}return J;},removeButton:function(H){var I=this.getButton(H),G,F;if(I){this._buttons.splice(H,1);delete E[I.get("id")];I.removeListener("checkedChange",this._onButtonCheckedChange);I.destroy();G=this._buttons.length;if(G>0){F=this._buttons.length-1;do{this._buttons[F].index=F;}while(F--);}}},getButton:function(F){return this._buttons[F];},getButtons:function(){return this._buttons;},getCount:function(){return this._buttons.length;},focus:function(H){var I,G,F;if(D.isNumber(H)){I=this._buttons[H];if(I){I.focus();}}else{G=this.getCount();for(F=0;F<G;F++){I=this._buttons[F];if(!I.get("disabled")){I.focus();break;}}}},check:function(F){var G=this.getButton(F);if(G){G.set("checked",true);}},destroy:function(){var I=this._buttons.length,H=this.get("element"),F=H.parentNode,G;if(I>0){G=this._buttons.length-1;do{this._buttons[G].destroy();}while(G--);}B.purgeElement(H);F.removeChild(H);},toString:function(){return("ButtonGroup "+this.get("id"));}});})();YAHOO.register("button",YAHOO.widget.Button,{version:"2.8.1",build:"19"});
\ No newline at end of file
+return F;},_setDisabled:function(G){var H=this.getCount(),F;if(H>0){F=H-1;do{this._buttons[F].set("disabled",G);}while(F--);}},_onKeyDown:function(K){var G=B.getTarget(K),I=B.getCharCode(K),H=G.parentNode.parentNode.id,J=E[H],F=-1;if(I==37||I==38){F=(J.index===0)?(this._buttons.length-1):(J.index-1);}else{if(I==39||I==40){F=(J.index===(this._buttons.length-1))?0:(J.index+1);}}if(F>-1){this.check(F);this.getButton(F).focus();}},_onAppendTo:function(H){var I=this._buttons,G=I.length,F;for(F=0;F<G;F++){I[F].appendTo(this.get("element"));}},_onButtonCheckedChange:function(G,F){var I=G.newValue,H=this.get("checkedButton");if(I&&H!=F){if(H){H.set("checked",false,true);}this.set("checkedButton",F);this.set("value",F.get("value"));}else{if(H&&!H.set("checked")){H.set("checked",true,true);}}},init:function(I,H){this._buttons=[];YAHOO.widget.ButtonGroup.superclass.init.call(this,I,H);this.addClass(this.CLASS_NAME_PREFIX+this.CSS_CLASS_NAME);var K=(YAHOO.widget.Button.prototype.CLASS_NAME_PREFIX+"radio-button"),J=this.getElementsByClassName(K);if(J.length>0){this.addButtons(J);}function F(L){return(L.type=="radio");}J=C.getElementsBy(F,"input",this.get("element"));if(J.length>0){this.addButtons(J);}this.on("keydown",this._onKeyDown);this.on("appendTo",this._onAppendTo);var G=this.get("container");if(G){if(D.isString(G)){B.onContentReady(G,function(){this.appendTo(G);},null,this);}else{this.appendTo(G);}}},initAttributes:function(G){var F=G||{};YAHOO.widget.ButtonGroup.superclass.initAttributes.call(this,F);this.setAttributeConfig("name",{value:F.name,validator:D.isString});this.setAttributeConfig("disabled",{value:(F.disabled||false),validator:D.isBoolean,method:this._setDisabled});this.setAttributeConfig("value",{value:F.value});this.setAttributeConfig("container",{value:F.container,writeOnce:true});this.setAttributeConfig("checkedButton",{value:null});},addButton:function(J){var L,K,G,F,H,I;if(J instanceof A&&J.get("type")=="radio"){L=J;}else{if(!D.isString(J)&&!J.nodeName){J.type="radio";L=new A(J);}else{L=new A(J,{type:"radio"});}}if(L){F=this._buttons.length;H=L.get("name");I=this.get("name");L.index=F;this._buttons[F]=L;E[L.get("id")]=L;if(H!=I){L.set("name",I);}if(this.get("disabled")){L.set("disabled",true);}if(L.get("checked")){this.set("checkedButton",L);}K=L.get("element");G=this.get("element");if(K.parentNode!=G){G.appendChild(K);}L.on("checkedChange",this._onButtonCheckedChange,L,this);}return L;},addButtons:function(G){var H,I,J,F;if(D.isArray(G)){H=G.length;J=[];if(H>0){for(F=0;F<H;F++){I=this.addButton(G[F]);if(I){J[J.length]=I;}}}}return J;},removeButton:function(H){var I=this.getButton(H),G,F;if(I){this._buttons.splice(H,1);delete E[I.get("id")];I.removeListener("checkedChange",this._onButtonCheckedChange);I.destroy();G=this._buttons.length;if(G>0){F=this._buttons.length-1;do{this._buttons[F].index=F;}while(F--);}}},getButton:function(F){return this._buttons[F];},getButtons:function(){return this._buttons;},getCount:function(){return this._buttons.length;},focus:function(H){var I,G,F;if(D.isNumber(H)){I=this._buttons[H];if(I){I.focus();}}else{G=this.getCount();for(F=0;F<G;F++){I=this._buttons[F];if(!I.get("disabled")){I.focus();break;}}}},check:function(F){var G=this.getButton(F);if(G){G.set("checked",true);}},destroy:function(){var I=this._buttons.length,H=this.get("element"),F=H.parentNode,G;if(I>0){G=this._buttons.length-1;do{this._buttons[G].destroy();}while(G--);}B.purgeElement(H);F.removeChild(H);},toString:function(){return("ButtonGroup "+this.get("id"));}});})();YAHOO.register("button",YAHOO.widget.Button,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/button/button.js b/build/button/button.js
index 1d2cef3..ee1f142 100644
--- a/build/button/button.js
+++ b/build/button/button.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
 * @module button
@@ -4630,4 +4630,4 @@ version: 2.8.1
     });
 
 })();
-YAHOO.register("button", YAHOO.widget.Button, {version: "2.8.1", build: "19"});
+YAHOO.register("button", YAHOO.widget.Button, {version: "2.8.2r1", build: "7"});
diff --git a/build/calendar/assets/calendar-core.css b/build/calendar/assets/calendar-core.css
index ea14a1e..f516cd7 100644
--- a/build/calendar/assets/calendar-core.css
+++ b/build/calendar/assets/calendar-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * CORE
diff --git a/build/calendar/assets/calendar.css b/build/calendar/assets/calendar.css
index 9cd4474..03fbd95 100644
--- a/build/calendar/assets/calendar.css
+++ b/build/calendar/assets/calendar.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-calcontainer {
 	position:relative;
diff --git a/build/calendar/assets/skins/sam/calendar-skin.css b/build/calendar/assets/skins/sam/calendar-skin.css
index c96cf9f..e3f989a 100644
--- a/build/calendar/assets/skins/sam/calendar-skin.css
+++ b/build/calendar/assets/skins/sam/calendar-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * SAM
diff --git a/build/calendar/assets/skins/sam/calendar.css b/build/calendar/assets/skins/sam/calendar.css
index b9b1f37..cfeefd7 100644
--- a/build/calendar/assets/skins/sam/calendar.css
+++ b/build/calendar/assets/skins/sam/calendar.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-calcontainer{position:relative;float:left;_overflow:hidden;}.yui-calcontainer iframe{position:absolute;border:none;margin:0;padding:0;z-index:0;width:100%;height:100%;left:0;top:0;}.yui-calcontainer iframe.fixedsize{width:50em;height:50em;top:-1px;left:-1px;}.yui-calcontainer.multi .groupcal{z-index:1;float:left;position:relative;}.yui-calcontainer .title{position:relative;z-index:1;}.yui-calcontainer .close-icon{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar{position:relative;}.yui-calendar .calnavleft{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar .calnavright{position:absolute;z-index:1;text-indent:-10000em;overflow:hidden;}.yui-calendar .calheader{position:relative;width:100%;text-align:center;}.yui-calcontainer .yui-cal-nav-mask{position:absolute;z-index:2;margin:0;padding:0;width:100%;height:100%;_width:0;_height:0;left:0;top:0;display:none;}.yui-calcontainer .yui-cal-nav{position:absolute;z-index:3;top:0;display:none;}.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn{display:-moz-inline-box;display:inline-block;}.yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button{display:block;*display:inline-block;*overflow:visible;border:none;background-color:transparent;cursor:pointer;}.yui-calendar .calbody a:hover{background:inherit;}p#clear{clear:left;padding-top:10px;}.yui-skin-sam .yui-calcontainer{background-color:#f2f2f2;border:1px solid #808080;padding:10px;}.yui-skin-sam .yui-calcontainer.multi{padding:0 5px 0 5px;}.yui-skin-sam .yui-calcontainer.multi .groupcal{background-color:transparent;border:none;padding:10px 5px 10px 5px;margin:0;}.yui-skin-sam .yui-calcontainer .title{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;border-bottom:1px solid #ccc;font:100% sans-serif;color:#000;font-weight:bold;height:auto;padding:.4em;margin:0 -10px 10px -10px;top:0;left:0;text-align:left;}.yui-skin-sam .yui-calcontainer.multi .title{margin:0 -5px 0 -5px;}.yui-skin-sam .yui-calcontainer.withtitle{padding-top:0;}.yui-skin-sam .yui-calcontainer .calclose{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -300px;width:25px;height:15px;top:.4em;right:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar{border-spacing:0;border-collapse:collapse;font:100% sans-serif;text-align:center;margin:0;}.yui-skin-sam .yui-calendar .calhead{background:transparent;border:none;vertical-align:middle;padding:0;}.yui-skin-sam .yui-calendar .calheader{background:transparent;font-weight:bold;padding:0 0 .6em 0;text-align:center;}.yui-skin-sam .yui-calendar .calheader img{border:none;}.yui-skin-sam .yui-calendar .calnavleft{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -450px;width:25px;height:15px;top:0;bottom:0;left:-10px;margin-left:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar .calnavright{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -500px;width:25px;height:15px;top:0;bottom:0;right:-10px;margin-right:.4em;cursor:pointer;}.yui-skin-sam .yui-calendar .calweekdayrow{height:2em;}.yui-skin-sam .yui-calendar .calweekdayrow th{padding:0;border:none;}.yui-skin-sam .yui-calendar .calweekdaycell{color:#000;font-weight:bold;text-align:center;width:2em;}.yui-skin-sam .yui-calendar .calfoot{background-color:#f2f2f2;}.yui-skin-sam .yui-calendar .calrowhead,.yui-skin-sam .yui-calendar .calrowfoot{color:#a6a6a6;font-size:85%;font-style:normal;font-weight:normal;border:none;}.yui-skin-sam .yui-calendar .calrowhead{text-align:right;padding:0 2px 0 0;}.yui-skin-sam .yui-calendar .calrowfoot{text-align:left;padding:0 0 0 2px;}.yui-skin-sam .yui-calendar td.calcell{border:1px solid #ccc;background:#fff;padding:1px;height:1.6em;line-height:1.6em;text-align:center;white-space:nowrap;}.yui-skin-sam .yui-calendar td.calcell a{color:#06c;display:block;height:100%;text-decoration:none;}.yui-skin-sam .yui-calendar td.calcell.today{background-color:#000;}.yui-skin-sam .yui-calendar td.calcell.today a{background-color:#fff;}.yui-skin-sam .yui-calendar td.calcell.oom{background-color:#ccc;color:#a6a6a6;cursor:default;}.yui-skin-sam .yui-calendar td.calcell.selected{background-color:#fff;color:#000;}.yui-skin-sam .yui-calendar td.calcell.selected a{background-color:#b3d4ff;color:#000;}.yui-skin-sam .yui-calendar td.calcell.calcellhover{background-color:#426fd9;color:#fff;cursor:pointer;}.yui-skin-sam .yui-calendar td.calcell.calcellhover a{background-color:#426fd9;color:#fff;}.yui-skin-sam .yui-calendar td.calcell.previous{color:#e0e0e0;}.yui-skin-sam .yui-calendar td.calcell.restricted{text-decoration:line-through;}.yui-skin-sam .yui-calendar td.calcell.highlight1{background-color:#cf9;}.yui-skin-sam .yui-calendar td.calcell.highlight2{background-color:#9cf;}.yui-skin-sam .yui-calendar td.calcell.highlight3{background-color:#fcc;}.yui-skin-sam .yui-calendar td.calcell.highlight4{background-color:#cf9;}.yui-skin-sam .yui-calendar a.calnav{border:1px solid #f2f2f2;padding:0 4px;text-decoration:none;color:#000;zoom:1;}.yui-skin-sam .yui-calendar a.calnav:hover{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;border-color:#A0A0A0;cursor:pointer;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-mask{background-color:#000;opacity:.25;filter:alpha(opacity=25);}.yui-skin-sam .yui-calcontainer .yui-cal-nav{font-family:arial,helvetica,clean,sans-serif;font-size:93%;border:1px solid #808080;left:50%;margin-left:-7em;width:14em;padding:0;top:2.5em;background-color:#f2f2f2;}.yui-skin-sam .yui-calcontainer.withtitle .yui-cal-nav{top:4.5em;}.yui-skin-sam .yui-calcontainer.multi .yui-cal-nav{width:16em;margin-left:-8em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-y,.yui-skin-sam .yui-calcontainer .yui-cal-nav-m,.yui-skin-sam .yui-calcontainer .yui-cal-nav-b{padding:5px 10px 5px 10px;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-b{text-align:center;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-e{margin-top:5px;padding:5px;background-color:#EDF5FF;border-top:1px solid black;display:none;}.yui-skin-sam .yui-calcontainer .yui-cal-nav label{display:block;font-weight:bold;}
 .yui-skin-sam .yui-calcontainer .yui-cal-nav-mc{width:100%;_width:auto;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-y input.yui-invalid{background-color:#FFEE69;border:1px solid #000;}.yui-skin-sam .yui-calcontainer .yui-cal-nav-yc{width:4em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn{border:1px solid #808080;background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;background-color:#ccc;margin:auto .15em;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn button{padding:0 8px;font-size:93%;line-height:2;*line-height:1.7;min-height:2em;*min-height:auto;color:#000;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default{border:1px solid #304369;background-color:#426fd9;background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1400px;}.yui-skin-sam .yui-calcontainer .yui-cal-nav .yui-cal-nav-btn.yui-default button{color:#fff;}
diff --git a/build/calendar/calendar-debug.js b/build/calendar/calendar-debug.js
index 8bbe8b3..909357b 100644
--- a/build/calendar/calendar-debug.js
+++ b/build/calendar/calendar-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 
@@ -7321,4 +7321,4 @@ YAHOO.widget.CalendarNavigator.prototype = {
     __isMac : (navigator.userAgent.toLowerCase().indexOf("macintosh") != -1)
 
 };
-YAHOO.register("calendar", YAHOO.widget.Calendar, {version: "2.8.1", build: "19"});
+YAHOO.register("calendar", YAHOO.widget.Calendar, {version: "2.8.2r1", build: "7"});
diff --git a/build/calendar/calendar-min.js b/build/calendar/calendar-min.js
index 67c8426..fa13b91 100644
--- a/build/calendar/calendar-min.js
+++ b/build/calendar/calendar-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){YAHOO.util.Config=function(D){if(D){this.init(D);}};var B=YAHOO.lang,C=YAHOO.util.CustomEvent,A=YAHOO.util.Config;A.CONFIG_CHANGED_EVENT="configChanged";A.BOOLEAN_TYPE="boolean";A.prototype={owner:null,queueInProgress:false,config:null,initialConfig:null,eventQueue:null,configChangedEvent:null,init:function(D){this.owner=D;this.configChangedEvent=this.createEvent(A.CONFIG_CHANGED_EVENT);this.configChangedEvent.signature=C.LIST;this.queueInProgress=false;this.config={};this.initialConfig={};this.eventQueue=[];},checkBoolean:function(D){return(typeof D==A.BOOLEAN_TYPE);},checkNumber:function(D){return(!isNaN(D));},fireEvent:function(D,F){var E=this.config[D];if(E&&E.event){E.event.fire(F);}},addProperty:function(E,D){E=E.toLowerCase();this.config[E]=D;D.event=this.createEvent(E,{scope:this.owner});D.event.signature=C.LIST;D.key=E;if(D.handler){D.event.subscribe(D.handler,this.owner);}this.setProperty(E,D.value,true);if(!D.suppressEvent){this.queueProperty(E,D.value);}},getConfig:function(){var D={},F=this.config,G,E;for(G in F){if(B.hasOwnProperty(F,G)){E=F[G];if(E&&E.event){D[G]=E.value;}}}return D;},getProperty:function(D){var E=this.config[D.toLowerCase()];if(E&&E.event){return E.value;}else{return undefined;}},resetProperty:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event){if(this.initialConfig[D]&&!B.isUndefined(this.initialConfig[D])){this.setProperty(D,this.initialConfig[D]);return true;}}else{return false;}},setProperty:function(E,G,D){var F;E=E.toLowerCase();if(this.queueInProgress&&!D){this.queueProperty(E,G);return true;}else{F=this.config[E];if(F&&F.event){if(F.validator&&!F.validator(G)){return false;}else{F.value=G;if(!D){this.fireEvent(E,G);this.configChangedEvent.fire([E,G]);}return true;}}else{return false;}}},queueProperty:function(S,P){S=S.toLowerCase();var R=this.config[S],K=false,J,G,H,I,O,Q,F,M,N,D,L,T,E;if(R&&R.event){if(!B.isUndefined(P)&&R.validator&&!R.validator(P)){return false;}else{if(!B.isUndefined(P)){R.value=P;}else{P=R.value;}K=false;J=this.eventQueue.length;for(L=0;L<J;L++){G=this.eventQueue[L];if(G){H=G[0];I=G[1];if(H==S){this.eventQueue[L]=null;this.eventQueue.push([S,(!B.isUndefined(P)?P:I)]);K=true;break;}}}if(!K&&!B.isUndefined(P)){this.eventQueue.push([S,P]);}}if(R.supercedes){O=R.supercedes.length;for(T=0;T<O;T++){Q=R.supercedes[T];F=this.eventQueue.length;for(E=0;E<F;E++){M=this.eventQueue[E];if(M){N=M[0];D=M[1];if(N==Q.toLowerCase()){this.eventQueue.push([N,D]);this.eventQueue[E]=null;break;}}}}}return true;}else{return false;}},refireEvent:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event&&!B.isUndefined(E.value)){if(this.queueInProgress){this.queueProperty(D);}else{this.fireEvent(D,E.value);}}},applyConfig:function(D,G){var F,E;if(G){E={};for(F in D){if(B.hasOwnProperty(D,F)){E[F.toLowerCase()]=D[F];}}this.initialConfig=E;}for(F in D){if(B.hasOwnProperty(D,F)){this.queueProperty(F,D[F]);}}},refresh:function(){var D;for(D in this.config){if(B.hasOwnProperty(this.config,D)){this.refireEvent(D);}}},fireQueue:function(){var E,H,D,G,F;this.queueInProgress=true;for(E=0;E<this.eventQueue.length;E++){H=this.eventQueue[E];if(H){D=H[0];G=H[1];F=this.config[D];F.value=G;this.eventQueue[E]=null;this.fireEvent(D,G);}}this.queueInProgress=false;this.eventQueue=[];},subscribeToConfigEvent:function(D,E,G,H){var F=this.config[D.toLowerCase()];if(F&&F.event){if(!A.alreadySubscribed(F.event,E,G)){F.event.subscribe(E,G,H);}return true;}else{return false;}},unsubscribeFromConfigEvent:function(D,E,G){var F=this.config[D.toLowerCase()];if(F&&F.event){return F.event.unsubscribe(E,G);}else{return false;}},toString:function(){var D="Config";if(this.owner){D+=" ["+this.owner.toString()+"]";}return D;},outputEventQueue:function(){var D="",G,E,F=this.eventQueue.length;for(E=0;E<F;E++){G=this.eventQueue[E];if(G){D+=G[0]+"="+G[1]+", ";}}return D;},destroy:function(){var E=this.config,D,F;for(D in E){if(B.hasOwnProperty(E,D)){F=E[D];F.event.unsubscribeAll();F.event=null;}}this.configChangedEvent.unsubscribeAll();this.configChangedEvent=null;this.owner=null;this.config=null;this.initialConfig=null;this.eventQueue=null;}};A.alreadySubscribed=function(E,H,I){var F=E.subscribers.length,D,G;if(F>0){G=F-1;do{D=E.subscribers[G];if(D&&D.obj==I&&D.fn==H){return true;}}while(G--);}return false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());YAHOO.widget.DateMath={DAY:"D",WEEK:"W",YEAR:"Y",MONTH:"M",ONE_DAY_MS:1000*60*60*24,WEEK_ONE_JAN_DATE:1,add:function(A,D,C){var F=new Date(A.getTime());switch(D){case this.MONTH:var E=A.getMonth()+C;var B=0;if(E<0){while(E<0){E+=12;B-=1;}}else{if(E>11){while(E>11){E-=12;B+=1;}}}F.setMonth(E);F.setFullYear(A.getFullYear()+B);break;case this.DAY:this._addDays(F,C);break;case this.YEAR:F.setFullYear(A.getFullYear()+C);break;case this.WEEK:this._addDays(F,(C*7));break;}return F;},_addDays:function(D,C){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420){if(C<0){for(var B=-128;C<B;C-=B){D.setDate(D.getDate()+B);}}else{for(var A=96;C>A;C-=A){D.setDate(D.getDate()+A);}}}D.setDate(D.getDate()+C);},subtract:function(A,C,B){return this.add(A,C,(B*-1));},before:function(C,B){var A=B.getTime();if(C.getTime()<A){return true;}else{return false;}},after:function(C,B){var A=B.getTime();if(C.getTime()>A){return true;}else{return false;}},between:function(B,A,C){if(this.after(B,A)&&this.before(B,C)){return true;}else{return false;}},getJan1:function(A){return this.getDate(A,0,1);},getDayOffset:function(B,D){var C=this.getJan1(D);var A=Math.ceil((B.getTime()-C.getTime())/this.ONE_DAY_MS);return A;},getWeekNumber:function(D,B,G){B=B||0;G=G||this.WEEK_ONE_JAN_DATE;var H=this.clearTime(D),L,M;if(H.getDay()===B){L=H;}else{L=this.getFirstDayOfWeek(H,B);}var I=L.getFullYear();M=new Date(L.getTime()+6*this.ONE_DAY_MS);var F;if(I!==M.getFullYear()&&M.getDate()>=G){F=1;}else{var E=this.clearTime(this.getDate(I,0,G)),A=this.getFirstDayOfWeek(E,B);var J=Math.round((H.getTime()-A.getTime())/this.ONE_DAY_MS);var K=J%7;var C=(J-K)/7;
 F=C+1;}return F;},getFirstDayOfWeek:function(D,A){A=A||0;var B=D.getDay(),C=(B-A+7)%7;return this.subtract(D,this.DAY,C);},isYearOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getFullYear()!=A.getFullYear()){C=true;}return C;},isMonthOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getMonth()!=A.getMonth()){C=true;}return C;},findMonthStart:function(A){var B=this.getDate(A.getFullYear(),A.getMonth(),1);return B;},findMonthEnd:function(B){var D=this.findMonthStart(B);var C=this.add(D,this.MONTH,1);var A=this.subtract(C,this.DAY,1);return A;},clearTime:function(A){A.setHours(12,0,0,0);return A;},getDate:function(D,A,C){var B=null;if(YAHOO.lang.isUndefined(C)){C=1;}if(D>=100){B=new Date(D,A,C);}else{B=new Date();B.setFullYear(D);B.setMonth(A);B.setDate(C);B.setHours(0,0,0,0);}return B;}};(function(){var C=YAHOO.util.Dom,A=YAHOO.util.Event,E=YAHOO.lang,D=YAHOO.widget.DateMath;function F(I,G,H){this.init.apply(this,arguments);}F.IMG_ROOT=null;F.DATE="D";F.MONTH_DAY="MD";F.WEEKDAY="WD";F.RANGE="R";F.MONTH="M";F.DISPLAY_DAYS=42;F.STOP_RENDER="S";F.SHORT="short";F.LONG="long";F.MEDIUM="medium";F.ONE_CHAR="1char";F.DEFAULT_CONFIG={YEAR_OFFSET:{key:"year_offset",value:0,supercedes:["pagedate","selected","mindate","maxdate"]},TODAY:{key:"today",value:new Date(),supercedes:["pagedate"]},PAGEDATE:{key:"pagedate",value:null},SELECTED:{key:"selected",value:[]},TITLE:{key:"title",value:""},CLOSE:{key:"close",value:false},IFRAME:{key:"iframe",value:(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<=6)?true:false},MINDATE:{key:"mindate",value:null},MAXDATE:{key:"maxdate",value:null},MULTI_SELECT:{key:"multi_select",value:false},START_WEEKDAY:{key:"start_weekday",value:0},SHOW_WEEKDAYS:{key:"show_weekdays",value:true},SHOW_WEEK_HEADER:{key:"show_week_header",value:false},SHOW_WEEK_FOOTER:{key:"show_week_footer",value:false},HIDE_BLANK_WEEKS:{key:"hide_blank_weeks",value:false},NAV_ARROW_LEFT:{key:"nav_arrow_left",value:null},NAV_ARROW_RIGHT:{key:"nav_arrow_right",value:null},MONTHS_SHORT:{key:"months_short",value:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},MONTHS_LONG:{key:"months_long",value:["January","February","March","April","May","June","July","August","September","October","November","December"]},WEEKDAYS_1CHAR:{key:"weekdays_1char",value:["S","M","T","W","T","F","S"]},WEEKDAYS_SHORT:{key:"weekdays_short",value:["Su","Mo","Tu","We","Th","Fr","Sa"]},WEEKDAYS_MEDIUM:{key:"weekdays_medium",value:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},WEEKDAYS_LONG:{key:"weekdays_long",value:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},LOCALE_MONTHS:{key:"locale_months",value:"long"},LOCALE_WEEKDAYS:{key:"locale_weekdays",value:"short"},DATE_DELIMITER:{key:"date_delimiter",value:","},DATE_FIELD_DELIMITER:{key:"date_field_delimiter",value:"/"},DATE_RANGE_DELIMITER:{key:"date_range_delimiter",value:"-"},MY_MONTH_POSITION:{key:"my_month_position",value:1},MY_YEAR_POSITION:{key:"my_year_position",value:2},MD_MONTH_POSITION:{key:"md_month_position",value:1},MD_DAY_POSITION:{key:"md_day_position",value:2},MDY_MONTH_POSITION:{key:"mdy_month_position",value:1},MDY_DAY_POSITION:{key:"mdy_day_position",value:2},MDY_YEAR_POSITION:{key:"mdy_year_position",value:3},MY_LABEL_MONTH_POSITION:{key:"my_label_month_position",value:1},MY_LABEL_YEAR_POSITION:{key:"my_label_year_position",value:2},MY_LABEL_MONTH_SUFFIX:{key:"my_label_month_suffix",value:" "},MY_LABEL_YEAR_SUFFIX:{key:"my_label_year_suffix",value:""},NAV:{key:"navigator",value:null},STRINGS:{key:"strings",value:{previousMonth:"Previous Month",nextMonth:"Next Month",close:"Close"},supercedes:["close","title"]}};F._DEFAULT_CONFIG=F.DEFAULT_CONFIG;var B=F.DEFAULT_CONFIG;F._EVENT_TYPES={BEFORE_SELECT:"beforeSelect",SELECT:"select",BEFORE_DESELECT:"beforeDeselect",DESELECT:"deselect",CHANGE_PAGE:"changePage",BEFORE_RENDER:"beforeRender",RENDER:"render",BEFORE_DESTROY:"beforeDestroy",DESTROY:"destroy",RESET:"reset",CLEAR:"clear",BEFORE_HIDE:"beforeHide",HIDE:"hide",BEFORE_SHOW:"beforeShow",SHOW:"show",BEFORE_HIDE_NAV:"beforeHideNav",HIDE_NAV:"hideNav",BEFORE_SHOW_NAV:"beforeShowNav",SHOW_NAV:"showNav",BEFORE_RENDER_NAV:"beforeRenderNav",RENDER_NAV:"renderNav"};F.STYLES={CSS_ROW_HEADER:"calrowhead",CSS_ROW_FOOTER:"calrowfoot",CSS_CELL:"calcell",CSS_CELL_SELECTOR:"selector",CSS_CELL_SELECTED:"selected",CSS_CELL_SELECTABLE:"selectable",CSS_CELL_RESTRICTED:"restricted",CSS_CELL_TODAY:"today",CSS_CELL_OOM:"oom",CSS_CELL_OOB:"previous",CSS_HEADER:"calheader",CSS_HEADER_TEXT:"calhead",CSS_BODY:"calbody",CSS_WEEKDAY_CELL:"calweekdaycell",CSS_WEEKDAY_ROW:"calweekdayrow",CSS_FOOTER:"calfoot",CSS_CALENDAR:"yui-calendar",CSS_SINGLE:"single",CSS_CONTAINER:"yui-calcontainer",CSS_NAV_LEFT:"calnavleft",CSS_NAV_RIGHT:"calnavright",CSS_NAV:"calnav",CSS_CLOSE:"calclose",CSS_CELL_TOP:"calcelltop",CSS_CELL_LEFT:"calcellleft",CSS_CELL_RIGHT:"calcellright",CSS_CELL_BOTTOM:"calcellbottom",CSS_CELL_HOVER:"calcellhover",CSS_CELL_HIGHLIGHT1:"highlight1",CSS_CELL_HIGHLIGHT2:"highlight2",CSS_CELL_HIGHLIGHT3:"highlight3",CSS_CELL_HIGHLIGHT4:"highlight4",CSS_WITH_TITLE:"withtitle",CSS_FIXED_SIZE:"fixedsize",CSS_LINK_CLOSE:"link-close"};F._STYLES=F.STYLES;F.prototype={Config:null,parent:null,index:-1,cells:null,cellDates:null,id:null,containerId:null,oDomContainer:null,today:null,renderStack:null,_renderStack:null,oNavigator:null,_selectedDates:null,domEventMap:null,_parseArgs:function(H){var G={id:null,container:null,config:null};if(H&&H.length&&H.length>0){switch(H.length){case 1:G.id=null;G.container=H[0];G.config=null;break;case 2:if(E.isObject(H[1])&&!H[1].tagName&&!(H[1] instanceof String)){G.id=null;G.container=H[0];G.config=H[1];}else{G.id=H[0];G.container=H[1];G.config=null;}break;default:G.id=H[0];G.container=H[1];G.config=H[2];break;}}else{}return G;},init:function(J,H,I){var G=this._parseArgs(arguments);J=G.id;H=G.container;I=G.config;this.oDomContainer=C.get(H);if(!this.oDomContainer.id){this.oDomContainer.id=C.generateId();
@@ -15,4 +15,4 @@ H<this.cells.length;++H){C.removeClass(this.cells[H],G);}},setMonth:function(I){
 H.addProperty(C.MD_DAY_POSITION.key,{value:C.MD_DAY_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MDY_MONTH_POSITION.key,{value:C.MDY_MONTH_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MDY_DAY_POSITION.key,{value:C.MDY_DAY_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MDY_YEAR_POSITION.key,{value:C.MDY_YEAR_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MY_LABEL_MONTH_POSITION.key,{value:C.MY_LABEL_MONTH_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MY_LABEL_YEAR_POSITION.key,{value:C.MY_LABEL_YEAR_POSITION.value,handler:this.delegateConfig,validator:H.checkNumber});H.addProperty(C.MY_LABEL_MONTH_SUFFIX.key,{value:C.MY_LABEL_MONTH_SUFFIX.value,handler:this.delegateConfig});H.addProperty(C.MY_LABEL_YEAR_SUFFIX.key,{value:C.MY_LABEL_YEAR_SUFFIX.value,handler:this.delegateConfig});H.addProperty(C.NAV.key,{value:C.NAV.value,handler:this.configNavigator});H.addProperty(C.STRINGS.key,{value:C.STRINGS.value,handler:this.configStrings,validator:function(I){return E.isObject(I);},supercedes:C.STRINGS.supercedes});},initEvents:function(){var J=this,L="Event",M=YAHOO.util.CustomEvent;var I=function(O,R,N){for(var Q=0;Q<J.pages.length;++Q){var P=J.pages[Q];P[this.type+L].subscribe(O,R,N);}};var H=function(N,Q){for(var P=0;P<J.pages.length;++P){var O=J.pages[P];O[this.type+L].unsubscribe(N,Q);}};var K=G._EVENT_TYPES;J.beforeSelectEvent=new M(K.BEFORE_SELECT);J.beforeSelectEvent.subscribe=I;J.beforeSelectEvent.unsubscribe=H;J.selectEvent=new M(K.SELECT);J.selectEvent.subscribe=I;J.selectEvent.unsubscribe=H;J.beforeDeselectEvent=new M(K.BEFORE_DESELECT);J.beforeDeselectEvent.subscribe=I;J.beforeDeselectEvent.unsubscribe=H;J.deselectEvent=new M(K.DESELECT);J.deselectEvent.subscribe=I;J.deselectEvent.unsubscribe=H;J.changePageEvent=new M(K.CHANGE_PAGE);J.changePageEvent.subscribe=I;J.changePageEvent.unsubscribe=H;J.beforeRenderEvent=new M(K.BEFORE_RENDER);J.beforeRenderEvent.subscribe=I;J.beforeRenderEvent.unsubscribe=H;J.renderEvent=new M(K.RENDER);J.renderEvent.subscribe=I;J.renderEvent.unsubscribe=H;J.resetEvent=new M(K.RESET);J.resetEvent.subscribe=I;J.resetEvent.unsubscribe=H;J.clearEvent=new M(K.CLEAR);J.clearEvent.subscribe=I;J.clearEvent.unsubscribe=H;J.beforeShowEvent=new M(K.BEFORE_SHOW);J.showEvent=new M(K.SHOW);J.beforeHideEvent=new M(K.BEFORE_HIDE);J.hideEvent=new M(K.HIDE);J.beforeShowNavEvent=new M(K.BEFORE_SHOW_NAV);J.showNavEvent=new M(K.SHOW_NAV);J.beforeHideNavEvent=new M(K.BEFORE_HIDE_NAV);J.hideNavEvent=new M(K.HIDE_NAV);J.beforeRenderNavEvent=new M(K.BEFORE_RENDER_NAV);J.renderNavEvent=new M(K.RENDER_NAV);J.beforeDestroyEvent=new M(K.BEFORE_DESTROY);J.destroyEvent=new M(K.DESTROY);},configPages:function(T,R,N){var L=R[0],J=C.PAGEDATE.key,W="_",M,O=null,S="groupcal",V="first-of-type",K="last-of-type";for(var I=0;I<L;++I){var U=this.id+W+I,Q=this.containerId+W+I,P=this.cfg.getConfig();P.close=false;P.title=false;P.navigator=null;if(I>0){M=new Date(O);this._setMonthOnDate(M,M.getMonth()+I);P.pageDate=M;}var H=this.constructChild(U,Q,P);D.removeClass(H.oDomContainer,this.Style.CSS_SINGLE);D.addClass(H.oDomContainer,S);if(I===0){O=H.cfg.getProperty(J);D.addClass(H.oDomContainer,V);}if(I==(L-1)){D.addClass(H.oDomContainer,K);}H.parent=this;H.index=I;this.pages[this.pages.length]=H;}},configPageDate:function(O,N,L){var J=N[0],M;var K=C.PAGEDATE.key;for(var I=0;I<this.pages.length;++I){var H=this.pages[I];if(I===0){M=H._parsePageDate(J);H.cfg.setProperty(K,M);}else{var P=new Date(M);this._setMonthOnDate(P,P.getMonth()+I);H.cfg.setProperty(K,P);}}},configSelected:function(J,H,L){var K=C.SELECTED.key;this.delegateConfig(J,H,L);var I=(this.pages.length>0)?this.pages[0].cfg.getProperty(K):[];this.cfg.setProperty(K,I,true);},delegateConfig:function(I,H,L){var M=H[0];var K;for(var J=0;J<this.pages.length;J++){K=this.pages[J];K.cfg.setProperty(I,M);}},setChildFunction:function(K,I){var H=this.cfg.getProperty(C.PAGES.key);for(var J=0;J<H;++J){this.pages[J][K]=I;}},callChildFunction:function(M,I){var H=this.cfg.getProperty(C.PAGES.key);for(var L=0;L<H;++L){var K=this.pages[L];if(K[M]){var J=K[M];J.call(K,I);}}},constructChild:function(K,I,J){var H=document.getElementById(I);if(!H){H=document.createElement("div");H.id=I;this.oDomContainer.appendChild(H);}return new G(K,I,J);},setMonth:function(L){L=parseInt(L,10);var M;var I=C.PAGEDATE.key;for(var K=0;K<this.pages.length;++K){var J=this.pages[K];var H=J.cfg.getProperty(I);if(K===0){M=H.getFullYear();}else{H.setFullYear(M);}this._setMonthOnDate(H,L+K);J.cfg.setProperty(I,H);}},setYear:function(J){var I=C.PAGEDATE.key;J=parseInt(J,10);for(var L=0;L<this.pages.length;++L){var K=this.pages[L];var H=K.cfg.getProperty(I);if((H.getMonth()+1)==1&&L>0){J+=1;}K.setYear(J);}},render:function(){this.renderHeader();for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.render();}this.renderFooter();},select:function(H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.select(H);}return this.getSelectedDates();},selectCell:function(H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.selectCell(H);}return this.getSelectedDates();},deselect:function(H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.deselect(H);}return this.getSelectedDates();},deselectAll:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.deselectAll();}return this.getSelectedDates();},deselectCell:function(H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.deselectCell(H);}return this.getSelectedDates();},reset:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.reset();}},clear:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.clear();}this.cfg.setProperty(C.SELECTED.key,[]);this.cfg.setProperty(C.PAGEDATE.key,new Date(this.pages[0].today.getTime()));this.render();},nextMonth:function(){for(var I=0;I<this.pages.length;
 ++I){var H=this.pages[I];H.nextMonth();}},previousMonth:function(){for(var I=this.pages.length-1;I>=0;--I){var H=this.pages[I];H.previousMonth();}},nextYear:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.nextYear();}},previousYear:function(){for(var I=0;I<this.pages.length;++I){var H=this.pages[I];H.previousYear();}},getSelectedDates:function(){var J=[];var I=this.cfg.getProperty(C.SELECTED.key);for(var L=0;L<I.length;++L){var K=I[L];var H=F.getDate(K[0],K[1]-1,K[2]);J.push(H);}J.sort(function(N,M){return N-M;});return J;},addRenderer:function(H,I){for(var K=0;K<this.pages.length;++K){var J=this.pages[K];J.addRenderer(H,I);}},addMonthRenderer:function(K,H){for(var J=0;J<this.pages.length;++J){var I=this.pages[J];I.addMonthRenderer(K,H);}},addWeekdayRenderer:function(I,H){for(var K=0;K<this.pages.length;++K){var J=this.pages[K];J.addWeekdayRenderer(I,H);}},removeRenderers:function(){this.callChildFunction("removeRenderers");},renderHeader:function(){},renderFooter:function(){},addMonths:function(H){this.callChildFunction("addMonths",H);},subtractMonths:function(H){this.callChildFunction("subtractMonths",H);},addYears:function(H){this.callChildFunction("addYears",H);},subtractYears:function(H){this.callChildFunction("subtractYears",H);},getCalendarPage:function(K){var M=null;if(K){var N=K.getFullYear(),J=K.getMonth();var I=this.pages;for(var L=0;L<I.length;++L){var H=I[L].cfg.getProperty("pagedate");if(H.getFullYear()===N&&H.getMonth()===J){M=I[L];break;}}}return M;},_setMonthOnDate:function(I,J){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420&&(J<0||J>11)){var H=F.add(I,F.MONTH,J-I.getMonth());I.setTime(H.getTime());}else{I.setMonth(J);}},_fixWidth:function(){var H=0;for(var J=0;J<this.pages.length;++J){var I=this.pages[J];H+=I.oDomContainer.offsetWidth;}if(H>0){this.oDomContainer.style.width=H+"px";}},toString:function(){return"CalendarGroup "+this.id;},destroy:function(){if(this.beforeDestroyEvent.fire()){var J=this;if(J.navigator){J.navigator.destroy();}if(J.cfg){J.cfg.destroy();}A.purgeElement(J.oDomContainer,true);D.removeClass(J.oDomContainer,B.CSS_CONTAINER);D.removeClass(J.oDomContainer,B.CSS_MULTI_UP);for(var I=0,H=J.pages.length;I<H;I++){J.pages[I].destroy();J.pages[I]=null;}J.oDomContainer.innerHTML="";J.oDomContainer=null;this.destroyEvent.fire();}}};B.CSS_CONTAINER="yui-calcontainer";B.CSS_MULTI_UP="multi";B.CSS_2UPTITLE="title";B.CSS_2UPCLOSE="close-icon";YAHOO.lang.augmentProto(B,G,"buildDayLabel","buildMonthLabel","renderOutOfBoundsDate","renderRowHeader","renderRowFooter","renderCellDefault","styleCellDefault","renderCellStyleHighlight1","renderCellStyleHighlight2","renderCellStyleHighlight3","renderCellStyleHighlight4","renderCellStyleToday","renderCellStyleSelected","renderCellNotThisMonth","renderBodyCellRestricted","initStyles","configTitle","configClose","configIframe","configStrings","configToday","configNavigator","createTitleBar","createCloseButton","removeTitleBar","removeCloseButton","hide","show","toDate","_toDate","_parseArgs","browser");YAHOO.widget.CalGrp=B;YAHOO.widget.CalendarGroup=B;YAHOO.widget.Calendar2up=function(J,H,I){this.init(J,H,I);};YAHOO.extend(YAHOO.widget.Calendar2up,B);YAHOO.widget.Cal2up=YAHOO.widget.Calendar2up;})();YAHOO.widget.CalendarNavigator=function(A){this.init(A);};(function(){var A=YAHOO.widget.CalendarNavigator;A.CLASSES={NAV:"yui-cal-nav",NAV_VISIBLE:"yui-cal-nav-visible",MASK:"yui-cal-nav-mask",YEAR:"yui-cal-nav-y",MONTH:"yui-cal-nav-m",BUTTONS:"yui-cal-nav-b",BUTTON:"yui-cal-nav-btn",ERROR:"yui-cal-nav-e",YEAR_CTRL:"yui-cal-nav-yc",MONTH_CTRL:"yui-cal-nav-mc",INVALID:"yui-invalid",DEFAULT:"yui-default"};A.DEFAULT_CONFIG={strings:{month:"Month",year:"Year",submit:"Okay",cancel:"Cancel",invalidYear:"Year needs to be a number"},monthFormat:YAHOO.widget.Calendar.LONG,initialFocus:"year"};A._DEFAULT_CFG=A.DEFAULT_CONFIG;A.ID_SUFFIX="_nav";A.MONTH_SUFFIX="_month";A.YEAR_SUFFIX="_year";A.ERROR_SUFFIX="_error";A.CANCEL_SUFFIX="_cancel";A.SUBMIT_SUFFIX="_submit";A.YR_MAX_DIGITS=4;A.YR_MINOR_INC=1;A.YR_MAJOR_INC=10;A.UPDATE_DELAY=50;A.YR_PATTERN=/^\d+$/;A.TRIM=/^\s*(.*?)\s*$/;})();YAHOO.widget.CalendarNavigator.prototype={id:null,cal:null,navEl:null,maskEl:null,yearEl:null,monthEl:null,errorEl:null,submitEl:null,cancelEl:null,firstCtrl:null,lastCtrl:null,_doc:null,_year:null,_month:0,__rendered:false,init:function(A){var C=A.oDomContainer;this.cal=A;this.id=C.id+YAHOO.widget.CalendarNavigator.ID_SUFFIX;this._doc=C.ownerDocument;var B=YAHOO.env.ua.ie;this.__isIEQuirks=(B&&((B<=6)||(this._doc.compatMode=="BackCompat")));},show:function(){var A=YAHOO.widget.CalendarNavigator.CLASSES;if(this.cal.beforeShowNavEvent.fire()){if(!this.__rendered){this.render();}this.clearErrors();this._updateMonthUI();this._updateYearUI();this._show(this.navEl,true);this.setInitialFocus();this.showMask();YAHOO.util.Dom.addClass(this.cal.oDomContainer,A.NAV_VISIBLE);this.cal.showNavEvent.fire();}},hide:function(){var A=YAHOO.widget.CalendarNavigator.CLASSES;if(this.cal.beforeHideNavEvent.fire()){this._show(this.navEl,false);this.hideMask();YAHOO.util.Dom.removeClass(this.cal.oDomContainer,A.NAV_VISIBLE);this.cal.hideNavEvent.fire();}},showMask:function(){this._show(this.maskEl,true);if(this.__isIEQuirks){this._syncMask();}},hideMask:function(){this._show(this.maskEl,false);},getMonth:function(){return this._month;},getYear:function(){return this._year;},setMonth:function(A){if(A>=0&&A<12){this._month=A;}this._updateMonthUI();},setYear:function(B){var A=YAHOO.widget.CalendarNavigator.YR_PATTERN;if(YAHOO.lang.isNumber(B)&&A.test(B+"")){this._year=B;}this._updateYearUI();},render:function(){this.cal.beforeRenderNavEvent.fire();if(!this.__rendered){this.createNav();this.createMask();this.applyListeners();this.__rendered=true;}this.cal.renderNavEvent.fire();},createNav:function(){var B=YAHOO.widget.CalendarNavigator;var C=this._doc;var D=C.createElement("div");D.className=B.CLASSES.NAV;var A=this.renderNavContents([]);D.innerHTML=A.join("");this.cal.oDomContainer.appendChild(D);
 this.navEl=D;this.yearEl=C.getElementById(this.id+B.YEAR_SUFFIX);this.monthEl=C.getElementById(this.id+B.MONTH_SUFFIX);this.errorEl=C.getElementById(this.id+B.ERROR_SUFFIX);this.submitEl=C.getElementById(this.id+B.SUBMIT_SUFFIX);this.cancelEl=C.getElementById(this.id+B.CANCEL_SUFFIX);if(YAHOO.env.ua.gecko&&this.yearEl&&this.yearEl.type=="text"){this.yearEl.setAttribute("autocomplete","off");}this._setFirstLastElements();},createMask:function(){var B=YAHOO.widget.CalendarNavigator.CLASSES;var A=this._doc.createElement("div");A.className=B.MASK;this.cal.oDomContainer.appendChild(A);this.maskEl=A;},_syncMask:function(){var B=this.cal.oDomContainer;if(B&&this.maskEl){var A=YAHOO.util.Dom.getRegion(B);YAHOO.util.Dom.setStyle(this.maskEl,"width",A.right-A.left+"px");YAHOO.util.Dom.setStyle(this.maskEl,"height",A.bottom-A.top+"px");}},renderNavContents:function(A){var D=YAHOO.widget.CalendarNavigator,E=D.CLASSES,B=A;B[B.length]='<div class="'+E.MONTH+'">';this.renderMonth(B);B[B.length]="</div>";B[B.length]='<div class="'+E.YEAR+'">';this.renderYear(B);B[B.length]="</div>";B[B.length]='<div class="'+E.BUTTONS+'">';this.renderButtons(B);B[B.length]="</div>";B[B.length]='<div class="'+E.ERROR+'" id="'+this.id+D.ERROR_SUFFIX+'"></div>';return B;},renderMonth:function(D){var G=YAHOO.widget.CalendarNavigator,H=G.CLASSES;var I=this.id+G.MONTH_SUFFIX,F=this.__getCfg("monthFormat"),A=this.cal.cfg.getProperty((F==YAHOO.widget.Calendar.SHORT)?"MONTHS_SHORT":"MONTHS_LONG"),E=D;if(A&&A.length>0){E[E.length]='<label for="'+I+'">';E[E.length]=this.__getCfg("month",true);E[E.length]="</label>";E[E.length]='<select name="'+I+'" id="'+I+'" class="'+H.MONTH_CTRL+'">';for(var B=0;B<A.length;B++){E[E.length]='<option value="'+B+'">';E[E.length]=A[B];E[E.length]="</option>";}E[E.length]="</select>";}return E;},renderYear:function(B){var E=YAHOO.widget.CalendarNavigator,F=E.CLASSES;var G=this.id+E.YEAR_SUFFIX,A=E.YR_MAX_DIGITS,D=B;D[D.length]='<label for="'+G+'">';D[D.length]=this.__getCfg("year",true);D[D.length]="</label>";D[D.length]='<input type="text" name="'+G+'" id="'+G+'" class="'+F.YEAR_CTRL+'" maxlength="'+A+'"/>';return D;},renderButtons:function(A){var D=YAHOO.widget.CalendarNavigator.CLASSES;var B=A;B[B.length]='<span class="'+D.BUTTON+" "+D.DEFAULT+'">';B[B.length]='<button type="button" id="'+this.id+"_submit"+'">';B[B.length]=this.__getCfg("submit",true);B[B.length]="</button>";B[B.length]="</span>";B[B.length]='<span class="'+D.BUTTON+'">';B[B.length]='<button type="button" id="'+this.id+"_cancel"+'">';B[B.length]=this.__getCfg("cancel",true);B[B.length]="</button>";B[B.length]="</span>";return B;},applyListeners:function(){var B=YAHOO.util.Event;function A(){if(this.validate()){this.setYear(this._getYearFromUI());}}function C(){this.setMonth(this._getMonthFromUI());}B.on(this.submitEl,"click",this.submit,this,true);B.on(this.cancelEl,"click",this.cancel,this,true);B.on(this.yearEl,"blur",A,this,true);B.on(this.monthEl,"change",C,this,true);if(this.__isIEQuirks){YAHOO.util.Event.on(this.cal.oDomContainer,"resize",this._syncMask,this,true);}this.applyKeyListeners();},purgeListeners:function(){var A=YAHOO.util.Event;A.removeListener(this.submitEl,"click",this.submit);A.removeListener(this.cancelEl,"click",this.cancel);A.removeListener(this.yearEl,"blur");A.removeListener(this.monthEl,"change");if(this.__isIEQuirks){A.removeListener(this.cal.oDomContainer,"resize",this._syncMask);}this.purgeKeyListeners();},applyKeyListeners:function(){var D=YAHOO.util.Event,A=YAHOO.env.ua;var C=(A.ie||A.webkit)?"keydown":"keypress";var B=(A.ie||A.opera||A.webkit)?"keydown":"keypress";D.on(this.yearEl,"keypress",this._handleEnterKey,this,true);D.on(this.yearEl,C,this._handleDirectionKeys,this,true);D.on(this.lastCtrl,B,this._handleTabKey,this,true);D.on(this.firstCtrl,B,this._handleShiftTabKey,this,true);},purgeKeyListeners:function(){var D=YAHOO.util.Event,A=YAHOO.env.ua;var C=(A.ie||A.webkit)?"keydown":"keypress";var B=(A.ie||A.opera||A.webkit)?"keydown":"keypress";D.removeListener(this.yearEl,"keypress",this._handleEnterKey);D.removeListener(this.yearEl,C,this._handleDirectionKeys);D.removeListener(this.lastCtrl,B,this._handleTabKey);D.removeListener(this.firstCtrl,B,this._handleShiftTabKey);},submit:function(){if(this.validate()){this.hide();this.setMonth(this._getMonthFromUI());this.setYear(this._getYearFromUI());var B=this.cal;var A=YAHOO.widget.CalendarNavigator.UPDATE_DELAY;if(A>0){var C=this;window.setTimeout(function(){C._update(B);},A);}else{this._update(B);}}},_update:function(B){var A=YAHOO.widget.DateMath.getDate(this.getYear()-B.cfg.getProperty("YEAR_OFFSET"),this.getMonth(),1);B.cfg.setProperty("pagedate",A);B.render();},cancel:function(){this.hide();},validate:function(){if(this._getYearFromUI()!==null){this.clearErrors();return true;}else{this.setYearError();this.setError(this.__getCfg("invalidYear",true));return false;}},setError:function(A){if(this.errorEl){this.errorEl.innerHTML=A;this._show(this.errorEl,true);}},clearError:function(){if(this.errorEl){this.errorEl.innerHTML="";this._show(this.errorEl,false);}},setYearError:function(){YAHOO.util.Dom.addClass(this.yearEl,YAHOO.widget.CalendarNavigator.CLASSES.INVALID);},clearYearError:function(){YAHOO.util.Dom.removeClass(this.yearEl,YAHOO.widget.CalendarNavigator.CLASSES.INVALID);},clearErrors:function(){this.clearError();this.clearYearError();},setInitialFocus:function(){var A=this.submitEl,C=this.__getCfg("initialFocus");if(C&&C.toLowerCase){C=C.toLowerCase();if(C=="year"){A=this.yearEl;try{this.yearEl.select();}catch(B){}}else{if(C=="month"){A=this.monthEl;}}}if(A&&YAHOO.lang.isFunction(A.focus)){try{A.focus();}catch(D){}}},erase:function(){if(this.__rendered){this.purgeListeners();this.yearEl=null;this.monthEl=null;this.errorEl=null;this.submitEl=null;this.cancelEl=null;this.firstCtrl=null;this.lastCtrl=null;if(this.navEl){this.navEl.innerHTML="";}var B=this.navEl.parentNode;if(B){B.removeChild(this.navEl);}this.navEl=null;var A=this.maskEl.parentNode;
-if(A){A.removeChild(this.maskEl);}this.maskEl=null;this.__rendered=false;}},destroy:function(){this.erase();this._doc=null;this.cal=null;this.id=null;},_show:function(B,A){if(B){YAHOO.util.Dom.setStyle(B,"display",(A)?"block":"none");}},_getMonthFromUI:function(){if(this.monthEl){return this.monthEl.selectedIndex;}else{return 0;}},_getYearFromUI:function(){var B=YAHOO.widget.CalendarNavigator;var A=null;if(this.yearEl){var C=this.yearEl.value;C=C.replace(B.TRIM,"$1");if(B.YR_PATTERN.test(C)){A=parseInt(C,10);}}return A;},_updateYearUI:function(){if(this.yearEl&&this._year!==null){this.yearEl.value=this._year;}},_updateMonthUI:function(){if(this.monthEl){this.monthEl.selectedIndex=this._month;}},_setFirstLastElements:function(){this.firstCtrl=this.monthEl;this.lastCtrl=this.cancelEl;if(this.__isMac){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420){this.firstCtrl=this.monthEl;this.lastCtrl=this.yearEl;}if(YAHOO.env.ua.gecko){this.firstCtrl=this.yearEl;this.lastCtrl=this.yearEl;}}},_handleEnterKey:function(B){var A=YAHOO.util.KeyListener.KEY;if(YAHOO.util.Event.getCharCode(B)==A.ENTER){YAHOO.util.Event.preventDefault(B);this.submit();}},_handleDirectionKeys:function(H){var G=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY,D=YAHOO.widget.CalendarNavigator;var F=(this.yearEl.value)?parseInt(this.yearEl.value,10):null;if(isFinite(F)){var B=false;switch(G.getCharCode(H)){case A.UP:this.yearEl.value=F+D.YR_MINOR_INC;B=true;break;case A.DOWN:this.yearEl.value=Math.max(F-D.YR_MINOR_INC,0);B=true;break;case A.PAGE_UP:this.yearEl.value=F+D.YR_MAJOR_INC;B=true;break;case A.PAGE_DOWN:this.yearEl.value=Math.max(F-D.YR_MAJOR_INC,0);B=true;break;default:break;}if(B){G.preventDefault(H);try{this.yearEl.select();}catch(C){}}}},_handleTabKey:function(D){var C=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY;if(C.getCharCode(D)==A.TAB&&!D.shiftKey){try{C.preventDefault(D);this.firstCtrl.focus();}catch(B){}}},_handleShiftTabKey:function(D){var C=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY;if(D.shiftKey&&C.getCharCode(D)==A.TAB){try{C.preventDefault(D);this.lastCtrl.focus();}catch(B){}}},__getCfg:function(D,B){var C=YAHOO.widget.CalendarNavigator.DEFAULT_CONFIG;var A=this.cal.cfg.getProperty("navigator");if(B){return(A!==true&&A.strings&&A.strings[D])?A.strings[D]:C.strings[D];}else{return(A!==true&&A[D])?A[D]:C[D];}},__isMac:(navigator.userAgent.toLowerCase().indexOf("macintosh")!=-1)};YAHOO.register("calendar",YAHOO.widget.Calendar,{version:"2.8.1",build:"19"});
\ No newline at end of file
+if(A){A.removeChild(this.maskEl);}this.maskEl=null;this.__rendered=false;}},destroy:function(){this.erase();this._doc=null;this.cal=null;this.id=null;},_show:function(B,A){if(B){YAHOO.util.Dom.setStyle(B,"display",(A)?"block":"none");}},_getMonthFromUI:function(){if(this.monthEl){return this.monthEl.selectedIndex;}else{return 0;}},_getYearFromUI:function(){var B=YAHOO.widget.CalendarNavigator;var A=null;if(this.yearEl){var C=this.yearEl.value;C=C.replace(B.TRIM,"$1");if(B.YR_PATTERN.test(C)){A=parseInt(C,10);}}return A;},_updateYearUI:function(){if(this.yearEl&&this._year!==null){this.yearEl.value=this._year;}},_updateMonthUI:function(){if(this.monthEl){this.monthEl.selectedIndex=this._month;}},_setFirstLastElements:function(){this.firstCtrl=this.monthEl;this.lastCtrl=this.cancelEl;if(this.__isMac){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420){this.firstCtrl=this.monthEl;this.lastCtrl=this.yearEl;}if(YAHOO.env.ua.gecko){this.firstCtrl=this.yearEl;this.lastCtrl=this.yearEl;}}},_handleEnterKey:function(B){var A=YAHOO.util.KeyListener.KEY;if(YAHOO.util.Event.getCharCode(B)==A.ENTER){YAHOO.util.Event.preventDefault(B);this.submit();}},_handleDirectionKeys:function(H){var G=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY,D=YAHOO.widget.CalendarNavigator;var F=(this.yearEl.value)?parseInt(this.yearEl.value,10):null;if(isFinite(F)){var B=false;switch(G.getCharCode(H)){case A.UP:this.yearEl.value=F+D.YR_MINOR_INC;B=true;break;case A.DOWN:this.yearEl.value=Math.max(F-D.YR_MINOR_INC,0);B=true;break;case A.PAGE_UP:this.yearEl.value=F+D.YR_MAJOR_INC;B=true;break;case A.PAGE_DOWN:this.yearEl.value=Math.max(F-D.YR_MAJOR_INC,0);B=true;break;default:break;}if(B){G.preventDefault(H);try{this.yearEl.select();}catch(C){}}}},_handleTabKey:function(D){var C=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY;if(C.getCharCode(D)==A.TAB&&!D.shiftKey){try{C.preventDefault(D);this.firstCtrl.focus();}catch(B){}}},_handleShiftTabKey:function(D){var C=YAHOO.util.Event,A=YAHOO.util.KeyListener.KEY;if(D.shiftKey&&C.getCharCode(D)==A.TAB){try{C.preventDefault(D);this.lastCtrl.focus();}catch(B){}}},__getCfg:function(D,B){var C=YAHOO.widget.CalendarNavigator.DEFAULT_CONFIG;var A=this.cal.cfg.getProperty("navigator");if(B){return(A!==true&&A.strings&&A.strings[D])?A.strings[D]:C.strings[D];}else{return(A!==true&&A[D])?A[D]:C[D];}},__isMac:(navigator.userAgent.toLowerCase().indexOf("macintosh")!=-1)};YAHOO.register("calendar",YAHOO.widget.Calendar,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/calendar/calendar.js b/build/calendar/calendar.js
index 38a440a..881f3cf 100644
--- a/build/calendar/calendar.js
+++ b/build/calendar/calendar.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 
@@ -7291,4 +7291,4 @@ YAHOO.widget.CalendarNavigator.prototype = {
     __isMac : (navigator.userAgent.toLowerCase().indexOf("macintosh") != -1)
 
 };
-YAHOO.register("calendar", YAHOO.widget.Calendar, {version: "2.8.1", build: "19"});
+YAHOO.register("calendar", YAHOO.widget.Calendar, {version: "2.8.2r1", build: "7"});
diff --git a/build/carousel/assets/carousel-core.css b/build/carousel/assets/carousel-core.css
index 08f8d09..ef54abc 100644
--- a/build/carousel/assets/carousel-core.css
+++ b/build/carousel/assets/carousel-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-carousel {
     visibility: hidden;
diff --git a/build/carousel/assets/skins/sam/carousel-skin.css b/build/carousel/assets/skins/sam/carousel-skin.css
index 45762d1..c9408e3 100644
--- a/build/carousel/assets/skins/sam/carousel-skin.css
+++ b/build/carousel/assets/skins/sam/carousel-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-carousel,
 .yui-skin-sam .yui-carousel-vertical {
diff --git a/build/carousel/assets/skins/sam/carousel.css b/build/carousel/assets/skins/sam/carousel.css
index 17fbff9..272dcde 100644
--- a/build/carousel/assets/skins/sam/carousel.css
+++ b/build/carousel/assets/skins/sam/carousel.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-carousel{visibility:hidden;overflow:hidden;position:relative;text-align:left;zoom:1;}.yui-carousel.yui-carousel-visible{visibility:visible;}.yui-carousel-content{overflow:hidden;position:relative;text-align:center;}.yui-carousel-element li{border:1px solid #ccc;list-style:none;margin:1px;overflow:hidden;padding:0;position:absolute;text-align:center;}.yui-carousel-vertical .yui-carousel-element li{display:block;float:none;}.yui-log .carousel{background:#f2e886;}.yui-carousel-nav{zoom:1;}.yui-carousel-nav:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-carousel-button-focus{outline:1px dotted #000;}.yui-carousel-min-width{min-width:115px;}.yui-carousel-element{overflow:hidden;position:relative;margin:0 auto;padding:0;text-align:left;*margin:0;}.yui-carousel-horizontal .yui-carousel-element{width:320000px;}.yui-carousel-vertical .yui-carousel-element{height:320000px;}.yui-skin-sam .yui-carousel-nav select{position:static;}.yui-carousel .yui-carousel-item-selected{border:1px dashed #000;margin:1px;}.yui-skin-sam .yui-carousel,.yui-skin-sam .yui-carousel-vertical{border:1px solid #808080;}.yui-skin-sam .yui-carousel-nav{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;padding:3px;text-align:right;}.yui-skin-sam .yui-carousel-button{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -600px;float:right;height:19px;margin:5px;overflow:hidden;width:40px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-button{background-position:0 -800px;}.yui-skin-sam .yui-carousel-button-disabled{background-position:0 -2000px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-button-disabled{background-position:0 -2100px;}.yui-skin-sam .yui-carousel-button input,.yui-skin-sam .yui-carousel-button button{background-color:transparent;border:0;cursor:pointer;display:block;height:44px;margin:-2px 0 0 -2px;padding:0 0 0 50px;}.yui-skin-sam span.yui-carousel-first-button{background-position:0 -550px;margin-left:-100px;margin-right:50px;*margin:5px 5px 5px -90px;}.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button{background-position:0 -750px;}.yui-skin-sam span.yui-carousel-first-button-disabled{background-position:0 -1950px;}.yui-skin-sam .yui-carousel-vertical span.yui-carousel-first-button-disabled{background-position:0 -2050px;}.yui-skin-sam .yui-carousel-nav ul{float:right;height:19px;margin:0;margin-left:-220px;margin-right:100px;*margin-left:-160px;*margin-right:0;padding:0;}.yui-skin-sam .yui-carousel-min-width .yui-carousel-nav ul{*margin-left:-170px;}.yui-skin-sam .yui-carousel-nav select{position:relative;*right:50px;top:4px;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select{position:static;}.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav ul,.yui-skin-sam .yui-carousel-vertical .yui-carousel-nav select{float:none;margin:0;*zoom:1;}.yui-skin-sam .yui-carousel-nav ul li{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -650px;cursor:pointer;float:left;height:9px;list-style:none;margin:10px 0 0 5px;overflow:hidden;padding:0;width:9px;}.yui-skin-sam .yui-carousel-nav ul:after{content:".";display:block;height:0;clear:both;visibility:hidden;}.yui-skin-sam .yui-carousel-nav ul li a{display:block;width:100%;height:100%;text-indent:-10000px;text-align:left;overflow:hidden;}.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-focus{outline:1px dotted #000;}.yui-skin-sam .yui-carousel-nav ul li.yui-carousel-nav-page-selected{background-position:0 -700px;}.yui-skin-sam .yui-carousel-item-loading{background:url(ajax-loader.gif) no-repeat 50% 50%;position:absolute;text-indent:-150px;}
diff --git a/build/carousel/carousel-debug.js b/build/carousel/carousel-debug.js
index 3bacd93..682cd6a 100644
--- a/build/carousel/carousel-debug.js
+++ b/build/carousel/carousel-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Carousel module provides a widget for browsing among a set of like
@@ -4387,4 +4387,4 @@ version: 2.8.1
 ;;  indent-tabs-mode: nil **
 ;;  End: **
 */
-YAHOO.register("carousel", YAHOO.widget.Carousel, {version: "2.8.1", build: "19"});
+YAHOO.register("carousel", YAHOO.widget.Carousel, {version: "2.8.2r1", build: "7"});
diff --git a/build/carousel/carousel-min.js b/build/carousel/carousel-min.js
index 257caa3..88235e2 100644
--- a/build/carousel/carousel-min.js
+++ b/build/carousel/carousel-min.js
@@ -2,11 +2,11 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var P;YAHOO.widget.Carousel=function(s,r){YAHOO.widget.Carousel.superclass.constructor.call(this,s,r);};var U=YAHOO.widget.Carousel,e=YAHOO.util.Dom,c=YAHOO.util.Event,p=YAHOO.lang;P="Carousel";var T={},F="afterScroll",g="allItemsRemoved",b="beforeHide",J="beforePageChange",i="beforeScroll",Y="beforeShow",B="blur",X="focus",a="hide",S="itemAdded",o="itemRemoved",Q="itemReplaced",C="itemSelected",L="loadItems",I="navigationStateChange",h="pageChange",H="render",V="show",Z="startAutoPlay",q="stopAutoPlay",K="uiUpdate";function G(r,s){var t;for(t in s){if(s.hasOwnProperty(t)){e.setStyle(r,t,s[t]);}}}function W(s,r){var t=document.createElement(s);r=r||{};if(r.className){e.addClass(t,r.className);}if(r.styles){G(t,r.styles);}if(r.parent){r.parent.appendChild(t);}if(r.id){t.setAttribute("id",r.id);}if(r.content){if(r.content.nodeName){t.appendChild(r.content);}else{t.innerHTML=r.content;}}return t;}function d(t,s,r){var v;if(!t){return 0;}function u(y,x){var z;if(x=="marginRight"&&YAHOO.env.ua.webkit){z=parseInt(e.getStyle(y,"marginLeft"),10);}else{z=parseInt(e.getStyle(y,x),10);}return p.isNumber(z)?z:0;}function w(y,x){var z;if(x=="marginRight"&&YAHOO.env.ua.webkit){z=parseFloat(e.getStyle(y,"marginLeft"));}else{z=parseFloat(e.getStyle(y,x));}return p.isNumber(z)?z:0;}if(typeof r=="undefined"){r="int";}switch(s){case"height":v=t.offsetHeight;if(v>0){v+=u(t,"marginTop")+u(t,"marginBottom");}else{v=w(t,"height")+u(t,"marginTop")+u(t,"marginBottom")+u(t,"borderTopWidth")+u(t,"borderBottomWidth")+u(t,"paddingTop")+u(t,"paddingBottom");}break;case"width":v=t.offsetWidth;if(v>0){v+=u(t,"marginLeft")+u(t,"marginRight");}else{v=w(t,"width")+u(t,"marginLeft")+u(t,"marginRight")+u(t,"borderLeftWidth")+u(t,"borderRightWidth")+u(t,"paddingLeft")+u(t,"paddingRight");}break;default:if(r=="int"){v=u(t,s);}else{if(r=="float"){v=w(t,s);}else{v=e.getStyle(t,s);}}break;}return v;}function O(w){var u=this,x,t,s=0,v=u.get("firstVisible"),r=false;if(u._itemsTable.numItems===0){return 0;}t=u._itemsTable.items[v]||u._itemsTable.loading[v];if(p.isUndefined(t)){return 0;}x=e.get(t.id);if(typeof w=="undefined"){r=u.get("isVertical");}else{r=w=="height";}if(this._itemAttrCache[w]){return this._itemAttrCache[w];}if(r){s=d(x,"height");}else{s=d(x,"width");}this._itemAttrCache[w]=s;return s;}function N(){var s=this,t,r;t=s.get("isVertical");r=O.call(s,t?"height":"width");return(r*s.get("revealAmount")/100);}function m(w){var AH=this,z=AH._cols,v=AH._rows,u,AC,AB,t,x,AD,AJ=0,AE,s,AG,AA={},y=0,AI=AH._itemsTable,AF=AI.items,r=AI.loading;AB=AH.get("isVertical");AC=O.call(AH,AB?"height":"width");AG=N.call(AH);while(y<w){if(!AF[y]&&!r[y]){AJ++;}y++;}w-=AJ;if(v){u=this.getPageForItem(w);if(AB){x=Math.floor(w/z);AJ=x;AE=AJ*AC;AA.top=(AE+AG)+"px";AC=O.call(AH,"width");t=w%z;AJ=t;s=AJ*AC;AA.left=s+"px";}else{t=w%z;AD=(u-1)*z;AJ=t+AD;s=AJ*AC;AA.left=(s+AG)+"px";AC=O.call(AH,"height");x=Math.floor(w/z);AD=(u-1)*v;AJ=x-AD;AE=AJ*AC;AA.top=AE+"px";}}else{if(AB){AA.left=0;AA.top=((w*AC)+AG)+"px";}else{AA.top=0;AA.left=((w*AC)+AG)+"px";}}return AA;}function D(s){var r=this.get("numVisible");return Math.floor(s/r)*r;}function j(t){var s=0,r=0;s=O.call(this);r=s*t;return r;}function f(r,s){s.scrollPageBackward();c.preventDefault(r);}function k(r,s){s.scrollPageForward();c.preventDefault(r);}function n(w,s){var AA=this,AB=AA.CLASSES,r,y=AA._firstItem,t=AA.get("isCircular"),x=AA.get("numItems"),z=AA.get("numVisible"),v=s,u=y+z-1;if(v>=0&&v<x){if(!p.isUndefined(AA._itemsTable.items[v])){r=e.get(AA._itemsTable.items[v].id);if(r){e.removeClass(r,AB.SELECTED_ITEM);}}}if(p.isNumber(w)){w=parseInt(w,10);w=p.isNumber(w)?w:0;}else{w=y;}if(p.isUndefined(AA._itemsTable.items[w])){w=D.call(AA,w);AA.scrollTo(w);}if(!p.isUndefined(AA._itemsTable.items[w])){r=e.get(AA._itemsTable.items[w].id);if(r){e.addClass(r,AB.SELECTED_ITEM);}}if(w<y||w>u){w=D.call(AA,w);AA.scrollTo(w);}}function l(){var t=false,w=this,s=w.CLASSES,v,r,u;if(!w._hasRendered){return;}r=w.get("navigation");u=w._firstItem+w.get("numVisible");if(r.prev){if(w.get("numItems")===0||w._firstItem===0){if(w.get("numItems")===0||!w.get("isCircular")){c.removeListener(r.prev,"click",f);e.addClass(r.prev,s.FIRST_NAV_DISABLED);for(v=0;v<w._navBtns.prev.length;v++){w._navBtns.prev[v].setAttribute("disabled","true");}w._prevEnabled=false;}else{t=!w._prevEnabled;}}else{t=!w._prevEnabled;}if(t){c.on(r.prev,"click",f,w);e.removeClass(r.prev,s.FIRST_NAV_DISABLED);for(v=0;v<w._navBtns.prev.length;v++){w._navBtns.prev[v].removeAttribute("disabled");}w._prevEnabled=true;}}t=false;if(r.next){if(u>=w.get("numItems")){if(!w.get("isCircular")){c.removeListener(r.next,"click",k);e.addClass(r.next,s.DISABLED);for(v=0;v<w._navBtns.next.length;v++){w._navBtns.next[v].setAttribute("disabled","true");}w._nextEnabled=false;}else{t=!w._nextEnabled;}}else{t=!w._nextEnabled;}if(t){c.on(r.next,"click",k,w);e.removeClass(r.next,s.DISABLED);for(v=0;v<w._navBtns.next.length;v++){w._navBtns.next[v].removeAttribute("disabled");}w._nextEnabled=true;}}w.fireEvent(I,{next:w._nextEnabled,prev:w._prevEnabled});}function R(t){var u=this,r,s;if(!u._hasRendered){return;}s=u.get("numVisible");if(!p.isNumber(t)){t=Math.floor(u.get("selectedItem")/s);}r=Math.ceil(u.get("numItems")/s);u._pages.num=r;u._pages.cur=t;if(r>u.CONFIG.MAX_PAGER_BUTTONS){u._updatePagerMenu();}else{u._updatePagerButtons();}}function M(r,s){switch(s){case"height":return d(r,"marginTop")+d(r,"marginBottom")+d(r,"paddingTop")+d(r,"paddingBottom")+d(r,"borderTopWidth")+d(r,"borderBottomWidth");case"width":return d(r,"marginLeft")+d(r,"marginRight")+d(r,"paddingLeft")+d(r,"paddingRight")+d(r,"borderLeftWidth")+d(r,"borderRightWidth");default:break;}return d(r,s);}function A(s){var r=this;if(!p.isObject(s)){return;}switch(s.ev){case S:r._syncUiForItemAdd(s);break;case o:r._syncUiForItemRemove(s);break;case Q:r._syncUiForItemReplace(s);break;case L:r._syncUiForLazyLoading(s);break;}r.fireEvent(K);}function E(u,s){var w=this,v=w.get("currentPage"),t,r=w.get("numVisible");
 t=parseInt(w._firstItem/r,10);if(t!=v){w.setAttributeConfig("currentPage",{value:t});w.fireEvent(h,t);}if(w.get("selectOnScroll")){if(w.get("selectedItem")!=w._selectedItem){w.set("selectedItem",w._selectedItem);}}clearTimeout(w._autoPlayTimer);delete w._autoPlayTimer;if(w.isAutoPlayOn()){w.startAutoPlay();}w.fireEvent(F,{first:w._firstItem,last:s},w);}U.getById=function(r){return T[r]?T[r].object:false;};YAHOO.extend(U,YAHOO.util.Element,{_rows:null,_cols:null,_animObj:null,_carouselEl:null,_clipEl:null,_firstItem:0,_hasFocus:false,_hasRendered:false,_isAnimationInProgress:false,_isAutoPlayInProgress:false,_itemsTable:null,_navBtns:null,_navEl:null,_nextEnabled:true,_pages:null,_pagination:{},_prevEnabled:true,_recomputeSize:true,_itemAttrCache:{},CLASSES:{BUTTON:"yui-carousel-button",CAROUSEL:"yui-carousel",CAROUSEL_EL:"yui-carousel-element",CONTAINER:"yui-carousel-container",CONTENT:"yui-carousel-content",DISABLED:"yui-carousel-button-disabled",FIRST_NAV:" yui-carousel-first-button",FIRST_NAV_DISABLED:"yui-carousel-first-button-disabled",FIRST_PAGE:"yui-carousel-nav-first-page",FOCUSSED_BUTTON:"yui-carousel-button-focus",HORIZONTAL:"yui-carousel-horizontal",ITEM_LOADING:"yui-carousel-item-loading",MIN_WIDTH:"yui-carousel-min-width",NAVIGATION:"yui-carousel-nav",NEXT_NAV:" yui-carousel-next-button",NEXT_PAGE:"yui-carousel-next",NAV_CONTAINER:"yui-carousel-buttons",PAGER_ITEM:"yui-carousel-pager-item",PAGINATION:"yui-carousel-pagination",PAGE_FOCUS:"yui-carousel-nav-page-focus",PREV_PAGE:"yui-carousel-prev",SELECTED_ITEM:"yui-carousel-item-selected",SELECTED_NAV:"yui-carousel-nav-page-selected",VERTICAL:"yui-carousel-vertical",MULTI_ROW:"yui-carousel-multi-row",ROW:"yui-carousel-row",VERTICAL_CONTAINER:"yui-carousel-vertical-container",VISIBLE:"yui-carousel-visible"},CONFIG:{FIRST_VISIBLE:0,HORZ_MIN_WIDTH:180,MAX_PAGER_BUTTONS:5,VERT_MIN_WIDTH:115,NUM_VISIBLE:3},STRINGS:{ITEM_LOADING_CONTENT:"Loading",NEXT_BUTTON_TEXT:"Next Page",PAGER_PREFIX_TEXT:"Go to page ",PREVIOUS_BUTTON_TEXT:"Previous Page"},addItem:function(y,s){var x=this,u,t,r,z=0,w,v=x.get("numItems");if(!y){return false;}if(p.isString(y)||y.nodeName){t=y.nodeName?y.innerHTML:y;}else{if(p.isObject(y)){t=y.content;}else{return false;}}u=y.className||"";r=y.id?y.id:e.generateId();if(p.isUndefined(s)){x._itemsTable.items.push({item:t,className:u,id:r});w=x._itemsTable.items.length-1;}else{if(s<0||s>v){return false;}if(!x._itemsTable.items[s]){x._itemsTable.items[s]=undefined;z=1;}x._itemsTable.items.splice(s,z,{item:t,className:u,id:r});}x._itemsTable.numItems++;if(v<x._itemsTable.items.length){x.set("numItems",x._itemsTable.items.length);}x.fireEvent(S,{pos:s,ev:S,newPos:w});return true;},addItems:function(r){var s,u,t=true;if(!p.isArray(r)){return false;}for(s=0,u=r.length;s<u;s++){if(this.addItem(r[s][0],r[s][1])===false){t=false;}}return t;},blur:function(){this._carouselEl.blur();this.fireEvent(B);},clearItems:function(){var r=this,s=r.get("numItems");while(s>0){if(!r.removeItem(0)){}if(r._itemsTable.numItems===0){r.set("numItems",0);break;}s--;}r.fireEvent(g);},focus:function(){var AA=this,v,w,x,u,z,AB,s,t,r;if(!AA._hasRendered){return;}if(AA.isAnimating()){return;}r=AA.get("selectedItem");AB=AA.get("numVisible");s=AA.get("selectOnScroll");t=(r>=0)?AA.getItem(r):null;v=AA.get("firstVisible");z=v+AB-1;x=(r<v||r>z);w=(t&&t.id)?e.get(t.id):null;u=AA._itemsTable;if(!s&&x){w=(u&&u.items&&u.items[v])?e.get(u.items[v].id):null;}if(w){try{w.focus();}catch(y){}}AA.fireEvent(X);},hide:function(){var r=this;if(r.fireEvent(b)!==false){r.removeClass(r.CLASSES.VISIBLE);r.fireEvent(a);}},init:function(u,s){var v=this,r=u,w=false,t;if(!u){return;}v._hasRendered=false;v._navBtns={prev:[],next:[]};v._pages={el:null,num:0,cur:0};v._pagination={};v._itemAttrCache={};v._itemsTable={loading:{},numItems:0,items:[],size:0};if(p.isString(u)){u=e.get(u);}else{if(!u.nodeName){return;}}U.superclass.init.call(v,u,s);t=v.get("selectedItem");if(t>0){v.set("firstVisible",D.call(v,t));}if(u){if(!u.id){u.setAttribute("id",e.generateId());}w=v._parseCarousel(u);if(!w){v._createCarousel(r);}}else{u=v._createCarousel(r);}r=u.id;v.initEvents();if(w){v._parseCarouselItems();}if(t>0){n.call(v,t,0);}if(!s||typeof s.isVertical=="undefined"){v.set("isVertical",false);}v._parseCarouselNavigation(u);v._navEl=v._setupCarouselNavigation();T[r]={object:v};v._loadItems(Math.min(v.get("firstVisible")+v.get("numVisible"),v.get("numItems"))-1);},initAttributes:function(r){var s=this;r=r||{};U.superclass.initAttributes.call(s,r);s.setAttributeConfig("carouselEl",{validator:p.isString,value:r.carouselEl||"OL"});s.setAttributeConfig("carouselItemEl",{validator:p.isString,value:r.carouselItemEl||"LI"});s.setAttributeConfig("currentPage",{readOnly:true,value:0});s.setAttributeConfig("firstVisible",{method:s._setFirstVisible,validator:s._validateFirstVisible,value:r.firstVisible||s.CONFIG.FIRST_VISIBLE});s.setAttributeConfig("selectOnScroll",{validator:p.isBoolean,value:r.selectOnScroll||true});s.setAttributeConfig("numVisible",{setter:s._numVisibleSetter,method:s._setNumVisible,validator:s._validateNumVisible,value:r.numVisible||s.CONFIG.NUM_VISIBLE});s.setAttributeConfig("numItems",{method:s._setNumItems,validator:s._validateNumItems,value:s._itemsTable.numItems});s.setAttributeConfig("scrollIncrement",{validator:s._validateScrollIncrement,value:r.scrollIncrement||1});s.setAttributeConfig("selectedItem",{setter:s._selectedItemSetter,method:s._setSelectedItem,validator:p.isNumber,value:-1});s.setAttributeConfig("revealAmount",{method:s._setRevealAmount,validator:s._validateRevealAmount,value:r.revealAmount||0});s.setAttributeConfig("isCircular",{validator:p.isBoolean,value:r.isCircular||false});s.setAttributeConfig("isVertical",{method:s._setOrientation,validator:p.isBoolean,value:r.isVertical||false});s.setAttributeConfig("navigation",{method:s._setNavigation,validator:s._validateNavigation,value:r.navigation||{prev:null,next:null,page:null}});s.setAttributeConfig("animation",{validator:s._validateAnimation,value:r.animation||{speed:0,effect:null}});
 s.setAttributeConfig("autoPlay",{validator:p.isNumber,value:r.autoPlay||0});s.setAttributeConfig("autoPlayInterval",{validator:p.isNumber,value:r.autoPlayInterval||0});s.setAttributeConfig("numPages",{readOnly:true,getter:s._getNumPages});s.setAttributeConfig("lastVisible",{readOnly:true,getter:s._getLastVisible});},initEvents:function(){var t=this,s=t.CLASSES,r;t.on("keydown",t._keyboardEventHandler);t.on(F,l);t.on(S,A);t.on(o,A);t.on(Q,A);t.on(C,function(){if(t._hasFocus){t.focus();}});t.on(L,A);t.on(g,function(u){t.scrollTo(0);l.call(t);R.call(t);});t.on(h,R,t);t.on(H,function(u){if(t.get("selectedItem")===null||t.get("selectedItem")<=0){t.set("selectedItem",t.get("firstVisible"));}l.call(t,u);R.call(t,u);t._setClipContainerSize();t.show();});t.on("selectedItemChange",function(u){n.call(t,u.newValue,u.prevValue);if(u.newValue>=0){t._updateTabIndex(t.getElementForItem(u.newValue));}t.fireEvent(C,u.newValue);});t.on(K,function(u){l.call(t,u);R.call(t,u);});t.on("firstVisibleChange",function(u){if(!t.get("selectOnScroll")){if(u.newValue>=0){t._updateTabIndex(t.getElementForItem(u.newValue));}}});t.on("click",function(u){if(t.isAutoPlayOn()){t.stopAutoPlay();}t._itemClickHandler(u);t._pagerClickHandler(u);});c.onFocus(t.get("element"),function(u,w){var v=c.getTarget(u);if(v&&v.nodeName.toUpperCase()=="A"&&e.getAncestorByClassName(v,s.NAVIGATION)){if(r){e.removeClass(r,s.PAGE_FOCUS);}r=v.parentNode;e.addClass(r,s.PAGE_FOCUS);}else{if(r){e.removeClass(r,s.PAGE_FOCUS);}}w._hasFocus=true;w._updateNavButtons(c.getTarget(u),true);},t);c.onBlur(t.get("element"),function(u,v){v._hasFocus=false;v._updateNavButtons(c.getTarget(u),false);},t);},isAnimating:function(){return this._isAnimationInProgress;},isAutoPlayOn:function(){return this._isAutoPlayInProgress;},getElementForItem:function(r){var s=this;if(r<0||r>=s.get("numItems")){return null;}if(s._itemsTable.items[r]){return e.get(s._itemsTable.items[r].id);}return null;},getElementForItems:function(){var t=this,s=[],r;for(r=0;r<t._itemsTable.numItems;r++){s.push(t.getElementForItem(r));}return s;},getItem:function(r){var s=this;if(r<0||r>=s.get("numItems")){return null;}if(s._itemsTable.numItems>r){if(!p.isUndefined(s._itemsTable.items[r])){return s._itemsTable.items[r];}}return null;},getItems:function(){return this._itemsTable.items;},getLoadingItems:function(){return this._itemsTable.loading;},getRows:function(){return this._rows;},getCols:function(){return this._cols;},getItemPositionById:function(w){var u=this,v=u.get("numItems"),s=0,r=u._itemsTable.items,t;while(s<v){t=r[s]||{};if(t.id==w){return s;}s++;}return -1;},getVisibleItems:function(){var u=this,s=u.get("firstVisible"),v=s+u.get("numVisible"),t=[];while(s<v){t.push(u.getElementForItem(s));s++;}return t;},removeItem:function(s){var u=this,t,r=u.get("numItems");if(s<0||s>=r){return false;}t=u._itemsTable.items.splice(s,1);if(t&&t.length==1){u._itemsTable.numItems--;u.set("numItems",r-1);u.fireEvent(o,{item:t[0],pos:s,ev:o});return true;}return false;},replaceItem:function(z,u){var y=this,w,v,t,x=y.get("numItems"),s,r=z;if(!z){return false;}if(p.isString(z)||z.nodeName){v=z.nodeName?z.innerHTML:z;}else{if(p.isObject(z)){v=z.content;}else{return false;}}if(p.isUndefined(u)){return false;}else{if(u<0||u>=x){return false;}s=y._itemsTable.items[u];if(!s){s=y._itemsTable.loading[u];y._itemsTable.items[u]=undefined;}y._itemsTable.items.splice(u,1,{item:v,className:z.className||"",id:e.generateId()});r=y._itemsTable.items[u];}y.fireEvent(Q,{newItem:r,oldItem:s,pos:u,ev:Q});return true;},replaceItems:function(r){var s,u,t=true;if(!p.isArray(r)){return false;}for(s=0,u=r.length;s<u;s++){if(this.replaceItem(r[s][0],r[s][1])===false){t=false;}}return t;},render:function(s){var u=this,r=u.CLASSES,t=u._rows;u.addClass(r.CAROUSEL);if(!u._clipEl){u._clipEl=u._createCarouselClip();u._clipEl.appendChild(u._carouselEl);}if(s){u.appendChild(u._clipEl);u.appendTo(s);}else{if(!e.inDocument(u.get("element"))){return false;}u.appendChild(u._clipEl);}if(t){e.addClass(u._clipEl,r.MULTI_ROW);}if(u.get("isVertical")){u.addClass(r.VERTICAL);}else{u.addClass(r.HORIZONTAL);}if(u.get("numItems")<1){return false;}u._refreshUi();return true;},scrollBackward:function(){var r=this;r.scrollTo(r._firstItem-r.get("scrollIncrement"));},scrollForward:function(){var r=this;r.scrollTo(r._firstItem+r.get("scrollIncrement"));},scrollPageBackward:function(){var t=this,u=t.get("isVertical"),s=t._cols,r=t._firstItem-t.get("numVisible");if(r<0){if(s){r=t._firstItem-s;}}if(t.get("selectOnScroll")){t._selectedItem=t._getSelectedItem(r);}t.scrollTo(r);},scrollPageForward:function(){var s=this,r=s._firstItem+s.get("numVisible");if(r>s.get("numItems")){r=0;}if(s.get("selectOnScroll")){s._selectedItem=s._getSelectedItem(r);}s.scrollTo(r);},scrollTo:function(AL,AI){var AH=this,u,AJ,z,AB,AC,AM,AN,AO,AD,AA,v,AF,s,w,t,x,AE,y,AP,AK=AH._itemsTable,AG=AK.items,r=AK.loading;if(p.isUndefined(AL)||AL==AH._firstItem||AH.isAnimating()){return;}AJ=AH.get("animation");z=AH.get("isCircular");AB=AH.get("isVertical");AA=AH._cols;v=AH._rows;AO=AH._firstItem;AF=AH.get("numItems");s=AH.get("numVisible");t=AH.get("currentPage");AP=function(){if(AH.isAutoPlayOn()){AH.stopAutoPlay();}};if(AL<0){if(z){AL=AF+AL;}else{AP.call(AH);return;}}else{if(AF>0&&AL>AF-1){if(AH.get("isCircular")){AL=AF-AL;}else{AP.call(AH);return;}}}if(isNaN(AL)){return;}AN=(AH._firstItem>AL)?"backward":"forward";AE=AO+s;AE=(AE>AF-1)?AF-1:AE;x=AH.fireEvent(i,{dir:AN,first:AO,last:AE});if(x===false){return;}AH.fireEvent(J,{page:t});AD=AL+s-1;AH._loadItems(AD>AF-1?AF-1:AD);AM=0-AL;if(v){if(AB){AM=parseInt(AM/AA,10);}else{AM=parseInt(AM/v,10);}}y=0;while(AM<0&&y<AL+s-1&&y<AF){if(!AG[y]&&!r[y]){AM++;}y+=v?v:1;}AH._firstItem=AL;AH.set("firstVisible",AL);AE=AL+s;AE=(AE>AF-1)?AF-1:AE;w=j.call(AH,AM);u=AJ.speed>0;if(u){AH._animateAndSetCarouselOffset(w,AL,AE,AI);}else{AH._setCarouselOffset(w);E.call(AH,AL,AE);}},getPageForItem:function(r){return Math.ceil((r+1)/parseInt(this.get("numVisible"),10));},getFirstVisibleOnPage:function(r){return(r-1)*this.get("numVisible");
 },selectPreviousItem:function(){var t=this,s=0,r=t.get("selectedItem");if(r==this._firstItem){s=r-t.get("numVisible");t._selectedItem=t._getSelectedItem(r-1);t.scrollTo(s);}else{s=t.get("selectedItem")-t.get("scrollIncrement");t.set("selectedItem",t._getSelectedItem(s));}},selectNextItem:function(){var s=this,r=0;r=s.get("selectedItem")+s.get("scrollIncrement");s.set("selectedItem",s._getSelectedItem(r));},show:function(){var s=this,r=s.CLASSES;if(s.fireEvent(Y)!==false){s.addClass(r.VISIBLE);s.fireEvent(V);}},startAutoPlay:function(){var r=this,s;if(p.isUndefined(r._autoPlayTimer)){s=r.get("autoPlayInterval");if(s<=0){return;}r._isAutoPlayInProgress=true;r.fireEvent(Z);r._autoPlayTimer=setTimeout(function(){r._autoScroll();},s);}},stopAutoPlay:function(){var r=this;if(!p.isUndefined(r._autoPlayTimer)){clearTimeout(r._autoPlayTimer);delete r._autoPlayTimer;r._isAutoPlayInProgress=false;r.fireEvent(q);}},updatePagination:function(){var z=this,x=z._pagination;if(!x.el){return false;}var w=z.get("numItems"),AA=z.get("numVisible"),u=z.get("firstVisible")+1,v=z.get("currentPage")+1,r=z.get("numPages"),t={"numVisible":AA,"numPages":r,"numItems":w,"selectedItem":z.get("selectedItem")+1,"currentPage":v,"firstVisible":u,"lastVisible":z.get("lastVisible")+1},s=x.callback||{},y=s.scope&&s.obj?s.obj:z;x.el.innerHTML=p.isFunction(s.fn)?s.fn.apply(y,[x.template,t]):YAHOO.lang.substitute(x.template,t);},registerPagination:function(s,u,r){var t=this;t._pagination.template=s;t._pagination.callback=r||{};if(!t._pagination.el){t._pagination.el=W("DIV",{className:t.CLASSES.PAGINATION});if(u=="before"){t._navEl.insertBefore(t._pagination.el,t._navEl.firstChild);}else{t._navEl.appendChild(t._pagination.el);}t.on("itemSelected",t.updatePagination);t.on("pageChange",t.updatePagination);}t.updatePagination();},toString:function(){return P+(this.get?" (#"+this.get("id")+")":"");},_animateAndSetCarouselOffset:function(w,u,s){var v=this,t=v.get("animation"),r=null;if(v.get("isVertical")){r=new YAHOO.util.Motion(v._carouselEl,{top:{to:w}},t.speed,t.effect);}else{r=new YAHOO.util.Motion(v._carouselEl,{left:{to:w}},t.speed,t.effect);}v._isAnimationInProgress=true;r.onComplete.subscribe(v._animationCompleteHandler,{scope:v,item:u,last:s});r.animate();},_animationCompleteHandler:function(r,s,t){t.scope._isAnimationInProgress=false;E.call(t.scope,t.item,t.last);},_autoScroll:function(){var s=this,t=s._firstItem,r;if(t>=s.get("numItems")-1){if(s.get("isCircular")){r=0;}else{s.stopAutoPlay();}}else{r=t+s.get("numVisible");}s._selectedItem=s._getSelectedItem(r);s.scrollTo.call(s,r);},_createCarousel:function(s){var u=this,r=u.CLASSES,t=e.get(s);if(!t){t=W("DIV",{className:r.CAROUSEL,id:s});}if(!u._carouselEl){u._carouselEl=W(u.get("carouselEl"),{className:r.CAROUSEL_EL});}return t;},_createCarouselClip:function(){return W("DIV",{className:this.CLASSES.CONTENT});},_createCarouselItem:function(u){var r,t=this,s=m.call(t,u.pos);return W(t.get("carouselItemEl"),{className:u.className,styles:u.styles,content:u.content,id:u.id});},_getValidIndex:function(t){var w=this,r=w.get("isCircular"),u=w.get("numItems"),v=w.get("numVisible"),s=u-1;if(t<0){t=r?Math.ceil(u/v)*v+t:0;}else{if(t>s){t=r?0:s;}}return t;},_getSelectedItem:function(v){var u=this,r=u.get("isCircular"),t=u.get("numItems"),s=t-1;if(v<0){if(r){v=t+v;}else{v=u.get("selectedItem");}}else{if(v>s){if(r){v=v-t;}else{v=u.get("selectedItem");}}}return v;},_itemClickHandler:function(v){var y=this,w=y.get("carouselItemEl"),s=y.get("element"),t,u,x=c.getTarget(v),r=x.tagName.toUpperCase();if(r==="INPUT"||r==="SELECT"||r==="TEXTAREA"){return;}while(x&&x!=s&&x.id!=y._carouselEl){t=x.nodeName;if(t.toUpperCase()==w){break;}x=x.parentNode;}if((u=y.getItemPositionById(x.id))>=0){y.set("selectedItem",y._getSelectedItem(u));y.focus();}},_keyboardEventHandler:function(t){var v=this,s=c.getCharCode(t),u=c.getTarget(t),r=false;if(v.isAnimating()||u.tagName.toUpperCase()==="SELECT"){return;}switch(s){case 37:case 38:v.selectPreviousItem();r=true;break;case 39:case 40:v.selectNextItem();r=true;break;case 33:v.scrollPageBackward();r=true;break;case 34:v.scrollPageForward();r=true;break;}if(r){if(v.isAutoPlayOn()){v.stopAutoPlay();}c.preventDefault(t);}},_loadItems:function(t){var w=this,s=w.get("numItems"),u=w.get("numVisible"),v=w.get("revealAmount"),x=w._itemsTable.items.length,r=w.get("lastVisible");if(x>t&&t+1>=u){x=t%u||t==r?t-t%u:t-u+1;}if(v&&t<s-1){t++;}if(t>=x&&(!w.getItem(x)||!w.getItem(t))){w.fireEvent(L,{ev:L,first:x,last:t,num:t-x+1});}},_pagerChangeHandler:function(s){var v=this,u=c.getTarget(s),t=u.value,r;if(t){r=v.getFirstVisibleOnPage(t);v._selectedItem=r;v.scrollTo(r);v.focus();}},_pagerClickHandler:function(x){var z=this,t=z.CLASSES,u=c.getTarget(x),s=u.nodeName.toUpperCase(),r,w,v,y;if(e.hasClass(u,t.PAGER_ITEM)||e.hasClass(u.parentNode,t.PAGER_ITEM)){if(s=="EM"){u=u.parentNode;}r=u.href;w=r.lastIndexOf("#");v=parseInt(r.substring(w+1),10);if(v!=-1){y=z.getFirstVisibleOnPage(v);z._selectedItem=y;z.scrollTo(y);z.focus();}c.preventDefault(x);}},_parseCarousel:function(t){var w=this,x,r,s,v,u;r=w.CLASSES;s=w.get("carouselEl");v=false;for(x=t.firstChild;x;x=x.nextSibling){if(x.nodeType==1){u=x.nodeName;if(u.toUpperCase()==s){w._carouselEl=x;e.addClass(w._carouselEl,w.CLASSES.CAROUSEL_EL);v=true;}}}return v;},_parseCarouselItems:function(){var y=this,AA=y.CLASSES,v=0,z,r,t,u,s,w=y.get("firstVisible"),x=y._carouselEl;z=y._rows;t=y.get("carouselItemEl");for(r=x.firstChild;r;r=r.nextSibling){if(r.nodeType==1){s=r.nodeName;if(s.toUpperCase()==t){if(r.id){u=r.id;}else{u=e.generateId();r.setAttribute("id",u);}y.addItem(r,w);w++;}}}},_parseCarouselNavigation:function(x){var y=this,w,z=y.CLASSES,s,v,u,r,t=false;r=e.getElementsByClassName(z.PREV_PAGE,"*",x);if(r.length>0){for(v in r){if(r.hasOwnProperty(v)){s=r[v];if(s.nodeName=="INPUT"||s.nodeName=="BUTTON"||s.nodeName=="A"){y._navBtns.prev.push(s);}else{u=s.getElementsByTagName("INPUT");if(p.isArray(u)&&u.length>0){y._navBtns.prev.push(u[0]);
 }else{u=s.getElementsByTagName("BUTTON");if(p.isArray(u)&&u.length>0){y._navBtns.prev.push(u[0]);}}}}}w={prev:r};}r=e.getElementsByClassName(z.NEXT_PAGE,"*",x);if(r.length>0){for(v in r){if(r.hasOwnProperty(v)){s=r[v];if(s.nodeName=="INPUT"||s.nodeName=="BUTTON"||s.nodeName=="A"){y._navBtns.next.push(s);}else{u=s.getElementsByTagName("INPUT");if(p.isArray(u)&&u.length>0){y._navBtns.next.push(u[0]);}else{u=s.getElementsByTagName("BUTTON");if(p.isArray(u)&&u.length>0){y._navBtns.next.push(u[0]);}}}}}if(w){w.next=r;}else{w={next:r};}}if(w){y.set("navigation",w);t=true;}return t;},_refreshUi:function(){var v=this,s,w=v.get("isVertical"),y=v.get("firstVisible"),t,x,r,u;if(v._itemsTable.numItems<1){return;}u=O.call(v,w?"height":"width");t=v._itemsTable.items[y].id;u=w?d(t,"width"):d(t,"height");e.setStyle(v._carouselEl,w?"width":"height",u+"px");v._hasRendered=true;v.fireEvent(H);},_setCarouselOffset:function(t){var r=this,s;s=r.get("isVertical")?"top":"left";e.setStyle(r._carouselEl,s,t+"px");},_setupCarouselNavigation:function(){var w=this,u,s,r,y,v,x,t;r=w.CLASSES;v=e.getElementsByClassName(r.NAVIGATION,"DIV",w.get("element"));if(v.length===0){v=W("DIV",{className:r.NAVIGATION});w.insertBefore(v,e.getFirstChild(w.get("element")));}else{v=v[0];}w._pages.el=W("UL");v.appendChild(w._pages.el);y=w.get("navigation");if(p.isString(y.prev)||p.isArray(y.prev)){if(p.isString(y.prev)){y.prev=[y.prev];}for(u in y.prev){if(y.prev.hasOwnProperty(u)){w._navBtns.prev.push(e.get(y.prev[u]));}}}else{t=W("SPAN",{className:r.BUTTON+r.FIRST_NAV});e.setStyle(t,"visibility","visible");u=e.generateId();t.innerHTML='<button type="button" '+'id="'+u+'" name="'+w.STRINGS.PREVIOUS_BUTTON_TEXT+'">'+w.STRINGS.PREVIOUS_BUTTON_TEXT+"</button>";v.appendChild(t);u=e.get(u);w._navBtns.prev=[u];s={prev:[t]};}if(p.isString(y.next)||p.isArray(y.next)){if(p.isString(y.next)){y.next=[y.next];}for(u in y.next){if(y.next.hasOwnProperty(u)){w._navBtns.next.push(e.get(y.next[u]));}}}else{x=W("SPAN",{className:r.BUTTON+r.NEXT_NAV});e.setStyle(x,"visibility","visible");u=e.generateId();x.innerHTML='<button type="button" '+'id="'+u+'" name="'+w.STRINGS.NEXT_BUTTON_TEXT+'">'+w.STRINGS.NEXT_BUTTON_TEXT+"</button>";v.appendChild(x);u=e.get(u);w._navBtns.next=[u];if(s){s.next=[x];}else{s={next:[x]};}}if(s){w.set("navigation",s);}return v;},_setClipContainerSize:function(r,t){var z=this,x=z.get("isVertical"),AB=z._rows,v=z._cols,y=z.get("revealAmount"),s=O.call(z,"height"),u=O.call(z,"width"),AA,w;r=r||z._clipEl;if(AB){AA=s*AB;w=u*v;}else{t=t||z.get("numVisible");if(x){AA=s*t;}else{w=u*t;}}z._recomputeSize=(AA===0);if(z._recomputeSize){z._hasRendered=false;return;}y=N.call(z);if(x){AA+=(y*2);}else{w+=(y*2);}if(x){AA+=M(z._carouselEl,"height");e.setStyle(r,"height",AA+"px");if(v){w+=M(z._carouselEl,"width");e.setStyle(r,"width",w+(0)+"px");}}else{w+=M(z._carouselEl,"width");e.setStyle(r,"width",w+"px");if(AB){AA+=M(z._carouselEl,"height");e.setStyle(r,"height",AA+"px");}}z._setContainerSize(r);},_setContainerSize:function(s,t){var w=this,r=w.CONFIG,z=w.CLASSES,v,y,u,x;v=w.get("isVertical");y=w._rows;u=w._cols;s=s||w._clipEl;t=t||(v?"height":"width");x=parseFloat(e.getStyle(s,t),10);x=p.isNumber(x)?x:0;if(v){x+=M(w._carouselEl,"height")+d(w._navEl,"height");}else{x+=M(w._carouselEl,"width");}if(!v){if(x<r.HORZ_MIN_WIDTH){x=r.HORZ_MIN_WIDTH;w.addClass(z.MIN_WIDTH);}}w.setStyle(t,x+"px");if(v){x=O.call(w,"width");if(u){x=x*u;}e.setStyle(w._carouselEl,"width",x+"px");if(x<r.VERT_MIN_WIDTH){x=r.VERT_MIN_WIDTH;w.addClass(z.MIN_WIDTH);}w.setStyle("width",x+"px");}else{if(y){x=O.call(w,"height");x=x*y;e.setStyle(w._carouselEl,"height",x+"px");}}},_setFirstVisible:function(s){var r=this;if(s>=0&&s<r.get("numItems")){r.scrollTo(s);}else{s=r.get("firstVisible");}return s;},_setNavigation:function(r){var s=this;if(r.prev){c.on(r.prev,"click",f,s);}if(r.next){c.on(r.next,"click",k,s);}},_setNumVisible:function(s){var r=this;r._setClipContainerSize(r._clipEl,s);},_numVisibleSetter:function(t){var s=this,r=t;if(p.isArray(t)){s._cols=t[0];s._rows=t[1];r=t[0]*t[1];}return r;},_selectedItemSetter:function(s){var r=this;return(s<r.get("numItems"))?s:0;},_setNumItems:function(t){var s=this,r=s._itemsTable.numItems;if(p.isArray(s._itemsTable.items)){if(s._itemsTable.items.length!=r){r=s._itemsTable.items.length;s._itemsTable.numItems=r;}}if(t<r){while(r>t){s.removeItem(r-1);r--;}}return t;},_setOrientation:function(t){var s=this,r=s.CLASSES;if(t){s.replaceClass(r.HORIZONTAL,r.VERTICAL);}else{s.replaceClass(r.VERTICAL,r.HORIZONTAL);}this._itemAttrCache={};return t;},_setRevealAmount:function(s){var r=this;if(s>=0&&s<=100){s=parseInt(s,10);s=p.isNumber(s)?s:0;r._setClipContainerSize();}else{s=r.get("revealAmount");}return s;},_setSelectedItem:function(r){this._selectedItem=r;},_getNumPages:function(){return Math.ceil(parseInt(this.get("numItems"),10)/parseInt(this.get("numVisible"),10));},_getLastVisible:function(){var r=this;return r.get("currentPage")+1==r.get("numPages")?r.get("numItems")-1:r.get("firstVisible")+r.get("numVisible")-1;},_syncUiForItemAdd:function(u){var v,AA=this,x=AA._carouselEl,r,AB,t=AA._itemsTable,s,w,y,z;w=p.isUndefined(u.pos)?u.newPos||t.numItems-1:u.pos;if(!s){AB=t.items[w]||{};r=AA._createCarouselItem({className:AB.className,styles:AB.styles,content:AB.item,id:AB.id,pos:w});if(p.isUndefined(u.pos)){if(!p.isUndefined(t.loading[w])){s=t.loading[w];}if(s){x.replaceChild(r,s);delete t.loading[w];}else{x.appendChild(r);}}else{if(!p.isUndefined(t.items[u.pos+1])){y=e.get(t.items[u.pos+1].id);}if(y){x.insertBefore(r,y);}else{}}}else{if(p.isUndefined(u.pos)){if(!e.isAncestor(AA._carouselEl,s)){x.appendChild(s);}}else{if(!e.isAncestor(x,s)){if(!p.isUndefined(t.items[u.pos+1])){x.insertBefore(s,e.get(t.items[u.pos+1].id));}}}}if(!AA._hasRendered){AA._refreshUi();}if(AA.get("selectedItem")<0){AA.set("selectedItem",AA.get("firstVisible"));}AA._syncUiItems();},_syncUiForItemReplace:function(x){var w=this,t=w._carouselEl,r=w._itemsTable,y=x.pos,v=x.newItem,s=x.oldItem,u;
-u=w._createCarouselItem({className:v.className,styles:v.styles,content:v.item,id:v.id,pos:y});if(u&&s){c.purgeElement(s,true);t.replaceChild(u,e.get(s.id));if(!p.isUndefined(r.loading[y])){r.numItems++;delete r.loading[y];}}if(!w._hasRendered){w._refreshUi();}w._syncUiItems();},_syncUiForItemRemove:function(w){var v=this,r=v._carouselEl,t,u,s,x;s=v.get("numItems");u=w.item;x=w.pos;if(u&&(t=e.get(u.id))){if(t&&e.isAncestor(r,t)){c.purgeElement(t,true);r.removeChild(t);}if(v.get("selectedItem")==x){x=x>=s?s-1:x;}}else{}v._syncUiItems();},_syncUiForLazyLoading:function(v){var z=this,x=z._carouselEl,t=z._itemsTable,w=t.items.length,y=t.items[v.last+1],r,s;if(!y&&v.last<w){s=v.first;do{y=t.items[s];s++;}while(s<w&&!y);}for(var u=v.first;u<=v.last;u++){if(p.isUndefined(t.loading[u])&&p.isUndefined(t.items[u])){r=z._createCarouselItem({className:z.CLASSES.ITEM_LOADING,content:z.STRINGS.ITEM_LOADING_CONTENT,id:e.generateId(),pos:u});if(r){if(y){y=e.get(y.id);if(y){x.insertBefore(r,y);}else{}}else{x.appendChild(r);}}t.loading[u]=r;}}z._syncUiItems();},_syncUiItems:function(){var u,y=this,w=y.get("numItems"),t,s=y._itemsTable,v=s.items,r=s.loading,z,x;for(t=0;t<w;t++){z=v[t]||r[t];if(z&&z.id){x=m.call(y,t);z.styles=z.styles||{};for(u in x){if(x.hasOwnProperty(u)){z.styles[u]=x[u];}}G(e.get(z.id),x);}}},_updateNavButtons:function(v,s){var t,r=this.CLASSES,w,u=v.parentNode;if(!u){return;}w=u.parentNode;if(v.nodeName.toUpperCase()=="BUTTON"&&e.hasClass(u,r.BUTTON)){if(s){if(w){t=e.getChildren(w);if(t){e.removeClass(t,r.FOCUSSED_BUTTON);}}e.addClass(u,r.FOCUSSED_BUTTON);}else{e.removeClass(u,r.FOCUSSED_BUTTON);}}},_updatePagerButtons:function(){var z=this,x=z.CLASSES,y=z._pages.cur,r,w,u,AA,s=z.get("numVisible"),v=z._pages.num,t=z._pages.el;if(v===0||!t){return;}e.setStyle(t,"visibility","hidden");while(t.firstChild){t.removeChild(t.firstChild);}for(u=0;u<v;u++){r=document.createElement("LI");if(u===0){e.addClass(r,x.FIRST_PAGE);}if(u==y){e.addClass(r,x.SELECTED_NAV);}w="<a class="+x.PAGER_ITEM+' href="#'+(u+1)+'" tabindex="0"><em>'+z.STRINGS.PAGER_PREFIX_TEXT+" "+(u+1)+"</em></a>";r.innerHTML=w;t.appendChild(r);}e.setStyle(t,"visibility","visible");},_updatePagerMenu:function(){var z=this,x=z.CLASSES,y=z._pages.cur,s,v,AA,t=z.get("numVisible"),w=z._pages.num,u=z._pages.el,r;if(w===0){return;}r=document.createElement("SELECT");if(!r){return;}e.setStyle(u,"visibility","hidden");while(u.firstChild){u.removeChild(u.firstChild);}for(v=0;v<w;v++){s=document.createElement("OPTION");s.value=v+1;s.innerHTML=z.STRINGS.PAGER_PREFIX_TEXT+" "+(v+1);if(v==y){s.setAttribute("selected","selected");}r.appendChild(s);}s=document.createElement("FORM");if(!s){}else{s.appendChild(r);u.appendChild(s);}c.addListener(r,"change",z._pagerChangeHandler,this,true);e.setStyle(u,"visibility","visible");},_updateTabIndex:function(r){var s=this;if(r){if(s._focusableItemEl){s._focusableItemEl.tabIndex=-1;}s._focusableItemEl=r;r.tabIndex=0;}},_validateAnimation:function(r){var s=true;if(p.isObject(r)){if(r.speed){s=s&&p.isNumber(r.speed);}if(r.effect){s=s&&p.isFunction(r.effect);}else{if(!p.isUndefined(YAHOO.util.Easing)){r.effect=YAHOO.util.Easing.easeOut;}}}else{s=false;}return s;},_validateFirstVisible:function(t){var s=this,r=s.get("numItems");if(p.isNumber(t)){if(r===0&&t==r){return true;}else{return(t>=0&&t<r);}}return false;},_validateNavigation:function(r){var s;if(!p.isObject(r)){return false;}if(r.prev){if(!p.isArray(r.prev)){return false;}for(s in r.prev){if(r.prev.hasOwnProperty(s)){if(!p.isString(r.prev[s].nodeName)){return false;}}}}if(r.next){if(!p.isArray(r.next)){return false;}for(s in r.next){if(r.next.hasOwnProperty(s)){if(!p.isString(r.next[s].nodeName)){return false;}}}}return true;},_validateNumItems:function(r){return p.isNumber(r)&&(r>=0);},_validateNumVisible:function(r){var s=false;if(p.isNumber(r)){s=r>0&&r<=this.get("numItems");}else{if(p.isArray(r)){if(p.isNumber(r[0])&&p.isNumber(r[1])){s=r[0]*r[1]>0&&r.length==2;}}}return s;},_validateRevealAmount:function(r){var s=false;if(p.isNumber(r)){s=r>=0&&r<100;}return s;},_validateScrollIncrement:function(r){var s=false;if(p.isNumber(r)){s=(r>0&&r<this.get("numItems"));}return s;}});})();YAHOO.register("carousel",YAHOO.widget.Carousel,{version:"2.8.1",build:"19"});
\ No newline at end of file
+u=w._createCarouselItem({className:v.className,styles:v.styles,content:v.item,id:v.id,pos:y});if(u&&s){c.purgeElement(s,true);t.replaceChild(u,e.get(s.id));if(!p.isUndefined(r.loading[y])){r.numItems++;delete r.loading[y];}}if(!w._hasRendered){w._refreshUi();}w._syncUiItems();},_syncUiForItemRemove:function(w){var v=this,r=v._carouselEl,t,u,s,x;s=v.get("numItems");u=w.item;x=w.pos;if(u&&(t=e.get(u.id))){if(t&&e.isAncestor(r,t)){c.purgeElement(t,true);r.removeChild(t);}if(v.get("selectedItem")==x){x=x>=s?s-1:x;}}else{}v._syncUiItems();},_syncUiForLazyLoading:function(v){var z=this,x=z._carouselEl,t=z._itemsTable,w=t.items.length,y=t.items[v.last+1],r,s;if(!y&&v.last<w){s=v.first;do{y=t.items[s];s++;}while(s<w&&!y);}for(var u=v.first;u<=v.last;u++){if(p.isUndefined(t.loading[u])&&p.isUndefined(t.items[u])){r=z._createCarouselItem({className:z.CLASSES.ITEM_LOADING,content:z.STRINGS.ITEM_LOADING_CONTENT,id:e.generateId(),pos:u});if(r){if(y){y=e.get(y.id);if(y){x.insertBefore(r,y);}else{}}else{x.appendChild(r);}}t.loading[u]=r;}}z._syncUiItems();},_syncUiItems:function(){var u,y=this,w=y.get("numItems"),t,s=y._itemsTable,v=s.items,r=s.loading,z,x;for(t=0;t<w;t++){z=v[t]||r[t];if(z&&z.id){x=m.call(y,t);z.styles=z.styles||{};for(u in x){if(x.hasOwnProperty(u)){z.styles[u]=x[u];}}G(e.get(z.id),x);}}},_updateNavButtons:function(v,s){var t,r=this.CLASSES,w,u=v.parentNode;if(!u){return;}w=u.parentNode;if(v.nodeName.toUpperCase()=="BUTTON"&&e.hasClass(u,r.BUTTON)){if(s){if(w){t=e.getChildren(w);if(t){e.removeClass(t,r.FOCUSSED_BUTTON);}}e.addClass(u,r.FOCUSSED_BUTTON);}else{e.removeClass(u,r.FOCUSSED_BUTTON);}}},_updatePagerButtons:function(){var z=this,x=z.CLASSES,y=z._pages.cur,r,w,u,AA,s=z.get("numVisible"),v=z._pages.num,t=z._pages.el;if(v===0||!t){return;}e.setStyle(t,"visibility","hidden");while(t.firstChild){t.removeChild(t.firstChild);}for(u=0;u<v;u++){r=document.createElement("LI");if(u===0){e.addClass(r,x.FIRST_PAGE);}if(u==y){e.addClass(r,x.SELECTED_NAV);}w="<a class="+x.PAGER_ITEM+' href="#'+(u+1)+'" tabindex="0"><em>'+z.STRINGS.PAGER_PREFIX_TEXT+" "+(u+1)+"</em></a>";r.innerHTML=w;t.appendChild(r);}e.setStyle(t,"visibility","visible");},_updatePagerMenu:function(){var z=this,x=z.CLASSES,y=z._pages.cur,s,v,AA,t=z.get("numVisible"),w=z._pages.num,u=z._pages.el,r;if(w===0){return;}r=document.createElement("SELECT");if(!r){return;}e.setStyle(u,"visibility","hidden");while(u.firstChild){u.removeChild(u.firstChild);}for(v=0;v<w;v++){s=document.createElement("OPTION");s.value=v+1;s.innerHTML=z.STRINGS.PAGER_PREFIX_TEXT+" "+(v+1);if(v==y){s.setAttribute("selected","selected");}r.appendChild(s);}s=document.createElement("FORM");if(!s){}else{s.appendChild(r);u.appendChild(s);}c.addListener(r,"change",z._pagerChangeHandler,this,true);e.setStyle(u,"visibility","visible");},_updateTabIndex:function(r){var s=this;if(r){if(s._focusableItemEl){s._focusableItemEl.tabIndex=-1;}s._focusableItemEl=r;r.tabIndex=0;}},_validateAnimation:function(r){var s=true;if(p.isObject(r)){if(r.speed){s=s&&p.isNumber(r.speed);}if(r.effect){s=s&&p.isFunction(r.effect);}else{if(!p.isUndefined(YAHOO.util.Easing)){r.effect=YAHOO.util.Easing.easeOut;}}}else{s=false;}return s;},_validateFirstVisible:function(t){var s=this,r=s.get("numItems");if(p.isNumber(t)){if(r===0&&t==r){return true;}else{return(t>=0&&t<r);}}return false;},_validateNavigation:function(r){var s;if(!p.isObject(r)){return false;}if(r.prev){if(!p.isArray(r.prev)){return false;}for(s in r.prev){if(r.prev.hasOwnProperty(s)){if(!p.isString(r.prev[s].nodeName)){return false;}}}}if(r.next){if(!p.isArray(r.next)){return false;}for(s in r.next){if(r.next.hasOwnProperty(s)){if(!p.isString(r.next[s].nodeName)){return false;}}}}return true;},_validateNumItems:function(r){return p.isNumber(r)&&(r>=0);},_validateNumVisible:function(r){var s=false;if(p.isNumber(r)){s=r>0&&r<=this.get("numItems");}else{if(p.isArray(r)){if(p.isNumber(r[0])&&p.isNumber(r[1])){s=r[0]*r[1]>0&&r.length==2;}}}return s;},_validateRevealAmount:function(r){var s=false;if(p.isNumber(r)){s=r>=0&&r<100;}return s;},_validateScrollIncrement:function(r){var s=false;if(p.isNumber(r)){s=(r>0&&r<this.get("numItems"));}return s;}});})();YAHOO.register("carousel",YAHOO.widget.Carousel,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/carousel/carousel.js b/build/carousel/carousel.js
index 81cc629..b867d55 100644
--- a/build/carousel/carousel.js
+++ b/build/carousel/carousel.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Carousel module provides a widget for browsing among a set of like
@@ -4346,4 +4346,4 @@ version: 2.8.1
 ;;  indent-tabs-mode: nil **
 ;;  End: **
 */
-YAHOO.register("carousel", YAHOO.widget.Carousel, {version: "2.8.1", build: "19"});
+YAHOO.register("carousel", YAHOO.widget.Carousel, {version: "2.8.2r1", build: "7"});
diff --git a/build/charts/charts-debug.js b/build/charts/charts-debug.js
index a7587e4..43a3254 100644
--- a/build/charts/charts-debug.js
+++ b/build/charts/charts-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Charts widget provides a Flash control for displaying data
@@ -2058,4 +2058,4 @@ YAHOO.lang.extend(YAHOO.widget.StackedColumnSeries, YAHOO.widget.CartesianSeries
 {
 	type: "stackcolumn"
 });
-YAHOO.register("charts", YAHOO.widget.Chart, {version: "2.8.1", build: "19"});
+YAHOO.register("charts", YAHOO.widget.Chart, {version: "2.8.2r1", build: "7"});
diff --git a/build/charts/charts-min.js b/build/charts/charts-min.js
index 3ecdd58..692d130 100644
--- a/build/charts/charts-min.js
+++ b/build/charts/charts-min.js
@@ -2,8 +2,8 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.widget.Chart=function(I,F,A,J){this._type=I;this._dataSource=A;var B={align:"",allowNetworking:"",allowScriptAccess:"",base:"",bgcolor:"",menu:"",name:"",quality:"",salign:"",scale:"",tabindex:"",wmode:""};var D={fixedAttributes:{allowScriptAccess:"always"},flashVars:{allowedDomain:document.location.hostname},backgroundColor:"#ffffff",host:this,version:9.045};for(var E in J){if(B.hasOwnProperty(E)){D.fixedAttributes[E]=J[E];}else{D[E]=J[E];}}this._id=D.id=D.id||YAHOO.util.Dom.generateId(null,"yuigen");if(D.version&&D.version!=null&&D.version!=undefined&&D.version!="undefined"){var H=(/\w*.\w*/.exec(((D.version).toString()).replace(/.0./g,"."))).toString();var C=H.split(".");H=C[0]+".";switch((C[1].toString()).length){case 1:H+="00";break;case 2:H+="0";break;}H+=C[1];D.version=parseFloat(H);}this._swfURL=YAHOO.widget.Chart.SWFURL;this._containerID=F;this._attributes=D;this._swfEmbed=new YAHOO.widget.SWF(F,YAHOO.widget.Chart.SWFURL,D);this._swf=this._swfEmbed.swf;this._swfEmbed.subscribe("swfReady",this._eventHandler,this,true);try{this.createEvent("contentReady");}catch(G){}this.createEvent("itemMouseOverEvent");this.createEvent("itemMouseOutEvent");this.createEvent("itemClickEvent");this.createEvent("itemDoubleClickEvent");this.createEvent("itemDragStartEvent");this.createEvent("itemDragEvent");this.createEvent("itemDragEndEvent");};YAHOO.extend(YAHOO.widget.Chart,YAHOO.util.AttributeProvider,{_type:null,_pollingID:null,_pollingInterval:null,_dataTipFunction:null,_legendLabelFunction:null,_seriesFunctions:null,toString:function(){return"Chart "+this._id;},setStyle:function(A,B){B=YAHOO.lang.JSON.stringify(B);this._swf.setStyle(A,B);},setStyles:function(A){A=YAHOO.lang.JSON.stringify(A);this._swf.setStyles(A);},setSeriesStyles:function(B){for(var A=0;A<B.length;A++){B[A]=YAHOO.lang.JSON.stringify(B[A]);}this._swf.setSeriesStyles(B);},destroy:function(){if(this._dataSource!==null){if(this._pollingID!==null){this._dataSource.clearInterval(this._pollingID);this._pollingID=null;}}if(this._dataTipFunction){YAHOO.widget.Chart.removeProxyFunction(this._dataTipFunction);}if(this._legendLabelFunction){YAHOO.widget.Chart.removeProxyFunction(this._legendLabelFunction);}if(this._swf){var B=YAHOO.util.Dom.get(this._containerID);B.removeChild(this._swf);}var A=this._id;for(var C in this){if(YAHOO.lang.hasOwnProperty(this,C)){this[C]=null;}}},_initAttributes:function(A){this.setAttributeConfig("altText",{method:this._setAltText,getter:this._getAltText});this.setAttributeConfig("swfURL",{getter:this._getSWFURL});this.setAttributeConfig("request",{method:this._setRequest,getter:this._getRequest});this.setAttributeConfig("dataSource",{method:this._setDataSource,getter:this._getDataSource});this.setAttributeConfig("series",{method:this._setSeriesDefs,getter:this._getSeriesDefs});this.setAttributeConfig("categoryNames",{validator:YAHOO.lang.isArray,method:this._setCategoryNames,getter:this._getCategoryNames});this.setAttributeConfig("dataTipFunction",{method:this._setDataTipFunction,getter:this._getDataTipFunction});this.setAttributeConfig("legendLabelFunction",{method:this._setLegendLabelFunction,getter:this._legendLabelFunction});this.setAttributeConfig("polling",{method:this._setPolling,getter:this._getPolling});},_eventHandler:function(A){if(A.type=="swfReady"){this._swf=this._swfEmbed._swf;this._loadHandler();this.fireEvent("contentReady");}},_loadHandler:function(){if(!this._swf||!this._swf.setType){return;}this._swf.setType(this._type);if(this._attributes.style){var A=this._attributes.style;this.setStyles(A);}this._initialized=false;this._initAttributes(this._attributes);this.setAttributes(this._attributes,true);this._initialized=true;if(this._dataSource){this.set("dataSource",this._dataSource);}},refreshData:function(){if(!this._initialized){return;}if(this._dataSource!==null){if(this._pollingID!==null){this._dataSource.clearInterval(this._pollingID);this._pollingID=null;}if(this._pollingInterval>0){this._pollingID=this._dataSource.setInterval(this._pollingInterval,this._request,this._loadDataHandler,this);}this._dataSource.sendRequest(this._request,this._loadDataHandler,this);}},_loadDataHandler:function(D,C,K){if(this._swf){if(K){}else{var H;if(this._seriesFunctions){var I=this._seriesFunctions.length;for(H=0;H<I;H++){YAHOO.widget.Chart.removeProxyFunction(this._seriesFunctions[H]);}this._seriesFunctions=null;}this._seriesFunctions=[];var F=[];var E=0;var L=null;if(this._seriesDefs!==null){E=this._seriesDefs.length;for(H=0;H<E;H++){L=this._seriesDefs[H];var B={};for(var A in L){if(YAHOO.lang.hasOwnProperty(L,A)){if(A=="style"){if(L.style!==null){B.style=YAHOO.lang.JSON.stringify(L.style);}}else{if(A=="labelFunction"){if(L.labelFunction!==null){B.labelFunction=YAHOO.widget.Chart.getFunctionReference(L.labelFunction);this._seriesFunctions.push(B.labelFunction);}}else{if(A=="dataTipFunction"){if(L.dataTipFunction!==null){B.dataTipFunction=YAHOO.widget.Chart.getFunctionReference(L.dataTipFunction);this._seriesFunctions.push(B.dataTipFunction);}}else{if(A=="legendLabelFunction"){if(L.legendLabelFunction!==null){B.legendLabelFunction=YAHOO.widget.Chart.getFunctionReference(L.legendLabelFunction);this._seriesFunctions.push(B.legendLabelFunction);}}else{B[A]=L[A];}}}}}}F.push(B);}}if(E>0){for(H=0;H<E;H++){L=F[H];if(!L.type){L.type=this._type;}L.dataProvider=C.results;}}else{var G={type:this._type,dataProvider:C.results};F.push(G);}try{if(this._swf.setDataProvider){this._swf.setDataProvider(F);}}catch(J){this._swf.setDataProvider(F);}}}},_request:"",_getRequest:function(){return this._request;},_setRequest:function(A){this._request=A;this.refreshData();},_dataSource:null,_getDataSource:function(){return this._dataSource;},_setDataSource:function(A){this._dataSource=A;this.refreshData();},_seriesDefs:null,_getSeriesDefs:function(){return this._seriesDefs;},_setSeriesDefs:function(A){this._seriesDefs=A;this.refreshData();},_getCategoryNames:function(){return this._swf.getCategoryNames();},_setCategoryNames:function(A){this._swf.setCategoryNames(A);
 },_setDataTipFunction:function(A){if(this._dataTipFunction){YAHOO.widget.Chart.removeProxyFunction(this._dataTipFunction);}if(A){this._dataTipFunction=A=YAHOO.widget.Chart.getFunctionReference(A);}this._swf.setDataTipFunction(A);},_setLegendLabelFunction:function(A){if(this._legendLabelFunction){YAHOO.widget.Chart.removeProxyFunction(this._legendLabelFunction);}if(A){this._legendLabelFunction=A=YAHOO.widget.Chart.getFunctionReference(A);}this._swf.setLegendLabelFunction(A);},_getPolling:function(){return this._pollingInterval;},_setPolling:function(A){this._pollingInterval=A;this.refreshData();},_swfEmbed:null,_swfURL:null,_containerID:null,_swf:null,_id:null,_initialized:false,_attributes:null,set:function(A,B){this._attributes[A]=B;YAHOO.widget.Chart.superclass.set.call(this,A,B);},_getSWFURL:function(){return this._swfURL;},_getAltText:function(){return this._swf.getAltText();},_setAltText:function(A){this._swf.setAltText(A);}});YAHOO.widget.Chart.proxyFunctionCount=0;YAHOO.widget.Chart.createProxyFunction=function(C,B){var B=B||null;var A=YAHOO.widget.Chart.proxyFunctionCount;YAHOO.widget.Chart["proxyFunction"+A]=function(){return C.apply(B,arguments);};YAHOO.widget.Chart.proxyFunctionCount++;return"YAHOO.widget.Chart.proxyFunction"+A.toString();};YAHOO.widget.Chart.getFunctionReference=function(B){if(typeof B=="function"){B=YAHOO.widget.Chart.createProxyFunction(B);}else{if(B.func&&typeof B.func=="function"){var A=[B.func];if(B.scope&&typeof B.scope=="object"){A.push(B.scope);}B=YAHOO.widget.Chart.createProxyFunction.apply(this,A);}}return B;};YAHOO.widget.Chart.removeProxyFunction=function(A){if(!A||A.indexOf("YAHOO.widget.Chart.proxyFunction")<0){return;}A=A.substr(26);YAHOO.widget.Chart[A]=null;};YAHOO.widget.Chart.SWFURL="assets/charts.swf";YAHOO.widget.PieChart=function(A,C,B){YAHOO.widget.PieChart.superclass.constructor.call(this,"pie",A,C,B);};YAHOO.lang.extend(YAHOO.widget.PieChart,YAHOO.widget.Chart,{_initAttributes:function(A){YAHOO.widget.PieChart.superclass._initAttributes.call(this,A);this.setAttributeConfig("dataField",{validator:YAHOO.lang.isString,method:this._setDataField,getter:this._getDataField});this.setAttributeConfig("categoryField",{validator:YAHOO.lang.isString,method:this._setCategoryField,getter:this._getCategoryField});},_getDataField:function(){return this._swf.getDataField();},_setDataField:function(A){this._swf.setDataField(A);},_getCategoryField:function(){return this._swf.getCategoryField();},_setCategoryField:function(A){this._swf.setCategoryField(A);}});YAHOO.widget.CartesianChart=function(C,A,D,B){YAHOO.widget.CartesianChart.superclass.constructor.call(this,C,A,D,B);};YAHOO.lang.extend(YAHOO.widget.CartesianChart,YAHOO.widget.Chart,{_xAxisLabelFunctions:[],_yAxisLabelFunctions:[],destroy:function(){this._removeAxisFunctions(this._xAxisLabelFunctions);this._removeAxisFunctions(this._yAxisLabelFunctions);YAHOO.widget.CartesianChart.superclass.destroy.call(this);},_initAttributes:function(A){YAHOO.widget.CartesianChart.superclass._initAttributes.call(this,A);this.setAttributeConfig("xField",{validator:YAHOO.lang.isString,method:this._setXField,getter:this._getXField});this.setAttributeConfig("yField",{validator:YAHOO.lang.isString,method:this._setYField,getter:this._getYField});this.setAttributeConfig("xAxis",{method:this._setXAxis});this.setAttributeConfig("xAxes",{method:this._setXAxes});this.setAttributeConfig("yAxis",{method:this._setYAxis});this.setAttributeConfig("yAxes",{method:this._setYAxes});this.setAttributeConfig("constrainViewport",{method:this._setConstrainViewport});},_getXField:function(){return this._swf.getHorizontalField();},_setXField:function(A){this._swf.setHorizontalField(A);},_getYField:function(){return this._swf.getVerticalField();},_setYField:function(A){this._swf.setVerticalField(A);},_getClonedAxis:function(A){var B={};for(var C in A){if(C=="labelFunction"){if(A.labelFunction&&A.labelFunction!==null){B.labelFunction=YAHOO.widget.Chart.getFunctionReference(A.labelFunction);}}else{B[C]=A[C];}}return B;},_removeAxisFunctions:function(C){if(C&&C.length>0){var A=C.length;for(var B=0;B<A;B++){if(C[B]!==null){YAHOO.widget.Chart.removeProxyFunction(C[B]);}}C=[];}},_setXAxis:function(A){if(A.position!="bottom"&&A.position!="top"){A.position="bottom";}this._removeAxisFunctions(this._xAxisLabelFunctions);A=this._getClonedAxis(A);this._xAxisLabelFunctions.push(A.labelFunction);this._swf.setHorizontalAxis(A);},_setXAxes:function(C){this._removeAxisFunctions(this._xAxisLabelFunctions);var A=C.length;for(var B=0;B<A;B++){if(C[B].position=="left"){C[B].position="bottom";}C[B]=this._getClonedAxis(C[B]);if(C[B].labelFunction){this._xAxisLabelFunctions.push(C[B].labelFunction);}this._swf.setHorizontalAxis(C[B]);}},_setYAxis:function(A){this._removeAxisFunctions(this._yAxisLabelFunctions);A=this._getClonedAxis(A);this._yAxisLabelFunctions.push(A.labelFunction);this._swf.setVerticalAxis(A);},_setYAxes:function(C){this._removeAxisFunctions(this._yAxisLabelFunctions);var A=C.length;for(var B=0;B<A;B++){C[B]=this._getClonedAxis(C[B]);if(C[B].labelFunction){this._yAxisLabelFunctions.push(C[B].labelFunction);}this._swf.setVerticalAxis(C[B]);}},_setConstrainViewport:function(A){this._swf.setConstrainViewport(A);},setSeriesStylesByIndex:function(A,B){B=YAHOO.lang.JSON.stringify(B);if(this._swf&&this._swf.setSeriesStylesByIndex){this._swf.setSeriesStylesByIndex(A,B);}}});YAHOO.widget.LineChart=function(A,C,B){YAHOO.widget.LineChart.superclass.constructor.call(this,"line",A,C,B);};YAHOO.lang.extend(YAHOO.widget.LineChart,YAHOO.widget.CartesianChart);YAHOO.widget.ColumnChart=function(A,C,B){YAHOO.widget.ColumnChart.superclass.constructor.call(this,"column",A,C,B);};YAHOO.lang.extend(YAHOO.widget.ColumnChart,YAHOO.widget.CartesianChart);YAHOO.widget.BarChart=function(A,C,B){YAHOO.widget.BarChart.superclass.constructor.call(this,"bar",A,C,B);};YAHOO.lang.extend(YAHOO.widget.BarChart,YAHOO.widget.CartesianChart);YAHOO.widget.StackedColumnChart=function(A,C,B){YAHOO.widget.StackedColumnChart.superclass.constructor.call(this,"stackcolumn",A,C,B);
-};YAHOO.lang.extend(YAHOO.widget.StackedColumnChart,YAHOO.widget.CartesianChart);YAHOO.widget.StackedBarChart=function(A,C,B){YAHOO.widget.StackedBarChart.superclass.constructor.call(this,"stackbar",A,C,B);};YAHOO.lang.extend(YAHOO.widget.StackedBarChart,YAHOO.widget.CartesianChart);YAHOO.widget.Axis=function(){};YAHOO.widget.Axis.prototype={type:null,reverse:false,labelFunction:null,labelSpacing:2,title:null};YAHOO.widget.NumericAxis=function(){YAHOO.widget.NumericAxis.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.NumericAxis,YAHOO.widget.Axis,{type:"numeric",minimum:NaN,maximum:NaN,majorUnit:NaN,minorUnit:NaN,snapToUnits:true,stackingEnabled:false,alwaysShowZero:true,scale:"linear",roundMajorUnit:true,calculateByLabelSize:true,position:"left",adjustMaximumByMajorUnit:true,adjustMinimumByMajorUnit:true});YAHOO.widget.TimeAxis=function(){YAHOO.widget.TimeAxis.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.TimeAxis,YAHOO.widget.Axis,{type:"time",minimum:null,maximum:null,majorUnit:NaN,majorTimeUnit:null,minorUnit:NaN,minorTimeUnit:null,snapToUnits:true,stackingEnabled:false,calculateByLabelSize:true});YAHOO.widget.CategoryAxis=function(){YAHOO.widget.CategoryAxis.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.CategoryAxis,YAHOO.widget.Axis,{type:"category",categoryNames:null,calculateCategoryCount:false});YAHOO.widget.Series=function(){};YAHOO.widget.Series.prototype={type:null,displayName:null};YAHOO.widget.CartesianSeries=function(){YAHOO.widget.CartesianSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.CartesianSeries,YAHOO.widget.Series,{xField:null,yField:null,axis:"primary",showInLegend:true});YAHOO.widget.ColumnSeries=function(){YAHOO.widget.ColumnSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.ColumnSeries,YAHOO.widget.CartesianSeries,{type:"column"});YAHOO.widget.LineSeries=function(){YAHOO.widget.LineSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.LineSeries,YAHOO.widget.CartesianSeries,{type:"line"});YAHOO.widget.BarSeries=function(){YAHOO.widget.BarSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.BarSeries,YAHOO.widget.CartesianSeries,{type:"bar"});YAHOO.widget.PieSeries=function(){YAHOO.widget.PieSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.PieSeries,YAHOO.widget.Series,{type:"pie",dataField:null,categoryField:null,labelFunction:null});YAHOO.widget.StackedBarSeries=function(){YAHOO.widget.StackedBarSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.StackedBarSeries,YAHOO.widget.CartesianSeries,{type:"stackbar"});YAHOO.widget.StackedColumnSeries=function(){YAHOO.widget.StackedColumnSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.StackedColumnSeries,YAHOO.widget.CartesianSeries,{type:"stackcolumn"});YAHOO.register("charts",YAHOO.widget.Chart,{version:"2.8.1",build:"19"});
\ No newline at end of file
+};YAHOO.lang.extend(YAHOO.widget.StackedColumnChart,YAHOO.widget.CartesianChart);YAHOO.widget.StackedBarChart=function(A,C,B){YAHOO.widget.StackedBarChart.superclass.constructor.call(this,"stackbar",A,C,B);};YAHOO.lang.extend(YAHOO.widget.StackedBarChart,YAHOO.widget.CartesianChart);YAHOO.widget.Axis=function(){};YAHOO.widget.Axis.prototype={type:null,reverse:false,labelFunction:null,labelSpacing:2,title:null};YAHOO.widget.NumericAxis=function(){YAHOO.widget.NumericAxis.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.NumericAxis,YAHOO.widget.Axis,{type:"numeric",minimum:NaN,maximum:NaN,majorUnit:NaN,minorUnit:NaN,snapToUnits:true,stackingEnabled:false,alwaysShowZero:true,scale:"linear",roundMajorUnit:true,calculateByLabelSize:true,position:"left",adjustMaximumByMajorUnit:true,adjustMinimumByMajorUnit:true});YAHOO.widget.TimeAxis=function(){YAHOO.widget.TimeAxis.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.TimeAxis,YAHOO.widget.Axis,{type:"time",minimum:null,maximum:null,majorUnit:NaN,majorTimeUnit:null,minorUnit:NaN,minorTimeUnit:null,snapToUnits:true,stackingEnabled:false,calculateByLabelSize:true});YAHOO.widget.CategoryAxis=function(){YAHOO.widget.CategoryAxis.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.CategoryAxis,YAHOO.widget.Axis,{type:"category",categoryNames:null,calculateCategoryCount:false});YAHOO.widget.Series=function(){};YAHOO.widget.Series.prototype={type:null,displayName:null};YAHOO.widget.CartesianSeries=function(){YAHOO.widget.CartesianSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.CartesianSeries,YAHOO.widget.Series,{xField:null,yField:null,axis:"primary",showInLegend:true});YAHOO.widget.ColumnSeries=function(){YAHOO.widget.ColumnSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.ColumnSeries,YAHOO.widget.CartesianSeries,{type:"column"});YAHOO.widget.LineSeries=function(){YAHOO.widget.LineSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.LineSeries,YAHOO.widget.CartesianSeries,{type:"line"});YAHOO.widget.BarSeries=function(){YAHOO.widget.BarSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.BarSeries,YAHOO.widget.CartesianSeries,{type:"bar"});YAHOO.widget.PieSeries=function(){YAHOO.widget.PieSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.PieSeries,YAHOO.widget.Series,{type:"pie",dataField:null,categoryField:null,labelFunction:null});YAHOO.widget.StackedBarSeries=function(){YAHOO.widget.StackedBarSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.StackedBarSeries,YAHOO.widget.CartesianSeries,{type:"stackbar"});YAHOO.widget.StackedColumnSeries=function(){YAHOO.widget.StackedColumnSeries.superclass.constructor.call(this);};YAHOO.lang.extend(YAHOO.widget.StackedColumnSeries,YAHOO.widget.CartesianSeries,{type:"stackcolumn"});YAHOO.register("charts",YAHOO.widget.Chart,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/charts/charts.js b/build/charts/charts.js
index 241900f..daa219e 100644
--- a/build/charts/charts.js
+++ b/build/charts/charts.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Charts widget provides a Flash control for displaying data
@@ -2057,4 +2057,4 @@ YAHOO.lang.extend(YAHOO.widget.StackedColumnSeries, YAHOO.widget.CartesianSeries
 {
 	type: "stackcolumn"
 });
-YAHOO.register("charts", YAHOO.widget.Chart, {version: "2.8.1", build: "19"});
+YAHOO.register("charts", YAHOO.widget.Chart, {version: "2.8.2r1", build: "7"});
diff --git a/build/colorpicker/assets/colorpicker-core.css b/build/colorpicker/assets/colorpicker-core.css
index 357a827..86609ea 100644
--- a/build/colorpicker/assets/colorpicker-core.css
+++ b/build/colorpicker/assets/colorpicker-core.css
@@ -2,5 +2,5 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
diff --git a/build/colorpicker/assets/skins/sam/colorpicker-skin.css b/build/colorpicker/assets/skins/sam/colorpicker-skin.css
index a5e2440..3e526f0 100644
--- a/build/colorpicker/assets/skins/sam/colorpicker-skin.css
+++ b/build/colorpicker/assets/skins/sam/colorpicker-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
 .yui-picker-panel {
diff --git a/build/colorpicker/assets/skins/sam/colorpicker.css b/build/colorpicker/assets/skins/sam/colorpicker.css
index f930c63..3a88151 100644
--- a/build/colorpicker/assets/skins/sam/colorpicker.css
+++ b/build/colorpicker/assets/skins/sam/colorpicker.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-picker-panel{background:#e3e3e3;border-color:#888;}.yui-picker-panel .hd{background-color:#ccc;font-size:100%;line-height:100%;border:1px solid #e3e3e3;font-weight:bold;overflow:hidden;padding:6px;color:#000;}.yui-picker-panel .bd{background:#e8e8e8;margin:1px;height:200px;}.yui-picker-panel .ft{background:#e8e8e8;margin:1px;padding:1px;}.yui-picker{position:relative;}.yui-picker-hue-thumb{cursor:default;width:18px;height:18px;top:-8px;left:-2px;z-index:9;position:absolute;}.yui-picker-hue-bg{-moz-outline:none;outline:0 none;position:absolute;left:200px;height:183px;width:14px;background:url(hue_bg.png) no-repeat;top:4px;}.yui-picker-bg{-moz-outline:none;outline:0 none;position:absolute;top:4px;left:4px;height:182px;width:182px;background-color:#F00;background-image:url(picker_mask.png);}*html .yui-picker-bg{background-image:none;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='../../build/colorpicker/assets/picker_mask.png',sizingMethod='scale');}.yui-picker-mask{position:absolute;z-index:1;top:0;left:0;}.yui-picker-thumb{cursor:default;width:11px;height:11px;z-index:9;position:absolute;top:-4px;left:-4px;}.yui-picker-swatch{position:absolute;left:240px;top:4px;height:60px;width:55px;border:1px solid #888;}.yui-picker-websafe-swatch{position:absolute;left:304px;top:4px;height:24px;width:24px;border:1px solid #888;}.yui-picker-controls{position:absolute;top:72px;left:226px;font:1em monospace;}.yui-picker-controls .hd{background:transparent;border-width:0!important;}.yui-picker-controls .bd{height:100px;border-width:0!important;}.yui-picker-controls ul{float:left;padding:0 2px 0 0;margin:0;}.yui-picker-controls li{padding:2px;list-style:none;margin:0;}.yui-picker-controls input{font-size:.85em;width:2.4em;}.yui-picker-hex-controls{clear:both;padding:2px;}.yui-picker-hex-controls input{width:4.6em;}.yui-picker-controls a{font:1em arial,helvetica,clean,sans-serif;display:block;*display:inline-block;padding:0;color:#000;}
diff --git a/build/colorpicker/colorpicker-debug.js b/build/colorpicker/colorpicker-debug.js
index c431567..f7714af 100644
--- a/build/colorpicker/colorpicker-debug.js
+++ b/build/colorpicker/colorpicker-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides color conversion and validation utils
@@ -1780,4 +1780,4 @@ YAHOO.util.Color = function() {
 
     YAHOO.widget.ColorPicker = ColorPicker;
 })();
-YAHOO.register("colorpicker", YAHOO.widget.ColorPicker, {version: "2.8.1", build: "19"});
+YAHOO.register("colorpicker", YAHOO.widget.ColorPicker, {version: "2.8.2r1", build: "7"});
diff --git a/build/colorpicker/colorpicker-min.js b/build/colorpicker/colorpicker-min.js
index 8f1099b..461e422 100644
--- a/build/colorpicker/colorpicker-min.js
+++ b/build/colorpicker/colorpicker-min.js
@@ -2,8 +2,8 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.util.Color=function(){var A="0",B=YAHOO.lang.isArray,C=YAHOO.lang.isNumber;return{real2dec:function(D){return Math.min(255,Math.round(D*256));},hsv2rgb:function(H,O,M){if(B(H)){return this.hsv2rgb.call(this,H[0],H[1],H[2]);}var D,I,L,G=Math.floor((H/60)%6),J=(H/60)-G,F=M*(1-O),E=M*(1-J*O),N=M*(1-(1-J)*O),K;switch(G){case 0:D=M;I=N;L=F;break;case 1:D=E;I=M;L=F;break;case 2:D=F;I=M;L=N;break;case 3:D=F;I=E;L=M;break;case 4:D=N;I=F;L=M;break;case 5:D=M;I=F;L=E;break;}K=this.real2dec;return[K(D),K(I),K(L)];},rgb2hsv:function(D,H,I){if(B(D)){return this.rgb2hsv.apply(this,D);}D/=255;H/=255;I/=255;var G,L,E=Math.min(Math.min(D,H),I),J=Math.max(Math.max(D,H),I),K=J-E,F;switch(J){case E:G=0;break;case D:G=60*(H-I)/K;if(H<I){G+=360;}break;case H:G=(60*(I-D)/K)+120;break;case I:G=(60*(D-H)/K)+240;break;}L=(J===0)?0:1-(E/J);F=[Math.round(G),L,J];return F;},rgb2hex:function(F,E,D){if(B(F)){return this.rgb2hex.apply(this,F);}var G=this.dec2hex;return G(F)+G(E)+G(D);},dec2hex:function(D){D=parseInt(D,10)|0;D=(D>255||D<0)?0:D;return(A+D.toString(16)).slice(-2).toUpperCase();},hex2dec:function(D){return parseInt(D,16);},hex2rgb:function(D){var E=this.hex2dec;return[E(D.slice(0,2)),E(D.slice(2,4)),E(D.slice(4,6))];},websafe:function(F,E,D){if(B(F)){return this.websafe.apply(this,F);}var G=function(H){if(C(H)){H=Math.min(Math.max(0,H),255);var I,J;for(I=0;I<256;I=I+51){J=I+51;if(H>=I&&H<=J){return(H-I>25)?J:I;}}}return H;};return[G(F),G(E),G(D)];}};}();(function(){var J=0,F=YAHOO.util,C=YAHOO.lang,D=YAHOO.widget.Slider,B=F.Color,E=F.Dom,I=F.Event,A=C.substitute,H="yui-picker";function G(L,K){J=J+1;K=K||{};if(arguments.length===1&&!YAHOO.lang.isString(L)&&!L.nodeName){K=L;L=K.element||null;}if(!L&&!K.element){L=this._createHostElement(K);}G.superclass.constructor.call(this,L,K);this.initPicker();}YAHOO.extend(G,YAHOO.util.Element,{ID:{R:H+"-r",R_HEX:H+"-rhex",G:H+"-g",G_HEX:H+"-ghex",B:H+"-b",B_HEX:H+"-bhex",H:H+"-h",S:H+"-s",V:H+"-v",PICKER_BG:H+"-bg",PICKER_THUMB:H+"-thumb",HUE_BG:H+"-hue-bg",HUE_THUMB:H+"-hue-thumb",HEX:H+"-hex",SWATCH:H+"-swatch",WEBSAFE_SWATCH:H+"-websafe-swatch",CONTROLS:H+"-controls",RGB_CONTROLS:H+"-rgb-controls",HSV_CONTROLS:H+"-hsv-controls",HEX_CONTROLS:H+"-hex-controls",HEX_SUMMARY:H+"-hex-summary",CONTROLS_LABEL:H+"-controls-label"},TXT:{ILLEGAL_HEX:"Illegal hex value entered",SHOW_CONTROLS:"Show color details",HIDE_CONTROLS:"Hide color details",CURRENT_COLOR:"Currently selected color: {rgb}",CLOSEST_WEBSAFE:"Closest websafe color: {rgb}. Click to select.",R:"R",G:"G",B:"B",H:"H",S:"S",V:"V",HEX:"#",DEG:"\u00B0",PERCENT:"%"},IMAGE:{PICKER_THUMB:"../../build/colorpicker/assets/picker_thumb.png",HUE_THUMB:"../../build/colorpicker/assets/hue_thumb.png"},DEFAULT:{PICKER_SIZE:180},OPT:{HUE:"hue",SATURATION:"saturation",VALUE:"value",RED:"red",GREEN:"green",BLUE:"blue",HSV:"hsv",RGB:"rgb",WEBSAFE:"websafe",HEX:"hex",PICKER_SIZE:"pickersize",SHOW_CONTROLS:"showcontrols",SHOW_RGB_CONTROLS:"showrgbcontrols",SHOW_HSV_CONTROLS:"showhsvcontrols",SHOW_HEX_CONTROLS:"showhexcontrols",SHOW_HEX_SUMMARY:"showhexsummary",SHOW_WEBSAFE:"showwebsafe",CONTAINER:"container",IDS:"ids",ELEMENTS:"elements",TXT:"txt",IMAGES:"images",ANIMATE:"animate"},skipAnim:true,_createHostElement:function(){var K=document.createElement("div");if(this.CSS.BASE){K.className=this.CSS.BASE;}return K;},_updateHueSlider:function(){var K=this.get(this.OPT.PICKER_SIZE),L=this.get(this.OPT.HUE);L=K-Math.round(L/360*K);if(L===K){L=0;}this.hueSlider.setValue(L,this.skipAnim);},_updatePickerSlider:function(){var L=this.get(this.OPT.PICKER_SIZE),M=this.get(this.OPT.SATURATION),K=this.get(this.OPT.VALUE);M=Math.round(M*L/100);K=Math.round(L-(K*L/100));this.pickerSlider.setRegionValue(M,K,this.skipAnim);},_updateSliders:function(){this._updateHueSlider();this._updatePickerSlider();},setValue:function(L,K){K=(K)||false;this.set(this.OPT.RGB,L,K);this._updateSliders();},hueSlider:null,pickerSlider:null,_getH:function(){var K=this.get(this.OPT.PICKER_SIZE),L=(K-this.hueSlider.getValue())/K;L=Math.round(L*360);return(L===360)?0:L;},_getS:function(){return this.pickerSlider.getXValue()/this.get(this.OPT.PICKER_SIZE);},_getV:function(){var K=this.get(this.OPT.PICKER_SIZE);return(K-this.pickerSlider.getYValue())/K;},_updateSwatch:function(){var M=this.get(this.OPT.RGB),O=this.get(this.OPT.WEBSAFE),N=this.getElement(this.ID.SWATCH),L=M.join(","),K=this.get(this.OPT.TXT);E.setStyle(N,"background-color","rgb("+L+")");N.title=A(K.CURRENT_COLOR,{"rgb":"#"+this.get(this.OPT.HEX)});N=this.getElement(this.ID.WEBSAFE_SWATCH);L=O.join(",");E.setStyle(N,"background-color","rgb("+L+")");N.title=A(K.CLOSEST_WEBSAFE,{"rgb":"#"+B.rgb2hex(O)});},_getValuesFromSliders:function(){this.set(this.OPT.RGB,B.hsv2rgb(this._getH(),this._getS(),this._getV()));},_updateFormFields:function(){this.getElement(this.ID.H).value=this.get(this.OPT.HUE);this.getElement(this.ID.S).value=this.get(this.OPT.SATURATION);this.getElement(this.ID.V).value=this.get(this.OPT.VALUE);this.getElement(this.ID.R).value=this.get(this.OPT.RED);this.getElement(this.ID.R_HEX).innerHTML=B.dec2hex(this.get(this.OPT.RED));this.getElement(this.ID.G).value=this.get(this.OPT.GREEN);this.getElement(this.ID.G_HEX).innerHTML=B.dec2hex(this.get(this.OPT.GREEN));this.getElement(this.ID.B).value=this.get(this.OPT.BLUE);this.getElement(this.ID.B_HEX).innerHTML=B.dec2hex(this.get(this.OPT.BLUE));this.getElement(this.ID.HEX).value=this.get(this.OPT.HEX);},_onHueSliderChange:function(N){var L=this._getH(),K=B.hsv2rgb(L,1,1),M="rgb("+K.join(",")+")";this.set(this.OPT.HUE,L,true);E.setStyle(this.getElement(this.ID.PICKER_BG),"background-color",M);if(this.hueSlider.valueChangeSource!==D.SOURCE_SET_VALUE){this._getValuesFromSliders();}this._updateFormFields();this._updateSwatch();},_onPickerSliderChange:function(M){var L=this._getS(),K=this._getV();this.set(this.OPT.SATURATION,Math.round(L*100),true);this.set(this.OPT.VALUE,Math.round(K*100),true);if(this.pickerSlider.valueChangeSource!==D.SOURCE_SET_VALUE){this._getValuesFromSliders();
 }this._updateFormFields();this._updateSwatch();},_getCommand:function(K){var L=I.getCharCode(K);if(L===38){return 3;}else{if(L===13){return 6;}else{if(L===40){return 4;}else{if(L>=48&&L<=57){return 1;}else{if(L>=97&&L<=102){return 2;}else{if(L>=65&&L<=70){return 2;}else{if("8, 9, 13, 27, 37, 39".indexOf(L)>-1||K.ctrlKey||K.metaKey){return 5;}else{return 0;}}}}}}}},_useFieldValue:function(L,K,N){var M=K.value;if(N!==this.OPT.HEX){M=parseInt(M,10);}if(M!==this.get(N)){this.set(N,M);}},_rgbFieldKeypress:function(M,K,O){var N=this._getCommand(M),L=(M.shiftKey)?10:1;switch(N){case 6:this._useFieldValue.apply(this,arguments);break;case 3:this.set(O,Math.min(this.get(O)+L,255));this._updateFormFields();break;case 4:this.set(O,Math.max(this.get(O)-L,0));this._updateFormFields();break;default:}},_hexFieldKeypress:function(L,K,N){var M=this._getCommand(L);if(M===6){this._useFieldValue.apply(this,arguments);}},_hexOnly:function(L,K){var M=this._getCommand(L);switch(M){case 6:case 5:case 1:break;case 2:if(K!==true){break;}default:I.stopEvent(L);return false;}},_numbersOnly:function(K){return this._hexOnly(K,true);},getElement:function(K){return this.get(this.OPT.ELEMENTS)[this.get(this.OPT.IDS)[K]];},_createElements:function(){var N,M,P,O,L,K=this.get(this.OPT.IDS),Q=this.get(this.OPT.TXT),S=this.get(this.OPT.IMAGES),R=function(U,V){var W=document.createElement(U);if(V){C.augmentObject(W,V,true);}return W;},T=function(U,V){var W=C.merge({autocomplete:"off",value:"0",size:3,maxlength:3},V);W.name=W.id;return new R(U,W);};L=this.get("element");N=new R("div",{id:K[this.ID.PICKER_BG],className:"yui-picker-bg",tabIndex:-1,hideFocus:true});M=new R("div",{id:K[this.ID.PICKER_THUMB],className:"yui-picker-thumb"});P=new R("img",{src:S.PICKER_THUMB});M.appendChild(P);N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.HUE_BG],className:"yui-picker-hue-bg",tabIndex:-1,hideFocus:true});M=new R("div",{id:K[this.ID.HUE_THUMB],className:"yui-picker-hue-thumb"});P=new R("img",{src:S.HUE_THUMB});M.appendChild(P);N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.CONTROLS],className:"yui-picker-controls"});L.appendChild(N);L=N;N=new R("div",{className:"hd"});M=new R("a",{id:K[this.ID.CONTROLS_LABEL],href:"#"});N.appendChild(M);L.appendChild(N);N=new R("div",{className:"bd"});L.appendChild(N);L=N;N=new R("ul",{id:K[this.ID.RGB_CONTROLS],className:"yui-picker-rgb-controls"});M=new R("li");M.appendChild(document.createTextNode(Q.R+" "));O=new T("input",{id:K[this.ID.R],className:"yui-picker-r"});M.appendChild(O);N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.G+" "));O=new T("input",{id:K[this.ID.G],className:"yui-picker-g"});M.appendChild(O);N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.B+" "));O=new T("input",{id:K[this.ID.B],className:"yui-picker-b"});M.appendChild(O);N.appendChild(M);L.appendChild(N);N=new R("ul",{id:K[this.ID.HSV_CONTROLS],className:"yui-picker-hsv-controls"});M=new R("li");M.appendChild(document.createTextNode(Q.H+" "));O=new T("input",{id:K[this.ID.H],className:"yui-picker-h"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.DEG));N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.S+" "));O=new T("input",{id:K[this.ID.S],className:"yui-picker-s"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.PERCENT));N.appendChild(M);M=new R("li");M.appendChild(document.createTextNode(Q.V+" "));O=new T("input",{id:K[this.ID.V],className:"yui-picker-v"});M.appendChild(O);M.appendChild(document.createTextNode(" "+Q.PERCENT));N.appendChild(M);L.appendChild(N);N=new R("ul",{id:K[this.ID.HEX_SUMMARY],className:"yui-picker-hex_summary"});M=new R("li",{id:K[this.ID.R_HEX]});N.appendChild(M);M=new R("li",{id:K[this.ID.G_HEX]});N.appendChild(M);M=new R("li",{id:K[this.ID.B_HEX]});N.appendChild(M);L.appendChild(N);N=new R("div",{id:K[this.ID.HEX_CONTROLS],className:"yui-picker-hex-controls"});N.appendChild(document.createTextNode(Q.HEX+" "));M=new T("input",{id:K[this.ID.HEX],className:"yui-picker-hex",size:6,maxlength:6});N.appendChild(M);L.appendChild(N);L=this.get("element");N=new R("div",{id:K[this.ID.SWATCH],className:"yui-picker-swatch"});L.appendChild(N);N=new R("div",{id:K[this.ID.WEBSAFE_SWATCH],className:"yui-picker-websafe-swatch"});L.appendChild(N);},_attachRGBHSV:function(L,K){I.on(this.getElement(L),"keydown",function(N,M){M._rgbFieldKeypress(N,this,K);},this);I.on(this.getElement(L),"keypress",this._numbersOnly,this,true);I.on(this.getElement(L),"blur",function(N,M){M._useFieldValue(N,this,K);},this);},_updateRGB:function(){var K=[this.get(this.OPT.RED),this.get(this.OPT.GREEN),this.get(this.OPT.BLUE)];this.set(this.OPT.RGB,K);this._updateSliders();},_initElements:function(){var O=this.OPT,N=this.get(O.IDS),L=this.get(O.ELEMENTS),K,M,P;for(K in this.ID){if(C.hasOwnProperty(this.ID,K)){N[this.ID[K]]=N[K];}}M=E.get(N[this.ID.PICKER_BG]);if(!M){this._createElements();}else{}for(K in N){if(C.hasOwnProperty(N,K)){M=E.get(N[K]);P=E.generateId(M);N[K]=P;N[N[K]]=P;L[P]=M;}}},initPicker:function(){this._initSliders();this._bindUI();this.syncUI(true);},_initSliders:function(){var K=this.ID,L=this.get(this.OPT.PICKER_SIZE);this.hueSlider=D.getVertSlider(this.getElement(K.HUE_BG),this.getElement(K.HUE_THUMB),0,L);this.pickerSlider=D.getSliderRegion(this.getElement(K.PICKER_BG),this.getElement(K.PICKER_THUMB),0,L,0,L);this.set(this.OPT.ANIMATE,this.get(this.OPT.ANIMATE));},_bindUI:function(){var K=this.ID,L=this.OPT;this.hueSlider.subscribe("change",this._onHueSliderChange,this,true);this.pickerSlider.subscribe("change",this._onPickerSliderChange,this,true);I.on(this.getElement(K.WEBSAFE_SWATCH),"click",function(M){this.setValue(this.get(L.WEBSAFE));},this,true);I.on(this.getElement(K.CONTROLS_LABEL),"click",function(M){this.set(L.SHOW_CONTROLS,!this.get(L.SHOW_CONTROLS));I.preventDefault(M);},this,true);this._attachRGBHSV(K.R,L.RED);this._attachRGBHSV(K.G,L.GREEN);this._attachRGBHSV(K.B,L.BLUE);this._attachRGBHSV(K.H,L.HUE);
-this._attachRGBHSV(K.S,L.SATURATION);this._attachRGBHSV(K.V,L.VALUE);I.on(this.getElement(K.HEX),"keydown",function(N,M){M._hexFieldKeypress(N,this,L.HEX);},this);I.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);I.on(this.getElement(this.ID.HEX),"blur",function(N,M){M._useFieldValue(N,this,L.HEX);},this);},syncUI:function(K){this.skipAnim=K;this._updateRGB();this.skipAnim=false;},_updateRGBFromHSV:function(){var L=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100],K=B.hsv2rgb(L);this.set(this.OPT.RGB,K);this._updateSliders();},_updateHex:function(){var N=this.get(this.OPT.HEX),K=N.length,O,M,L;if(K===3){O=N.split("");for(M=0;M<K;M=M+1){O[M]=O[M]+O[M];}N=O.join("");}if(N.length!==6){return false;}L=B.hex2rgb(N);this.setValue(L);},_hideShowEl:function(M,K){var L=(C.isString(M)?this.getElement(M):M);E.setStyle(L,"display",(K)?"":"none");},initAttributes:function(K){K=K||{};G.superclass.initAttributes.call(this,K);this.setAttributeConfig(this.OPT.PICKER_SIZE,{value:K.size||this.DEFAULT.PICKER_SIZE});this.setAttributeConfig(this.OPT.HUE,{value:K.hue||0,validator:C.isNumber});this.setAttributeConfig(this.OPT.SATURATION,{value:K.saturation||0,validator:C.isNumber});this.setAttributeConfig(this.OPT.VALUE,{value:C.isNumber(K.value)?K.value:100,validator:C.isNumber});this.setAttributeConfig(this.OPT.RED,{value:C.isNumber(K.red)?K.red:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.GREEN,{value:C.isNumber(K.green)?K.green:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.BLUE,{value:C.isNumber(K.blue)?K.blue:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.HEX,{value:K.hex||"FFFFFF",validator:C.isString});this.setAttributeConfig(this.OPT.RGB,{value:K.rgb||[255,255,255],method:function(O){this.set(this.OPT.RED,O[0],true);this.set(this.OPT.GREEN,O[1],true);this.set(this.OPT.BLUE,O[2],true);var Q=B.websafe(O),P=B.rgb2hex(O),N=B.rgb2hsv(O);this.set(this.OPT.WEBSAFE,Q,true);this.set(this.OPT.HEX,P,true);if(N[1]){this.set(this.OPT.HUE,N[0],true);}this.set(this.OPT.SATURATION,Math.round(N[1]*100),true);this.set(this.OPT.VALUE,Math.round(N[2]*100),true);},readonly:true});this.setAttributeConfig(this.OPT.CONTAINER,{value:null,method:function(N){if(N){N.showEvent.subscribe(function(){this.pickerSlider.focus();},this,true);}}});this.setAttributeConfig(this.OPT.WEBSAFE,{value:K.websafe||[255,255,255]});var M=K.ids||C.merge({},this.ID),L;if(!K.ids&&J>1){for(L in M){if(C.hasOwnProperty(M,L)){M[L]=M[L]+J;}}}this.setAttributeConfig(this.OPT.IDS,{value:M,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:K.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:K.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:C.isBoolean(K.showcontrols)?K.showcontrols:true,method:function(N){var O=E.getElementsByClassName("bd","div",this.getElement(this.ID.CONTROLS))[0];this._hideShowEl(O,N);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=(N)?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS;}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:C.isBoolean(K.showrgbcontrols)?K.showrgbcontrols:true,method:function(N){this._hideShowEl(this.ID.RGB_CONTROLS,N);}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:C.isBoolean(K.showhsvcontrols)?K.showhsvcontrols:false,method:function(N){this._hideShowEl(this.ID.HSV_CONTROLS,N);if(N&&this.get(this.OPT.SHOW_HEX_SUMMARY)){this.set(this.OPT.SHOW_HEX_SUMMARY,false);}}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:C.isBoolean(K.showhexcontrols)?K.showhexcontrols:false,method:function(N){this._hideShowEl(this.ID.HEX_CONTROLS,N);}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:C.isBoolean(K.showwebsafe)?K.showwebsafe:true,method:function(N){this._hideShowEl(this.ID.WEBSAFE_SWATCH,N);}});this.setAttributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:C.isBoolean(K.showhexsummary)?K.showhexsummary:true,method:function(N){this._hideShowEl(this.ID.HEX_SUMMARY,N);if(N&&this.get(this.OPT.SHOW_HSV_CONTROLS)){this.set(this.OPT.SHOW_HSV_CONTROLS,false);}}});this.setAttributeConfig(this.OPT.ANIMATE,{value:C.isBoolean(K.animate)?K.animate:true,method:function(N){if(this.pickerSlider){this.pickerSlider.animate=N;this.hueSlider.animate=N;}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements();}});YAHOO.widget.ColorPicker=G;})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this._attachRGBHSV(K.S,L.SATURATION);this._attachRGBHSV(K.V,L.VALUE);I.on(this.getElement(K.HEX),"keydown",function(N,M){M._hexFieldKeypress(N,this,L.HEX);},this);I.on(this.getElement(this.ID.HEX),"keypress",this._hexOnly,this,true);I.on(this.getElement(this.ID.HEX),"blur",function(N,M){M._useFieldValue(N,this,L.HEX);},this);},syncUI:function(K){this.skipAnim=K;this._updateRGB();this.skipAnim=false;},_updateRGBFromHSV:function(){var L=[this.get(this.OPT.HUE),this.get(this.OPT.SATURATION)/100,this.get(this.OPT.VALUE)/100],K=B.hsv2rgb(L);this.set(this.OPT.RGB,K);this._updateSliders();},_updateHex:function(){var N=this.get(this.OPT.HEX),K=N.length,O,M,L;if(K===3){O=N.split("");for(M=0;M<K;M=M+1){O[M]=O[M]+O[M];}N=O.join("");}if(N.length!==6){return false;}L=B.hex2rgb(N);this.setValue(L);},_hideShowEl:function(M,K){var L=(C.isString(M)?this.getElement(M):M);E.setStyle(L,"display",(K)?"":"none");},initAttributes:function(K){K=K||{};G.superclass.initAttributes.call(this,K);this.setAttributeConfig(this.OPT.PICKER_SIZE,{value:K.size||this.DEFAULT.PICKER_SIZE});this.setAttributeConfig(this.OPT.HUE,{value:K.hue||0,validator:C.isNumber});this.setAttributeConfig(this.OPT.SATURATION,{value:K.saturation||0,validator:C.isNumber});this.setAttributeConfig(this.OPT.VALUE,{value:C.isNumber(K.value)?K.value:100,validator:C.isNumber});this.setAttributeConfig(this.OPT.RED,{value:C.isNumber(K.red)?K.red:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.GREEN,{value:C.isNumber(K.green)?K.green:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.BLUE,{value:C.isNumber(K.blue)?K.blue:255,validator:C.isNumber});this.setAttributeConfig(this.OPT.HEX,{value:K.hex||"FFFFFF",validator:C.isString});this.setAttributeConfig(this.OPT.RGB,{value:K.rgb||[255,255,255],method:function(O){this.set(this.OPT.RED,O[0],true);this.set(this.OPT.GREEN,O[1],true);this.set(this.OPT.BLUE,O[2],true);var Q=B.websafe(O),P=B.rgb2hex(O),N=B.rgb2hsv(O);this.set(this.OPT.WEBSAFE,Q,true);this.set(this.OPT.HEX,P,true);if(N[1]){this.set(this.OPT.HUE,N[0],true);}this.set(this.OPT.SATURATION,Math.round(N[1]*100),true);this.set(this.OPT.VALUE,Math.round(N[2]*100),true);},readonly:true});this.setAttributeConfig(this.OPT.CONTAINER,{value:null,method:function(N){if(N){N.showEvent.subscribe(function(){this.pickerSlider.focus();},this,true);}}});this.setAttributeConfig(this.OPT.WEBSAFE,{value:K.websafe||[255,255,255]});var M=K.ids||C.merge({},this.ID),L;if(!K.ids&&J>1){for(L in M){if(C.hasOwnProperty(M,L)){M[L]=M[L]+J;}}}this.setAttributeConfig(this.OPT.IDS,{value:M,writeonce:true});this.setAttributeConfig(this.OPT.TXT,{value:K.txt||this.TXT,writeonce:true});this.setAttributeConfig(this.OPT.IMAGES,{value:K.images||this.IMAGE,writeonce:true});this.setAttributeConfig(this.OPT.ELEMENTS,{value:{},readonly:true});this.setAttributeConfig(this.OPT.SHOW_CONTROLS,{value:C.isBoolean(K.showcontrols)?K.showcontrols:true,method:function(N){var O=E.getElementsByClassName("bd","div",this.getElement(this.ID.CONTROLS))[0];this._hideShowEl(O,N);this.getElement(this.ID.CONTROLS_LABEL).innerHTML=(N)?this.get(this.OPT.TXT).HIDE_CONTROLS:this.get(this.OPT.TXT).SHOW_CONTROLS;}});this.setAttributeConfig(this.OPT.SHOW_RGB_CONTROLS,{value:C.isBoolean(K.showrgbcontrols)?K.showrgbcontrols:true,method:function(N){this._hideShowEl(this.ID.RGB_CONTROLS,N);}});this.setAttributeConfig(this.OPT.SHOW_HSV_CONTROLS,{value:C.isBoolean(K.showhsvcontrols)?K.showhsvcontrols:false,method:function(N){this._hideShowEl(this.ID.HSV_CONTROLS,N);if(N&&this.get(this.OPT.SHOW_HEX_SUMMARY)){this.set(this.OPT.SHOW_HEX_SUMMARY,false);}}});this.setAttributeConfig(this.OPT.SHOW_HEX_CONTROLS,{value:C.isBoolean(K.showhexcontrols)?K.showhexcontrols:false,method:function(N){this._hideShowEl(this.ID.HEX_CONTROLS,N);}});this.setAttributeConfig(this.OPT.SHOW_WEBSAFE,{value:C.isBoolean(K.showwebsafe)?K.showwebsafe:true,method:function(N){this._hideShowEl(this.ID.WEBSAFE_SWATCH,N);}});this.setAttributeConfig(this.OPT.SHOW_HEX_SUMMARY,{value:C.isBoolean(K.showhexsummary)?K.showhexsummary:true,method:function(N){this._hideShowEl(this.ID.HEX_SUMMARY,N);if(N&&this.get(this.OPT.SHOW_HSV_CONTROLS)){this.set(this.OPT.SHOW_HSV_CONTROLS,false);}}});this.setAttributeConfig(this.OPT.ANIMATE,{value:C.isBoolean(K.animate)?K.animate:true,method:function(N){if(this.pickerSlider){this.pickerSlider.animate=N;this.hueSlider.animate=N;}}});this.on(this.OPT.HUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.SATURATION+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.VALUE+"Change",this._updateRGBFromHSV,this,true);this.on(this.OPT.RED+"Change",this._updateRGB,this,true);this.on(this.OPT.GREEN+"Change",this._updateRGB,this,true);this.on(this.OPT.BLUE+"Change",this._updateRGB,this,true);this.on(this.OPT.HEX+"Change",this._updateHex,this,true);this._initElements();}});YAHOO.widget.ColorPicker=G;})();YAHOO.register("colorpicker",YAHOO.widget.ColorPicker,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/colorpicker/colorpicker.js b/build/colorpicker/colorpicker.js
index a5b6c22..cf38b8d 100644
--- a/build/colorpicker/colorpicker.js
+++ b/build/colorpicker/colorpicker.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides color conversion and validation utils
@@ -1760,4 +1760,4 @@ YAHOO.util.Color = function() {
 
     YAHOO.widget.ColorPicker = ColorPicker;
 })();
-YAHOO.register("colorpicker", YAHOO.widget.ColorPicker, {version: "2.8.1", build: "19"});
+YAHOO.register("colorpicker", YAHOO.widget.ColorPicker, {version: "2.8.2r1", build: "7"});
diff --git a/build/connection/connection-debug.js b/build/connection/connection-debug.js
index 1002340..b46e617 100644
--- a/build/connection/connection-debug.js
+++ b/build/connection/connection-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Connection Manager provides a simplified interface to the XMLHttpRequest
@@ -1573,4 +1573,4 @@ YAHOO.util.Connect =
 	YCM.uploadFile = _uploadFile;
 })();
 
-YAHOO.register("connection", YAHOO.util.Connect, {version: "2.8.1", build: "19"});
+YAHOO.register("connection", YAHOO.util.Connect, {version: "2.8.2r1", build: "7"});
diff --git a/build/connection/connection-min.js b/build/connection/connection-min.js
index 3108a64..10ce51b 100644
--- a/build/connection/connection-min.js
+++ b/build/connection/connection-min.js
@@ -2,8 +2,8 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(F){var D,A,B;try{A=new XMLHttpRequest();D={conn:A,tId:F,xhr:true};}catch(C){for(B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:F,xhr:true};break;}catch(E){}}}finally{return D;}},getConnectionObject:function(A){var C,D=this._transaction_id;try{if(!A){C=this.createXhrObject(D);}else{C={tId:D};if(A==="xdr"){C.conn=this._transport;C.xdr=true;}else{if(A==="upload"){C.upload=true;}}}if(C){this._transaction_id++;}}catch(B){}return C;},asyncRequest:function(G,D,F,A){var E,C,B=(F&&F.argument)?F.argument:null;if(this._isFileUpload){C="upload";}else{if(F.xdr){C="xdr";}}E=this.getConnectionObject(C);if(!E){return null;}else{if(F&&F.customevents){this.initCustomEvents(E,F);}if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(E,F,D,A);return E;}if(G.toUpperCase()=="GET"){if(this._sFormData.length!==0){D+=((D.indexOf("?")==-1)?"?":"&")+this._sFormData;}}else{if(G.toUpperCase()=="POST"){A=A?this._sFormData+"&"+A:this._sFormData;}}}if(G.toUpperCase()=="GET"&&(F&&F.cache===false)){D+=((D.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();}if(this._use_default_xhr_header){if(!this._default_headers["X-Requested-With"]){this.initHeader("X-Requested-With",this._default_xhr_header,true);}}if((G.toUpperCase()==="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){this.initHeader("Content-Type",this._default_post_header);}if(E.xdr){this.xdr(E,G,D,F,A);return E;}E.conn.open(G,D,true);if(this._has_default_headers||this._has_http_headers){this.setHeader(E);}this.handleReadyState(E,F);E.conn.send(A||"");if(this._isFormSubmit===true){this.resetFormState();}this.startEvent.fire(E,B);if(E.startEvent){E.startEvent.fire(E,B);}return E;}},initCustomEvents:function(A,C){var B;for(B in C.customevents){if(this._customEvents[B][0]){A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);A[this._customEvents[B][0]].subscribe(C.customevents[B]);}}},handleReadyState:function(C,D){var B=this,A=(D&&D.argument)?D.argument:null;if(D&&D.timeout){this._timeOut[C.tId]=window.setTimeout(function(){B.abort(C,D,true);},D.timeout);}this._poll[C.tId]=window.setInterval(function(){if(C.conn&&C.conn.readyState===4){window.clearInterval(B._poll[C.tId]);delete B._poll[C.tId];if(D&&D.timeout){window.clearTimeout(B._timeOut[C.tId]);delete B._timeOut[C.tId];}B.completeEvent.fire(C,A);if(C.completeEvent){C.completeEvent.fire(C,A);}B.handleTransactionResponse(C,D);}},this._polling_interval);},handleTransactionResponse:function(B,I,D){var E,A,G=(I&&I.argument)?I.argument:null,C=(B.r&&B.r.statusText==="xdr:success")?true:false,H=(B.r&&B.r.statusText==="xdr:failure")?true:false,J=D;try{if((B.conn.status!==undefined&&B.conn.status!==0)||C){E=B.conn.status;}else{if(H&&!J){E=0;}else{E=13030;}}}catch(F){E=13030;}if((E>=200&&E<300)||E===1223||C){A=B.xdr?B.r:this.createResponseObject(B,G);if(I&&I.success){if(!I.scope){I.success(A);}else{I.success.apply(I.scope,[A]);}}this.successEvent.fire(A);if(B.successEvent){B.successEvent.fire(A);}}else{switch(E){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:A=this.createExceptionObject(B.tId,G,(D?D:false));if(I&&I.failure){if(!I.scope){I.failure(A);}else{I.failure.apply(I.scope,[A]);}}break;default:A=(B.xdr)?B.response:this.createResponseObject(B,G);if(I&&I.failure){if(!I.scope){I.failure(A);}else{I.failure.apply(I.scope,[A]);}}}this.failureEvent.fire(A);if(B.failureEvent){B.failureEvent.fire(A);}}this.releaseObject(B);A=null;},createResponseObject:function(A,G){var D={},I={},E,C,F,B;try{C=A.conn.getAllResponseHeaders();F=C.split("\n");for(E=0;E<F.length;E++){B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=YAHOO.lang.trim(F[E].substring(B+2));}}}catch(H){}D.tId=A.tId;D.status=(A.conn.status==1223)?204:A.conn.status;D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(G){D.argument=G;}return D;},createExceptionObject:function(H,D,A){var F=0,G="communication failure",C=-1,B="transaction aborted",E={};E.tId=H;if(A){E.status=C;E.statusText=B;}else{E.status=F;E.statusText=G;}if(D){E.argument=D;}return E;},initHeader:function(A,D,C){var B=(C)?this._default_headers:this._http_headers;B[A]=D;if(C){this._has_default_headers=true;}else{this._has_http_headers=true;}},setHeader:function(A){var B;if(this._has_default_headers){for(B in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){A.conn.setRequestHeader(B,this._default_headers[B]);}}}if(this._has_http_headers){for(B in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){A.conn.setRequestHeader(B,this._http_headers[B]);
 }}this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){this._default_headers={};this._has_default_headers=false;},abort:function(E,G,A){var D,B=(G&&G.argument)?G.argument:null;E=E||{};if(E.conn){if(E.xhr){if(this.isCallInProgress(E)){E.conn.abort();window.clearInterval(this._poll[E.tId]);delete this._poll[E.tId];if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{if(E.xdr){E.conn.abort(E.tId);D=true;}}}else{if(E.upload){var C="yuiIO"+E.tId;var F=document.getElementById(C);if(F){YAHOO.util.Event.removeListener(F,"load");document.body.removeChild(F);if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{D=false;}}if(D===true){this.abortEvent.fire(E,B);if(E.abortEvent){E.abortEvent.fire(E,B);}this.handleTransactionResponse(E,G,true);}return D;},isCallInProgress:function(A){A=A||{};if(A.xhr&&A.conn){return A.conn.readyState!==4&&A.conn.readyState!==0;}else{if(A.xdr&&A.conn){return A.conn.isCallInProgress(A.tId);}else{if(A.upload===true){return document.getElementById("yuiIO"+A.tId)?true:false;}else{return false;}}}},releaseObject:function(A){if(A&&A.conn){A.conn=null;A=null;}}};(function(){var G=YAHOO.util.Connect,H={};function D(I){var J='<object id="YUIConnectionSwf" type="application/x-shockwave-flash" data="'+I+'" width="0" height="0">'+'<param name="movie" value="'+I+'">'+'<param name="allowScriptAccess" value="always">'+"</object>",K=document.createElement("div");document.body.appendChild(K);K.innerHTML=J;}function B(L,I,J,M,K){H[parseInt(L.tId)]={"o":L,"c":M};if(K){M.method=I;M.data=K;}L.conn.send(J,M,L.tId);}function E(I){D(I);G._transport=document.getElementById("YUIConnectionSwf");}function C(){G.xdrReadyEvent.fire();}function A(J,I){if(J){G.startEvent.fire(J,I.argument);if(J.startEvent){J.startEvent.fire(J,I.argument);}}}function F(J){var K=H[J.tId].o,I=H[J.tId].c;if(J.statusText==="xdr:start"){A(K,I);return;}J.responseText=decodeURI(J.responseText);K.r=J;if(I.argument){K.r.argument=I.argument;}this.handleTransactionResponse(K,I,J.statusText==="xdr:abort"?true:false);delete H[J.tId];}G.xdr=B;G.swf=D;G.transport=E;G.xdrReadyEvent=new YAHOO.util.CustomEvent("xdrReady");G.xdrReady=C;G.handleXdrResponse=F;})();(function(){var D=YAHOO.util.Connect,F=YAHOO.util.Event;D._isFormSubmit=false;D._isFileUpload=false;D._formNode=null;D._sFormData=null;D._submitElementValue=null;D.uploadEvent=new YAHOO.util.CustomEvent("upload"),D._hasSubmitListener=function(){if(F){F.addListener(document,"click",function(J){var I=F.getTarget(J),H=I.nodeName.toLowerCase();if((H==="input"||H==="button")&&(I.type&&I.type.toLowerCase()=="submit")){D._submitElementValue=encodeURIComponent(I.name)+"="+encodeURIComponent(I.value);}});return true;}return false;}();function G(T,O,J){var S,I,R,P,W,Q=false,M=[],V=0,L,N,K,U,H;this.resetFormState();if(typeof T=="string"){S=(document.getElementById(T)||document.forms[T]);}else{if(typeof T=="object"){S=T;}else{return;}}if(O){this.createFrame(J?J:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=S;return;}for(L=0,N=S.elements.length;L<N;++L){I=S.elements[L];W=I.disabled;R=I.name;if(!W&&R){R=encodeURIComponent(R)+"=";P=encodeURIComponent(I.value);switch(I.type){case"select-one":if(I.selectedIndex>-1){H=I.options[I.selectedIndex];M[V++]=R+encodeURIComponent((H.attributes.value&&H.attributes.value.specified)?H.value:H.text);}break;case"select-multiple":if(I.selectedIndex>-1){for(K=I.selectedIndex,U=I.options.length;K<U;++K){H=I.options[K];if(H.selected){M[V++]=R+encodeURIComponent((H.attributes.value&&H.attributes.value.specified)?H.value:H.text);}}}break;case"radio":case"checkbox":if(I.checked){M[V++]=R+P;}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(Q===false){if(this._hasSubmitListener&&this._submitElementValue){M[V++]=this._submitElementValue;}Q=true;}break;default:M[V++]=R+P;}}}this._isFormSubmit=true;this._sFormData=M.join("&");this.initHeader("Content-Type",this._default_form_header);return this._sFormData;}function C(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";}function B(H){var I="yuiIO"+this._transaction_id,J;if(YAHOO.env.ua.ie){J=document.createElement('<iframe id="'+I+'" name="'+I+'" />');if(typeof H=="boolean"){J.src="javascript:false";}}else{J=document.createElement("iframe");J.id=I;J.name=I;}J.style.position="absolute";J.style.top="-1000px";J.style.left="-1000px";document.body.appendChild(J);}function E(H){var K=[],I=H.split("&"),J,L;for(J=0;J<I.length;J++){L=I[J].indexOf("=");if(L!=-1){K[J]=document.createElement("input");K[J].type="hidden";K[J].name=decodeURIComponent(I[J].substring(0,L));K[J].value=decodeURIComponent(I[J].substring(L+1));this._formNode.appendChild(K[J]);}}return K;}function A(K,V,L,J){var Q="yuiIO"+K.tId,R="multipart/form-data",T=document.getElementById(Q),M=(document.documentMode&&document.documentMode===8)?true:false,W=this,S=(V&&V.argument)?V.argument:null,U,P,I,O,H,N;H={action:this._formNode.getAttribute("action"),method:this._formNode.getAttribute("method"),target:this._formNode.getAttribute("target")};this._formNode.setAttribute("action",L);this._formNode.setAttribute("method","POST");this._formNode.setAttribute("target",Q);if(YAHOO.env.ua.ie&&!M){this._formNode.setAttribute("encoding",R);}else{this._formNode.setAttribute("enctype",R);}if(J){U=this.appendPostData(J);}this._formNode.submit();this.startEvent.fire(K,S);if(K.startEvent){K.startEvent.fire(K,S);}if(V&&V.timeout){this._timeOut[K.tId]=window.setTimeout(function(){W.abort(K,V,true);},V.timeout);}if(U&&U.length>0){for(P=0;P<U.length;P++){this._formNode.removeChild(U[P]);}}for(I in H){if(YAHOO.lang.hasOwnProperty(H,I)){if(H[I]){this._formNode.setAttribute(I,H[I]);}else{this._formNode.removeAttribute(I);}}}this.resetFormState();N=function(){if(V&&V.timeout){window.clearTimeout(W._timeOut[K.tId]);delete W._timeOut[K.tId];}W.completeEvent.fire(K,S);if(K.completeEvent){K.completeEvent.fire(K,S);
-}O={tId:K.tId,argument:V.argument};try{O.responseText=T.contentWindow.document.body?T.contentWindow.document.body.innerHTML:T.contentWindow.document.documentElement.textContent;O.responseXML=T.contentWindow.document.XMLDocument?T.contentWindow.document.XMLDocument:T.contentWindow.document;}catch(X){}if(V&&V.upload){if(!V.scope){V.upload(O);}else{V.upload.apply(V.scope,[O]);}}W.uploadEvent.fire(O);if(K.uploadEvent){K.uploadEvent.fire(O);}F.removeListener(T,"load",N);setTimeout(function(){document.body.removeChild(T);W.releaseObject(K);},100);};F.addListener(T,"load",N);}D.setForm=G;D.resetFormState=C;D.createFrame=B;D.appendPostData=E;D.uploadFile=A;})();YAHOO.register("connection",YAHOO.util.Connect,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}O={tId:K.tId,argument:V.argument};try{O.responseText=T.contentWindow.document.body?T.contentWindow.document.body.innerHTML:T.contentWindow.document.documentElement.textContent;O.responseXML=T.contentWindow.document.XMLDocument?T.contentWindow.document.XMLDocument:T.contentWindow.document;}catch(X){}if(V&&V.upload){if(!V.scope){V.upload(O);}else{V.upload.apply(V.scope,[O]);}}W.uploadEvent.fire(O);if(K.uploadEvent){K.uploadEvent.fire(O);}F.removeListener(T,"load",N);setTimeout(function(){document.body.removeChild(T);W.releaseObject(K);},100);};F.addListener(T,"load",N);}D.setForm=G;D.resetFormState=C;D.createFrame=B;D.appendPostData=E;D.uploadFile=A;})();YAHOO.register("connection",YAHOO.util.Connect,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/connection/connection.js b/build/connection/connection.js
index d138953..c564a75 100644
--- a/build/connection/connection.js
+++ b/build/connection/connection.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Connection Manager provides a simplified interface to the XMLHttpRequest
@@ -1543,4 +1543,4 @@ YAHOO.util.Connect =
 	YCM.uploadFile = _uploadFile;
 })();
 
-YAHOO.register("connection", YAHOO.util.Connect, {version: "2.8.1", build: "19"});
+YAHOO.register("connection", YAHOO.util.Connect, {version: "2.8.2r1", build: "7"});
diff --git a/build/connection/connection_core-debug.js b/build/connection/connection_core-debug.js
index 1c5236f..5c8384e 100644
--- a/build/connection/connection_core-debug.js
+++ b/build/connection/connection_core-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Connection Manager provides a simplified interface to the XMLHttpRequest
@@ -977,4 +977,4 @@ YAHOO.util.Connect =
 	}
 };
 
-YAHOO.register("connection_core", YAHOO.util.Connect, {version: "2.8.1", build: "19"});
+YAHOO.register("connection_core", YAHOO.util.Connect, {version: "2.8.2r1", build: "7"});
diff --git a/build/connection/connection_core-min.js b/build/connection/connection_core-min.js
index dde14cd..fa8e53c 100644
--- a/build/connection/connection_core-min.js
+++ b/build/connection/connection_core-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(F){var D,A,B;try{A=new XMLHttpRequest();D={conn:A,tId:F,xhr:true};}catch(C){for(B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:F,xhr:true};break;}catch(E){}}}finally{return D;}},getConnectionObject:function(A){var C,D=this._transaction_id;try{if(!A){C=this.createXhrObject(D);}else{C={tId:D};if(A==="xdr"){C.conn=this._transport;C.xdr=true;}else{if(A==="upload"){C.upload=true;}}}if(C){this._transaction_id++;}}catch(B){}return C;},asyncRequest:function(G,D,F,A){var E,C,B=(F&&F.argument)?F.argument:null;if(this._isFileUpload){C="upload";}else{if(F.xdr){C="xdr";}}E=this.getConnectionObject(C);if(!E){return null;}else{if(F&&F.customevents){this.initCustomEvents(E,F);}if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(E,F,D,A);return E;}if(G.toUpperCase()=="GET"){if(this._sFormData.length!==0){D+=((D.indexOf("?")==-1)?"?":"&")+this._sFormData;}}else{if(G.toUpperCase()=="POST"){A=A?this._sFormData+"&"+A:this._sFormData;}}}if(G.toUpperCase()=="GET"&&(F&&F.cache===false)){D+=((D.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();}if(this._use_default_xhr_header){if(!this._default_headers["X-Requested-With"]){this.initHeader("X-Requested-With",this._default_xhr_header,true);}}if((G.toUpperCase()==="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){this.initHeader("Content-Type",this._default_post_header);}if(E.xdr){this.xdr(E,G,D,F,A);return E;}E.conn.open(G,D,true);if(this._has_default_headers||this._has_http_headers){this.setHeader(E);}this.handleReadyState(E,F);E.conn.send(A||"");if(this._isFormSubmit===true){this.resetFormState();}this.startEvent.fire(E,B);if(E.startEvent){E.startEvent.fire(E,B);}return E;}},initCustomEvents:function(A,C){var B;for(B in C.customevents){if(this._customEvents[B][0]){A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);A[this._customEvents[B][0]].subscribe(C.customevents[B]);}}},handleReadyState:function(C,D){var B=this,A=(D&&D.argument)?D.argument:null;if(D&&D.timeout){this._timeOut[C.tId]=window.setTimeout(function(){B.abort(C,D,true);},D.timeout);}this._poll[C.tId]=window.setInterval(function(){if(C.conn&&C.conn.readyState===4){window.clearInterval(B._poll[C.tId]);delete B._poll[C.tId];if(D&&D.timeout){window.clearTimeout(B._timeOut[C.tId]);delete B._timeOut[C.tId];}B.completeEvent.fire(C,A);if(C.completeEvent){C.completeEvent.fire(C,A);}B.handleTransactionResponse(C,D);}},this._polling_interval);},handleTransactionResponse:function(B,I,D){var E,A,G=(I&&I.argument)?I.argument:null,C=(B.r&&B.r.statusText==="xdr:success")?true:false,H=(B.r&&B.r.statusText==="xdr:failure")?true:false,J=D;try{if((B.conn.status!==undefined&&B.conn.status!==0)||C){E=B.conn.status;}else{if(H&&!J){E=0;}else{E=13030;}}}catch(F){E=13030;}if((E>=200&&E<300)||E===1223||C){A=B.xdr?B.r:this.createResponseObject(B,G);if(I&&I.success){if(!I.scope){I.success(A);}else{I.success.apply(I.scope,[A]);}}this.successEvent.fire(A);if(B.successEvent){B.successEvent.fire(A);}}else{switch(E){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:A=this.createExceptionObject(B.tId,G,(D?D:false));if(I&&I.failure){if(!I.scope){I.failure(A);}else{I.failure.apply(I.scope,[A]);}}break;default:A=(B.xdr)?B.response:this.createResponseObject(B,G);if(I&&I.failure){if(!I.scope){I.failure(A);}else{I.failure.apply(I.scope,[A]);}}}this.failureEvent.fire(A);if(B.failureEvent){B.failureEvent.fire(A);}}this.releaseObject(B);A=null;},createResponseObject:function(A,G){var D={},I={},E,C,F,B;try{C=A.conn.getAllResponseHeaders();F=C.split("\n");for(E=0;E<F.length;E++){B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=YAHOO.lang.trim(F[E].substring(B+2));}}}catch(H){}D.tId=A.tId;D.status=(A.conn.status==1223)?204:A.conn.status;D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(G){D.argument=G;}return D;},createExceptionObject:function(H,D,A){var F=0,G="communication failure",C=-1,B="transaction aborted",E={};E.tId=H;if(A){E.status=C;E.statusText=B;}else{E.status=F;E.statusText=G;}if(D){E.argument=D;}return E;},initHeader:function(A,D,C){var B=(C)?this._default_headers:this._http_headers;B[A]=D;if(C){this._has_default_headers=true;}else{this._has_http_headers=true;}},setHeader:function(A){var B;if(this._has_default_headers){for(B in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){A.conn.setRequestHeader(B,this._default_headers[B]);}}}if(this._has_http_headers){for(B in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){A.conn.setRequestHeader(B,this._http_headers[B]);
-}}this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){this._default_headers={};this._has_default_headers=false;},abort:function(E,G,A){var D,B=(G&&G.argument)?G.argument:null;E=E||{};if(E.conn){if(E.xhr){if(this.isCallInProgress(E)){E.conn.abort();window.clearInterval(this._poll[E.tId]);delete this._poll[E.tId];if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{if(E.xdr){E.conn.abort(E.tId);D=true;}}}else{if(E.upload){var C="yuiIO"+E.tId;var F=document.getElementById(C);if(F){YAHOO.util.Event.removeListener(F,"load");document.body.removeChild(F);if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{D=false;}}if(D===true){this.abortEvent.fire(E,B);if(E.abortEvent){E.abortEvent.fire(E,B);}this.handleTransactionResponse(E,G,true);}return D;},isCallInProgress:function(A){A=A||{};if(A.xhr&&A.conn){return A.conn.readyState!==4&&A.conn.readyState!==0;}else{if(A.xdr&&A.conn){return A.conn.isCallInProgress(A.tId);}else{if(A.upload===true){return document.getElementById("yuiIO"+A.tId)?true:false;}else{return false;}}}},releaseObject:function(A){if(A&&A.conn){A.conn=null;A=null;}}};YAHOO.register("connection_core",YAHOO.util.Connect,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}}this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){this._default_headers={};this._has_default_headers=false;},abort:function(E,G,A){var D,B=(G&&G.argument)?G.argument:null;E=E||{};if(E.conn){if(E.xhr){if(this.isCallInProgress(E)){E.conn.abort();window.clearInterval(this._poll[E.tId]);delete this._poll[E.tId];if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{if(E.xdr){E.conn.abort(E.tId);D=true;}}}else{if(E.upload){var C="yuiIO"+E.tId;var F=document.getElementById(C);if(F){YAHOO.util.Event.removeListener(F,"load");document.body.removeChild(F);if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{D=false;}}if(D===true){this.abortEvent.fire(E,B);if(E.abortEvent){E.abortEvent.fire(E,B);}this.handleTransactionResponse(E,G,true);}return D;},isCallInProgress:function(A){A=A||{};if(A.xhr&&A.conn){return A.conn.readyState!==4&&A.conn.readyState!==0;}else{if(A.xdr&&A.conn){return A.conn.isCallInProgress(A.tId);}else{if(A.upload===true){return document.getElementById("yuiIO"+A.tId)?true:false;}else{return false;}}}},releaseObject:function(A){if(A&&A.conn){A.conn=null;A=null;}}};YAHOO.register("connection_core",YAHOO.util.Connect,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/connection/connection_core.js b/build/connection/connection_core.js
index 1773f07..1721eb2 100644
--- a/build/connection/connection_core.js
+++ b/build/connection/connection_core.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Connection Manager provides a simplified interface to the XMLHttpRequest
@@ -954,4 +954,4 @@ YAHOO.util.Connect =
 	}
 };
 
-YAHOO.register("connection_core", YAHOO.util.Connect, {version: "2.8.1", build: "19"});
+YAHOO.register("connection_core", YAHOO.util.Connect, {version: "2.8.2r1", build: "7"});
diff --git a/build/container/assets/container-core.css b/build/container/assets/container-core.css
index c8a173d..4bfc683 100644
--- a/build/container/assets/container-core.css
+++ b/build/container/assets/container-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-overlay,
 .yui-panel-container {
diff --git a/build/container/assets/container.css b/build/container/assets/container.css
index 339b8f1..b70d7d0 100644
--- a/build/container/assets/container.css
+++ b/build/container/assets/container.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-overlay,
 .yui-panel-container {
diff --git a/build/container/assets/skins/sam/container-skin.css b/build/container/assets/skins/sam/container-skin.css
index b076dcf..8adcdb5 100644
--- a/build/container/assets/skins/sam/container-skin.css
+++ b/build/container/assets/skins/sam/container-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Panel modality mask styles */
 .yui-skin-sam .mask {
diff --git a/build/container/assets/skins/sam/container.css b/build/container/assets/skins/sam/container.css
index cf1d333..0e1c188 100644
--- a/build/container/assets/skins/sam/container.css
+++ b/build/container/assets/skins/sam/container.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-overlay,.yui-panel-container{visibility:hidden;position:absolute;z-index:2;}.yui-panel{position:relative;}.yui-panel-container form{margin:0;}.mask{z-index:1;display:none;position:absolute;top:0;left:0;right:0;bottom:0;}.mask.block-scrollbars{overflow:auto;}.masked select,.drag select,.hide-select select{_visibility:hidden;}.yui-panel-container select{_visibility:inherit;}.hide-scrollbars,.hide-scrollbars *{overflow:hidden;}.hide-scrollbars select{display:none;}.show-scrollbars{overflow:auto;}.yui-panel-container.show-scrollbars,.yui-tt.show-scrollbars{overflow:visible;}.yui-panel-container.show-scrollbars .underlay,.yui-tt.show-scrollbars .yui-tt-shadow{overflow:auto;}.yui-panel-container.shadow .underlay.yui-force-redraw{padding-bottom:1px;}.yui-effect-fade .underlay,.yui-effect-fade .yui-tt-shadow{display:none;}.yui-tt-shadow{position:absolute;}.yui-override-padding{padding:0!important;}.yui-panel-container .container-close{overflow:hidden;text-indent:-10000em;text-decoration:none;}.yui-overlay.yui-force-redraw,.yui-panel-container.yui-force-redraw{margin-bottom:1px;}.yui-skin-sam .mask{background-color:#000;opacity:.25;filter:alpha(opacity=25);}.yui-skin-sam .yui-panel-container{padding:0 1px;*padding:2px;}.yui-skin-sam .yui-panel{position:relative;left:0;top:0;border-style:solid;border-width:1px 0;border-color:#808080;z-index:1;*border-width:1px;*zoom:1;_zoom:normal;}.yui-skin-sam .yui-panel .hd,.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{border-style:solid;border-width:0 1px;border-color:#808080;margin:0 -1px;*margin:0;*border:0;}.yui-skin-sam .yui-panel .hd{border-bottom:solid 1px #ccc;}.yui-skin-sam .yui-panel .bd,.yui-skin-sam .yui-panel .ft{background-color:#F2F2F2;}.yui-skin-sam .yui-panel .hd{padding:0 10px;font-size:93%;line-height:2;*line-height:1.9;font-weight:bold;color:#000;background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -200px;}.yui-skin-sam .yui-panel .bd{padding:10px;}.yui-skin-sam .yui-panel .ft{border-top:solid 1px #808080;padding:5px 10px;font-size:77%;}.yui-skin-sam .container-close{position:absolute;top:5px;right:6px;width:25px;height:15px;background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -300px;cursor:pointer;}.yui-skin-sam .yui-panel-container .underlay{right:-1px;left:-1px;}.yui-skin-sam .yui-panel-container.matte{padding:9px 10px;background-color:#fff;}.yui-skin-sam .yui-panel-container.shadow{_padding:2px 4px 0 2px;}.yui-skin-sam .yui-panel-container.shadow .underlay{position:absolute;top:2px;left:-3px;right:-3px;bottom:-3px;*top:4px;*left:-1px;*right:-1px;*bottom:-1px;_top:0;_left:0;_right:0;_bottom:0;_margin-top:3px;_margin-left:-1px;background-color:#000;opacity:.12;filter:alpha(opacity=12);}.yui-skin-sam .yui-dialog .ft{border-top:none;padding:0 10px 10px 10px;font-size:100%;}.yui-skin-sam .yui-dialog .ft .button-group{display:block;text-align:right;}.yui-skin-sam .yui-dialog .ft button.default{font-weight:bold;}.yui-skin-sam .yui-dialog .ft span.default{border-color:#304369;background-position:0 -1400px;}.yui-skin-sam .yui-dialog .ft span.default .first-child{border-color:#304369;}.yui-skin-sam .yui-dialog .ft span.default button{color:#fff;}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled{background-position:0 -1500px;border-color:#ccc;}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled .first-child{border-color:#ccc;}.yui-skin-sam .yui-dialog .ft span.yui-button-disabled button{color:#a6a6a6;}.yui-skin-sam .yui-simple-dialog .bd .yui-icon{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 0;width:16px;height:16px;margin-right:10px;float:left;}.yui-skin-sam .yui-simple-dialog .bd span.blckicon{background-position:0 -1100px;}.yui-skin-sam .yui-simple-dialog .bd span.alrticon{background-position:0 -1050px;}.yui-skin-sam .yui-simple-dialog .bd span.hlpicon{background-position:0 -1150px;}.yui-skin-sam .yui-simple-dialog .bd span.infoicon{background-position:0 -1200px;}.yui-skin-sam .yui-simple-dialog .bd span.warnicon{background-position:0 -1900px;}.yui-skin-sam .yui-simple-dialog .bd span.tipicon{background-position:0 -1250px;}.yui-skin-sam .yui-tt .bd{position:relative;top:0;left:0;z-index:1;color:#000;padding:2px 5px;border-color:#D4C237 #A6982B #A6982B #A6982B;border-width:1px;border-style:solid;background-color:#FFEE69;}.yui-skin-sam .yui-tt.show-scrollbars .bd{overflow:auto;}.yui-skin-sam .yui-tt-shadow{top:2px;right:-3px;left:-3px;bottom:-3px;background-color:#000;}.yui-skin-sam .yui-tt-shadow-visible{opacity:.12;filter:alpha(opacity=12);}
diff --git a/build/container/container-debug.js b/build/container/container-debug.js
index a56f19f..498da42 100644
--- a/build/container/container-debug.js
+++ b/build/container/container-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 
@@ -9073,4 +9073,4 @@ version: 2.8.1
     YAHOO.lang.augmentProto(ContainerEffect, YAHOO.util.EventProvider);
 
 })();
-YAHOO.register("container", YAHOO.widget.Module, {version: "2.8.1", build: "19"});
+YAHOO.register("container", YAHOO.widget.Module, {version: "2.8.2r1", build: "7"});
diff --git a/build/container/container-min.js b/build/container/container-min.js
index d2976d0..eadb7f2 100644
--- a/build/container/container-min.js
+++ b/build/container/container-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){YAHOO.util.Config=function(D){if(D){this.init(D);}};var B=YAHOO.lang,C=YAHOO.util.CustomEvent,A=YAHOO.util.Config;A.CONFIG_CHANGED_EVENT="configChanged";A.BOOLEAN_TYPE="boolean";A.prototype={owner:null,queueInProgress:false,config:null,initialConfig:null,eventQueue:null,configChangedEvent:null,init:function(D){this.owner=D;this.configChangedEvent=this.createEvent(A.CONFIG_CHANGED_EVENT);this.configChangedEvent.signature=C.LIST;this.queueInProgress=false;this.config={};this.initialConfig={};this.eventQueue=[];},checkBoolean:function(D){return(typeof D==A.BOOLEAN_TYPE);},checkNumber:function(D){return(!isNaN(D));},fireEvent:function(D,F){var E=this.config[D];if(E&&E.event){E.event.fire(F);}},addProperty:function(E,D){E=E.toLowerCase();this.config[E]=D;D.event=this.createEvent(E,{scope:this.owner});D.event.signature=C.LIST;D.key=E;if(D.handler){D.event.subscribe(D.handler,this.owner);}this.setProperty(E,D.value,true);if(!D.suppressEvent){this.queueProperty(E,D.value);}},getConfig:function(){var D={},F=this.config,G,E;for(G in F){if(B.hasOwnProperty(F,G)){E=F[G];if(E&&E.event){D[G]=E.value;}}}return D;},getProperty:function(D){var E=this.config[D.toLowerCase()];if(E&&E.event){return E.value;}else{return undefined;}},resetProperty:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event){if(this.initialConfig[D]&&!B.isUndefined(this.initialConfig[D])){this.setProperty(D,this.initialConfig[D]);return true;}}else{return false;}},setProperty:function(E,G,D){var F;E=E.toLowerCase();if(this.queueInProgress&&!D){this.queueProperty(E,G);return true;}else{F=this.config[E];if(F&&F.event){if(F.validator&&!F.validator(G)){return false;}else{F.value=G;if(!D){this.fireEvent(E,G);this.configChangedEvent.fire([E,G]);}return true;}}else{return false;}}},queueProperty:function(S,P){S=S.toLowerCase();var R=this.config[S],K=false,J,G,H,I,O,Q,F,M,N,D,L,T,E;if(R&&R.event){if(!B.isUndefined(P)&&R.validator&&!R.validator(P)){return false;}else{if(!B.isUndefined(P)){R.value=P;}else{P=R.value;}K=false;J=this.eventQueue.length;for(L=0;L<J;L++){G=this.eventQueue[L];if(G){H=G[0];I=G[1];if(H==S){this.eventQueue[L]=null;this.eventQueue.push([S,(!B.isUndefined(P)?P:I)]);K=true;break;}}}if(!K&&!B.isUndefined(P)){this.eventQueue.push([S,P]);}}if(R.supercedes){O=R.supercedes.length;for(T=0;T<O;T++){Q=R.supercedes[T];F=this.eventQueue.length;for(E=0;E<F;E++){M=this.eventQueue[E];if(M){N=M[0];D=M[1];if(N==Q.toLowerCase()){this.eventQueue.push([N,D]);this.eventQueue[E]=null;break;}}}}}return true;}else{return false;}},refireEvent:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event&&!B.isUndefined(E.value)){if(this.queueInProgress){this.queueProperty(D);}else{this.fireEvent(D,E.value);}}},applyConfig:function(D,G){var F,E;if(G){E={};for(F in D){if(B.hasOwnProperty(D,F)){E[F.toLowerCase()]=D[F];}}this.initialConfig=E;}for(F in D){if(B.hasOwnProperty(D,F)){this.queueProperty(F,D[F]);}}},refresh:function(){var D;for(D in this.config){if(B.hasOwnProperty(this.config,D)){this.refireEvent(D);}}},fireQueue:function(){var E,H,D,G,F;this.queueInProgress=true;for(E=0;E<this.eventQueue.length;E++){H=this.eventQueue[E];if(H){D=H[0];G=H[1];F=this.config[D];F.value=G;this.eventQueue[E]=null;this.fireEvent(D,G);}}this.queueInProgress=false;this.eventQueue=[];},subscribeToConfigEvent:function(D,E,G,H){var F=this.config[D.toLowerCase()];if(F&&F.event){if(!A.alreadySubscribed(F.event,E,G)){F.event.subscribe(E,G,H);}return true;}else{return false;}},unsubscribeFromConfigEvent:function(D,E,G){var F=this.config[D.toLowerCase()];if(F&&F.event){return F.event.unsubscribe(E,G);}else{return false;}},toString:function(){var D="Config";if(this.owner){D+=" ["+this.owner.toString()+"]";}return D;},outputEventQueue:function(){var D="",G,E,F=this.eventQueue.length;for(E=0;E<F;E++){G=this.eventQueue[E];if(G){D+=G[0]+"="+G[1]+", ";}}return D;},destroy:function(){var E=this.config,D,F;for(D in E){if(B.hasOwnProperty(E,D)){F=E[D];F.event.unsubscribeAll();F.event=null;}}this.configChangedEvent.unsubscribeAll();this.configChangedEvent=null;this.owner=null;this.config=null;this.initialConfig=null;this.eventQueue=null;}};A.alreadySubscribed=function(E,H,I){var F=E.subscribers.length,D,G;if(F>0){G=F-1;do{D=E.subscribers[G];if(D&&D.obj==I&&D.fn==H){return true;}}while(G--);}return false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Module=function(R,Q){if(R){this.init(R,Q);}else{}};var F=YAHOO.util.Dom,D=YAHOO.util.Config,N=YAHOO.util.Event,M=YAHOO.util.CustomEvent,G=YAHOO.widget.Module,I=YAHOO.env.ua,H,P,O,E,A={"BEFORE_INIT":"beforeInit","INIT":"init","APPEND":"append","BEFORE_RENDER":"beforeRender","RENDER":"render","CHANGE_HEADER":"changeHeader","CHANGE_BODY":"changeBody","CHANGE_FOOTER":"changeFooter","CHANGE_CONTENT":"changeContent","DESTROY":"destroy","BEFORE_SHOW":"beforeShow","SHOW":"show","BEFORE_HIDE":"beforeHide","HIDE":"hide"},J={"VISIBLE":{key:"visible",value:true,validator:YAHOO.lang.isBoolean},"EFFECT":{key:"effect",suppressEvent:true,supercedes:["visible"]},"MONITOR_RESIZE":{key:"monitorresize",value:true},"APPEND_TO_DOCUMENT_BODY":{key:"appendtodocumentbody",value:false}};G.IMG_ROOT=null;G.IMG_ROOT_SSL=null;G.CSS_MODULE="yui-module";G.CSS_HEADER="hd";G.CSS_BODY="bd";G.CSS_FOOTER="ft";G.RESIZE_MONITOR_SECURE_URL="javascript:false;";G.RESIZE_MONITOR_BUFFER=1;G.textResizeEvent=new M("textResize");G.forceDocumentRedraw=function(){var Q=document.documentElement;if(Q){Q.className+=" ";Q.className=YAHOO.lang.trim(Q.className);}};function L(){if(!H){H=document.createElement("div");H.innerHTML=('<div class="'+G.CSS_HEADER+'"></div>'+'<div class="'+G.CSS_BODY+'"></div><div class="'+G.CSS_FOOTER+'"></div>');P=H.firstChild;O=P.nextSibling;E=O.nextSibling;}return H;}function K(){if(!P){L();}return(P.cloneNode(false));}function B(){if(!O){L();}return(O.cloneNode(false));}function C(){if(!E){L();}return(E.cloneNode(false));}G.prototype={constructor:G,element:null,header:null,body:null,footer:null,id:null,imageRoot:G.IMG_ROOT,initEvents:function(){var Q=M.LIST;
 this.beforeInitEvent=this.createEvent(A.BEFORE_INIT);this.beforeInitEvent.signature=Q;this.initEvent=this.createEvent(A.INIT);this.initEvent.signature=Q;this.appendEvent=this.createEvent(A.APPEND);this.appendEvent.signature=Q;this.beforeRenderEvent=this.createEvent(A.BEFORE_RENDER);this.beforeRenderEvent.signature=Q;this.renderEvent=this.createEvent(A.RENDER);this.renderEvent.signature=Q;this.changeHeaderEvent=this.createEvent(A.CHANGE_HEADER);this.changeHeaderEvent.signature=Q;this.changeBodyEvent=this.createEvent(A.CHANGE_BODY);this.changeBodyEvent.signature=Q;this.changeFooterEvent=this.createEvent(A.CHANGE_FOOTER);this.changeFooterEvent.signature=Q;this.changeContentEvent=this.createEvent(A.CHANGE_CONTENT);this.changeContentEvent.signature=Q;this.destroyEvent=this.createEvent(A.DESTROY);this.destroyEvent.signature=Q;this.beforeShowEvent=this.createEvent(A.BEFORE_SHOW);this.beforeShowEvent.signature=Q;this.showEvent=this.createEvent(A.SHOW);this.showEvent.signature=Q;this.beforeHideEvent=this.createEvent(A.BEFORE_HIDE);this.beforeHideEvent.signature=Q;this.hideEvent=this.createEvent(A.HIDE);this.hideEvent.signature=Q;},platform:function(){var Q=navigator.userAgent.toLowerCase();if(Q.indexOf("windows")!=-1||Q.indexOf("win32")!=-1){return"windows";}else{if(Q.indexOf("macintosh")!=-1){return"mac";}else{return false;}}}(),browser:function(){var Q=navigator.userAgent.toLowerCase();if(Q.indexOf("opera")!=-1){return"opera";}else{if(Q.indexOf("msie 7")!=-1){return"ie7";}else{if(Q.indexOf("msie")!=-1){return"ie";}else{if(Q.indexOf("safari")!=-1){return"safari";}else{if(Q.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}}(),isSecure:function(){if(window.location.href.toLowerCase().indexOf("https")===0){return true;}else{return false;}}(),initDefaultConfig:function(){this.cfg.addProperty(J.VISIBLE.key,{handler:this.configVisible,value:J.VISIBLE.value,validator:J.VISIBLE.validator});this.cfg.addProperty(J.EFFECT.key,{suppressEvent:J.EFFECT.suppressEvent,supercedes:J.EFFECT.supercedes});this.cfg.addProperty(J.MONITOR_RESIZE.key,{handler:this.configMonitorResize,value:J.MONITOR_RESIZE.value});this.cfg.addProperty(J.APPEND_TO_DOCUMENT_BODY.key,{value:J.APPEND_TO_DOCUMENT_BODY.value});},init:function(V,U){var S,W;this.initEvents();this.beforeInitEvent.fire(G);this.cfg=new D(this);if(this.isSecure){this.imageRoot=G.IMG_ROOT_SSL;}if(typeof V=="string"){S=V;V=document.getElementById(V);if(!V){V=(L()).cloneNode(false);V.id=S;}}this.id=F.generateId(V);this.element=V;W=this.element.firstChild;if(W){var R=false,Q=false,T=false;do{if(1==W.nodeType){if(!R&&F.hasClass(W,G.CSS_HEADER)){this.header=W;R=true;}else{if(!Q&&F.hasClass(W,G.CSS_BODY)){this.body=W;Q=true;}else{if(!T&&F.hasClass(W,G.CSS_FOOTER)){this.footer=W;T=true;}}}}}while((W=W.nextSibling));}this.initDefaultConfig();F.addClass(this.element,G.CSS_MODULE);if(U){this.cfg.applyConfig(U,true);}if(!D.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}this.initEvent.fire(G);},initResizeMonitor:function(){var R=(I.gecko&&this.platform=="windows");if(R){var Q=this;setTimeout(function(){Q._initResizeMonitor();},0);}else{this._initResizeMonitor();}},_initResizeMonitor:function(){var Q,S,U;function W(){G.textResizeEvent.fire();}if(!I.opera){S=F.get("_yuiResizeMonitor");var V=this._supportsCWResize();if(!S){S=document.createElement("iframe");if(this.isSecure&&G.RESIZE_MONITOR_SECURE_URL&&I.ie){S.src=G.RESIZE_MONITOR_SECURE_URL;}if(!V){U=["<html><head><script ",'type="text/javascript">',"window.onresize=function(){window.parent.","YAHOO.widget.Module.textResizeEvent.","fire();};<","/script></head>","<body></body></html>"].join("");S.src="data:text/html;charset=utf-8,"+encodeURIComponent(U);}S.id="_yuiResizeMonitor";S.title="Text Resize Monitor";S.style.position="absolute";S.style.visibility="hidden";var R=document.body,T=R.firstChild;if(T){R.insertBefore(S,T);}else{R.appendChild(S);}S.style.backgroundColor="transparent";S.style.borderWidth="0";S.style.width="2em";S.style.height="2em";S.style.left="0";S.style.top=(-1*(S.offsetHeight+G.RESIZE_MONITOR_BUFFER))+"px";S.style.visibility="visible";if(I.webkit){Q=S.contentWindow.document;Q.open();Q.close();}}if(S&&S.contentWindow){G.textResizeEvent.subscribe(this.onDomResize,this,true);if(!G.textResizeInitialized){if(V){if(!N.on(S.contentWindow,"resize",W)){N.on(S,"resize",W);}}G.textResizeInitialized=true;}this.resizeMonitor=S;}}},_supportsCWResize:function(){var Q=true;if(I.gecko&&I.gecko<=1.8){Q=false;}return Q;},onDomResize:function(S,R){var Q=-1*(this.resizeMonitor.offsetHeight+G.RESIZE_MONITOR_BUFFER);this.resizeMonitor.style.top=Q+"px";this.resizeMonitor.style.left="0";},setHeader:function(R){var Q=this.header||(this.header=K());if(R.nodeName){Q.innerHTML="";Q.appendChild(R);}else{Q.innerHTML=R;}if(this._rendered){this._renderHeader();}this.changeHeaderEvent.fire(R);this.changeContentEvent.fire();},appendToHeader:function(R){var Q=this.header||(this.header=K());Q.appendChild(R);this.changeHeaderEvent.fire(R);this.changeContentEvent.fire();},setBody:function(R){var Q=this.body||(this.body=B());if(R.nodeName){Q.innerHTML="";Q.appendChild(R);}else{Q.innerHTML=R;}if(this._rendered){this._renderBody();}this.changeBodyEvent.fire(R);this.changeContentEvent.fire();},appendToBody:function(R){var Q=this.body||(this.body=B());Q.appendChild(R);this.changeBodyEvent.fire(R);this.changeContentEvent.fire();},setFooter:function(R){var Q=this.footer||(this.footer=C());if(R.nodeName){Q.innerHTML="";Q.appendChild(R);}else{Q.innerHTML=R;}if(this._rendered){this._renderFooter();}this.changeFooterEvent.fire(R);this.changeContentEvent.fire();},appendToFooter:function(R){var Q=this.footer||(this.footer=C());Q.appendChild(R);this.changeFooterEvent.fire(R);this.changeContentEvent.fire();},render:function(S,Q){var T=this;function R(U){if(typeof U=="string"){U=document.getElementById(U);}if(U){T._addToParent(U,T.element);T.appendEvent.fire();}}this.beforeRenderEvent.fire();
@@ -16,4 +16,4 @@ if(U&&U[1]){T.stopEvent(U[1]);}if(V){try{V.focus();}catch(X){}}},setTabLoop:func
 if(U){U.removeChild(V);}this.mask=null;}},configKeyListeners:function(X,U,a){var W=U[0],Z,Y,V;if(W){if(W instanceof Array){Y=W.length;for(V=0;V<Y;V++){Z=W[V];if(!I.alreadySubscribed(this.showEvent,Z.enable,Z)){this.showEvent.subscribe(Z.enable,Z,true);}if(!I.alreadySubscribed(this.hideEvent,Z.disable,Z)){this.hideEvent.subscribe(Z.disable,Z,true);this.destroyEvent.subscribe(Z.disable,Z,true);}}}else{if(!I.alreadySubscribed(this.showEvent,W.enable,W)){this.showEvent.subscribe(W.enable,W,true);}if(!I.alreadySubscribed(this.hideEvent,W.disable,W)){this.hideEvent.subscribe(W.disable,W,true);this.destroyEvent.subscribe(W.disable,W,true);}}}},configStrings:function(V,U,W){var X=E.merge(N.STRINGS.value,U[0]);this.cfg.setProperty(N.STRINGS.key,X,true);},configHeight:function(X,V,Y){var U=V[0],W=this.innerElement;A.setStyle(W,"height",U);this.cfg.refireEvent("iframe");},_autoFillOnHeightChange:function(X,V,W){O.superclass._autoFillOnHeightChange.apply(this,arguments);if(P){var U=this;setTimeout(function(){U.sizeUnderlay();},0);}},configWidth:function(X,U,Y){var W=U[0],V=this.innerElement;A.setStyle(V,"width",W);this.cfg.refireEvent("iframe");},configzIndex:function(V,U,X){O.superclass.configzIndex.call(this,V,U,X);if(this.mask||this.cfg.getProperty("modal")===true){var W=A.getStyle(this.element,"zIndex");if(!W||isNaN(W)){W=0;}if(W===0){this.cfg.setProperty("zIndex",1);}else{this.stackMask();}}},buildWrapper:function(){var W=this.element.parentNode,U=this.element,V=document.createElement("div");V.className=O.CSS_PANEL_CONTAINER;V.id=U.id+"_c";if(W){W.insertBefore(V,U);}V.appendChild(U);this.element=V;this.innerElement=U;A.setStyle(this.innerElement,"visibility","inherit");},sizeUnderlay:function(){var V=this.underlay,U;if(V){U=this.element;V.style.width=U.offsetWidth+"px";V.style.height=U.offsetHeight+"px";}},registerDragDrop:function(){var V=this;if(this.header){if(!F.DD){return;}var U=(this.cfg.getProperty("dragonly")===true);this.dd=new F.DD(this.element.id,this.id,{dragOnly:U});if(!this.header.id){this.header.id=this.id+"_h";}this.dd.startDrag=function(){var X,Z,W,c,b,a;if(YAHOO.env.ua.ie==6){A.addClass(V.element,"drag");}if(V.cfg.getProperty("constraintoviewport")){var Y=H.VIEWPORT_OFFSET;X=V.element.offsetHeight;Z=V.element.offsetWidth;W=A.getViewportWidth();c=A.getViewportHeight();b=A.getDocumentScrollLeft();a=A.getDocumentScrollTop();if(X+Y<c){this.minY=a+Y;this.maxY=a+c-X-Y;}else{this.minY=a+Y;this.maxY=a+Y;}if(Z+Y<W){this.minX=b+Y;this.maxX=b+W-Z-Y;}else{this.minX=b+Y;this.maxX=b+Y;}this.constrainX=true;this.constrainY=true;}else{this.constrainX=false;this.constrainY=false;}V.dragEvent.fire("startDrag",arguments);};this.dd.onDrag=function(){V.syncPosition();V.cfg.refireEvent("iframe");if(this.platform=="mac"&&YAHOO.env.ua.gecko){this.showMacGeckoScrollbars();}V.dragEvent.fire("onDrag",arguments);};this.dd.endDrag=function(){if(YAHOO.env.ua.ie==6){A.removeClass(V.element,"drag");}V.dragEvent.fire("endDrag",arguments);V.moveEvent.fire(V.cfg.getProperty("xy"));};this.dd.setHandleElId(this.header.id);this.dd.addInvalidHandleType("INPUT");this.dd.addInvalidHandleType("SELECT");this.dd.addInvalidHandleType("TEXTAREA");}},buildMask:function(){var U=this.mask;if(!U){if(!G){G=document.createElement("div");G.className="mask";G.innerHTML=" ";}U=G.cloneNode(true);U.id=this.id+"_mask";document.body.insertBefore(U,document.body.firstChild);this.mask=U;if(YAHOO.env.ua.gecko&&this.platform=="mac"){A.addClass(this.mask,"block-scrollbars");}this.stackMask();}},hideMask:function(){if(this.cfg.getProperty("modal")&&this.mask){this.mask.style.display="none";A.removeClass(document.body,"masked");this.hideMaskEvent.fire();}},showMask:function(){if(this.cfg.getProperty("modal")&&this.mask){A.addClass(document.body,"masked");this.sizeMask();this.mask.style.display="block";this.showMaskEvent.fire();}},sizeMask:function(){if(this.mask){var V=this.mask,W=A.getViewportWidth(),U=A.getViewportHeight();if(V.offsetHeight>U){V.style.height=U+"px";}if(V.offsetWidth>W){V.style.width=W+"px";}V.style.height=A.getDocumentHeight()+"px";V.style.width=A.getDocumentWidth()+"px";}},stackMask:function(){if(this.mask){var U=A.getStyle(this.element,"zIndex");if(!YAHOO.lang.isUndefined(U)&&!isNaN(U)){A.setStyle(this.mask,"zIndex",U-1);}}},render:function(U){return O.superclass.render.call(this,U,this.innerElement);},_renderHeader:function(U){U=U||this.innerElement;O.superclass._renderHeader.call(this,U);},_renderBody:function(U){U=U||this.innerElement;O.superclass._renderBody.call(this,U);},_renderFooter:function(U){U=U||this.innerElement;O.superclass._renderFooter.call(this,U);},destroy:function(){H.windowResizeEvent.unsubscribe(this.sizeMask,this);this.removeMask();if(this.close){T.purgeElement(this.close);}O.superclass.destroy.call(this);},forceUnderlayRedraw:function(){var U=this.underlay;A.addClass(U,"yui-force-redraw");setTimeout(function(){A.removeClass(U,"yui-force-redraw");},0);},toString:function(){return"Panel "+this.id;}});}());(function(){YAHOO.widget.Dialog=function(J,I){YAHOO.widget.Dialog.superclass.constructor.call(this,J,I);};var B=YAHOO.util.Event,G=YAHOO.util.CustomEvent,E=YAHOO.util.Dom,A=YAHOO.widget.Dialog,F=YAHOO.lang,H={"BEFORE_SUBMIT":"beforeSubmit","SUBMIT":"submit","MANUAL_SUBMIT":"manualSubmit","ASYNC_SUBMIT":"asyncSubmit","FORM_SUBMIT":"formSubmit","CANCEL":"cancel"},C={"POST_METHOD":{key:"postmethod",value:"async"},"POST_DATA":{key:"postdata",value:null},"BUTTONS":{key:"buttons",value:"none",supercedes:["visible"]},"HIDEAFTERSUBMIT":{key:"hideaftersubmit",value:true}};A.CSS_DIALOG="yui-dialog";function D(){var L=this._aButtons,J,K,I;if(F.isArray(L)){J=L.length;if(J>0){I=J-1;do{K=L[I];if(YAHOO.widget.Button&&K instanceof YAHOO.widget.Button){K.destroy();}else{if(K.tagName.toUpperCase()=="BUTTON"){B.purgeElement(K);B.purgeElement(K,false);}}}while(I--);}}}YAHOO.extend(A,YAHOO.widget.Panel,{form:null,initDefaultConfig:function(){A.superclass.initDefaultConfig.call(this);this.callback={success:null,failure:null,argument:null};
 this.cfg.addProperty(C.POST_METHOD.key,{handler:this.configPostMethod,value:C.POST_METHOD.value,validator:function(I){if(I!="form"&&I!="async"&&I!="none"&&I!="manual"){return false;}else{return true;}}});this.cfg.addProperty(C.POST_DATA.key,{value:C.POST_DATA.value});this.cfg.addProperty(C.HIDEAFTERSUBMIT.key,{value:C.HIDEAFTERSUBMIT.value});this.cfg.addProperty(C.BUTTONS.key,{handler:this.configButtons,value:C.BUTTONS.value,supercedes:C.BUTTONS.supercedes});},initEvents:function(){A.superclass.initEvents.call(this);var I=G.LIST;this.beforeSubmitEvent=this.createEvent(H.BEFORE_SUBMIT);this.beforeSubmitEvent.signature=I;this.submitEvent=this.createEvent(H.SUBMIT);this.submitEvent.signature=I;this.manualSubmitEvent=this.createEvent(H.MANUAL_SUBMIT);this.manualSubmitEvent.signature=I;this.asyncSubmitEvent=this.createEvent(H.ASYNC_SUBMIT);this.asyncSubmitEvent.signature=I;this.formSubmitEvent=this.createEvent(H.FORM_SUBMIT);this.formSubmitEvent.signature=I;this.cancelEvent=this.createEvent(H.CANCEL);this.cancelEvent.signature=I;},init:function(J,I){A.superclass.init.call(this,J);this.beforeInitEvent.fire(A);E.addClass(this.element,A.CSS_DIALOG);this.cfg.setProperty("visible",false);if(I){this.cfg.applyConfig(I,true);}this.showEvent.subscribe(this.focusFirst,this,true);this.beforeHideEvent.subscribe(this.blurButtons,this,true);this.subscribe("changeBody",this.registerForm);this.initEvent.fire(A);},doSubmit:function(){var P=YAHOO.util.Connect,Q=this.form,K=false,N=false,R,M,L,I;switch(this.cfg.getProperty("postmethod")){case"async":R=Q.elements;M=R.length;if(M>0){L=M-1;do{if(R[L].type=="file"){K=true;break;}}while(L--);}if(K&&YAHOO.env.ua.ie&&this.isSecure){N=true;}I=this._getFormAttributes(Q);P.setForm(Q,K,N);var J=this.cfg.getProperty("postdata");var O=P.asyncRequest(I.method,I.action,this.callback,J);this.asyncSubmitEvent.fire(O);break;case"form":Q.submit();this.formSubmitEvent.fire();break;case"none":case"manual":this.manualSubmitEvent.fire();break;}},_getFormAttributes:function(K){var I={method:null,action:null};if(K){if(K.getAttributeNode){var J=K.getAttributeNode("action");var L=K.getAttributeNode("method");if(J){I.action=J.value;}if(L){I.method=L.value;}}else{I.action=K.getAttribute("action");I.method=K.getAttribute("method");}}I.method=(F.isString(I.method)?I.method:"POST").toUpperCase();I.action=F.isString(I.action)?I.action:"";return I;},registerForm:function(){var I=this.element.getElementsByTagName("form")[0];if(this.form){if(this.form==I&&E.isAncestor(this.element,this.form)){return;}else{B.purgeElement(this.form);this.form=null;}}if(!I){I=document.createElement("form");I.name="frm_"+this.id;this.body.appendChild(I);}if(I){this.form=I;B.on(I,"submit",this._submitHandler,this,true);}},_submitHandler:function(I){B.stopEvent(I);this.submit();this.form.blur();},setTabLoop:function(I,J){I=I||this.firstButton;J=this.lastButton||J;A.superclass.setTabLoop.call(this,I,J);},setFirstLastFocusable:function(){A.superclass.setFirstLastFocusable.call(this);var J,I,K,L=this.focusableElements;this.firstFormElement=null;this.lastFormElement=null;if(this.form&&L&&L.length>0){I=L.length;for(J=0;J<I;++J){K=L[J];if(this.form===K.form){this.firstFormElement=K;break;}}for(J=I-1;J>=0;--J){K=L[J];if(this.form===K.form){this.lastFormElement=K;break;}}}},configClose:function(J,I,K){A.superclass.configClose.apply(this,arguments);},_doClose:function(I){B.preventDefault(I);this.cancel();},configButtons:function(S,R,M){var N=YAHOO.widget.Button,U=R[0],K=this.innerElement,T,P,J,Q,O,I,L;D.call(this);this._aButtons=null;if(F.isArray(U)){O=document.createElement("span");O.className="button-group";Q=U.length;this._aButtons=[];this.defaultHtmlButton=null;for(L=0;L<Q;L++){T=U[L];if(N){J=new N({label:T.text});J.appendTo(O);P=J.get("element");if(T.isDefault){J.addClass("default");this.defaultHtmlButton=P;}if(F.isFunction(T.handler)){J.set("onclick",{fn:T.handler,obj:this,scope:this});}else{if(F.isObject(T.handler)&&F.isFunction(T.handler.fn)){J.set("onclick",{fn:T.handler.fn,obj:((!F.isUndefined(T.handler.obj))?T.handler.obj:this),scope:(T.handler.scope||this)});}}this._aButtons[this._aButtons.length]=J;}else{P=document.createElement("button");P.setAttribute("type","button");if(T.isDefault){P.className="default";this.defaultHtmlButton=P;}P.innerHTML=T.text;if(F.isFunction(T.handler)){B.on(P,"click",T.handler,this,true);}else{if(F.isObject(T.handler)&&F.isFunction(T.handler.fn)){B.on(P,"click",T.handler.fn,((!F.isUndefined(T.handler.obj))?T.handler.obj:this),(T.handler.scope||this));}}O.appendChild(P);this._aButtons[this._aButtons.length]=P;}T.htmlButton=P;if(L===0){this.firstButton=P;}if(L==(Q-1)){this.lastButton=P;}}this.setFooter(O);I=this.footer;if(E.inDocument(this.element)&&!E.isAncestor(K,I)){K.appendChild(I);}this.buttonSpan=O;}else{O=this.buttonSpan;I=this.footer;if(O&&I){I.removeChild(O);this.buttonSpan=null;this.firstButton=null;this.lastButton=null;this.defaultHtmlButton=null;}}this.changeContentEvent.fire();},getButtons:function(){return this._aButtons||null;},focusFirst:function(K,I,M){var J=this.firstFormElement;if(I&&I[1]){B.stopEvent(I[1]);}if(J){try{J.focus();}catch(L){}}else{if(this.defaultHtmlButton){this.focusDefaultButton();}else{this.focusFirstButton();}}},focusLast:function(K,I,M){var N=this.cfg.getProperty("buttons"),J=this.lastFormElement;if(I&&I[1]){B.stopEvent(I[1]);}if(N&&F.isArray(N)){this.focusLastButton();}else{if(J){try{J.focus();}catch(L){}}}},_getButton:function(J){var I=YAHOO.widget.Button;if(I&&J&&J.nodeName&&J.id){J=I.getButton(J.id)||J;}return J;},focusDefaultButton:function(){var I=this._getButton(this.defaultHtmlButton);if(I){try{I.focus();}catch(J){}}},blurButtons:function(){var N=this.cfg.getProperty("buttons"),K,M,J,I;if(N&&F.isArray(N)){K=N.length;if(K>0){I=(K-1);do{M=N[I];if(M){J=this._getButton(M.htmlButton);if(J){try{J.blur();}catch(L){}}}}while(I--);}}},focusFirstButton:function(){var L=this.cfg.getProperty("buttons"),K,I;if(L&&F.isArray(L)){K=L[0];if(K){I=this._getButton(K.htmlButton);
 if(I){try{I.focus();}catch(J){}}}}},focusLastButton:function(){var M=this.cfg.getProperty("buttons"),J,L,I;if(M&&F.isArray(M)){J=M.length;if(J>0){L=M[(J-1)];if(L){I=this._getButton(L.htmlButton);if(I){try{I.focus();}catch(K){}}}}}},configPostMethod:function(J,I,K){this.registerForm();},validate:function(){return true;},submit:function(){if(this.validate()){if(this.beforeSubmitEvent.fire()){this.doSubmit();this.submitEvent.fire();if(this.cfg.getProperty("hideaftersubmit")){this.hide();}return true;}else{return false;}}else{return false;}},cancel:function(){this.cancelEvent.fire();this.hide();},getData:function(){var Y=this.form,J,R,U,L,S,P,O,I,V,K,W,Z,N,a,M,X,T;function Q(c){var b=c.tagName.toUpperCase();return((b=="INPUT"||b=="TEXTAREA"||b=="SELECT")&&c.name==L);}if(Y){J=Y.elements;R=J.length;U={};for(X=0;X<R;X++){L=J[X].name;S=E.getElementsBy(Q,"*",Y);P=S.length;if(P>0){if(P==1){S=S[0];O=S.type;I=S.tagName.toUpperCase();switch(I){case"INPUT":if(O=="checkbox"){U[L]=S.checked;}else{if(O!="radio"){U[L]=S.value;}}break;case"TEXTAREA":U[L]=S.value;break;case"SELECT":V=S.options;K=V.length;W=[];for(T=0;T<K;T++){Z=V[T];if(Z.selected){M=Z.attributes.value;W[W.length]=(M&&M.specified)?Z.value:Z.text;}}U[L]=W;break;}}else{O=S[0].type;switch(O){case"radio":for(T=0;T<P;T++){N=S[T];if(N.checked){U[L]=N.value;break;}}break;case"checkbox":W=[];for(T=0;T<P;T++){a=S[T];if(a.checked){W[W.length]=a.value;}}U[L]=W;break;}}}}}return U;},destroy:function(){D.call(this);this._aButtons=null;var I=this.element.getElementsByTagName("form"),J;if(I.length>0){J=I[0];if(J){B.purgeElement(J);if(J.parentNode){J.parentNode.removeChild(J);}this.form=null;}}A.superclass.destroy.call(this);},toString:function(){return"Dialog "+this.id;}});}());(function(){YAHOO.widget.SimpleDialog=function(E,D){YAHOO.widget.SimpleDialog.superclass.constructor.call(this,E,D);};var C=YAHOO.util.Dom,B=YAHOO.widget.SimpleDialog,A={"ICON":{key:"icon",value:"none",suppressEvent:true},"TEXT":{key:"text",value:"",suppressEvent:true,supercedes:["icon"]}};B.ICON_BLOCK="blckicon";B.ICON_ALARM="alrticon";B.ICON_HELP="hlpicon";B.ICON_INFO="infoicon";B.ICON_WARN="warnicon";B.ICON_TIP="tipicon";B.ICON_CSS_CLASSNAME="yui-icon";B.CSS_SIMPLEDIALOG="yui-simple-dialog";YAHOO.extend(B,YAHOO.widget.Dialog,{initDefaultConfig:function(){B.superclass.initDefaultConfig.call(this);this.cfg.addProperty(A.ICON.key,{handler:this.configIcon,value:A.ICON.value,suppressEvent:A.ICON.suppressEvent});this.cfg.addProperty(A.TEXT.key,{handler:this.configText,value:A.TEXT.value,suppressEvent:A.TEXT.suppressEvent,supercedes:A.TEXT.supercedes});},init:function(E,D){B.superclass.init.call(this,E);this.beforeInitEvent.fire(B);C.addClass(this.element,B.CSS_SIMPLEDIALOG);this.cfg.queueProperty("postmethod","manual");if(D){this.cfg.applyConfig(D,true);}this.beforeRenderEvent.subscribe(function(){if(!this.body){this.setBody("");}},this,true);this.initEvent.fire(B);},registerForm:function(){B.superclass.registerForm.call(this);this.form.innerHTML+='<input type="hidden" name="'+this.id+'" value=""/>';},configIcon:function(K,J,H){var D=J[0],E=this.body,F=B.ICON_CSS_CLASSNAME,L,I,G;if(D&&D!="none"){L=C.getElementsByClassName(F,"*",E);if(L.length===1){I=L[0];G=I.parentNode;if(G){G.removeChild(I);I=null;}}if(D.indexOf(".")==-1){I=document.createElement("span");I.className=(F+" "+D);I.innerHTML=" ";}else{I=document.createElement("img");I.src=(this.imageRoot+D);I.className=F;}if(I){E.insertBefore(I,E.firstChild);}}},configText:function(E,D,F){var G=D[0];if(G){this.setBody(G);this.cfg.refireEvent("icon");}},toString:function(){return"SimpleDialog "+this.id;}});}());(function(){YAHOO.widget.ContainerEffect=function(E,H,G,D,F){if(!F){F=YAHOO.util.Anim;}this.overlay=E;this.attrIn=H;this.attrOut=G;this.targetElement=D||E.element;this.animClass=F;};var B=YAHOO.util.Dom,C=YAHOO.util.CustomEvent,A=YAHOO.widget.ContainerEffect;A.FADE=function(D,F){var G=YAHOO.util.Easing,I={attributes:{opacity:{from:0,to:1}},duration:F,method:G.easeIn},E={attributes:{opacity:{to:0}},duration:F,method:G.easeOut},H=new A(D,I,E,D.element);H.handleUnderlayStart=function(){var K=this.overlay.underlay;if(K&&YAHOO.env.ua.ie){var J=(K.filters&&K.filters.length>0);if(J){B.addClass(D.element,"yui-effect-fade");}}};H.handleUnderlayComplete=function(){var J=this.overlay.underlay;if(J&&YAHOO.env.ua.ie){B.removeClass(D.element,"yui-effect-fade");}};H.handleStartAnimateIn=function(K,J,L){B.addClass(L.overlay.element,"hide-select");if(!L.overlay.underlay){L.overlay.cfg.refireEvent("underlay");}L.handleUnderlayStart();L.overlay._setDomVisibility(true);B.setStyle(L.overlay.element,"opacity",0);};H.handleCompleteAnimateIn=function(K,J,L){B.removeClass(L.overlay.element,"hide-select");if(L.overlay.element.style.filter){L.overlay.element.style.filter=null;}L.handleUnderlayComplete();L.overlay.cfg.refireEvent("iframe");L.animateInCompleteEvent.fire();};H.handleStartAnimateOut=function(K,J,L){B.addClass(L.overlay.element,"hide-select");L.handleUnderlayStart();};H.handleCompleteAnimateOut=function(K,J,L){B.removeClass(L.overlay.element,"hide-select");if(L.overlay.element.style.filter){L.overlay.element.style.filter=null;}L.overlay._setDomVisibility(false);B.setStyle(L.overlay.element,"opacity",1);L.handleUnderlayComplete();L.overlay.cfg.refireEvent("iframe");L.animateOutCompleteEvent.fire();};H.init();return H;};A.SLIDE=function(F,D){var I=YAHOO.util.Easing,L=F.cfg.getProperty("x")||B.getX(F.element),K=F.cfg.getProperty("y")||B.getY(F.element),M=B.getClientWidth(),H=F.element.offsetWidth,J={attributes:{points:{to:[L,K]}},duration:D,method:I.easeIn},E={attributes:{points:{to:[(M+25),K]}},duration:D,method:I.easeOut},G=new A(F,J,E,F.element,YAHOO.util.Motion);G.handleStartAnimateIn=function(O,N,P){P.overlay.element.style.left=((-25)-H)+"px";P.overlay.element.style.top=K+"px";};G.handleTweenAnimateIn=function(Q,P,R){var S=B.getXY(R.overlay.element),O=S[0],N=S[1];if(B.getStyle(R.overlay.element,"visibility")=="hidden"&&O<L){R.overlay._setDomVisibility(true);
-}R.overlay.cfg.setProperty("xy",[O,N],true);R.overlay.cfg.refireEvent("iframe");};G.handleCompleteAnimateIn=function(O,N,P){P.overlay.cfg.setProperty("xy",[L,K],true);P.startX=L;P.startY=K;P.overlay.cfg.refireEvent("iframe");P.animateInCompleteEvent.fire();};G.handleStartAnimateOut=function(O,N,R){var P=B.getViewportWidth(),S=B.getXY(R.overlay.element),Q=S[1];R.animOut.attributes.points.to=[(P+25),Q];};G.handleTweenAnimateOut=function(P,O,Q){var S=B.getXY(Q.overlay.element),N=S[0],R=S[1];Q.overlay.cfg.setProperty("xy",[N,R],true);Q.overlay.cfg.refireEvent("iframe");};G.handleCompleteAnimateOut=function(O,N,P){P.overlay._setDomVisibility(false);P.overlay.cfg.setProperty("xy",[L,K]);P.animateOutCompleteEvent.fire();};G.init();return G;};A.prototype={init:function(){this.beforeAnimateInEvent=this.createEvent("beforeAnimateIn");this.beforeAnimateInEvent.signature=C.LIST;this.beforeAnimateOutEvent=this.createEvent("beforeAnimateOut");this.beforeAnimateOutEvent.signature=C.LIST;this.animateInCompleteEvent=this.createEvent("animateInComplete");this.animateInCompleteEvent.signature=C.LIST;this.animateOutCompleteEvent=this.createEvent("animateOutComplete");this.animateOutCompleteEvent.signature=C.LIST;this.animIn=new this.animClass(this.targetElement,this.attrIn.attributes,this.attrIn.duration,this.attrIn.method);this.animIn.onStart.subscribe(this.handleStartAnimateIn,this);this.animIn.onTween.subscribe(this.handleTweenAnimateIn,this);this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn,this);this.animOut=new this.animClass(this.targetElement,this.attrOut.attributes,this.attrOut.duration,this.attrOut.method);this.animOut.onStart.subscribe(this.handleStartAnimateOut,this);this.animOut.onTween.subscribe(this.handleTweenAnimateOut,this);this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut,this);},animateIn:function(){this.beforeAnimateInEvent.fire();this.animIn.animate();},animateOut:function(){this.beforeAnimateOutEvent.fire();this.animOut.animate();},handleStartAnimateIn:function(E,D,F){},handleTweenAnimateIn:function(E,D,F){},handleCompleteAnimateIn:function(E,D,F){},handleStartAnimateOut:function(E,D,F){},handleTweenAnimateOut:function(E,D,F){},handleCompleteAnimateOut:function(E,D,F){},toString:function(){var D="ContainerEffect";if(this.overlay){D+=" ["+this.overlay.toString()+"]";}return D;}};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);})();YAHOO.register("container",YAHOO.widget.Module,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}R.overlay.cfg.setProperty("xy",[O,N],true);R.overlay.cfg.refireEvent("iframe");};G.handleCompleteAnimateIn=function(O,N,P){P.overlay.cfg.setProperty("xy",[L,K],true);P.startX=L;P.startY=K;P.overlay.cfg.refireEvent("iframe");P.animateInCompleteEvent.fire();};G.handleStartAnimateOut=function(O,N,R){var P=B.getViewportWidth(),S=B.getXY(R.overlay.element),Q=S[1];R.animOut.attributes.points.to=[(P+25),Q];};G.handleTweenAnimateOut=function(P,O,Q){var S=B.getXY(Q.overlay.element),N=S[0],R=S[1];Q.overlay.cfg.setProperty("xy",[N,R],true);Q.overlay.cfg.refireEvent("iframe");};G.handleCompleteAnimateOut=function(O,N,P){P.overlay._setDomVisibility(false);P.overlay.cfg.setProperty("xy",[L,K]);P.animateOutCompleteEvent.fire();};G.init();return G;};A.prototype={init:function(){this.beforeAnimateInEvent=this.createEvent("beforeAnimateIn");this.beforeAnimateInEvent.signature=C.LIST;this.beforeAnimateOutEvent=this.createEvent("beforeAnimateOut");this.beforeAnimateOutEvent.signature=C.LIST;this.animateInCompleteEvent=this.createEvent("animateInComplete");this.animateInCompleteEvent.signature=C.LIST;this.animateOutCompleteEvent=this.createEvent("animateOutComplete");this.animateOutCompleteEvent.signature=C.LIST;this.animIn=new this.animClass(this.targetElement,this.attrIn.attributes,this.attrIn.duration,this.attrIn.method);this.animIn.onStart.subscribe(this.handleStartAnimateIn,this);this.animIn.onTween.subscribe(this.handleTweenAnimateIn,this);this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn,this);this.animOut=new this.animClass(this.targetElement,this.attrOut.attributes,this.attrOut.duration,this.attrOut.method);this.animOut.onStart.subscribe(this.handleStartAnimateOut,this);this.animOut.onTween.subscribe(this.handleTweenAnimateOut,this);this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut,this);},animateIn:function(){this.beforeAnimateInEvent.fire();this.animIn.animate();},animateOut:function(){this.beforeAnimateOutEvent.fire();this.animOut.animate();},handleStartAnimateIn:function(E,D,F){},handleTweenAnimateIn:function(E,D,F){},handleCompleteAnimateIn:function(E,D,F){},handleStartAnimateOut:function(E,D,F){},handleTweenAnimateOut:function(E,D,F){},handleCompleteAnimateOut:function(E,D,F){},toString:function(){var D="ContainerEffect";if(this.overlay){D+=" ["+this.overlay.toString()+"]";}return D;}};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);})();YAHOO.register("container",YAHOO.widget.Module,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/container/container.js b/build/container/container.js
index fa937bc..5805348 100644
--- a/build/container/container.js
+++ b/build/container/container.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 
@@ -9049,4 +9049,4 @@ version: 2.8.1
     YAHOO.lang.augmentProto(ContainerEffect, YAHOO.util.EventProvider);
 
 })();
-YAHOO.register("container", YAHOO.widget.Module, {version: "2.8.1", build: "19"});
+YAHOO.register("container", YAHOO.widget.Module, {version: "2.8.2r1", build: "7"});
diff --git a/build/container/container_core-debug.js b/build/container/container_core-debug.js
index a89da67..4287e65 100644
--- a/build/container/container_core-debug.js
+++ b/build/container/container_core-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 
@@ -5133,4 +5133,4 @@ version: 2.8.1
     YAHOO.lang.augmentProto(ContainerEffect, YAHOO.util.EventProvider);
 
 })();
-YAHOO.register("containercore", YAHOO.widget.Module, {version: "2.8.1", build: "19"});
+YAHOO.register("containercore", YAHOO.widget.Module, {version: "2.8.2r1", build: "7"});
diff --git a/build/container/container_core-min.js b/build/container/container_core-min.js
index c3626e5..e4dc4ae 100644
--- a/build/container/container_core-min.js
+++ b/build/container/container_core-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){YAHOO.util.Config=function(D){if(D){this.init(D);}};var B=YAHOO.lang,C=YAHOO.util.CustomEvent,A=YAHOO.util.Config;A.CONFIG_CHANGED_EVENT="configChanged";A.BOOLEAN_TYPE="boolean";A.prototype={owner:null,queueInProgress:false,config:null,initialConfig:null,eventQueue:null,configChangedEvent:null,init:function(D){this.owner=D;this.configChangedEvent=this.createEvent(A.CONFIG_CHANGED_EVENT);this.configChangedEvent.signature=C.LIST;this.queueInProgress=false;this.config={};this.initialConfig={};this.eventQueue=[];},checkBoolean:function(D){return(typeof D==A.BOOLEAN_TYPE);},checkNumber:function(D){return(!isNaN(D));},fireEvent:function(D,F){var E=this.config[D];if(E&&E.event){E.event.fire(F);}},addProperty:function(E,D){E=E.toLowerCase();this.config[E]=D;D.event=this.createEvent(E,{scope:this.owner});D.event.signature=C.LIST;D.key=E;if(D.handler){D.event.subscribe(D.handler,this.owner);}this.setProperty(E,D.value,true);if(!D.suppressEvent){this.queueProperty(E,D.value);}},getConfig:function(){var D={},F=this.config,G,E;for(G in F){if(B.hasOwnProperty(F,G)){E=F[G];if(E&&E.event){D[G]=E.value;}}}return D;},getProperty:function(D){var E=this.config[D.toLowerCase()];if(E&&E.event){return E.value;}else{return undefined;}},resetProperty:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event){if(this.initialConfig[D]&&!B.isUndefined(this.initialConfig[D])){this.setProperty(D,this.initialConfig[D]);return true;}}else{return false;}},setProperty:function(E,G,D){var F;E=E.toLowerCase();if(this.queueInProgress&&!D){this.queueProperty(E,G);return true;}else{F=this.config[E];if(F&&F.event){if(F.validator&&!F.validator(G)){return false;}else{F.value=G;if(!D){this.fireEvent(E,G);this.configChangedEvent.fire([E,G]);}return true;}}else{return false;}}},queueProperty:function(S,P){S=S.toLowerCase();var R=this.config[S],K=false,J,G,H,I,O,Q,F,M,N,D,L,T,E;if(R&&R.event){if(!B.isUndefined(P)&&R.validator&&!R.validator(P)){return false;}else{if(!B.isUndefined(P)){R.value=P;}else{P=R.value;}K=false;J=this.eventQueue.length;for(L=0;L<J;L++){G=this.eventQueue[L];if(G){H=G[0];I=G[1];if(H==S){this.eventQueue[L]=null;this.eventQueue.push([S,(!B.isUndefined(P)?P:I)]);K=true;break;}}}if(!K&&!B.isUndefined(P)){this.eventQueue.push([S,P]);}}if(R.supercedes){O=R.supercedes.length;for(T=0;T<O;T++){Q=R.supercedes[T];F=this.eventQueue.length;for(E=0;E<F;E++){M=this.eventQueue[E];if(M){N=M[0];D=M[1];if(N==Q.toLowerCase()){this.eventQueue.push([N,D]);this.eventQueue[E]=null;break;}}}}}return true;}else{return false;}},refireEvent:function(D){D=D.toLowerCase();var E=this.config[D];if(E&&E.event&&!B.isUndefined(E.value)){if(this.queueInProgress){this.queueProperty(D);}else{this.fireEvent(D,E.value);}}},applyConfig:function(D,G){var F,E;if(G){E={};for(F in D){if(B.hasOwnProperty(D,F)){E[F.toLowerCase()]=D[F];}}this.initialConfig=E;}for(F in D){if(B.hasOwnProperty(D,F)){this.queueProperty(F,D[F]);}}},refresh:function(){var D;for(D in this.config){if(B.hasOwnProperty(this.config,D)){this.refireEvent(D);}}},fireQueue:function(){var E,H,D,G,F;this.queueInProgress=true;for(E=0;E<this.eventQueue.length;E++){H=this.eventQueue[E];if(H){D=H[0];G=H[1];F=this.config[D];F.value=G;this.eventQueue[E]=null;this.fireEvent(D,G);}}this.queueInProgress=false;this.eventQueue=[];},subscribeToConfigEvent:function(D,E,G,H){var F=this.config[D.toLowerCase()];if(F&&F.event){if(!A.alreadySubscribed(F.event,E,G)){F.event.subscribe(E,G,H);}return true;}else{return false;}},unsubscribeFromConfigEvent:function(D,E,G){var F=this.config[D.toLowerCase()];if(F&&F.event){return F.event.unsubscribe(E,G);}else{return false;}},toString:function(){var D="Config";if(this.owner){D+=" ["+this.owner.toString()+"]";}return D;},outputEventQueue:function(){var D="",G,E,F=this.eventQueue.length;for(E=0;E<F;E++){G=this.eventQueue[E];if(G){D+=G[0]+"="+G[1]+", ";}}return D;},destroy:function(){var E=this.config,D,F;for(D in E){if(B.hasOwnProperty(E,D)){F=E[D];F.event.unsubscribeAll();F.event=null;}}this.configChangedEvent.unsubscribeAll();this.configChangedEvent=null;this.owner=null;this.config=null;this.initialConfig=null;this.eventQueue=null;}};A.alreadySubscribed=function(E,H,I){var F=E.subscribers.length,D,G;if(F>0){G=F-1;do{D=E.subscribers[G];if(D&&D.obj==I&&D.fn==H){return true;}}while(G--);}return false;};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);}());(function(){YAHOO.widget.Module=function(R,Q){if(R){this.init(R,Q);}else{}};var F=YAHOO.util.Dom,D=YAHOO.util.Config,N=YAHOO.util.Event,M=YAHOO.util.CustomEvent,G=YAHOO.widget.Module,I=YAHOO.env.ua,H,P,O,E,A={"BEFORE_INIT":"beforeInit","INIT":"init","APPEND":"append","BEFORE_RENDER":"beforeRender","RENDER":"render","CHANGE_HEADER":"changeHeader","CHANGE_BODY":"changeBody","CHANGE_FOOTER":"changeFooter","CHANGE_CONTENT":"changeContent","DESTROY":"destroy","BEFORE_SHOW":"beforeShow","SHOW":"show","BEFORE_HIDE":"beforeHide","HIDE":"hide"},J={"VISIBLE":{key:"visible",value:true,validator:YAHOO.lang.isBoolean},"EFFECT":{key:"effect",suppressEvent:true,supercedes:["visible"]},"MONITOR_RESIZE":{key:"monitorresize",value:true},"APPEND_TO_DOCUMENT_BODY":{key:"appendtodocumentbody",value:false}};G.IMG_ROOT=null;G.IMG_ROOT_SSL=null;G.CSS_MODULE="yui-module";G.CSS_HEADER="hd";G.CSS_BODY="bd";G.CSS_FOOTER="ft";G.RESIZE_MONITOR_SECURE_URL="javascript:false;";G.RESIZE_MONITOR_BUFFER=1;G.textResizeEvent=new M("textResize");G.forceDocumentRedraw=function(){var Q=document.documentElement;if(Q){Q.className+=" ";Q.className=YAHOO.lang.trim(Q.className);}};function L(){if(!H){H=document.createElement("div");H.innerHTML=('<div class="'+G.CSS_HEADER+'"></div>'+'<div class="'+G.CSS_BODY+'"></div><div class="'+G.CSS_FOOTER+'"></div>');P=H.firstChild;O=P.nextSibling;E=O.nextSibling;}return H;}function K(){if(!P){L();}return(P.cloneNode(false));}function B(){if(!O){L();}return(O.cloneNode(false));}function C(){if(!E){L();}return(E.cloneNode(false));}G.prototype={constructor:G,element:null,header:null,body:null,footer:null,id:null,imageRoot:G.IMG_ROOT,initEvents:function(){var Q=M.LIST;
 this.beforeInitEvent=this.createEvent(A.BEFORE_INIT);this.beforeInitEvent.signature=Q;this.initEvent=this.createEvent(A.INIT);this.initEvent.signature=Q;this.appendEvent=this.createEvent(A.APPEND);this.appendEvent.signature=Q;this.beforeRenderEvent=this.createEvent(A.BEFORE_RENDER);this.beforeRenderEvent.signature=Q;this.renderEvent=this.createEvent(A.RENDER);this.renderEvent.signature=Q;this.changeHeaderEvent=this.createEvent(A.CHANGE_HEADER);this.changeHeaderEvent.signature=Q;this.changeBodyEvent=this.createEvent(A.CHANGE_BODY);this.changeBodyEvent.signature=Q;this.changeFooterEvent=this.createEvent(A.CHANGE_FOOTER);this.changeFooterEvent.signature=Q;this.changeContentEvent=this.createEvent(A.CHANGE_CONTENT);this.changeContentEvent.signature=Q;this.destroyEvent=this.createEvent(A.DESTROY);this.destroyEvent.signature=Q;this.beforeShowEvent=this.createEvent(A.BEFORE_SHOW);this.beforeShowEvent.signature=Q;this.showEvent=this.createEvent(A.SHOW);this.showEvent.signature=Q;this.beforeHideEvent=this.createEvent(A.BEFORE_HIDE);this.beforeHideEvent.signature=Q;this.hideEvent=this.createEvent(A.HIDE);this.hideEvent.signature=Q;},platform:function(){var Q=navigator.userAgent.toLowerCase();if(Q.indexOf("windows")!=-1||Q.indexOf("win32")!=-1){return"windows";}else{if(Q.indexOf("macintosh")!=-1){return"mac";}else{return false;}}}(),browser:function(){var Q=navigator.userAgent.toLowerCase();if(Q.indexOf("opera")!=-1){return"opera";}else{if(Q.indexOf("msie 7")!=-1){return"ie7";}else{if(Q.indexOf("msie")!=-1){return"ie";}else{if(Q.indexOf("safari")!=-1){return"safari";}else{if(Q.indexOf("gecko")!=-1){return"gecko";}else{return false;}}}}}}(),isSecure:function(){if(window.location.href.toLowerCase().indexOf("https")===0){return true;}else{return false;}}(),initDefaultConfig:function(){this.cfg.addProperty(J.VISIBLE.key,{handler:this.configVisible,value:J.VISIBLE.value,validator:J.VISIBLE.validator});this.cfg.addProperty(J.EFFECT.key,{suppressEvent:J.EFFECT.suppressEvent,supercedes:J.EFFECT.supercedes});this.cfg.addProperty(J.MONITOR_RESIZE.key,{handler:this.configMonitorResize,value:J.MONITOR_RESIZE.value});this.cfg.addProperty(J.APPEND_TO_DOCUMENT_BODY.key,{value:J.APPEND_TO_DOCUMENT_BODY.value});},init:function(V,U){var S,W;this.initEvents();this.beforeInitEvent.fire(G);this.cfg=new D(this);if(this.isSecure){this.imageRoot=G.IMG_ROOT_SSL;}if(typeof V=="string"){S=V;V=document.getElementById(V);if(!V){V=(L()).cloneNode(false);V.id=S;}}this.id=F.generateId(V);this.element=V;W=this.element.firstChild;if(W){var R=false,Q=false,T=false;do{if(1==W.nodeType){if(!R&&F.hasClass(W,G.CSS_HEADER)){this.header=W;R=true;}else{if(!Q&&F.hasClass(W,G.CSS_BODY)){this.body=W;Q=true;}else{if(!T&&F.hasClass(W,G.CSS_FOOTER)){this.footer=W;T=true;}}}}}while((W=W.nextSibling));}this.initDefaultConfig();F.addClass(this.element,G.CSS_MODULE);if(U){this.cfg.applyConfig(U,true);}if(!D.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);}this.initEvent.fire(G);},initResizeMonitor:function(){var R=(I.gecko&&this.platform=="windows");if(R){var Q=this;setTimeout(function(){Q._initResizeMonitor();},0);}else{this._initResizeMonitor();}},_initResizeMonitor:function(){var Q,S,U;function W(){G.textResizeEvent.fire();}if(!I.opera){S=F.get("_yuiResizeMonitor");var V=this._supportsCWResize();if(!S){S=document.createElement("iframe");if(this.isSecure&&G.RESIZE_MONITOR_SECURE_URL&&I.ie){S.src=G.RESIZE_MONITOR_SECURE_URL;}if(!V){U=["<html><head><script ",'type="text/javascript">',"window.onresize=function(){window.parent.","YAHOO.widget.Module.textResizeEvent.","fire();};<","/script></head>","<body></body></html>"].join("");S.src="data:text/html;charset=utf-8,"+encodeURIComponent(U);}S.id="_yuiResizeMonitor";S.title="Text Resize Monitor";S.style.position="absolute";S.style.visibility="hidden";var R=document.body,T=R.firstChild;if(T){R.insertBefore(S,T);}else{R.appendChild(S);}S.style.backgroundColor="transparent";S.style.borderWidth="0";S.style.width="2em";S.style.height="2em";S.style.left="0";S.style.top=(-1*(S.offsetHeight+G.RESIZE_MONITOR_BUFFER))+"px";S.style.visibility="visible";if(I.webkit){Q=S.contentWindow.document;Q.open();Q.close();}}if(S&&S.contentWindow){G.textResizeEvent.subscribe(this.onDomResize,this,true);if(!G.textResizeInitialized){if(V){if(!N.on(S.contentWindow,"resize",W)){N.on(S,"resize",W);}}G.textResizeInitialized=true;}this.resizeMonitor=S;}}},_supportsCWResize:function(){var Q=true;if(I.gecko&&I.gecko<=1.8){Q=false;}return Q;},onDomResize:function(S,R){var Q=-1*(this.resizeMonitor.offsetHeight+G.RESIZE_MONITOR_BUFFER);this.resizeMonitor.style.top=Q+"px";this.resizeMonitor.style.left="0";},setHeader:function(R){var Q=this.header||(this.header=K());if(R.nodeName){Q.innerHTML="";Q.appendChild(R);}else{Q.innerHTML=R;}if(this._rendered){this._renderHeader();}this.changeHeaderEvent.fire(R);this.changeContentEvent.fire();},appendToHeader:function(R){var Q=this.header||(this.header=K());Q.appendChild(R);this.changeHeaderEvent.fire(R);this.changeContentEvent.fire();},setBody:function(R){var Q=this.body||(this.body=B());if(R.nodeName){Q.innerHTML="";Q.appendChild(R);}else{Q.innerHTML=R;}if(this._rendered){this._renderBody();}this.changeBodyEvent.fire(R);this.changeContentEvent.fire();},appendToBody:function(R){var Q=this.body||(this.body=B());Q.appendChild(R);this.changeBodyEvent.fire(R);this.changeContentEvent.fire();},setFooter:function(R){var Q=this.footer||(this.footer=C());if(R.nodeName){Q.innerHTML="";Q.appendChild(R);}else{Q.innerHTML=R;}if(this._rendered){this._renderFooter();}this.changeFooterEvent.fire(R);this.changeContentEvent.fire();},appendToFooter:function(R){var Q=this.footer||(this.footer=C());Q.appendChild(R);this.changeFooterEvent.fire(R);this.changeContentEvent.fire();},render:function(S,Q){var T=this;function R(U){if(typeof U=="string"){U=document.getElementById(U);}if(U){T._addToParent(U,T.element);T.appendEvent.fire();}}this.beforeRenderEvent.fire();
@@ -11,4 +11,4 @@ O.addProperty(L.HEIGHT.key,{handler:this.configHeight,suppressEvent:L.HEIGHT.sup
 O.style.height=(Q.offsetHeight+P+"px");R=this.cfg.getProperty("xy");if(!I.isArray(R)||(isNaN(R[0])||isNaN(R[1]))){this.syncPosition();R=this.cfg.getProperty("xy");}F.setXY(O,[(R[0]-S),(R[1]-S)]);}},stackIframe:function(){if(this.iframe){var O=F.getStyle(this.element,"zIndex");if(!YAHOO.lang.isUndefined(O)&&!isNaN(O)){F.setStyle(this.iframe,"zIndex",(O-1));}}},configIframe:function(R,Q,S){var O=Q[0];function T(){var V=this.iframe,W=this.element,X;if(!V){if(!J){J=document.createElement("iframe");if(this.isSecure){J.src=B.IFRAME_SRC;}if(K.ie){J.style.filter="alpha(opacity=0)";J.frameBorder=0;}else{J.style.opacity="0";}J.style.position="absolute";J.style.border="none";J.style.margin="0";J.style.padding="0";J.style.display="none";J.tabIndex=-1;J.className=B.CSS_IFRAME;}V=J.cloneNode(false);V.id=this.id+"_f";X=W.parentNode;var U=X||document.body;this._addToParent(U,V);this.iframe=V;}this.showIframe();this.syncIframe();this.stackIframe();if(!this._hasIframeEventListeners){this.showEvent.subscribe(this.showIframe);this.hideEvent.subscribe(this.hideIframe);this.changeContentEvent.subscribe(this.syncIframe);this._hasIframeEventListeners=true;}}function P(){T.call(this);this.beforeShowEvent.unsubscribe(P);this._iframeDeferred=false;}if(O){if(this.cfg.getProperty("visible")){T.call(this);}else{if(!this._iframeDeferred){this.beforeShowEvent.subscribe(P);this._iframeDeferred=true;}}}else{this.hideIframe();if(this._hasIframeEventListeners){this.showEvent.unsubscribe(this.showIframe);this.hideEvent.unsubscribe(this.hideIframe);this.changeContentEvent.unsubscribe(this.syncIframe);this._hasIframeEventListeners=false;}}},_primeXYFromDOM:function(){if(YAHOO.lang.isUndefined(this.cfg.getProperty("xy"))){this.syncPosition();this.cfg.refireEvent("xy");this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);}},configConstrainToViewport:function(P,O,Q){var R=O[0];if(R){if(!D.alreadySubscribed(this.beforeMoveEvent,this.enforceConstraints,this)){this.beforeMoveEvent.subscribe(this.enforceConstraints,this,true);}if(!D.alreadySubscribed(this.beforeShowEvent,this._primeXYFromDOM)){this.beforeShowEvent.subscribe(this._primeXYFromDOM);}}else{this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);this.beforeMoveEvent.unsubscribe(this.enforceConstraints,this);}},configContext:function(U,T,Q){var X=T[0],R,O,V,S,P,W=this.CONTEXT_TRIGGERS;if(X){R=X[0];O=X[1];V=X[2];S=X[3];P=X[4];if(W&&W.length>0){S=(S||[]).concat(W);}if(R){if(typeof R=="string"){this.cfg.setProperty("context",[document.getElementById(R),O,V,S,P],true);}if(O&&V){this.align(O,V,P);}if(this._contextTriggers){this._processTriggers(this._contextTriggers,E,this._alignOnTrigger);}if(S){this._processTriggers(S,H,this._alignOnTrigger);this._contextTriggers=S;}}}},_alignOnTrigger:function(P,O){this.align();},_findTriggerCE:function(O){var P=null;if(O instanceof M){P=O;}else{if(B._TRIGGER_MAP[O]){P=B._TRIGGER_MAP[O];}}return P;},_processTriggers:function(S,U,R){var Q,T;for(var P=0,O=S.length;P<O;++P){Q=S[P];T=this._findTriggerCE(Q);if(T){T[U](R,this,true);}else{this[U](Q,R);}}},align:function(P,W,S){var V=this.cfg.getProperty("context"),T=this,O,Q,U;function R(Z,a){var Y=null,X=null;switch(P){case B.TOP_LEFT:Y=a;X=Z;break;case B.TOP_RIGHT:Y=a-Q.offsetWidth;X=Z;break;case B.BOTTOM_LEFT:Y=a;X=Z-Q.offsetHeight;break;case B.BOTTOM_RIGHT:Y=a-Q.offsetWidth;X=Z-Q.offsetHeight;break;}if(Y!==null&&X!==null){if(S){Y+=S[0];X+=S[1];}T.moveTo(Y,X);}}if(V){O=V[0];Q=this.element;T=this;if(!P){P=V[1];}if(!W){W=V[2];}if(!S&&V[4]){S=V[4];}if(Q&&O){U=F.getRegion(O);switch(W){case B.TOP_LEFT:R(U.top,U.left);break;case B.TOP_RIGHT:R(U.top,U.right);break;case B.BOTTOM_LEFT:R(U.bottom,U.left);break;case B.BOTTOM_RIGHT:R(U.bottom,U.right);break;}}}},enforceConstraints:function(P,O,Q){var S=O[0];var R=this.getConstrainedXY(S[0],S[1]);this.cfg.setProperty("x",R[0],true);this.cfg.setProperty("y",R[1],true);this.cfg.setProperty("xy",R,true);},_getConstrainedPos:function(X,P){var T=this.element,R=B.VIEWPORT_OFFSET,Z=(X=="x"),Y=(Z)?T.offsetWidth:T.offsetHeight,S=(Z)?F.getViewportWidth():F.getViewportHeight(),c=(Z)?F.getDocumentScrollLeft():F.getDocumentScrollTop(),b=(Z)?B.PREVENT_OVERLAP_X:B.PREVENT_OVERLAP_Y,O=this.cfg.getProperty("context"),U=(Y+R<S),W=this.cfg.getProperty("preventcontextoverlap")&&O&&b[(O[1]+O[2])],V=c+R,a=c+S-Y-R,Q=P;if(P<V||P>a){if(W){Q=this._preventOverlap(X,O[0],Y,S,c);}else{if(U){if(P<V){Q=V;}else{if(P>a){Q=a;}}}else{Q=V;}}}return Q;},_preventOverlap:function(X,W,Y,U,b){var Z=(X=="x"),T=B.VIEWPORT_OFFSET,S=this,Q=((Z)?F.getX(W):F.getY(W))-b,O=(Z)?W.offsetWidth:W.offsetHeight,P=Q-T,R=(U-(Q+O))-T,c=false,V=function(){var d;if((S.cfg.getProperty(X)-b)>Q){d=(Q-Y);}else{d=(Q+O);}S.cfg.setProperty(X,(d+b),true);return d;},a=function(){var e=((S.cfg.getProperty(X)-b)>Q)?R:P,d;if(Y>e){if(c){V();}else{V();c=true;d=a();}}return d;};a();return this.cfg.getProperty(X);},getConstrainedX:function(O){return this._getConstrainedPos("x",O);},getConstrainedY:function(O){return this._getConstrainedPos("y",O);},getConstrainedXY:function(O,P){return[this.getConstrainedX(O),this.getConstrainedY(P)];},center:function(){var R=B.VIEWPORT_OFFSET,S=this.element.offsetWidth,Q=this.element.offsetHeight,P=F.getViewportWidth(),T=F.getViewportHeight(),O,U;if(S<P){O=(P/2)-(S/2)+F.getDocumentScrollLeft();}else{O=R+F.getDocumentScrollLeft();}if(Q<T){U=(T/2)-(Q/2)+F.getDocumentScrollTop();}else{U=R+F.getDocumentScrollTop();}this.cfg.setProperty("xy",[parseInt(O,10),parseInt(U,10)]);this.cfg.refireEvent("iframe");if(K.webkit){this.forceContainerRedraw();}},syncPosition:function(){var O=F.getXY(this.element);this.cfg.setProperty("x",O[0],true);this.cfg.setProperty("y",O[1],true);this.cfg.setProperty("xy",O,true);},onDomResize:function(Q,P){var O=this;B.superclass.onDomResize.call(this,Q,P);setTimeout(function(){O.syncPosition();O.cfg.refireEvent("iframe");O.cfg.refireEvent("context");},0);},_getComputedHeight:(function(){if(document.defaultView&&document.defaultView.getComputedStyle){return function(P){var O=null;
 if(P.ownerDocument&&P.ownerDocument.defaultView){var Q=P.ownerDocument.defaultView.getComputedStyle(P,"");if(Q){O=parseInt(Q.height,10);}}return(I.isNumber(O))?O:null;};}else{return function(P){var O=null;if(P.style.pixelHeight){O=P.style.pixelHeight;}return(I.isNumber(O))?O:null;};}})(),_validateAutoFillHeight:function(O){return(!O)||(I.isString(O)&&B.STD_MOD_RE.test(O));},_autoFillOnHeightChange:function(R,P,Q){var O=this.cfg.getProperty("height");if((O&&O!=="auto")||(O===0)){this.fillHeight(Q);}},_getPreciseHeight:function(P){var O=P.offsetHeight;if(P.getBoundingClientRect){var Q=P.getBoundingClientRect();O=Q.bottom-Q.top;}return O;},fillHeight:function(R){if(R){var P=this.innerElement||this.element,O=[this.header,this.body,this.footer],V,W=0,X=0,T=0,Q=false;for(var U=0,S=O.length;U<S;U++){V=O[U];if(V){if(R!==V){X+=this._getPreciseHeight(V);}else{Q=true;}}}if(Q){if(K.ie||K.opera){F.setStyle(R,"height",0+"px");}W=this._getComputedHeight(P);if(W===null){F.addClass(P,"yui-override-padding");W=P.clientHeight;F.removeClass(P,"yui-override-padding");}T=Math.max(W-X,0);F.setStyle(R,"height",T+"px");if(R.offsetHeight!=T){T=Math.max(T-(R.offsetHeight-T),0);}F.setStyle(R,"height",T+"px");}}},bringToTop:function(){var S=[],R=this.element;function V(Z,Y){var b=F.getStyle(Z,"zIndex"),a=F.getStyle(Y,"zIndex"),X=(!b||isNaN(b))?0:parseInt(b,10),W=(!a||isNaN(a))?0:parseInt(a,10);if(X>W){return -1;}else{if(X<W){return 1;}else{return 0;}}}function Q(Y){var X=F.hasClass(Y,B.CSS_OVERLAY),W=YAHOO.widget.Panel;if(X&&!F.isAncestor(R,Y)){if(W&&F.hasClass(Y,W.CSS_PANEL)){S[S.length]=Y.parentNode;}else{S[S.length]=Y;}}}F.getElementsBy(Q,"DIV",document.body);S.sort(V);var O=S[0],U;if(O){U=F.getStyle(O,"zIndex");if(!isNaN(U)){var T=false;if(O!=R){T=true;}else{if(S.length>1){var P=F.getStyle(S[1],"zIndex");if(!isNaN(P)&&(U==P)){T=true;}}}if(T){this.cfg.setProperty("zindex",(parseInt(U,10)+2));}}}},destroy:function(){if(this.iframe){this.iframe.parentNode.removeChild(this.iframe);}this.iframe=null;B.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent,this);B.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent,this);G.textResizeEvent.unsubscribe(this._autoFillOnHeightChange);if(this._contextTriggers){this._processTriggers(this._contextTriggers,E,this._alignOnTrigger);}B.superclass.destroy.call(this);},forceContainerRedraw:function(){var O=this;F.addClass(O.element,"yui-force-redraw");setTimeout(function(){F.removeClass(O.element,"yui-force-redraw");},0);},toString:function(){return"Overlay "+this.id;}});}());(function(){YAHOO.widget.OverlayManager=function(G){this.init(G);};var D=YAHOO.widget.Overlay,C=YAHOO.util.Event,E=YAHOO.util.Dom,B=YAHOO.util.Config,F=YAHOO.util.CustomEvent,A=YAHOO.widget.OverlayManager;A.CSS_FOCUSED="focused";A.prototype={constructor:A,overlays:null,initDefaultConfig:function(){this.cfg.addProperty("overlays",{suppressEvent:true});this.cfg.addProperty("focusevent",{value:"mousedown"});},init:function(I){this.cfg=new B(this);this.initDefaultConfig();if(I){this.cfg.applyConfig(I,true);}this.cfg.fireQueue();var H=null;this.getActive=function(){return H;};this.focus=function(J){var K=this.find(J);if(K){K.focus();}};this.remove=function(K){var M=this.find(K),J;if(M){if(H==M){H=null;}var L=(M.element===null&&M.cfg===null)?true:false;if(!L){J=E.getStyle(M.element,"zIndex");M.cfg.setProperty("zIndex",-1000,true);}this.overlays.sort(this.compareZIndexDesc);this.overlays=this.overlays.slice(0,(this.overlays.length-1));M.hideEvent.unsubscribe(M.blur);M.destroyEvent.unsubscribe(this._onOverlayDestroy,M);M.focusEvent.unsubscribe(this._onOverlayFocusHandler,M);M.blurEvent.unsubscribe(this._onOverlayBlurHandler,M);if(!L){C.removeListener(M.element,this.cfg.getProperty("focusevent"),this._onOverlayElementFocus);M.cfg.setProperty("zIndex",J,true);M.cfg.setProperty("manager",null);}if(M.focusEvent._managed){M.focusEvent=null;}if(M.blurEvent._managed){M.blurEvent=null;}if(M.focus._managed){M.focus=null;}if(M.blur._managed){M.blur=null;}}};this.blurAll=function(){var K=this.overlays.length,J;if(K>0){J=K-1;do{this.overlays[J].blur();}while(J--);}};this._manageBlur=function(J){var K=false;if(H==J){E.removeClass(H.element,A.CSS_FOCUSED);H=null;K=true;}return K;};this._manageFocus=function(J){var K=false;if(H!=J){if(H){H.blur();}H=J;this.bringToTop(H);E.addClass(H.element,A.CSS_FOCUSED);K=true;}return K;};var G=this.cfg.getProperty("overlays");if(!this.overlays){this.overlays=[];}if(G){this.register(G);this.overlays.sort(this.compareZIndexDesc);}},_onOverlayElementFocus:function(I){var G=C.getTarget(I),H=this.close;if(H&&(G==H||E.isAncestor(H,G))){this.blur();}else{this.focus();}},_onOverlayDestroy:function(H,G,I){this.remove(I);},_onOverlayFocusHandler:function(H,G,I){this._manageFocus(I);},_onOverlayBlurHandler:function(H,G,I){this._manageBlur(I);},_bindFocus:function(G){var H=this;if(!G.focusEvent){G.focusEvent=G.createEvent("focus");G.focusEvent.signature=F.LIST;G.focusEvent._managed=true;}else{G.focusEvent.subscribe(H._onOverlayFocusHandler,G,H);}if(!G.focus){C.on(G.element,H.cfg.getProperty("focusevent"),H._onOverlayElementFocus,null,G);G.focus=function(){if(H._manageFocus(this)){if(this.cfg.getProperty("visible")&&this.focusFirst){this.focusFirst();}this.focusEvent.fire();}};G.focus._managed=true;}},_bindBlur:function(G){var H=this;if(!G.blurEvent){G.blurEvent=G.createEvent("blur");G.blurEvent.signature=F.LIST;G.focusEvent._managed=true;}else{G.blurEvent.subscribe(H._onOverlayBlurHandler,G,H);}if(!G.blur){G.blur=function(){if(H._manageBlur(this)){this.blurEvent.fire();}};G.blur._managed=true;}G.hideEvent.subscribe(G.blur);},_bindDestroy:function(G){var H=this;G.destroyEvent.subscribe(H._onOverlayDestroy,G,H);},_syncZIndex:function(G){var H=E.getStyle(G.element,"zIndex");if(!isNaN(H)){G.cfg.setProperty("zIndex",parseInt(H,10));}else{G.cfg.setProperty("zIndex",0);}},register:function(G){var J=false,H,I;if(G instanceof D){G.cfg.addProperty("manager",{value:this});this._bindFocus(G);this._bindBlur(G);this._bindDestroy(G);
 this._syncZIndex(G);this.overlays.push(G);this.bringToTop(G);J=true;}else{if(G instanceof Array){for(H=0,I=G.length;H<I;H++){J=this.register(G[H])||J;}}}return J;},bringToTop:function(M){var I=this.find(M),L,G,J;if(I){J=this.overlays;J.sort(this.compareZIndexDesc);G=J[0];if(G){L=E.getStyle(G.element,"zIndex");if(!isNaN(L)){var K=false;if(G!==I){K=true;}else{if(J.length>1){var H=E.getStyle(J[1].element,"zIndex");if(!isNaN(H)&&(L==H)){K=true;}}}if(K){I.cfg.setProperty("zindex",(parseInt(L,10)+2));}}J.sort(this.compareZIndexDesc);}}},find:function(G){var K=G instanceof D,I=this.overlays,M=I.length,J=null,L,H;if(K||typeof G=="string"){for(H=M-1;H>=0;H--){L=I[H];if((K&&(L===G))||(L.id==G)){J=L;break;}}}return J;},compareZIndexDesc:function(J,I){var H=(J.cfg)?J.cfg.getProperty("zIndex"):null,G=(I.cfg)?I.cfg.getProperty("zIndex"):null;if(H===null&&G===null){return 0;}else{if(H===null){return 1;}else{if(G===null){return -1;}else{if(H>G){return -1;}else{if(H<G){return 1;}else{return 0;}}}}}},showAll:function(){var H=this.overlays,I=H.length,G;for(G=I-1;G>=0;G--){H[G].show();}},hideAll:function(){var H=this.overlays,I=H.length,G;for(G=I-1;G>=0;G--){H[G].hide();}},toString:function(){return"OverlayManager";}};}());(function(){YAHOO.widget.ContainerEffect=function(E,H,G,D,F){if(!F){F=YAHOO.util.Anim;}this.overlay=E;this.attrIn=H;this.attrOut=G;this.targetElement=D||E.element;this.animClass=F;};var B=YAHOO.util.Dom,C=YAHOO.util.CustomEvent,A=YAHOO.widget.ContainerEffect;A.FADE=function(D,F){var G=YAHOO.util.Easing,I={attributes:{opacity:{from:0,to:1}},duration:F,method:G.easeIn},E={attributes:{opacity:{to:0}},duration:F,method:G.easeOut},H=new A(D,I,E,D.element);H.handleUnderlayStart=function(){var K=this.overlay.underlay;if(K&&YAHOO.env.ua.ie){var J=(K.filters&&K.filters.length>0);if(J){B.addClass(D.element,"yui-effect-fade");}}};H.handleUnderlayComplete=function(){var J=this.overlay.underlay;if(J&&YAHOO.env.ua.ie){B.removeClass(D.element,"yui-effect-fade");}};H.handleStartAnimateIn=function(K,J,L){B.addClass(L.overlay.element,"hide-select");if(!L.overlay.underlay){L.overlay.cfg.refireEvent("underlay");}L.handleUnderlayStart();L.overlay._setDomVisibility(true);B.setStyle(L.overlay.element,"opacity",0);};H.handleCompleteAnimateIn=function(K,J,L){B.removeClass(L.overlay.element,"hide-select");if(L.overlay.element.style.filter){L.overlay.element.style.filter=null;}L.handleUnderlayComplete();L.overlay.cfg.refireEvent("iframe");L.animateInCompleteEvent.fire();};H.handleStartAnimateOut=function(K,J,L){B.addClass(L.overlay.element,"hide-select");L.handleUnderlayStart();};H.handleCompleteAnimateOut=function(K,J,L){B.removeClass(L.overlay.element,"hide-select");if(L.overlay.element.style.filter){L.overlay.element.style.filter=null;}L.overlay._setDomVisibility(false);B.setStyle(L.overlay.element,"opacity",1);L.handleUnderlayComplete();L.overlay.cfg.refireEvent("iframe");L.animateOutCompleteEvent.fire();};H.init();return H;};A.SLIDE=function(F,D){var I=YAHOO.util.Easing,L=F.cfg.getProperty("x")||B.getX(F.element),K=F.cfg.getProperty("y")||B.getY(F.element),M=B.getClientWidth(),H=F.element.offsetWidth,J={attributes:{points:{to:[L,K]}},duration:D,method:I.easeIn},E={attributes:{points:{to:[(M+25),K]}},duration:D,method:I.easeOut},G=new A(F,J,E,F.element,YAHOO.util.Motion);G.handleStartAnimateIn=function(O,N,P){P.overlay.element.style.left=((-25)-H)+"px";P.overlay.element.style.top=K+"px";};G.handleTweenAnimateIn=function(Q,P,R){var S=B.getXY(R.overlay.element),O=S[0],N=S[1];if(B.getStyle(R.overlay.element,"visibility")=="hidden"&&O<L){R.overlay._setDomVisibility(true);}R.overlay.cfg.setProperty("xy",[O,N],true);R.overlay.cfg.refireEvent("iframe");};G.handleCompleteAnimateIn=function(O,N,P){P.overlay.cfg.setProperty("xy",[L,K],true);P.startX=L;P.startY=K;P.overlay.cfg.refireEvent("iframe");P.animateInCompleteEvent.fire();};G.handleStartAnimateOut=function(O,N,R){var P=B.getViewportWidth(),S=B.getXY(R.overlay.element),Q=S[1];R.animOut.attributes.points.to=[(P+25),Q];};G.handleTweenAnimateOut=function(P,O,Q){var S=B.getXY(Q.overlay.element),N=S[0],R=S[1];Q.overlay.cfg.setProperty("xy",[N,R],true);Q.overlay.cfg.refireEvent("iframe");};G.handleCompleteAnimateOut=function(O,N,P){P.overlay._setDomVisibility(false);P.overlay.cfg.setProperty("xy",[L,K]);P.animateOutCompleteEvent.fire();};G.init();return G;};A.prototype={init:function(){this.beforeAnimateInEvent=this.createEvent("beforeAnimateIn");this.beforeAnimateInEvent.signature=C.LIST;this.beforeAnimateOutEvent=this.createEvent("beforeAnimateOut");this.beforeAnimateOutEvent.signature=C.LIST;this.animateInCompleteEvent=this.createEvent("animateInComplete");this.animateInCompleteEvent.signature=C.LIST;this.animateOutCompleteEvent=this.createEvent("animateOutComplete");this.animateOutCompleteEvent.signature=C.LIST;this.animIn=new this.animClass(this.targetElement,this.attrIn.attributes,this.attrIn.duration,this.attrIn.method);this.animIn.onStart.subscribe(this.handleStartAnimateIn,this);this.animIn.onTween.subscribe(this.handleTweenAnimateIn,this);this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn,this);this.animOut=new this.animClass(this.targetElement,this.attrOut.attributes,this.attrOut.duration,this.attrOut.method);this.animOut.onStart.subscribe(this.handleStartAnimateOut,this);this.animOut.onTween.subscribe(this.handleTweenAnimateOut,this);this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut,this);},animateIn:function(){this.beforeAnimateInEvent.fire();this.animIn.animate();},animateOut:function(){this.beforeAnimateOutEvent.fire();this.animOut.animate();},handleStartAnimateIn:function(E,D,F){},handleTweenAnimateIn:function(E,D,F){},handleCompleteAnimateIn:function(E,D,F){},handleStartAnimateOut:function(E,D,F){},handleTweenAnimateOut:function(E,D,F){},handleCompleteAnimateOut:function(E,D,F){},toString:function(){var D="ContainerEffect";if(this.overlay){D+=" ["+this.overlay.toString()+"]";}return D;}};YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);
-})();YAHOO.register("containercore",YAHOO.widget.Module,{version:"2.8.1",build:"19"});
\ No newline at end of file
+})();YAHOO.register("containercore",YAHOO.widget.Module,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/container/container_core.js b/build/container/container_core.js
index 22e5db0..5673e8d 100644
--- a/build/container/container_core.js
+++ b/build/container/container_core.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 
@@ -5123,4 +5123,4 @@ version: 2.8.1
     YAHOO.lang.augmentProto(ContainerEffect, YAHOO.util.EventProvider);
 
 })();
-YAHOO.register("containercore", YAHOO.widget.Module, {version: "2.8.1", build: "19"});
+YAHOO.register("containercore", YAHOO.widget.Module, {version: "2.8.2r1", build: "7"});
diff --git a/build/cookie/cookie-debug.js b/build/cookie/cookie-debug.js
index 32e926d..097457c 100644
--- a/build/cookie/cookie-debug.js
+++ b/build/cookie/cookie-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Utilities for cookie management
@@ -479,4 +479,4 @@ YAHOO.util.Cookie = {
 
 };
 
-YAHOO.register("cookie", YAHOO.util.Cookie, {version: "2.8.1", build: "19"});
+YAHOO.register("cookie", YAHOO.util.Cookie, {version: "2.8.2r1", build: "7"});
diff --git a/build/cookie/cookie-min.js b/build/cookie/cookie-min.js
index db1eddd..fdfae10 100644
--- a/build/cookie/cookie-min.js
+++ b/build/cookie/cookie-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.namespace("util");YAHOO.util.Cookie={_createCookieString:function(B,D,C,A){var F=YAHOO.lang,E=encodeURIComponent(B)+"="+(C?encodeURIComponent(D):D);if(F.isObject(A)){if(A.expires instanceof Date){E+="; expires="+A.expires.toUTCString();}if(F.isString(A.path)&&A.path!==""){E+="; path="+A.path;}if(F.isString(A.domain)&&A.domain!==""){E+="; domain="+A.domain;}if(A.secure===true){E+="; secure";}}return E;},_createCookieHashString:function(B){var D=YAHOO.lang;if(!D.isObject(B)){throw new TypeError("Cookie._createCookieHashString(): Argument must be an object.");}var C=[];for(var A in B){if(D.hasOwnProperty(B,A)&&!D.isFunction(B[A])&&!D.isUndefined(B[A])){C.push(encodeURIComponent(A)+"="+encodeURIComponent(String(B[A])));}}return C.join("&");},_parseCookieHash:function(E){var D=E.split("&"),F=null,C={};if(E.length>0){for(var B=0,A=D.length;B<A;B++){F=D[B].split("=");C[decodeURIComponent(F[0])]=decodeURIComponent(F[1]);}}return C;},_parseCookieString:function(J,A){var K={};if(YAHOO.lang.isString(J)&&J.length>0){var B=(A===false?function(L){return L;}:decodeURIComponent);var H=J.split(/;\s/g),I=null,C=null,E=null;for(var D=0,F=H.length;D<F;D++){E=H[D].match(/([^=]+)=/i);if(E instanceof Array){try{I=decodeURIComponent(E[1]);C=B(H[D].substring(E[1].length+1));}catch(G){}}else{I=decodeURIComponent(H[D]);C="";}K[I]=C;}}return K;},exists:function(A){if(!YAHOO.lang.isString(A)||A===""){throw new TypeError("Cookie.exists(): Cookie name must be a non-empty string.");}var B=this._parseCookieString(document.cookie,true);return B.hasOwnProperty(A);},get:function(B,A){var E=YAHOO.lang,C;if(E.isFunction(A)){C=A;A={};}else{if(E.isObject(A)){C=A.converter;}else{A={};}}var D=this._parseCookieString(document.cookie,!A.raw);if(!E.isString(B)||B===""){throw new TypeError("Cookie.get(): Cookie name must be a non-empty string.");}if(E.isUndefined(D[B])){return null;}if(!E.isFunction(C)){return D[B];}else{return C(D[B]);}},getSub:function(A,C,B){var E=YAHOO.lang,D=this.getSubs(A);if(D!==null){if(!E.isString(C)||C===""){throw new TypeError("Cookie.getSub(): Subcookie name must be a non-empty string.");}if(E.isUndefined(D[C])){return null;}if(!E.isFunction(B)){return D[C];}else{return B(D[C]);}}else{return null;}},getSubs:function(B){var A=YAHOO.lang.isString;if(!A(B)||B===""){throw new TypeError("Cookie.getSubs(): Cookie name must be a non-empty string.");}var C=this._parseCookieString(document.cookie,false);if(A(C[B])){return this._parseCookieHash(C[B]);}return null;},remove:function(B,A){if(!YAHOO.lang.isString(B)||B===""){throw new TypeError("Cookie.remove(): Cookie name must be a non-empty string.");}A=YAHOO.lang.merge(A||{},{expires:new Date(0)});return this.set(B,"",A);},removeSub:function(B,E,A){var F=YAHOO.lang;A=A||{};if(!F.isString(B)||B===""){throw new TypeError("Cookie.removeSub(): Cookie name must be a non-empty string.");}if(!F.isString(E)||E===""){throw new TypeError("Cookie.removeSub(): Subcookie name must be a non-empty string.");}var D=this.getSubs(B);if(F.isObject(D)&&F.hasOwnProperty(D,E)){delete D[E];if(!A.removeIfEmpty){return this.setSubs(B,D,A);}else{for(var C in D){if(F.hasOwnProperty(D,C)&&!F.isFunction(D[C])&&!F.isUndefined(D[C])){return this.setSubs(B,D,A);}}return this.remove(B,A);}}else{return"";}},set:function(B,C,A){var E=YAHOO.lang;A=A||{};if(!E.isString(B)){throw new TypeError("Cookie.set(): Cookie name must be a string.");}if(E.isUndefined(C)){throw new TypeError("Cookie.set(): Value cannot be undefined.");}var D=this._createCookieString(B,C,!A.raw,A);document.cookie=D;return D;},setSub:function(B,D,C,A){var F=YAHOO.lang;if(!F.isString(B)||B===""){throw new TypeError("Cookie.setSub(): Cookie name must be a non-empty string.");}if(!F.isString(D)||D===""){throw new TypeError("Cookie.setSub(): Subcookie name must be a non-empty string.");}if(F.isUndefined(C)){throw new TypeError("Cookie.setSub(): Subcookie value cannot be undefined.");}var E=this.getSubs(B);if(!F.isObject(E)){E={};}E[D]=C;return this.setSubs(B,E,A);},setSubs:function(B,C,A){var E=YAHOO.lang;if(!E.isString(B)){throw new TypeError("Cookie.setSubs(): Cookie name must be a string.");}if(!E.isObject(C)){throw new TypeError("Cookie.setSubs(): Cookie value must be an object.");}var D=this._createCookieString(B,this._createCookieHashString(C),false,A);document.cookie=D;return D;}};YAHOO.register("cookie",YAHOO.util.Cookie,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.namespace("util");YAHOO.util.Cookie={_createCookieString:function(B,D,C,A){var F=YAHOO.lang,E=encodeURIComponent(B)+"="+(C?encodeURIComponent(D):D);if(F.isObject(A)){if(A.expires instanceof Date){E+="; expires="+A.expires.toUTCString();}if(F.isString(A.path)&&A.path!==""){E+="; path="+A.path;}if(F.isString(A.domain)&&A.domain!==""){E+="; domain="+A.domain;}if(A.secure===true){E+="; secure";}}return E;},_createCookieHashString:function(B){var D=YAHOO.lang;if(!D.isObject(B)){throw new TypeError("Cookie._createCookieHashString(): Argument must be an object.");}var C=[];for(var A in B){if(D.hasOwnProperty(B,A)&&!D.isFunction(B[A])&&!D.isUndefined(B[A])){C.push(encodeURIComponent(A)+"="+encodeURIComponent(String(B[A])));}}return C.join("&");},_parseCookieHash:function(E){var D=E.split("&"),F=null,C={};if(E.length>0){for(var B=0,A=D.length;B<A;B++){F=D[B].split("=");C[decodeURIComponent(F[0])]=decodeURIComponent(F[1]);}}return C;},_parseCookieString:function(J,A){var K={};if(YAHOO.lang.isString(J)&&J.length>0){var B=(A===false?function(L){return L;}:decodeURIComponent);var H=J.split(/;\s/g),I=null,C=null,E=null;for(var D=0,F=H.length;D<F;D++){E=H[D].match(/([^=]+)=/i);if(E instanceof Array){try{I=decodeURIComponent(E[1]);C=B(H[D].substring(E[1].length+1));}catch(G){}}else{I=decodeURIComponent(H[D]);C="";}K[I]=C;}}return K;},exists:function(A){if(!YAHOO.lang.isString(A)||A===""){throw new TypeError("Cookie.exists(): Cookie name must be a non-empty string.");}var B=this._parseCookieString(document.cookie,true);return B.hasOwnProperty(A);},get:function(B,A){var E=YAHOO.lang,C;if(E.isFunction(A)){C=A;A={};}else{if(E.isObject(A)){C=A.converter;}else{A={};}}var D=this._parseCookieString(document.cookie,!A.raw);if(!E.isString(B)||B===""){throw new TypeError("Cookie.get(): Cookie name must be a non-empty string.");}if(E.isUndefined(D[B])){return null;}if(!E.isFunction(C)){return D[B];}else{return C(D[B]);}},getSub:function(A,C,B){var E=YAHOO.lang,D=this.getSubs(A);if(D!==null){if(!E.isString(C)||C===""){throw new TypeError("Cookie.getSub(): Subcookie name must be a non-empty string.");}if(E.isUndefined(D[C])){return null;}if(!E.isFunction(B)){return D[C];}else{return B(D[C]);}}else{return null;}},getSubs:function(B){var A=YAHOO.lang.isString;if(!A(B)||B===""){throw new TypeError("Cookie.getSubs(): Cookie name must be a non-empty string.");}var C=this._parseCookieString(document.cookie,false);if(A(C[B])){return this._parseCookieHash(C[B]);}return null;},remove:function(B,A){if(!YAHOO.lang.isString(B)||B===""){throw new TypeError("Cookie.remove(): Cookie name must be a non-empty string.");}A=YAHOO.lang.merge(A||{},{expires:new Date(0)});return this.set(B,"",A);},removeSub:function(B,E,A){var F=YAHOO.lang;A=A||{};if(!F.isString(B)||B===""){throw new TypeError("Cookie.removeSub(): Cookie name must be a non-empty string.");}if(!F.isString(E)||E===""){throw new TypeError("Cookie.removeSub(): Subcookie name must be a non-empty string.");}var D=this.getSubs(B);if(F.isObject(D)&&F.hasOwnProperty(D,E)){delete D[E];if(!A.removeIfEmpty){return this.setSubs(B,D,A);}else{for(var C in D){if(F.hasOwnProperty(D,C)&&!F.isFunction(D[C])&&!F.isUndefined(D[C])){return this.setSubs(B,D,A);}}return this.remove(B,A);}}else{return"";}},set:function(B,C,A){var E=YAHOO.lang;A=A||{};if(!E.isString(B)){throw new TypeError("Cookie.set(): Cookie name must be a string.");}if(E.isUndefined(C)){throw new TypeError("Cookie.set(): Value cannot be undefined.");}var D=this._createCookieString(B,C,!A.raw,A);document.cookie=D;return D;},setSub:function(B,D,C,A){var F=YAHOO.lang;if(!F.isString(B)||B===""){throw new TypeError("Cookie.setSub(): Cookie name must be a non-empty string.");}if(!F.isString(D)||D===""){throw new TypeError("Cookie.setSub(): Subcookie name must be a non-empty string.");}if(F.isUndefined(C)){throw new TypeError("Cookie.setSub(): Subcookie value cannot be undefined.");}var E=this.getSubs(B);if(!F.isObject(E)){E={};}E[D]=C;return this.setSubs(B,E,A);},setSubs:function(B,C,A){var E=YAHOO.lang;if(!E.isString(B)){throw new TypeError("Cookie.setSubs(): Cookie name must be a string.");}if(!E.isObject(C)){throw new TypeError("Cookie.setSubs(): Cookie value must be an object.");}var D=this._createCookieString(B,this._createCookieHashString(C),false,A);document.cookie=D;return D;}};YAHOO.register("cookie",YAHOO.util.Cookie,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/cookie/cookie.js b/build/cookie/cookie.js
index 32e926d..097457c 100644
--- a/build/cookie/cookie.js
+++ b/build/cookie/cookie.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Utilities for cookie management
@@ -479,4 +479,4 @@ YAHOO.util.Cookie = {
 
 };
 
-YAHOO.register("cookie", YAHOO.util.Cookie, {version: "2.8.1", build: "19"});
+YAHOO.register("cookie", YAHOO.util.Cookie, {version: "2.8.2r1", build: "7"});
diff --git a/build/datasource/datasource-debug.js b/build/datasource/datasource-debug.js
index ad1dce6..4a9e913 100644
--- a/build/datasource/datasource-debug.js
+++ b/build/datasource/datasource-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 
@@ -3064,4 +3064,4 @@ var xPad=function (x, pad, r)
 
 })();
 
-YAHOO.register("datasource", YAHOO.util.DataSource, {version: "2.8.1", build: "19"});
+YAHOO.register("datasource", YAHOO.util.DataSource, {version: "2.8.2r1", build: "7"});
diff --git a/build/datasource/datasource-min.js b/build/datasource/datasource-min.js
index 9214c07..e59b60e 100644
--- a/build/datasource/datasource-min.js
+++ b/build/datasource/datasource-min.js
@@ -2,11 +2,11 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var lang=YAHOO.lang,util=YAHOO.util,Ev=util.Event;util.DataSourceBase=function(oLiveData,oConfigs){if(oLiveData===null||oLiveData===undefined){return;}this.liveData=oLiveData;this._oQueue={interval:null,conn:null,requests:[]};this.responseSchema={};if(oConfigs&&(oConfigs.constructor==Object)){for(var sConfig in oConfigs){if(sConfig){this[sConfig]=oConfigs[sConfig];}}}var maxCacheEntries=this.maxCacheEntries;if(!lang.isNumber(maxCacheEntries)||(maxCacheEntries<0)){maxCacheEntries=0;}this._aIntervals=[];this.createEvent("cacheRequestEvent");this.createEvent("cacheResponseEvent");this.createEvent("requestEvent");this.createEvent("responseEvent");this.createEvent("responseParseEvent");this.createEvent("responseCacheEvent");this.createEvent("dataErrorEvent");this.createEvent("cacheFlushEvent");var DS=util.DataSourceBase;this._sName="DataSource instance"+DS._nIndex;DS._nIndex++;};var DS=util.DataSourceBase;lang.augmentObject(DS,{TYPE_UNKNOWN:-1,TYPE_JSARRAY:0,TYPE_JSFUNCTION:1,TYPE_XHR:2,TYPE_JSON:3,TYPE_XML:4,TYPE_TEXT:5,TYPE_HTMLTABLE:6,TYPE_SCRIPTNODE:7,TYPE_LOCAL:8,ERROR_DATAINVALID:"Invalid data",ERROR_DATANULL:"Null data",_nIndex:0,_nTransactionId:0,_getLocationValue:function(field,context){var locator=field.locator||field.key||field,xmldoc=context.ownerDocument||context,result,res,value=null;try{if(!lang.isUndefined(xmldoc.evaluate)){result=xmldoc.evaluate(locator,context,xmldoc.createNSResolver(!context.ownerDocument?context.documentElement:context.ownerDocument.documentElement),0,null);while(res=result.iterateNext()){value=res.textContent;}}else{xmldoc.setProperty("SelectionLanguage","XPath");result=context.selectNodes(locator)[0];value=result.value||result.text||null;}return value;}catch(e){}},issueCallback:function(callback,params,error,scope){if(lang.isFunction(callback)){callback.apply(scope,params);}else{if(lang.isObject(callback)){scope=callback.scope||scope||window;var callbackFunc=callback.success;if(error){callbackFunc=callback.failure;}if(callbackFunc){callbackFunc.apply(scope,params.concat([callback.argument]));}}}},parseString:function(oData){if(!lang.isValue(oData)){return null;}var string=oData+"";if(lang.isString(string)){return string;}else{return null;}},parseNumber:function(oData){if(!lang.isValue(oData)||(oData==="")){return null;}var number=oData*1;if(lang.isNumber(number)){return number;}else{return null;}},convertNumber:function(oData){return DS.parseNumber(oData);},parseDate:function(oData){var date=null;if(!(oData instanceof Date)){date=new Date(oData);}else{return oData;}if(date instanceof Date){return date;}else{return null;}},convertDate:function(oData){return DS.parseDate(oData);}});DS.Parser={string:DS.parseString,number:DS.parseNumber,date:DS.parseDate};DS.prototype={_sName:null,_aCache:null,_oQueue:null,_aIntervals:null,maxCacheEntries:0,liveData:null,dataType:DS.TYPE_UNKNOWN,responseType:DS.TYPE_UNKNOWN,responseSchema:null,useXPath:false,toString:function(){return this._sName;},getCachedResponse:function(oRequest,oCallback,oCaller){var aCache=this._aCache;if(this.maxCacheEntries>0){if(!aCache){this._aCache=[];}else{var nCacheLength=aCache.length;if(nCacheLength>0){var oResponse=null;this.fireEvent("cacheRequestEvent",{request:oRequest,callback:oCallback,caller:oCaller});for(var i=nCacheLength-1;i>=0;i--){var oCacheElem=aCache[i];if(this.isCacheHit(oRequest,oCacheElem.request)){oResponse=oCacheElem.response;this.fireEvent("cacheResponseEvent",{request:oRequest,response:oResponse,callback:oCallback,caller:oCaller});if(i<nCacheLength-1){aCache.splice(i,1);this.addToCache(oRequest,oResponse);}oResponse.cached=true;break;}}return oResponse;}}}else{if(aCache){this._aCache=null;}}return null;},isCacheHit:function(oRequest,oCachedRequest){return(oRequest===oCachedRequest);},addToCache:function(oRequest,oResponse){var aCache=this._aCache;if(!aCache){return;}while(aCache.length>=this.maxCacheEntries){aCache.shift();}var oCacheElem={request:oRequest,response:oResponse};aCache[aCache.length]=oCacheElem;this.fireEvent("responseCacheEvent",{request:oRequest,response:oResponse});},flushCache:function(){if(this._aCache){this._aCache=[];this.fireEvent("cacheFlushEvent");}},setInterval:function(nMsec,oRequest,oCallback,oCaller){if(lang.isNumber(nMsec)&&(nMsec>=0)){var oSelf=this;var nId=setInterval(function(){oSelf.makeConnection(oRequest,oCallback,oCaller);},nMsec);this._aIntervals.push(nId);return nId;}else{}},clearInterval:function(nId){var tracker=this._aIntervals||[];for(var i=tracker.length-1;i>-1;i--){if(tracker[i]===nId){tracker.splice(i,1);clearInterval(nId);}}},clearAllIntervals:function(){var tracker=this._aIntervals||[];for(var i=tracker.length-1;i>-1;i--){clearInterval(tracker[i]);}tracker=[];},sendRequest:function(oRequest,oCallback,oCaller){var oCachedResponse=this.getCachedResponse(oRequest,oCallback,oCaller);if(oCachedResponse){DS.issueCallback(oCallback,[oRequest,oCachedResponse],false,oCaller);return null;}return this.makeConnection(oRequest,oCallback,oCaller);},makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});var oRawResponse=this.liveData;this.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId);return tId;},handleResponse:function(oRequest,oRawResponse,oCallback,oCaller,tId){this.fireEvent("responseEvent",{tId:tId,request:oRequest,response:oRawResponse,callback:oCallback,caller:oCaller});var xhr=(this.dataType==DS.TYPE_XHR)?true:false;var oParsedResponse=null;var oFullResponse=oRawResponse;if(this.responseType===DS.TYPE_UNKNOWN){var ctype=(oRawResponse&&oRawResponse.getResponseHeader)?oRawResponse.getResponseHeader["Content-Type"]:null;if(ctype){if(ctype.indexOf("text/xml")>-1){this.responseType=DS.TYPE_XML;}else{if(ctype.indexOf("application/json")>-1){this.responseType=DS.TYPE_JSON;}else{if(ctype.indexOf("text/plain")>-1){this.responseType=DS.TYPE_TEXT;}}}}else{if(YAHOO.lang.isArray(oRawResponse)){this.responseType=DS.TYPE_JSARRAY;
 }else{if(oRawResponse&&oRawResponse.nodeType&&(oRawResponse.nodeType===9||oRawResponse.nodeType===1||oRawResponse.nodeType===11)){this.responseType=DS.TYPE_XML;}else{if(oRawResponse&&oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE;}else{if(YAHOO.lang.isObject(oRawResponse)){this.responseType=DS.TYPE_JSON;}else{if(YAHOO.lang.isString(oRawResponse)){this.responseType=DS.TYPE_TEXT;}}}}}}}switch(this.responseType){case DS.TYPE_JSARRAY:if(xhr&&oRawResponse&&oRawResponse.responseText){oFullResponse=oRawResponse.responseText;}try{if(lang.isString(oFullResponse)){var parseArgs=[oFullResponse].concat(this.parseJSONArgs);if(lang.JSON){oFullResponse=lang.JSON.parse.apply(lang.JSON,parseArgs);}else{if(window.JSON&&JSON.parse){oFullResponse=JSON.parse.apply(JSON,parseArgs);}else{if(oFullResponse.parseJSON){oFullResponse=oFullResponse.parseJSON.apply(oFullResponse,parseArgs.slice(1));}else{while(oFullResponse.length>0&&(oFullResponse.charAt(0)!="{")&&(oFullResponse.charAt(0)!="[")){oFullResponse=oFullResponse.substring(1,oFullResponse.length);}if(oFullResponse.length>0){var arrayEnd=Math.max(oFullResponse.lastIndexOf("]"),oFullResponse.lastIndexOf("}"));oFullResponse=oFullResponse.substring(0,arrayEnd+1);oFullResponse=eval("("+oFullResponse+")");}}}}}}catch(e1){}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseArrayData(oRequest,oFullResponse);break;case DS.TYPE_JSON:if(xhr&&oRawResponse&&oRawResponse.responseText){oFullResponse=oRawResponse.responseText;}try{if(lang.isString(oFullResponse)){var parseArgs=[oFullResponse].concat(this.parseJSONArgs);if(lang.JSON){oFullResponse=lang.JSON.parse.apply(lang.JSON,parseArgs);}else{if(window.JSON&&JSON.parse){oFullResponse=JSON.parse.apply(JSON,parseArgs);}else{if(oFullResponse.parseJSON){oFullResponse=oFullResponse.parseJSON.apply(oFullResponse,parseArgs.slice(1));}else{while(oFullResponse.length>0&&(oFullResponse.charAt(0)!="{")&&(oFullResponse.charAt(0)!="[")){oFullResponse=oFullResponse.substring(1,oFullResponse.length);}if(oFullResponse.length>0){var objEnd=Math.max(oFullResponse.lastIndexOf("]"),oFullResponse.lastIndexOf("}"));oFullResponse=oFullResponse.substring(0,objEnd+1);oFullResponse=eval("("+oFullResponse+")");}}}}}}catch(e){}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseJSONData(oRequest,oFullResponse);break;case DS.TYPE_HTMLTABLE:if(xhr&&oRawResponse.responseText){var el=document.createElement("div");el.innerHTML=oRawResponse.responseText;oFullResponse=el.getElementsByTagName("table")[0];}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseHTMLTableData(oRequest,oFullResponse);break;case DS.TYPE_XML:if(xhr&&oRawResponse.responseXML){oFullResponse=oRawResponse.responseXML;}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseXMLData(oRequest,oFullResponse);break;case DS.TYPE_TEXT:if(xhr&&lang.isString(oRawResponse.responseText)){oFullResponse=oRawResponse.responseText;}oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseTextData(oRequest,oFullResponse);break;default:oFullResponse=this.doBeforeParseData(oRequest,oFullResponse,oCallback);oParsedResponse=this.parseData(oRequest,oFullResponse);break;}oParsedResponse=oParsedResponse||{};if(!oParsedResponse.results){oParsedResponse.results=[];}if(!oParsedResponse.meta){oParsedResponse.meta={};}if(!oParsedResponse.error){oParsedResponse=this.doBeforeCallback(oRequest,oFullResponse,oParsedResponse,oCallback);this.fireEvent("responseParseEvent",{request:oRequest,response:oParsedResponse,callback:oCallback,caller:oCaller});this.addToCache(oRequest,oParsedResponse);}else{oParsedResponse.error=true;this.fireEvent("dataErrorEvent",{request:oRequest,response:oRawResponse,callback:oCallback,caller:oCaller,message:DS.ERROR_DATANULL});}oParsedResponse.tId=tId;DS.issueCallback(oCallback,[oRequest,oParsedResponse],oParsedResponse.error,oCaller);},doBeforeParseData:function(oRequest,oFullResponse,oCallback){return oFullResponse;},doBeforeCallback:function(oRequest,oFullResponse,oParsedResponse,oCallback){return oParsedResponse;},parseData:function(oRequest,oFullResponse){if(lang.isValue(oFullResponse)){var oParsedResponse={results:oFullResponse,meta:{}};return oParsedResponse;}return null;},parseArrayData:function(oRequest,oFullResponse){if(lang.isArray(oFullResponse)){var results=[],i,j,rec,field,data;if(lang.isArray(this.responseSchema.fields)){var fields=this.responseSchema.fields;for(i=fields.length-1;i>=0;--i){if(typeof fields[i]!=="object"){fields[i]={key:fields[i]};}}var parsers={},p;for(i=fields.length-1;i>=0;--i){p=(typeof fields[i].parser==="function"?fields[i].parser:DS.Parser[fields[i].parser+""])||fields[i].converter;if(p){parsers[fields[i].key]=p;}}var arrType=lang.isArray(oFullResponse[0]);for(i=oFullResponse.length-1;i>-1;i--){var oResult={};rec=oFullResponse[i];if(typeof rec==="object"){for(j=fields.length-1;j>-1;j--){field=fields[j];data=arrType?rec[j]:rec[field.key];if(parsers[field.key]){data=parsers[field.key].call(this,data);}if(data===undefined){data=null;}oResult[field.key]=data;}}else{if(lang.isString(rec)){for(j=fields.length-1;j>-1;j--){field=fields[j];data=rec;if(parsers[field.key]){data=parsers[field.key].call(this,data);}if(data===undefined){data=null;}oResult[field.key]=data;}}}results[i]=oResult;}}else{results=oFullResponse;}var oParsedResponse={results:results};return oParsedResponse;}return null;},parseTextData:function(oRequest,oFullResponse){if(lang.isString(oFullResponse)){if(lang.isString(this.responseSchema.recordDelim)&&lang.isString(this.responseSchema.fieldDelim)){var oParsedResponse={results:[]};var recDelim=this.responseSchema.recordDelim;var fieldDelim=this.responseSchema.fieldDelim;if(oFullResponse.length>0){var newLength=oFullResponse.length-recDelim.length;if(oFullResponse.substr(newLength)==recDelim){oFullResponse=oFullResponse.substr(0,newLength);
 }if(oFullResponse.length>0){var recordsarray=oFullResponse.split(recDelim);for(var i=0,len=recordsarray.length,recIdx=0;i<len;++i){var bError=false,sRecord=recordsarray[i];if(lang.isString(sRecord)&&(sRecord.length>0)){var fielddataarray=recordsarray[i].split(fieldDelim);var oResult={};if(lang.isArray(this.responseSchema.fields)){var fields=this.responseSchema.fields;for(var j=fields.length-1;j>-1;j--){try{var data=fielddataarray[j];if(lang.isString(data)){if(data.charAt(0)=='"'){data=data.substr(1);}if(data.charAt(data.length-1)=='"'){data=data.substr(0,data.length-1);}var field=fields[j];var key=(lang.isValue(field.key))?field.key:field;if(!field.parser&&field.converter){field.parser=field.converter;}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];if(parser){data=parser.call(this,data);}if(data===undefined){data=null;}oResult[key]=data;}else{bError=true;}}catch(e){bError=true;}}}else{oResult=fielddataarray;}if(!bError){oParsedResponse.results[recIdx++]=oResult;}}}}}return oParsedResponse;}}return null;},parseXMLResult:function(result){var oResult={},schema=this.responseSchema;try{for(var m=schema.fields.length-1;m>=0;m--){var field=schema.fields[m];var key=(lang.isValue(field.key))?field.key:field;var data=null;if(this.useXPath){data=YAHOO.util.DataSource._getLocationValue(field,result);}else{var xmlAttr=result.attributes.getNamedItem(key);if(xmlAttr){data=xmlAttr.value;}else{var xmlNode=result.getElementsByTagName(key);if(xmlNode&&xmlNode.item(0)){var item=xmlNode.item(0);data=(item)?((item.text)?item.text:(item.textContent)?item.textContent:null):null;if(!data){var datapieces=[];for(var j=0,len=item.childNodes.length;j<len;j++){if(item.childNodes[j].nodeValue){datapieces[datapieces.length]=item.childNodes[j].nodeValue;}}if(datapieces.length>0){data=datapieces.join("");}}}}}if(data===null){data="";}if(!field.parser&&field.converter){field.parser=field.converter;}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];if(parser){data=parser.call(this,data);}if(data===undefined){data=null;}oResult[key]=data;}}catch(e){}return oResult;},parseXMLData:function(oRequest,oFullResponse){var bError=false,schema=this.responseSchema,oParsedResponse={meta:{}},xmlList=null,metaNode=schema.metaNode,metaLocators=schema.metaFields||{},i,k,loc,v;try{if(this.useXPath){for(k in metaLocators){oParsedResponse.meta[k]=YAHOO.util.DataSource._getLocationValue(metaLocators[k],oFullResponse);}}else{metaNode=metaNode?oFullResponse.getElementsByTagName(metaNode)[0]:oFullResponse;if(metaNode){for(k in metaLocators){if(lang.hasOwnProperty(metaLocators,k)){loc=metaLocators[k];v=metaNode.getElementsByTagName(loc)[0];if(v){v=v.firstChild.nodeValue;}else{v=metaNode.attributes.getNamedItem(loc);if(v){v=v.value;}}if(lang.isValue(v)){oParsedResponse.meta[k]=v;}}}}}xmlList=(schema.resultNode)?oFullResponse.getElementsByTagName(schema.resultNode):null;}catch(e){}if(!xmlList||!lang.isArray(schema.fields)){bError=true;}else{oParsedResponse.results=[];for(i=xmlList.length-1;i>=0;--i){var oResult=this.parseXMLResult(xmlList.item(i));oParsedResponse.results[i]=oResult;}}if(bError){oParsedResponse.error=true;}else{}return oParsedResponse;},parseJSONData:function(oRequest,oFullResponse){var oParsedResponse={results:[],meta:{}};if(lang.isObject(oFullResponse)&&this.responseSchema.resultsList){var schema=this.responseSchema,fields=schema.fields,resultsList=oFullResponse,results=[],metaFields=schema.metaFields||{},fieldParsers=[],fieldPaths=[],simpleFields=[],bError=false,i,len,j,v,key,parser,path;var buildPath=function(needle){var path=null,keys=[],i=0;if(needle){needle=needle.replace(/\[(['"])(.*?)\1\]/g,function(x,$1,$2){keys[i]=$2;return".@"+(i++);}).replace(/\[(\d+)\]/g,function(x,$1){keys[i]=parseInt($1,10)|0;return".@"+(i++);}).replace(/^\./,"");if(!/[^\w\.\$@]/.test(needle)){path=needle.split(".");for(i=path.length-1;i>=0;--i){if(path[i].charAt(0)==="@"){path[i]=keys[parseInt(path[i].substr(1),10)];}}}else{}}return path;};var walkPath=function(path,origin){var v=origin,i=0,len=path.length;for(;i<len&&v;++i){v=v[path[i]];}return v;};path=buildPath(schema.resultsList);if(path){resultsList=walkPath(path,oFullResponse);if(resultsList===undefined){bError=true;}}else{bError=true;}if(!resultsList){resultsList=[];}if(!lang.isArray(resultsList)){resultsList=[resultsList];}if(!bError){if(schema.fields){var field;for(i=0,len=fields.length;i<len;i++){field=fields[i];key=field.key||field;parser=((typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""])||field.converter;path=buildPath(key);if(parser){fieldParsers[fieldParsers.length]={key:key,parser:parser};}if(path){if(path.length>1){fieldPaths[fieldPaths.length]={key:key,path:path};}else{simpleFields[simpleFields.length]={key:key,path:path[0]};}}else{}}for(i=resultsList.length-1;i>=0;--i){var r=resultsList[i],rec={};if(r){for(j=simpleFields.length-1;j>=0;--j){rec[simpleFields[j].key]=(r[simpleFields[j].path]!==undefined)?r[simpleFields[j].path]:r[j];}for(j=fieldPaths.length-1;j>=0;--j){rec[fieldPaths[j].key]=walkPath(fieldPaths[j].path,r);}for(j=fieldParsers.length-1;j>=0;--j){var p=fieldParsers[j].key;rec[p]=fieldParsers[j].parser(rec[p]);if(rec[p]===undefined){rec[p]=null;}}}results[i]=rec;}}else{results=resultsList;}for(key in metaFields){if(lang.hasOwnProperty(metaFields,key)){path=buildPath(metaFields[key]);if(path){v=walkPath(path,oFullResponse);oParsedResponse.meta[key]=v;}}}}else{oParsedResponse.error=true;}oParsedResponse.results=results;}else{oParsedResponse.error=true;}return oParsedResponse;},parseHTMLTableData:function(oRequest,oFullResponse){var bError=false;var elTable=oFullResponse;var fields=this.responseSchema.fields;var oParsedResponse={results:[]};if(lang.isArray(fields)){for(var i=0;i<elTable.tBodies.length;i++){var elTbody=elTable.tBodies[i];for(var j=elTbody.rows.length-1;j>-1;j--){var elRow=elTbody.rows[j];var oResult={};for(var k=fields.length-1;k>-1;k--){var field=fields[k];var key=(lang.isValue(field.key))?field.key:field;
 var data=elRow.cells[k].innerHTML;if(!field.parser&&field.converter){field.parser=field.converter;}var parser=(typeof field.parser==="function")?field.parser:DS.Parser[field.parser+""];if(parser){data=parser.call(this,data);}if(data===undefined){data=null;}oResult[key]=data;}oParsedResponse.results[j]=oResult;}}}else{bError=true;}if(bError){oParsedResponse.error=true;}else{}return oParsedResponse;}};lang.augmentProto(DS,util.EventProvider);util.LocalDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_LOCAL;if(oLiveData){if(YAHOO.lang.isArray(oLiveData)){this.responseType=DS.TYPE_JSARRAY;}else{if(oLiveData.nodeType&&oLiveData.nodeType==9){this.responseType=DS.TYPE_XML;}else{if(oLiveData.nodeName&&(oLiveData.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE;oLiveData=oLiveData.cloneNode(true);}else{if(YAHOO.lang.isString(oLiveData)){this.responseType=DS.TYPE_TEXT;}else{if(YAHOO.lang.isObject(oLiveData)){this.responseType=DS.TYPE_JSON;}}}}}}else{oLiveData=[];this.responseType=DS.TYPE_JSARRAY;}util.LocalDataSource.superclass.constructor.call(this,oLiveData,oConfigs);};lang.extend(util.LocalDataSource,DS);lang.augmentObject(util.LocalDataSource,DS);util.FunctionDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_JSFUNCTION;oLiveData=oLiveData||function(){};util.FunctionDataSource.superclass.constructor.call(this,oLiveData,oConfigs);};lang.extend(util.FunctionDataSource,DS,{scope:null,makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});var oRawResponse=(this.scope)?this.liveData.call(this.scope,oRequest,this):this.liveData(oRequest);if(this.responseType===DS.TYPE_UNKNOWN){if(YAHOO.lang.isArray(oRawResponse)){this.responseType=DS.TYPE_JSARRAY;}else{if(oRawResponse&&oRawResponse.nodeType&&oRawResponse.nodeType==9){this.responseType=DS.TYPE_XML;}else{if(oRawResponse&&oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){this.responseType=DS.TYPE_HTMLTABLE;}else{if(YAHOO.lang.isObject(oRawResponse)){this.responseType=DS.TYPE_JSON;}else{if(YAHOO.lang.isString(oRawResponse)){this.responseType=DS.TYPE_TEXT;}}}}}}this.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId);return tId;}});lang.augmentObject(util.FunctionDataSource,DS);util.ScriptNodeDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_SCRIPTNODE;oLiveData=oLiveData||"";util.ScriptNodeDataSource.superclass.constructor.call(this,oLiveData,oConfigs);};lang.extend(util.ScriptNodeDataSource,DS,{getUtility:util.Get,asyncMode:"allowAll",scriptCallbackParam:"callback",generateRequestCallback:function(id){return"&"+this.scriptCallbackParam+"=YAHOO.util.ScriptNodeDataSource.callbacks["+id+"]";},doBeforeGetScriptNode:function(sUri){return sUri;},makeConnection:function(oRequest,oCallback,oCaller){var tId=DS._nTransactionId++;this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});if(util.ScriptNodeDataSource._nPending===0){util.ScriptNodeDataSource.callbacks=[];util.ScriptNodeDataSource._nId=0;}var id=util.ScriptNodeDataSource._nId;util.ScriptNodeDataSource._nId++;var oSelf=this;util.ScriptNodeDataSource.callbacks[id]=function(oRawResponse){if((oSelf.asyncMode!=="ignoreStaleResponses")||(id===util.ScriptNodeDataSource.callbacks.length-1)){if(oSelf.responseType===DS.TYPE_UNKNOWN){if(YAHOO.lang.isArray(oRawResponse)){oSelf.responseType=DS.TYPE_JSARRAY;}else{if(oRawResponse.nodeType&&oRawResponse.nodeType==9){oSelf.responseType=DS.TYPE_XML;}else{if(oRawResponse.nodeName&&(oRawResponse.nodeName.toLowerCase()=="table")){oSelf.responseType=DS.TYPE_HTMLTABLE;}else{if(YAHOO.lang.isObject(oRawResponse)){oSelf.responseType=DS.TYPE_JSON;}else{if(YAHOO.lang.isString(oRawResponse)){oSelf.responseType=DS.TYPE_TEXT;}}}}}}oSelf.handleResponse(oRequest,oRawResponse,oCallback,oCaller,tId);}else{}delete util.ScriptNodeDataSource.callbacks[id];};util.ScriptNodeDataSource._nPending++;var sUri=this.liveData+oRequest+this.generateRequestCallback(id);sUri=this.doBeforeGetScriptNode(sUri);this.getUtility.script(sUri,{autopurge:true,onsuccess:util.ScriptNodeDataSource._bumpPendingDown,onfail:util.ScriptNodeDataSource._bumpPendingDown});return tId;}});lang.augmentObject(util.ScriptNodeDataSource,DS);lang.augmentObject(util.ScriptNodeDataSource,{_nId:0,_nPending:0,callbacks:[]});util.XHRDataSource=function(oLiveData,oConfigs){this.dataType=DS.TYPE_XHR;this.connMgr=this.connMgr||util.Connect;oLiveData=oLiveData||"";util.XHRDataSource.superclass.constructor.call(this,oLiveData,oConfigs);};lang.extend(util.XHRDataSource,DS,{connMgr:null,connXhrMode:"allowAll",connMethodPost:false,connTimeout:0,makeConnection:function(oRequest,oCallback,oCaller){var oRawResponse=null;var tId=DS._nTransactionId++;this.fireEvent("requestEvent",{tId:tId,request:oRequest,callback:oCallback,caller:oCaller});var oSelf=this;var oConnMgr=this.connMgr;var oQueue=this._oQueue;var _xhrSuccess=function(oResponse){if(oResponse&&(this.connXhrMode=="ignoreStaleResponses")&&(oResponse.tId!=oQueue.conn.tId)){return null;}else{if(!oResponse){this.fireEvent("dataErrorEvent",{request:oRequest,response:null,callback:oCallback,caller:oCaller,message:DS.ERROR_DATANULL});DS.issueCallback(oCallback,[oRequest,{error:true}],true,oCaller);return null;}else{if(this.responseType===DS.TYPE_UNKNOWN){var ctype=(oResponse.getResponseHeader)?oResponse.getResponseHeader["Content-Type"]:null;if(ctype){if(ctype.indexOf("text/xml")>-1){this.responseType=DS.TYPE_XML;}else{if(ctype.indexOf("application/json")>-1){this.responseType=DS.TYPE_JSON;}else{if(ctype.indexOf("text/plain")>-1){this.responseType=DS.TYPE_TEXT;}}}}}this.handleResponse(oRequest,oResponse,oCallback,oCaller,tId);}}};var _xhrFailure=function(oResponse){this.fireEvent("dataErrorEvent",{request:oRequest,response:oResponse,callback:oCallback,caller:oCaller,message:DS.ERROR_DATAINVALID});if(lang.isString(this.liveData)&&lang.isString(oRequest)&&(this.liveData.lastIndexOf("?")!==this.liveData.length-1)&&(oRequest.indexOf("?")!==0)){}oResponse=oResponse||{};
 oResponse.error=true;DS.issueCallback(oCallback,[oRequest,oResponse],true,oCaller);return null;};var _xhrCallback={success:_xhrSuccess,failure:_xhrFailure,scope:this};if(lang.isNumber(this.connTimeout)){_xhrCallback.timeout=this.connTimeout;}if(this.connXhrMode=="cancelStaleRequests"){if(oQueue.conn){if(oConnMgr.abort){oConnMgr.abort(oQueue.conn);oQueue.conn=null;}else{}}}if(oConnMgr&&oConnMgr.asyncRequest){var sLiveData=this.liveData;var isPost=this.connMethodPost;var sMethod=(isPost)?"POST":"GET";var sUri=(isPost||!lang.isValue(oRequest))?sLiveData:sLiveData+oRequest;var sRequest=(isPost)?oRequest:null;if(this.connXhrMode!="queueRequests"){oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,_xhrCallback,sRequest);}else{if(oQueue.conn){var allRequests=oQueue.requests;allRequests.push({request:oRequest,callback:_xhrCallback});if(!oQueue.interval){oQueue.interval=setInterval(function(){if(oConnMgr.isCallInProgress(oQueue.conn)){return;}else{if(allRequests.length>0){sUri=(isPost||!lang.isValue(allRequests[0].request))?sLiveData:sLiveData+allRequests[0].request;sRequest=(isPost)?allRequests[0].request:null;oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,allRequests[0].callback,sRequest);allRequests.shift();}else{clearInterval(oQueue.interval);oQueue.interval=null;}}},50);}}else{oQueue.conn=oConnMgr.asyncRequest(sMethod,sUri,_xhrCallback,sRequest);}}}else{DS.issueCallback(oCallback,[oRequest,{error:true}],true,oCaller);}return tId;}});lang.augmentObject(util.XHRDataSource,DS);util.DataSource=function(oLiveData,oConfigs){oConfigs=oConfigs||{};var dataType=oConfigs.dataType;if(dataType){if(dataType==DS.TYPE_LOCAL){lang.augmentObject(util.DataSource,util.LocalDataSource);return new util.LocalDataSource(oLiveData,oConfigs);}else{if(dataType==DS.TYPE_XHR){lang.augmentObject(util.DataSource,util.XHRDataSource);return new util.XHRDataSource(oLiveData,oConfigs);}else{if(dataType==DS.TYPE_SCRIPTNODE){lang.augmentObject(util.DataSource,util.ScriptNodeDataSource);return new util.ScriptNodeDataSource(oLiveData,oConfigs);}else{if(dataType==DS.TYPE_JSFUNCTION){lang.augmentObject(util.DataSource,util.FunctionDataSource);return new util.FunctionDataSource(oLiveData,oConfigs);}}}}}if(YAHOO.lang.isString(oLiveData)){lang.augmentObject(util.DataSource,util.XHRDataSource);return new util.XHRDataSource(oLiveData,oConfigs);}else{if(YAHOO.lang.isFunction(oLiveData)){lang.augmentObject(util.DataSource,util.FunctionDataSource);return new util.FunctionDataSource(oLiveData,oConfigs);}else{lang.augmentObject(util.DataSource,util.LocalDataSource);return new util.LocalDataSource(oLiveData,oConfigs);}}};lang.augmentObject(util.DataSource,DS);})();YAHOO.util.Number={format:function(B,E){if(!isFinite(+B)){return"";}B=!isFinite(+B)?0:+B;E=YAHOO.lang.merge(YAHOO.util.Number.format.defaults,(E||{}));var C=B<0,F=Math.abs(B),A=E.decimalPlaces,I=E.thousandsSeparator,H,G,D;if(A<0){H=F-(F%1)+"";D=H.length+A;if(D>0){H=Number("."+H).toFixed(D).slice(2)+new Array(H.length-D+1).join("0");}else{H="0";}}else{H=F<1&&F>=0.5&&!A?"1":F.toFixed(A);}if(F>1000){G=H.split(/\D/);D=G[0].length%3||3;G[0]=G[0].slice(0,D)+G[0].slice(D).replace(/(\d{3})/g,I+"$1");H=G.join(E.decimalSeparator);}H=E.prefix+H+E.suffix;return C?E.negativeFormat.replace(/#/,H):H;}};YAHOO.util.Number.format.defaults={decimalSeparator:".",decimalPlaces:null,thousandsSeparator:"",prefix:"",suffix:"",negativeFormat:"-#"};(function(){var A=function(C,E,D){if(typeof D==="undefined"){D=10;}for(;parseInt(C,10)<D&&D>1;D/=10){C=E.toString()+C;}return C.toString();};var B={formats:{a:function(D,C){return C.a[D.getDay()];},A:function(D,C){return C.A[D.getDay()];},b:function(D,C){return C.b[D.getMonth()];},B:function(D,C){return C.B[D.getMonth()];},C:function(C){return A(parseInt(C.getFullYear()/100,10),0);},d:["getDate","0"],e:["getDate"," "],g:function(C){return A(parseInt(B.formats.G(C)%100,10),0);},G:function(E){var F=E.getFullYear();var D=parseInt(B.formats.V(E),10);var C=parseInt(B.formats.W(E),10);if(C>D){F++;}else{if(C===0&&D>=52){F--;}}return F;},H:["getHours","0"],I:function(D){var C=D.getHours()%12;return A(C===0?12:C,0);},j:function(G){var F=new Date(""+G.getFullYear()+"/1/1 GMT");var D=new Date(""+G.getFullYear()+"/"+(G.getMonth()+1)+"/"+G.getDate()+" GMT");var C=D-F;var E=parseInt(C/60000/60/24,10)+1;return A(E,0,100);},k:["getHours"," "],l:function(D){var C=D.getHours()%12;return A(C===0?12:C," ");},m:function(C){return A(C.getMonth()+1,0);},M:["getMinutes","0"],p:function(D,C){return C.p[D.getHours()>=12?1:0];},P:function(D,C){return C.P[D.getHours()>=12?1:0];},s:function(D,C){return parseInt(D.getTime()/1000,10);},S:["getSeconds","0"],u:function(C){var D=C.getDay();return D===0?7:D;},U:function(F){var C=parseInt(B.formats.j(F),10);var E=6-F.getDay();var D=parseInt((C+E)/7,10);return A(D,0);},V:function(F){var E=parseInt(B.formats.W(F),10);var C=(new Date(""+F.getFullYear()+"/1/1")).getDay();var D=E+(C>4||C<=1?0:1);if(D===53&&(new Date(""+F.getFullYear()+"/12/31")).getDay()<4){D=1;}else{if(D===0){D=B.formats.V(new Date(""+(F.getFullYear()-1)+"/12/31"));}}return A(D,0);},w:"getDay",W:function(F){var C=parseInt(B.formats.j(F),10);var E=7-B.formats.u(F);var D=parseInt((C+E)/7,10);return A(D,0,10);},y:function(C){return A(C.getFullYear()%100,0);},Y:"getFullYear",z:function(E){var D=E.getTimezoneOffset();var C=A(parseInt(Math.abs(D/60),10),0);var F=A(Math.abs(D%60),0);return(D>0?"-":"+")+C+F;},Z:function(C){var D=C.toString().replace(/^.*:\d\d( GMT[+-]\d+)? \(?([A-Za-z ]+)\)?\d*$/,"$2").replace(/[a-z ]/g,"");if(D.length>4){D=B.formats.z(C);}return D;},"%":function(C){return"%";}},aggregates:{c:"locale",D:"%m/%d/%y",F:"%Y-%m-%d",h:"%b",n:"\n",r:"locale",R:"%H:%M",t:"\t",T:"%H:%M:%S",x:"locale",X:"locale"},format:function(G,F,D){F=F||{};if(!(G instanceof Date)){return YAHOO.lang.isValue(G)?G:"";}var H=F.format||"%m/%d/%Y";if(H==="YYYY/MM/DD"){H="%Y/%m/%d";}else{if(H==="DD/MM/YYYY"){H="%d/%m/%Y";}else{if(H==="MM/DD/YYYY"){H="%m/%d/%Y";}}}D=D||"en";if(!(D in YAHOO.util.DateLocale)){if(D.replace(/-[a-zA-Z]+$/,"") in YAHOO.util.DateLocale){D=D.replace(/-[a-zA-Z]+$/,"");
-}else{D="en";}}var J=YAHOO.util.DateLocale[D];var C=function(L,K){var M=B.aggregates[K];return(M==="locale"?J[K]:M);};var E=function(L,K){var M=B.formats[K];if(typeof M==="string"){return G[M]();}else{if(typeof M==="function"){return M.call(G,G,J);}else{if(typeof M==="object"&&typeof M[0]==="string"){return A(G[M[0]](),M[1]);}else{return K;}}}};while(H.match(/%[cDFhnrRtTxX]/)){H=H.replace(/%([cDFhnrRtTxX])/g,C);}var I=H.replace(/%([aAbBCdegGHIjklmMpPsSuUVwWyYzZ%])/g,E);C=E=undefined;return I;}};YAHOO.namespace("YAHOO.util");YAHOO.util.Date=B;YAHOO.util.DateLocale={a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a %d %b %Y %T %Z",p:["AM","PM"],P:["am","pm"],r:"%I:%M:%S %p",x:"%d/%m/%y",X:"%T"};YAHOO.util.DateLocale["en"]=YAHOO.lang.merge(YAHOO.util.DateLocale,{});YAHOO.util.DateLocale["en-US"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"],{c:"%a %d %b %Y %I:%M:%S %p %Z",x:"%m/%d/%Y",X:"%I:%M:%S %p"});YAHOO.util.DateLocale["en-GB"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"],{r:"%l:%M:%S %P %Z"});YAHOO.util.DateLocale["en-AU"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"]);})();YAHOO.register("datasource",YAHOO.util.DataSource,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}else{D="en";}}var J=YAHOO.util.DateLocale[D];var C=function(L,K){var M=B.aggregates[K];return(M==="locale"?J[K]:M);};var E=function(L,K){var M=B.formats[K];if(typeof M==="string"){return G[M]();}else{if(typeof M==="function"){return M.call(G,G,J);}else{if(typeof M==="object"&&typeof M[0]==="string"){return A(G[M[0]](),M[1]);}else{return K;}}}};while(H.match(/%[cDFhnrRtTxX]/)){H=H.replace(/%([cDFhnrRtTxX])/g,C);}var I=H.replace(/%([aAbBCdegGHIjklmMpPsSuUVwWyYzZ%])/g,E);C=E=undefined;return I;}};YAHOO.namespace("YAHOO.util");YAHOO.util.Date=B;YAHOO.util.DateLocale={a:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],A:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],b:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],B:["January","February","March","April","May","June","July","August","September","October","November","December"],c:"%a %d %b %Y %T %Z",p:["AM","PM"],P:["am","pm"],r:"%I:%M:%S %p",x:"%d/%m/%y",X:"%T"};YAHOO.util.DateLocale["en"]=YAHOO.lang.merge(YAHOO.util.DateLocale,{});YAHOO.util.DateLocale["en-US"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"],{c:"%a %d %b %Y %I:%M:%S %p %Z",x:"%m/%d/%Y",X:"%I:%M:%S %p"});YAHOO.util.DateLocale["en-GB"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"],{r:"%l:%M:%S %P %Z"});YAHOO.util.DateLocale["en-AU"]=YAHOO.lang.merge(YAHOO.util.DateLocale["en"]);})();YAHOO.register("datasource",YAHOO.util.DataSource,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/datasource/datasource.js b/build/datasource/datasource.js
index 938c028..6d8e66d 100644
--- a/build/datasource/datasource.js
+++ b/build/datasource/datasource.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 
@@ -2993,4 +2993,4 @@ var xPad=function (x, pad, r)
 
 })();
 
-YAHOO.register("datasource", YAHOO.util.DataSource, {version: "2.8.1", build: "19"});
+YAHOO.register("datasource", YAHOO.util.DataSource, {version: "2.8.2r1", build: "7"});
diff --git a/build/datatable/assets/datatable-core.css b/build/datatable/assets/datatable-core.css
index b6a15a1..c0bf312 100644
--- a/build/datatable/assets/datatable-core.css
+++ b/build/datatable/assets/datatable-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* foundational CSS */
 
diff --git a/build/datatable/assets/datatable.css b/build/datatable/assets/datatable.css
index d29f297..196a159 100644
--- a/build/datatable/assets/datatable.css
+++ b/build/datatable/assets/datatable.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /*foundational css*/
 .yui-dt-table th, .yui-dt-table td {
diff --git a/build/datatable/assets/skins/sam/datatable-skin.css b/build/datatable/assets/skins/sam/datatable-skin.css
index f8cfaae..7319290 100644
--- a/build/datatable/assets/skins/sam/datatable-skin.css
+++ b/build/datatable/assets/skins/sam/datatable-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* basic skin styles */
 .yui-skin-sam .yui-dt table {
diff --git a/build/datatable/assets/skins/sam/datatable.css b/build/datatable/assets/skins/sam/datatable.css
index bccee47..47f5f2b 100644
--- a/build/datatable/assets/skins/sam/datatable.css
+++ b/build/datatable/assets/skins/sam/datatable.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-dt-mask{position:absolute;z-index:9500;}.yui-dt-tmp{position:absolute;left:-9000px;}.yui-dt-scrollable .yui-dt-bd{overflow:auto;}.yui-dt-scrollable .yui-dt-hd{overflow:hidden;position:relative;}.yui-dt-scrollable .yui-dt-bd thead tr,.yui-dt-scrollable .yui-dt-bd thead th{position:absolute;left:-1500px;}.yui-dt-scrollable tbody{-moz-outline:none;}.yui-skin-sam thead .yui-dt-sortable{cursor:pointer;}.yui-skin-sam thead .yui-dt-draggable{cursor:move;}.yui-dt-coltarget{position:absolute;z-index:999;}.yui-dt-hd{zoom:1;}th.yui-dt-resizeable .yui-dt-resizerliner{position:relative;}.yui-dt-resizer{position:absolute;right:0;bottom:0;height:100%;cursor:e-resize;cursor:col-resize;background-color:#CCC;opacity:0;filter:alpha(opacity=0);}.yui-dt-resizerproxy{visibility:hidden;position:absolute;z-index:9000;background-color:#CCC;opacity:0;filter:alpha(opacity=0);}th.yui-dt-hidden .yui-dt-liner,td.yui-dt-hidden .yui-dt-liner,th.yui-dt-hidden .yui-dt-resizer{display:none;}.yui-dt-editor{position:absolute;z-index:9000;}.yui-skin-sam .yui-dt table{margin:0;padding:0;font-family:arial;font-size:inherit;border-collapse:separate;*border-collapse:collapse;border-spacing:0;border:1px solid #7F7F7F;}.yui-skin-sam .yui-dt thead{border-spacing:0;}.yui-skin-sam .yui-dt caption{color:#000;font-size:85%;font-weight:normal;font-style:italic;line-height:1;padding:1em 0;text-align:center;}.yui-skin-sam .yui-dt th{background:#D8D8DA url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;}.yui-skin-sam .yui-dt th,.yui-skin-sam .yui-dt th a{font-weight:normal;text-decoration:none;color:#000;vertical-align:bottom;}.yui-skin-sam .yui-dt th{margin:0;padding:0;border:none;border-right:1px solid #CBCBCB;}.yui-skin-sam .yui-dt tr.yui-dt-first td{border-top:1px solid #7F7F7F;}.yui-skin-sam .yui-dt th .yui-dt-liner{white-space:nowrap;}.yui-skin-sam .yui-dt-liner{margin:0;padding:0;padding:4px 10px 4px 10px;}.yui-skin-sam .yui-dt-coltarget{width:5px;background-color:red;}.yui-skin-sam .yui-dt td{margin:0;padding:0;border:none;border-right:1px solid #CBCBCB;text-align:left;}.yui-skin-sam .yui-dt-list td{border-right:none;}.yui-skin-sam .yui-dt-resizer{width:6px;}.yui-skin-sam .yui-dt-mask{background-color:#000;opacity:.25;filter:alpha(opacity=25);}.yui-skin-sam .yui-dt-message{background-color:#FFF;}.yui-skin-sam .yui-dt-scrollable table{border:none;}.yui-skin-sam .yui-dt-scrollable .yui-dt-hd{border-left:1px solid #7F7F7F;border-top:1px solid #7F7F7F;border-right:1px solid #7F7F7F;}.yui-skin-sam .yui-dt-scrollable .yui-dt-bd{border-left:1px solid #7F7F7F;border-bottom:1px solid #7F7F7F;border-right:1px solid #7F7F7F;background-color:#FFF;}.yui-skin-sam .yui-dt-scrollable .yui-dt-data tr.yui-dt-last td{border-bottom:1px solid #7F7F7F;}.yui-skin-sam th.yui-dt-asc,.yui-skin-sam th.yui-dt-desc{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -100px;}.yui-skin-sam th.yui-dt-sortable .yui-dt-label{margin-right:10px;}.yui-skin-sam th.yui-dt-asc .yui-dt-liner{background:url(dt-arrow-up.png) no-repeat right;}.yui-skin-sam th.yui-dt-desc .yui-dt-liner{background:url(dt-arrow-dn.png) no-repeat right;}tbody .yui-dt-editable{cursor:pointer;}.yui-dt-editor{text-align:left;background-color:#F2F2F2;border:1px solid #808080;padding:6px;}.yui-dt-editor label{padding-left:4px;padding-right:6px;}.yui-dt-editor .yui-dt-button{padding-top:6px;text-align:right;}.yui-dt-editor .yui-dt-button button{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;border:1px solid #999;width:4em;height:1.8em;margin-left:6px;}.yui-dt-editor .yui-dt-button button.yui-dt-default{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1400px;background-color:#5584E0;border:1px solid #304369;color:#FFF;}.yui-dt-editor .yui-dt-button button:hover{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1300px;color:#000;}.yui-dt-editor .yui-dt-button button:active{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1700px;color:#000;}.yui-skin-sam tr.yui-dt-even{background-color:#FFF;}.yui-skin-sam tr.yui-dt-odd{background-color:#EDF5FF;}.yui-skin-sam tr.yui-dt-even td.yui-dt-asc,.yui-skin-sam tr.yui-dt-even td.yui-dt-desc{background-color:#EDF5FF;}.yui-skin-sam tr.yui-dt-odd td.yui-dt-asc,.yui-skin-sam tr.yui-dt-odd td.yui-dt-desc{background-color:#DBEAFF;}.yui-skin-sam .yui-dt-list tr.yui-dt-even{background-color:#FFF;}.yui-skin-sam .yui-dt-list tr.yui-dt-odd{background-color:#FFF;}.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-asc,.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-desc{background-color:#EDF5FF;}.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-asc,.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-desc{background-color:#EDF5FF;}.yui-skin-sam th.yui-dt-highlighted,.yui-skin-sam th.yui-dt-highlighted a{background-color:#B2D2FF;}.yui-skin-sam tr.yui-dt-highlighted,.yui-skin-sam tr.yui-dt-highlighted td.yui-dt-asc,.yui-skin-sam tr.yui-dt-highlighted td.yui-dt-desc,.yui-skin-sam tr.yui-dt-even td.yui-dt-highlighted,.yui-skin-sam tr.yui-dt-odd td.yui-dt-highlighted{cursor:pointer;background-color:#B2D2FF;}.yui-skin-sam .yui-dt-list th.yui-dt-highlighted,.yui-skin-sam .yui-dt-list th.yui-dt-highlighted a{background-color:#B2D2FF;}.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted,.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-asc,.yui-skin-sam .yui-dt-list tr.yui-dt-highlighted td.yui-dt-desc,.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-highlighted,.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-highlighted{cursor:pointer;background-color:#B2D2FF;}.yui-skin-sam th.yui-dt-selected,.yui-skin-sam th.yui-dt-selected a{background-color:#446CD7;}.yui-skin-sam tr.yui-dt-selected td,.yui-skin-sam tr.yui-dt-selected td.yui-dt-asc,.yui-skin-sam tr.yui-dt-selected td.yui-dt-desc{background-color:#426FD9;color:#FFF;}.yui-skin-sam tr.yui-dt-even td.yui-dt-selected,.yui-skin-sam tr.yui-dt-odd td.yui-dt-selected{background-color:#446CD7;color:#FFF;}.yui-skin-sam .yui-dt-list th.yui-dt-selected,.yui-skin-sam .yui-dt-list th.yui-dt-selected a{background-color:#446CD7;}
 .yui-skin-sam .yui-dt-list tr.yui-dt-selected td,.yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-asc,.yui-skin-sam .yui-dt-list tr.yui-dt-selected td.yui-dt-desc{background-color:#426FD9;color:#FFF;}.yui-skin-sam .yui-dt-list tr.yui-dt-even td.yui-dt-selected,.yui-skin-sam .yui-dt-list tr.yui-dt-odd td.yui-dt-selected{background-color:#446CD7;color:#FFF;}.yui-skin-sam .yui-dt-paginator{display:block;margin:6px 0;white-space:nowrap;}.yui-skin-sam .yui-dt-paginator .yui-dt-first,.yui-skin-sam .yui-dt-paginator .yui-dt-last,.yui-skin-sam .yui-dt-paginator .yui-dt-selected{padding:2px 6px;}.yui-skin-sam .yui-dt-paginator a.yui-dt-first,.yui-skin-sam .yui-dt-paginator a.yui-dt-last{text-decoration:none;}.yui-skin-sam .yui-dt-paginator .yui-dt-previous,.yui-skin-sam .yui-dt-paginator .yui-dt-next{display:none;}.yui-skin-sam a.yui-dt-page{border:1px solid #CBCBCB;padding:2px 6px;text-decoration:none;background-color:#fff;}.yui-skin-sam .yui-dt-selected{border:1px solid #fff;background-color:#fff;}
diff --git a/build/datatable/datatable-debug.js b/build/datatable/datatable-debug.js
index 444a13f..d92cfa7 100644
--- a/build/datatable/datatable-debug.js
+++ b/build/datatable/datatable-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Mechanism to execute a series of callbacks in a non-blocking queue.  Each callback is executed via setTimout unless configured with a negative timeout, in which case it is run in blocking mode in the same execution thread as the previous callback.  Callbacks can be function references or object literals with the following keys:
@@ -17357,4 +17357,4 @@ lang.augmentObject(CE, BCE);
 
 })();
 
-YAHOO.register("datatable", YAHOO.widget.DataTable, {version: "2.8.1", build: "19"});
+YAHOO.register("datatable", YAHOO.widget.DataTable, {version: "2.8.2r1", build: "7"});
diff --git a/build/datatable/datatable-min.js b/build/datatable/datatable-min.js
index f9b5992..bccc460 100644
--- a/build/datatable/datatable-min.js
+++ b/build/datatable/datatable-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.util.Chain=function(){this.q=[].slice.call(arguments);this.createEvent("end");};YAHOO.util.Chain.prototype={id:0,run:function(){var F=this.q[0],C;if(!F){this.fireEvent("end");return this;}else{if(this.id){return this;}}C=F.method||F;if(typeof C==="function"){var E=F.scope||{},B=F.argument||[],A=F.timeout||0,D=this;if(!(B instanceof Array)){B=[B];}if(A<0){this.id=A;if(F.until){for(;!F.until();){C.apply(E,B);}}else{if(F.iterations){for(;F.iterations-->0;){C.apply(E,B);}}else{C.apply(E,B);}}this.q.shift();this.id=0;return this.run();}else{if(F.until){if(F.until()){this.q.shift();return this.run();}}else{if(!F.iterations||!--F.iterations){this.q.shift();}}this.id=setTimeout(function(){C.apply(E,B);if(D.id){D.id=0;D.run();}},A);}}return this;},add:function(A){this.q.push(A);return this;},pause:function(){if(this.id>0){clearTimeout(this.id);}this.id=0;return this;},stop:function(){this.pause();this.q=[];return this;}};YAHOO.lang.augmentProto(YAHOO.util.Chain,YAHOO.util.EventProvider);YAHOO.widget.ColumnSet=function(A){this._sId="yui-cs"+YAHOO.widget.ColumnSet._nCount;A=YAHOO.widget.DataTable._cloneObject(A);this._init(A);YAHOO.widget.ColumnSet._nCount++;};YAHOO.widget.ColumnSet._nCount=0;YAHOO.widget.ColumnSet.prototype={_sId:null,_aDefinitions:null,tree:null,flat:null,keys:null,headers:null,_init:function(I){var J=[];var A=[];var G=[];var E=[];var C=-1;var B=function(M,S){C++;if(!J[C]){J[C]=[];}for(var O=0;O<M.length;O++){var K=M[O];var Q=new YAHOO.widget.Column(K);K.yuiColumnId=Q._sId;A.push(Q);if(S){Q._oParent=S;}if(YAHOO.lang.isArray(K.children)){Q.children=K.children;var R=0;var P=function(V){var W=V.children;for(var U=0;U<W.length;U++){if(YAHOO.lang.isArray(W[U].children)){P(W[U]);}else{R++;}}};P(K);Q._nColspan=R;var T=K.children;for(var N=0;N<T.length;N++){var L=T[N];if(Q.className&&(L.className===undefined)){L.className=Q.className;}if(Q.editor&&(L.editor===undefined)){L.editor=Q.editor;}if(Q.editorOptions&&(L.editorOptions===undefined)){L.editorOptions=Q.editorOptions;}if(Q.formatter&&(L.formatter===undefined)){L.formatter=Q.formatter;}if(Q.resizeable&&(L.resizeable===undefined)){L.resizeable=Q.resizeable;}if(Q.sortable&&(L.sortable===undefined)){L.sortable=Q.sortable;}if(Q.hidden){L.hidden=true;}if(Q.width&&(L.width===undefined)){L.width=Q.width;}if(Q.minWidth&&(L.minWidth===undefined)){L.minWidth=Q.minWidth;}if(Q.maxAutoWidth&&(L.maxAutoWidth===undefined)){L.maxAutoWidth=Q.maxAutoWidth;}if(Q.type&&(L.type===undefined)){L.type=Q.type;}if(Q.type&&!Q.formatter){Q.formatter=Q.type;}if(Q.text&&!YAHOO.lang.isValue(Q.label)){Q.label=Q.text;}if(Q.parser){}if(Q.sortOptions&&((Q.sortOptions.ascFunction)||(Q.sortOptions.descFunction))){}}if(!J[C+1]){J[C+1]=[];}B(T,Q);}else{Q._nKeyIndex=G.length;Q._nColspan=1;G.push(Q);}J[C].push(Q);}C--;};if(YAHOO.lang.isArray(I)){B(I);this._aDefinitions=I;}else{return null;}var F;var D=function(L){var M=1;var O;var N;var P=function(T,S){S=S||1;for(var U=0;U<T.length;U++){var R=T[U];if(YAHOO.lang.isArray(R.children)){S++;P(R.children,S);S--;}else{if(S>M){M=S;}}}};for(var K=0;K<L.length;K++){O=L[K];P(O);for(var Q=0;Q<O.length;Q++){N=O[Q];if(!YAHOO.lang.isArray(N.children)){N._nRowspan=M;}else{N._nRowspan=1;}}M=1;}};D(J);for(F=0;F<J[0].length;F++){J[0][F]._nTreeIndex=F;}var H=function(K,L){E[K].push(L.getSanitizedKey());if(L._oParent){H(K,L._oParent);}};for(F=0;F<G.length;F++){E[F]=[];H(F,G[F]);E[F]=E[F].reverse();}this.tree=J;this.flat=A;this.keys=G;this.headers=E;},getId:function(){return this._sId;},toString:function(){return"ColumnSet instance "+this._sId;},getDefinitions:function(){var A=this._aDefinitions;var B=function(E,G){for(var D=0;D<E.length;D++){var F=E[D];var I=G.getColumnById(F.yuiColumnId);if(I){var H=I.getDefinition();for(var C in H){if(YAHOO.lang.hasOwnProperty(H,C)){F[C]=H[C];}}}if(YAHOO.lang.isArray(F.children)){B(F.children,G);}}};B(A,this);this._aDefinitions=A;return A;},getColumnById:function(C){if(YAHOO.lang.isString(C)){var A=this.flat;for(var B=A.length-1;B>-1;B--){if(A[B]._sId===C){return A[B];}}}return null;},getColumn:function(C){if(YAHOO.lang.isNumber(C)&&this.keys[C]){return this.keys[C];}else{if(YAHOO.lang.isString(C)){var A=this.flat;var D=[];for(var B=0;B<A.length;B++){if(A[B].key===C){D.push(A[B]);}}if(D.length===1){return D[0];}else{if(D.length>1){return D;}}}}return null;},getDescendants:function(D){var B=this;var C=[];var A;var E=function(F){C.push(F);if(F.children){for(A=0;A<F.children.length;A++){E(B.getColumn(F.children[A].key));}}};E(D);return C;}};YAHOO.widget.Column=function(B){this._sId="yui-col"+YAHOO.widget.Column._nCount;if(B&&YAHOO.lang.isObject(B)){for(var A in B){if(A){this[A]=B[A];}}}if(!YAHOO.lang.isValue(this.key)){this.key="yui-dt-col"+YAHOO.widget.Column._nCount;}if(!YAHOO.lang.isValue(this.field)){this.field=this.key;}YAHOO.widget.Column._nCount++;if(this.width&&!YAHOO.lang.isNumber(this.width)){this.width=null;}if(this.editor&&YAHOO.lang.isString(this.editor)){this.editor=new YAHOO.widget.CellEditor(this.editor,this.editorOptions);}};YAHOO.lang.augmentObject(YAHOO.widget.Column,{_nCount:0,formatCheckbox:function(B,A,C,D){YAHOO.widget.DataTable.formatCheckbox(B,A,C,D);},formatCurrency:function(B,A,C,D){YAHOO.widget.DataTable.formatCurrency(B,A,C,D);},formatDate:function(B,A,C,D){YAHOO.widget.DataTable.formatDate(B,A,C,D);},formatEmail:function(B,A,C,D){YAHOO.widget.DataTable.formatEmail(B,A,C,D);},formatLink:function(B,A,C,D){YAHOO.widget.DataTable.formatLink(B,A,C,D);},formatNumber:function(B,A,C,D){YAHOO.widget.DataTable.formatNumber(B,A,C,D);},formatSelect:function(B,A,C,D){YAHOO.widget.DataTable.formatDropdown(B,A,C,D);}});YAHOO.widget.Column.prototype={_sId:null,_nKeyIndex:null,_nTreeIndex:null,_nColspan:1,_nRowspan:1,_oParent:null,_elTh:null,_elThLiner:null,_elThLabel:null,_elResizer:null,_nWidth:null,_dd:null,_ddResizer:null,key:null,field:null,label:null,abbr:null,children:null,width:null,minWidth:null,maxAutoWidth:null,hidden:false,selected:false,className:null,formatter:null,currencyOptions:null,dateOptions:null,dropdownOptions:null,editor:null,resizeable:false,sortable:false,sortOptions:null,getId:function(){return this._sId;
 },toString:function(){return"Column instance "+this._sId;},getDefinition:function(){var A={};A.abbr=this.abbr;A.className=this.className;A.editor=this.editor;A.editorOptions=this.editorOptions;A.field=this.field;A.formatter=this.formatter;A.hidden=this.hidden;A.key=this.key;A.label=this.label;A.minWidth=this.minWidth;A.maxAutoWidth=this.maxAutoWidth;A.resizeable=this.resizeable;A.selected=this.selected;A.sortable=this.sortable;A.sortOptions=this.sortOptions;A.width=this.width;return A;},getKey:function(){return this.key;},getField:function(){return this.field;},getSanitizedKey:function(){return this.getKey().replace(/[^\w\-]/g,"");},getKeyIndex:function(){return this._nKeyIndex;},getTreeIndex:function(){return this._nTreeIndex;},getParent:function(){return this._oParent;},getColspan:function(){return this._nColspan;},getColSpan:function(){return this.getColspan();},getRowspan:function(){return this._nRowspan;},getThEl:function(){return this._elTh;},getThLinerEl:function(){return this._elThLiner;},getResizerEl:function(){return this._elResizer;},getColEl:function(){return this.getThEl();},getIndex:function(){return this.getKeyIndex();},format:function(){}};YAHOO.util.Sort={compare:function(B,A,C){if((B===null)||(typeof B=="undefined")){if((A===null)||(typeof A=="undefined")){return 0;}else{return 1;}}else{if((A===null)||(typeof A=="undefined")){return -1;}}if(B.constructor==String){B=B.toLowerCase();}if(A.constructor==String){A=A.toLowerCase();}if(B<A){return(C)?1:-1;}else{if(B>A){return(C)?-1:1;}else{return 0;}}}};YAHOO.widget.ColumnDD=function(D,A,C,B){if(D&&A&&C&&B){this.datatable=D;this.table=D.getTableEl();this.column=A;this.headCell=C;this.pointer=B;this.newIndex=null;this.init(C);this.initFrame();this.invalidHandleTypes={};this.setPadding(10,0,(this.datatable.getTheadEl().offsetHeight+10),0);YAHOO.util.Event.on(window,"resize",function(){this.initConstraints();},this,true);}else{}};if(YAHOO.util.DDProxy){YAHOO.extend(YAHOO.widget.ColumnDD,YAHOO.util.DDProxy,{initConstraints:function(){var G=YAHOO.util.Dom.getRegion(this.table),D=this.getEl(),F=YAHOO.util.Dom.getXY(D),C=parseInt(YAHOO.util.Dom.getStyle(D,"width"),10),A=parseInt(YAHOO.util.Dom.getStyle(D,"height"),10),E=((F[0]-G.left)+15),B=((G.right-F[0]-C)+15);this.setXConstraint(E,B);this.setYConstraint(10,10);},_resizeProxy:function(){YAHOO.widget.ColumnDD.superclass._resizeProxy.apply(this,arguments);var A=this.getDragEl(),B=this.getEl();YAHOO.util.Dom.setStyle(this.pointer,"height",(this.table.parentNode.offsetHeight+10)+"px");YAHOO.util.Dom.setStyle(this.pointer,"display","block");var C=YAHOO.util.Dom.getXY(B);YAHOO.util.Dom.setXY(this.pointer,[C[0],(C[1]-5)]);YAHOO.util.Dom.setStyle(A,"height",this.datatable.getContainerEl().offsetHeight+"px");YAHOO.util.Dom.setStyle(A,"width",(parseInt(YAHOO.util.Dom.getStyle(A,"width"),10)+4)+"px");YAHOO.util.Dom.setXY(this.dragEl,C);},onMouseDown:function(){this.initConstraints();this.resetConstraints();},clickValidator:function(B){if(!this.column.hidden){var A=YAHOO.util.Event.getTarget(B);return(this.isValidHandleChild(A)&&(this.id==this.handleElId||this.DDM.handleWasClicked(A,this.id)));}},onDragOver:function(H,A){var F=this.datatable.getColumn(A);if(F){var C=F.getTreeIndex();while((C===null)&&F.getParent()){F=F.getParent();C=F.getTreeIndex();}if(C!==null){var B=F.getThEl();var K=C;var D=YAHOO.util.Event.getPageX(H),I=YAHOO.util.Dom.getX(B),J=I+((YAHOO.util.Dom.get(B).offsetWidth)/2),E=this.column.getTreeIndex();if(D<J){YAHOO.util.Dom.setX(this.pointer,I);}else{var G=parseInt(B.offsetWidth,10);YAHOO.util.Dom.setX(this.pointer,(I+G));K++;}if(C>E){K--;}if(K<0){K=0;}else{if(K>this.datatable.getColumnSet().tree[0].length){K=this.datatable.getColumnSet().tree[0].length;}}this.newIndex=K;}}},onDragDrop:function(){this.datatable.reorderColumn(this.column,this.newIndex);},endDrag:function(){this.newIndex=null;YAHOO.util.Dom.setStyle(this.pointer,"display","none");}});}YAHOO.util.ColumnResizer=function(E,C,D,A,B){if(E&&C&&D&&A){this.datatable=E;this.column=C;this.headCell=D;this.headCellLiner=C.getThLinerEl();this.resizerLiner=D.firstChild;this.init(A,A,{dragOnly:true,dragElId:B.id});this.initFrame();this.resetResizerEl();this.setPadding(0,1,0,0);}else{}};if(YAHOO.util.DD){YAHOO.extend(YAHOO.util.ColumnResizer,YAHOO.util.DDProxy,{resetResizerEl:function(){var A=YAHOO.util.Dom.get(this.handleElId).style;A.left="auto";A.right=0;A.top="auto";A.bottom=0;A.height=this.headCell.offsetHeight+"px";},onMouseUp:function(G){var E=this.datatable.getColumnSet().keys,B;for(var C=0,A=E.length;C<A;C++){B=E[C];if(B._ddResizer){B._ddResizer.resetResizerEl();}}this.resetResizerEl();var D=this.headCellLiner;var F=D.offsetWidth-(parseInt(YAHOO.util.Dom.getStyle(D,"paddingLeft"),10)|0)-(parseInt(YAHOO.util.Dom.getStyle(D,"paddingRight"),10)|0);this.datatable.fireEvent("columnResizeEvent",{column:this.column,target:this.headCell,width:F});},onMouseDown:function(A){this.startWidth=this.headCellLiner.offsetWidth;this.startX=YAHOO.util.Event.getXY(A)[0];this.nLinerPadding=(parseInt(YAHOO.util.Dom.getStyle(this.headCellLiner,"paddingLeft"),10)|0)+(parseInt(YAHOO.util.Dom.getStyle(this.headCellLiner,"paddingRight"),10)|0);},clickValidator:function(B){if(!this.column.hidden){var A=YAHOO.util.Event.getTarget(B);return(this.isValidHandleChild(A)&&(this.id==this.handleElId||this.DDM.handleWasClicked(A,this.id)));}},startDrag:function(){var E=this.datatable.getColumnSet().keys,D=this.column.getKeyIndex(),B;for(var C=0,A=E.length;C<A;C++){B=E[C];if(B._ddResizer){YAHOO.util.Dom.get(B._ddResizer.handleElId).style.height="1em";}}},onDrag:function(C){var D=YAHOO.util.Event.getXY(C)[0];if(D>YAHOO.util.Dom.getX(this.headCellLiner)){var A=D-this.startX;var B=this.startWidth+A-this.nLinerPadding;if(B>0){this.datatable.setColumnWidth(this.column,B);}}}});}(function(){var G=YAHOO.lang,A=YAHOO.util,E=YAHOO.widget,C=A.Dom,F=A.Event,D=E.DataTable;YAHOO.widget.RecordSet=function(H){this._sId="yui-rs"+E.RecordSet._nCount;E.RecordSet._nCount++;this._records=[];
@@ -26,4 +26,4 @@ if(I=="single"){this._handleSingleSelectionByMouse(J);}else{this._handleStandard
 this.subscribe("columnShowEvent",this._onColumnChange);};var H=E.ScrollingDataTable;C.augmentObject(H,{CLASS_HEADER:"yui-dt-hd",CLASS_BODY:"yui-dt-bd"});C.extend(H,G,{_elHdContainer:null,_elHdTable:null,_elBdContainer:null,_elBdThead:null,_elTmpContainer:null,_elTmpTable:null,_bScrollbarX:null,initAttributes:function(K){K=K||{};H.superclass.initAttributes.call(this,K);this.setAttributeConfig("width",{value:null,validator:C.isString,method:function(L){if(this._elHdContainer&&this._elBdContainer){this._elHdContainer.style.width=L;this._elBdContainer.style.width=L;this._syncScrollX();this._syncScrollOverhang();}}});this.setAttributeConfig("height",{value:null,validator:C.isString,method:function(L){if(this._elHdContainer&&this._elBdContainer){this._elBdContainer.style.height=L;this._syncScrollX();this._syncScrollY();this._syncScrollOverhang();}}});this.setAttributeConfig("COLOR_COLUMNFILLER",{value:"#F2F2F2",validator:C.isString,method:function(L){this._elHdContainer.style.backgroundColor=L;}});},_initDomElements:function(K){this._initContainerEl(K);if(this._elContainer&&this._elHdContainer&&this._elBdContainer){this._initTableEl();if(this._elHdTable&&this._elTable){this._initColgroupEl(this._elHdTable);this._initTheadEl(this._elHdTable,this._elTable);this._initTbodyEl(this._elTable);this._initMsgTbodyEl(this._elTable);}}if(!this._elContainer||!this._elTable||!this._elColgroup||!this._elThead||!this._elTbody||!this._elMsgTbody||!this._elHdTable||!this._elBdThead){return false;}else{return true;}},_destroyContainerEl:function(K){D.removeClass(K,G.CLASS_SCROLLABLE);H.superclass._destroyContainerEl.call(this,K);this._elHdContainer=null;this._elBdContainer=null;},_initContainerEl:function(L){H.superclass._initContainerEl.call(this,L);if(this._elContainer){L=this._elContainer;D.addClass(L,G.CLASS_SCROLLABLE);var K=document.createElement("div");K.style.width=this.get("width")||"";K.style.backgroundColor=this.get("COLOR_COLUMNFILLER");D.addClass(K,H.CLASS_HEADER);this._elHdContainer=K;L.appendChild(K);var M=document.createElement("div");M.style.width=this.get("width")||"";M.style.height=this.get("height")||"";D.addClass(M,H.CLASS_BODY);J.addListener(M,"scroll",this._onScroll,this);this._elBdContainer=M;L.appendChild(M);}},_initCaptionEl:function(K){},_destroyHdTableEl:function(){var K=this._elHdTable;if(K){J.purgeElement(K,true);K.parentNode.removeChild(K);this._elBdThead=null;}},_initTableEl:function(){if(this._elHdContainer){this._destroyHdTableEl();this._elHdTable=this._elHdContainer.appendChild(document.createElement("table"));}H.superclass._initTableEl.call(this,this._elBdContainer);},_initTheadEl:function(L,K){L=L||this._elHdTable;K=K||this._elTable;this._initBdTheadEl(K);H.superclass._initTheadEl.call(this,L);},_initThEl:function(L,K){H.superclass._initThEl.call(this,L,K);L.id=this.getId()+"-fixedth-"+K.getSanitizedKey();},_destroyBdTheadEl:function(){var K=this._elBdThead;if(K){var L=K.parentNode;J.purgeElement(K,true);L.removeChild(K);this._elBdThead=null;this._destroyColumnHelpers();}},_initBdTheadEl:function(S){if(S){this._destroyBdTheadEl();var O=S.insertBefore(document.createElement("thead"),S.firstChild);var U=this._oColumnSet,T=U.tree,N,K,R,P,M,L,Q;for(P=0,L=T.length;P<L;P++){K=O.appendChild(document.createElement("tr"));for(M=0,Q=T[P].length;M<Q;M++){R=T[P][M];N=K.appendChild(document.createElement("th"));this._initBdThEl(N,R,P,M);}}this._elBdThead=O;}},_initBdThEl:function(N,M){N.id=this.getId()+"-th-"+M.getSanitizedKey();N.rowSpan=M.getRowspan();N.colSpan=M.getColspan();if(M.abbr){N.abbr=M.abbr;}var L=M.getKey();var K=C.isValue(M.label)?M.label:L;N.innerHTML=K;},_initTbodyEl:function(K){H.superclass._initTbodyEl.call(this,K);K.style.marginTop=(this._elTbody.offsetTop>0)?"-"+this._elTbody.offsetTop+"px":0;},_focusEl:function(L){L=L||this._elTbody;var K=this;this._storeScrollPositions();setTimeout(function(){setTimeout(function(){try{L.focus();K._restoreScrollPositions();}catch(M){}},0);},0);},_runRenderChain:function(){this._storeScrollPositions();this._oChainRender.run();},_storeScrollPositions:function(){this._nScrollTop=this._elBdContainer.scrollTop;this._nScrollLeft=this._elBdContainer.scrollLeft;},clearScrollPositions:function(){this._nScrollTop=0;this._nScrollLeft=0;},_restoreScrollPositions:function(){if(this._nScrollTop){this._elBdContainer.scrollTop=this._nScrollTop;this._nScrollTop=null;}if(this._nScrollLeft){this._elBdContainer.scrollLeft=this._nScrollLeft;this._nScrollLeft=null;}},_validateColumnWidth:function(N,K){if(!N.width&&!N.hidden){var P=N.getThEl();if(N._calculatedWidth){this._setColumnWidth(N,"auto","visible");}if(P.offsetWidth!==K.offsetWidth){var M=(P.offsetWidth>K.offsetWidth)?N.getThLinerEl():K.firstChild;var L=Math.max(0,(M.offsetWidth-(parseInt(D.getStyle(M,"paddingLeft"),10)|0)-(parseInt(D.getStyle(M,"paddingRight"),10)|0)),N.minWidth);var O="visible";if((N.maxAutoWidth>0)&&(L>N.maxAutoWidth)){L=N.maxAutoWidth;O="hidden";}this._elTbody.style.display="none";this._setColumnWidth(N,L+"px",O);N._calculatedWidth=L;this._elTbody.style.display="";}}},validateColumnWidths:function(S){var U=this._oColumnSet.keys,W=U.length,L=this.getFirstTrEl();if(A.ie){this._setOverhangValue(1);}if(U&&L&&(L.childNodes.length===W)){var M=this.get("width");if(M){this._elHdContainer.style.width="";this._elBdContainer.style.width="";}this._elContainer.style.width="";if(S&&C.isNumber(S.getKeyIndex())){this._validateColumnWidth(S,L.childNodes[S.getKeyIndex()]);}else{var T,K=[],O,Q,R;for(Q=0;Q<W;Q++){S=U[Q];if(!S.width&&!S.hidden&&S._calculatedWidth){K[K.length]=S;}}this._elTbody.style.display="none";for(Q=0,R=K.length;Q<R;Q++){this._setColumnWidth(K[Q],"auto","visible");}this._elTbody.style.display="";K=[];for(Q=0;Q<W;Q++){S=U[Q];T=L.childNodes[Q];if(!S.width&&!S.hidden){var N=S.getThEl();if(N.offsetWidth!==T.offsetWidth){var V=(N.offsetWidth>T.offsetWidth)?S.getThLinerEl():T.firstChild;var P=Math.max(0,(V.offsetWidth-(parseInt(D.getStyle(V,"paddingLeft"),10)|0)-(parseInt(D.getStyle(V,"paddingRight"),10)|0)),S.minWidth);
 var X="visible";if((S.maxAutoWidth>0)&&(P>S.maxAutoWidth)){P=S.maxAutoWidth;X="hidden";}K[K.length]=[S,P,X];}}}this._elTbody.style.display="none";for(Q=0,R=K.length;Q<R;Q++){O=K[Q];this._setColumnWidth(O[0],O[1]+"px",O[2]);O[0]._calculatedWidth=O[1];}this._elTbody.style.display="";}if(M){this._elHdContainer.style.width=M;this._elBdContainer.style.width=M;}}this._syncScroll();this._restoreScrollPositions();},_syncScroll:function(){this._syncScrollX();this._syncScrollY();this._syncScrollOverhang();if(A.opera){this._elHdContainer.scrollLeft=this._elBdContainer.scrollLeft;if(!this.get("width")){document.body.style+="";}}},_syncScrollY:function(){var K=this._elTbody,L=this._elBdContainer;if(!this.get("width")){this._elContainer.style.width=(L.scrollHeight>L.clientHeight)?(K.parentNode.clientWidth+19)+"px":(K.parentNode.clientWidth+2)+"px";}},_syncScrollX:function(){var K=this._elTbody,L=this._elBdContainer;if(!this.get("height")&&(A.ie)){L.style.height=(L.scrollWidth>L.offsetWidth)?(K.parentNode.offsetHeight+18)+"px":K.parentNode.offsetHeight+"px";}if(this._elTbody.rows.length===0){this._elMsgTbody.parentNode.style.width=this.getTheadEl().parentNode.offsetWidth+"px";}else{this._elMsgTbody.parentNode.style.width="";}},_syncScrollOverhang:function(){var L=this._elBdContainer,K=1;if((L.scrollHeight>L.clientHeight)&&(L.scrollWidth>L.clientWidth)){K=18;}this._setOverhangValue(K);},_setOverhangValue:function(N){var P=this._oColumnSet.headers[this._oColumnSet.headers.length-1]||[],L=P.length,K=this._sId+"-fixedth-",O=N+"px solid "+this.get("COLOR_COLUMNFILLER");this._elThead.style.display="none";for(var M=0;M<L;M++){D.get(K+P[M]).style.borderRight=O;}this._elThead.style.display="";},getHdContainerEl:function(){return this._elHdContainer;},getBdContainerEl:function(){return this._elBdContainer;},getHdTableEl:function(){return this._elHdTable;},getBdTableEl:function(){return this._elTable;},disable:function(){var K=this._elMask;K.style.width=this._elBdContainer.offsetWidth+"px";K.style.height=this._elHdContainer.offsetHeight+this._elBdContainer.offsetHeight+"px";K.style.display="";this.fireEvent("disableEvent");},removeColumn:function(M){var K=this._elHdContainer.scrollLeft;var L=this._elBdContainer.scrollLeft;M=H.superclass.removeColumn.call(this,M);this._elHdContainer.scrollLeft=K;this._elBdContainer.scrollLeft=L;return M;},insertColumn:function(N,L){var K=this._elHdContainer.scrollLeft;var M=this._elBdContainer.scrollLeft;var O=H.superclass.insertColumn.call(this,N,L);this._elHdContainer.scrollLeft=K;this._elBdContainer.scrollLeft=M;return O;},reorderColumn:function(N,L){var K=this._elHdContainer.scrollLeft;var M=this._elBdContainer.scrollLeft;var O=H.superclass.reorderColumn.call(this,N,L);this._elHdContainer.scrollLeft=K;this._elBdContainer.scrollLeft=M;return O;},setColumnWidth:function(L,K){L=this.getColumn(L);if(L){this._storeScrollPositions();if(C.isNumber(K)){K=(K>L.minWidth)?K:L.minWidth;L.width=K;this._setColumnWidth(L,K+"px");this._syncScroll();this.fireEvent("columnSetWidthEvent",{column:L,width:K});}else{if(K===null){L.width=K;this._setColumnWidth(L,"auto");this.validateColumnWidths(L);this.fireEvent("columnUnsetWidthEvent",{column:L});}}this._clearTrTemplateEl();}else{}},scrollTo:function(M){var L=this.getTdEl(M);if(L){this.clearScrollPositions();this.getBdContainerEl().scrollLeft=L.offsetLeft;this.getBdContainerEl().scrollTop=L.parentNode.offsetTop;}else{var K=this.getTrEl(M);if(K){this.clearScrollPositions();this.getBdContainerEl().scrollTop=K.offsetTop;}}},showTableMessage:function(O,K){var P=this._elMsgTd;if(C.isString(O)){P.firstChild.innerHTML=O;}if(C.isString(K)){D.addClass(P.firstChild,K);}var N=this.getTheadEl();var L=N.parentNode;var M=L.offsetWidth;this._elMsgTbody.parentNode.style.width=this.getTheadEl().parentNode.offsetWidth+"px";this._elMsgTbody.style.display="";this.fireEvent("tableMsgShowEvent",{html:O,className:K});},_onColumnChange:function(K){var L=(K.column)?K.column:(K.editor)?K.editor.column:null;this._storeScrollPositions();this.validateColumnWidths(L);},_onScroll:function(M,L){L._elHdContainer.scrollLeft=L._elBdContainer.scrollLeft;if(L._oCellEditor&&L._oCellEditor.isActive){L.fireEvent("editorBlurEvent",{editor:L._oCellEditor});L.cancelCellEditor();}var N=J.getTarget(M);var K=N.nodeName.toLowerCase();L.fireEvent("tableScrollEvent",{event:M,target:N});},_onTheadKeydown:function(N,L){if(J.getCharCode(N)===9){setTimeout(function(){if((L instanceof H)&&L._sId){L._elBdContainer.scrollLeft=L._elHdContainer.scrollLeft;}},0);}var O=J.getTarget(N);var K=O.nodeName.toLowerCase();var M=true;while(O&&(K!="table")){switch(K){case"body":return;case"input":case"textarea":break;case"thead":M=L.fireEvent("theadKeyEvent",{target:O,event:N});break;default:break;}if(M===false){return;}else{O=O.parentNode;if(O){K=O.nodeName.toLowerCase();}}}L.fireEvent("tableKeyEvent",{target:(O||L._elContainer),event:N});}});})();(function(){var C=YAHOO.lang,F=YAHOO.util,E=YAHOO.widget,B=YAHOO.env.ua,D=F.Dom,I=F.Event,H=E.DataTable;E.BaseCellEditor=function(K,J){this._sId=this._sId||"yui-ceditor"+YAHOO.widget.BaseCellEditor._nCount++;this._sType=K;this._initConfigs(J);this._initEvents();this.render();};var A=E.BaseCellEditor;C.augmentObject(A,{_nCount:0,CLASS_CELLEDITOR:"yui-ceditor"});A.prototype={_sId:null,_sType:null,_oDataTable:null,_oColumn:null,_oRecord:null,_elTd:null,_elContainer:null,_elCancelBtn:null,_elSaveBtn:null,_initConfigs:function(K){if(K&&YAHOO.lang.isObject(K)){for(var J in K){if(J){this[J]=K[J];}}}},_initEvents:function(){this.createEvent("showEvent");this.createEvent("keydownEvent");this.createEvent("invalidDataEvent");this.createEvent("revertEvent");this.createEvent("saveEvent");this.createEvent("cancelEvent");this.createEvent("blurEvent");this.createEvent("blockEvent");this.createEvent("unblockEvent");},asyncSubmitter:null,value:null,defaultValue:null,validator:null,resetInvalidData:true,isActive:false,LABEL_SAVE:"Save",LABEL_CANCEL:"Cancel",disableBtns:false,toString:function(){return"CellEditor instance "+this._sId;
 },getId:function(){return this._sId;},getDataTable:function(){return this._oDataTable;},getColumn:function(){return this._oColumn;},getRecord:function(){return this._oRecord;},getTdEl:function(){return this._elTd;},getContainerEl:function(){return this._elContainer;},destroy:function(){this.unsubscribeAll();var K=this.getColumn();if(K){K.editor=null;}var J=this.getContainerEl();I.purgeElement(J,true);J.parentNode.removeChild(J);},render:function(){if(this._elContainer){YAHOO.util.Event.purgeElement(this._elContainer,true);this._elContainer.innerHTML="";}var J=document.createElement("div");J.id=this.getId()+"-container";J.style.display="none";J.tabIndex=0;J.className=H.CLASS_EDITOR;document.body.insertBefore(J,document.body.firstChild);this._elContainer=J;I.addListener(J,"keydown",function(M,K){if((M.keyCode==27)){var L=I.getTarget(M);if(L.nodeName&&L.nodeName.toLowerCase()==="select"){L.blur();}K.cancel();}K.fireEvent("keydownEvent",{editor:this,event:M});},this);this.renderForm();if(!this.disableBtns){this.renderBtns();}this.doAfterRender();},renderBtns:function(){var L=this.getContainerEl().appendChild(document.createElement("div"));L.className=H.CLASS_BUTTON;var K=L.appendChild(document.createElement("button"));K.className=H.CLASS_DEFAULT;K.innerHTML=this.LABEL_SAVE;I.addListener(K,"click",function(M){this.save();},this,true);this._elSaveBtn=K;var J=L.appendChild(document.createElement("button"));J.innerHTML=this.LABEL_CANCEL;I.addListener(J,"click",function(M){this.cancel();},this,true);this._elCancelBtn=J;},attach:function(N,L){if(N instanceof YAHOO.widget.DataTable){this._oDataTable=N;L=N.getTdEl(L);if(L){this._elTd=L;var M=N.getColumn(L);if(M){this._oColumn=M;var J=N.getRecord(L);if(J){this._oRecord=J;var K=J.getData(this.getColumn().getField());this.value=(K!==undefined)?K:this.defaultValue;return true;}}}}return false;},move:function(){var M=this.getContainerEl(),L=this.getTdEl(),J=D.getX(L),N=D.getY(L);if(isNaN(J)||isNaN(N)){var K=this.getDataTable().getTbodyEl();J=L.offsetLeft+D.getX(K.parentNode)-K.scrollLeft;N=L.offsetTop+D.getY(K.parentNode)-K.scrollTop+this.getDataTable().getTheadEl().offsetHeight;}M.style.left=J+"px";M.style.top=N+"px";},show:function(){this.resetForm();this.isActive=true;this.getContainerEl().style.display="";this.focus();this.fireEvent("showEvent",{editor:this});},block:function(){this.fireEvent("blockEvent",{editor:this});},unblock:function(){this.fireEvent("unblockEvent",{editor:this});},save:function(){var K=this.getInputValue();var L=K;if(this.validator){L=this.validator.call(this.getDataTable(),K,this.value,this);if(L===undefined){if(this.resetInvalidData){this.resetForm();}this.fireEvent("invalidDataEvent",{editor:this,oldData:this.value,newData:K});return;}}var M=this;var J=function(O,N){var P=M.value;if(O){M.value=N;M.getDataTable().updateCell(M.getRecord(),M.getColumn(),N);M.getContainerEl().style.display="none";M.isActive=false;M.getDataTable()._oCellEditor=null;M.fireEvent("saveEvent",{editor:M,oldData:P,newData:M.value});}else{M.resetForm();M.fireEvent("revertEvent",{editor:M,oldData:P,newData:N});}M.unblock();};this.block();if(C.isFunction(this.asyncSubmitter)){this.asyncSubmitter.call(this,J,L);}else{J(true,L);}},cancel:function(){if(this.isActive){this.getContainerEl().style.display="none";this.isActive=false;this.getDataTable()._oCellEditor=null;this.fireEvent("cancelEvent",{editor:this});}else{}},renderForm:function(){},doAfterRender:function(){},handleDisabledBtns:function(){},resetForm:function(){},focus:function(){},getInputValue:function(){}};C.augmentProto(A,F.EventProvider);E.CheckboxCellEditor=function(J){this._sId="yui-checkboxceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.CheckboxCellEditor.superclass.constructor.call(this,"checkbox",J);};C.extend(E.CheckboxCellEditor,A,{checkboxOptions:null,checkboxes:null,value:null,renderForm:function(){if(C.isArray(this.checkboxOptions)){var M,N,P,K,L,J;for(L=0,J=this.checkboxOptions.length;L<J;L++){M=this.checkboxOptions[L];N=C.isValue(M.value)?M.value:M;P=this.getId()+"-chk"+L;this.getContainerEl().innerHTML+='<input type="checkbox"'+' id="'+P+'"'+' value="'+N+'" />';K=this.getContainerEl().appendChild(document.createElement("label"));K.htmlFor=P;K.innerHTML=C.isValue(M.label)?M.label:M;}var O=[];for(L=0;L<J;L++){O[O.length]=this.getContainerEl().childNodes[L*2];}this.checkboxes=O;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){I.addListener(this.getContainerEl(),"click",function(J){if(I.getTarget(J).tagName.toLowerCase()==="input"){this.save();}},this,true);},resetForm:function(){var N=C.isArray(this.value)?this.value:[this.value];for(var M=0,L=this.checkboxes.length;M<L;M++){this.checkboxes[M].checked=false;for(var K=0,J=N.length;K<J;K++){if(this.checkboxes[M].value===N[K]){this.checkboxes[M].checked=true;}}}},focus:function(){this.checkboxes[0].focus();},getInputValue:function(){var J=[];for(var L=0,K=this.checkboxes.length;L<K;L++){if(this.checkboxes[L].checked){J[J.length]=this.checkboxes[L].value;}}return J;}});C.augmentObject(E.CheckboxCellEditor,A);E.DateCellEditor=function(J){this._sId="yui-dateceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.DateCellEditor.superclass.constructor.call(this,"date",J);};C.extend(E.DateCellEditor,A,{calendar:null,calendarOptions:null,defaultValue:new Date(),renderForm:function(){if(YAHOO.widget.Calendar){var K=this.getContainerEl().appendChild(document.createElement("div"));K.id=this.getId()+"-dateContainer";var L=new YAHOO.widget.Calendar(this.getId()+"-date",K.id,this.calendarOptions);L.render();K.style.cssFloat="none";if(B.ie){var J=this.getContainerEl().appendChild(document.createElement("div"));J.style.clear="both";}this.calendar=L;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){this.calendar.selectEvent.subscribe(function(J){this.save();},this,true);},resetForm:function(){var K=this.value;var J=(K.getMonth()+1)+"/"+K.getDate()+"/"+K.getFullYear();this.calendar.cfg.setProperty("selected",J,false);
-this.calendar.render();},focus:function(){},getInputValue:function(){return this.calendar.getSelectedDates()[0];}});C.augmentObject(E.DateCellEditor,A);E.DropdownCellEditor=function(J){this._sId="yui-dropdownceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.DropdownCellEditor.superclass.constructor.call(this,"dropdown",J);};C.extend(E.DropdownCellEditor,A,{dropdownOptions:null,dropdown:null,multiple:false,size:null,renderForm:function(){var M=this.getContainerEl().appendChild(document.createElement("select"));M.style.zoom=1;if(this.multiple){M.multiple="multiple";}if(C.isNumber(this.size)){M.size=this.size;}this.dropdown=M;if(C.isArray(this.dropdownOptions)){var N,L;for(var K=0,J=this.dropdownOptions.length;K<J;K++){N=this.dropdownOptions[K];L=document.createElement("option");L.value=(C.isValue(N.value))?N.value:N;L.innerHTML=(C.isValue(N.label))?N.label:N;L=M.appendChild(L);}if(this.disableBtns){this.handleDisabledBtns();}}},handleDisabledBtns:function(){if(this.multiple){I.addListener(this.dropdown,"blur",function(J){this.save();},this,true);}else{I.addListener(this.dropdown,"change",function(J){this.save();},this,true);}},resetForm:function(){var P=this.dropdown.options,M=0,L=P.length;if(C.isArray(this.value)){var K=this.value,J=0,O=K.length,N={};for(;M<L;M++){P[M].selected=false;N[P[M].value]=P[M];}for(;J<O;J++){if(N[K[J]]){N[K[J]].selected=true;}}}else{for(;M<L;M++){if(this.value===P[M].value){P[M].selected=true;}}}},focus:function(){this.getDataTable()._focusEl(this.dropdown);},getInputValue:function(){var M=this.dropdown.options;if(this.multiple){var J=[],L=0,K=M.length;for(;L<K;L++){if(M[L].selected){J.push(M[L].value);}}return J;}else{return M[M.selectedIndex].value;}}});C.augmentObject(E.DropdownCellEditor,A);E.RadioCellEditor=function(J){this._sId="yui-radioceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.RadioCellEditor.superclass.constructor.call(this,"radio",J);};C.extend(E.RadioCellEditor,A,{radios:null,radioOptions:null,renderForm:function(){if(C.isArray(this.radioOptions)){var J,K,Q,N;for(var M=0,O=this.radioOptions.length;M<O;M++){J=this.radioOptions[M];K=C.isValue(J.value)?J.value:J;Q=this.getId()+"-radio"+M;this.getContainerEl().innerHTML+='<input type="radio"'+' name="'+this.getId()+'"'+' value="'+K+'"'+' id="'+Q+'" />';N=this.getContainerEl().appendChild(document.createElement("label"));N.htmlFor=Q;N.innerHTML=(C.isValue(J.label))?J.label:J;}var P=[],R;for(var L=0;L<O;L++){R=this.getContainerEl().childNodes[L*2];P[P.length]=R;}this.radios=P;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){I.addListener(this.getContainerEl(),"click",function(J){if(I.getTarget(J).tagName.toLowerCase()==="input"){this.save();}},this,true);},resetForm:function(){for(var L=0,K=this.radios.length;L<K;L++){var J=this.radios[L];if(this.value===J.value){J.checked=true;return;}}},focus:function(){for(var K=0,J=this.radios.length;K<J;K++){if(this.radios[K].checked){this.radios[K].focus();return;}}},getInputValue:function(){for(var K=0,J=this.radios.length;K<J;K++){if(this.radios[K].checked){return this.radios[K].value;}}}});C.augmentObject(E.RadioCellEditor,A);E.TextareaCellEditor=function(J){this._sId="yui-textareaceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.TextareaCellEditor.superclass.constructor.call(this,"textarea",J);};C.extend(E.TextareaCellEditor,A,{textarea:null,renderForm:function(){var J=this.getContainerEl().appendChild(document.createElement("textarea"));this.textarea=J;if(this.disableBtns){this.handleDisabledBtns();}},handleDisabledBtns:function(){I.addListener(this.textarea,"blur",function(J){this.save();},this,true);},move:function(){this.textarea.style.width=this.getTdEl().offsetWidth+"px";this.textarea.style.height="3em";YAHOO.widget.TextareaCellEditor.superclass.move.call(this);},resetForm:function(){this.textarea.value=this.value;},focus:function(){this.getDataTable()._focusEl(this.textarea);this.textarea.select();},getInputValue:function(){return this.textarea.value;}});C.augmentObject(E.TextareaCellEditor,A);E.TextboxCellEditor=function(J){this._sId="yui-textboxceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.TextboxCellEditor.superclass.constructor.call(this,"textbox",J);};C.extend(E.TextboxCellEditor,A,{textbox:null,renderForm:function(){var J;if(B.webkit>420){J=this.getContainerEl().appendChild(document.createElement("form")).appendChild(document.createElement("input"));}else{J=this.getContainerEl().appendChild(document.createElement("input"));}J.type="text";this.textbox=J;I.addListener(J,"keypress",function(K){if((K.keyCode===13)){YAHOO.util.Event.preventDefault(K);this.save();}},this,true);if(this.disableBtns){this.handleDisabledBtns();}},move:function(){this.textbox.style.width=this.getTdEl().offsetWidth+"px";E.TextboxCellEditor.superclass.move.call(this);},resetForm:function(){this.textbox.value=C.isValue(this.value)?this.value.toString():"";},focus:function(){this.getDataTable()._focusEl(this.textbox);this.textbox.select();},getInputValue:function(){return this.textbox.value;}});C.augmentObject(E.TextboxCellEditor,A);H.Editors={checkbox:E.CheckboxCellEditor,"date":E.DateCellEditor,dropdown:E.DropdownCellEditor,radio:E.RadioCellEditor,textarea:E.TextareaCellEditor,textbox:E.TextboxCellEditor};E.CellEditor=function(K,J){if(K&&H.Editors[K]){C.augmentObject(A,H.Editors[K]);return new H.Editors[K](J);}else{return new A(null,J);}};var G=E.CellEditor;C.augmentObject(G,A);})();YAHOO.register("datatable",YAHOO.widget.DataTable,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this.calendar.render();},focus:function(){},getInputValue:function(){return this.calendar.getSelectedDates()[0];}});C.augmentObject(E.DateCellEditor,A);E.DropdownCellEditor=function(J){this._sId="yui-dropdownceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.DropdownCellEditor.superclass.constructor.call(this,"dropdown",J);};C.extend(E.DropdownCellEditor,A,{dropdownOptions:null,dropdown:null,multiple:false,size:null,renderForm:function(){var M=this.getContainerEl().appendChild(document.createElement("select"));M.style.zoom=1;if(this.multiple){M.multiple="multiple";}if(C.isNumber(this.size)){M.size=this.size;}this.dropdown=M;if(C.isArray(this.dropdownOptions)){var N,L;for(var K=0,J=this.dropdownOptions.length;K<J;K++){N=this.dropdownOptions[K];L=document.createElement("option");L.value=(C.isValue(N.value))?N.value:N;L.innerHTML=(C.isValue(N.label))?N.label:N;L=M.appendChild(L);}if(this.disableBtns){this.handleDisabledBtns();}}},handleDisabledBtns:function(){if(this.multiple){I.addListener(this.dropdown,"blur",function(J){this.save();},this,true);}else{I.addListener(this.dropdown,"change",function(J){this.save();},this,true);}},resetForm:function(){var P=this.dropdown.options,M=0,L=P.length;if(C.isArray(this.value)){var K=this.value,J=0,O=K.length,N={};for(;M<L;M++){P[M].selected=false;N[P[M].value]=P[M];}for(;J<O;J++){if(N[K[J]]){N[K[J]].selected=true;}}}else{for(;M<L;M++){if(this.value===P[M].value){P[M].selected=true;}}}},focus:function(){this.getDataTable()._focusEl(this.dropdown);},getInputValue:function(){var M=this.dropdown.options;if(this.multiple){var J=[],L=0,K=M.length;for(;L<K;L++){if(M[L].selected){J.push(M[L].value);}}return J;}else{return M[M.selectedIndex].value;}}});C.augmentObject(E.DropdownCellEditor,A);E.RadioCellEditor=function(J){this._sId="yui-radioceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.RadioCellEditor.superclass.constructor.call(this,"radio",J);};C.extend(E.RadioCellEditor,A,{radios:null,radioOptions:null,renderForm:function(){if(C.isArray(this.radioOptions)){var J,K,Q,N;for(var M=0,O=this.radioOptions.length;M<O;M++){J=this.radioOptions[M];K=C.isValue(J.value)?J.value:J;Q=this.getId()+"-radio"+M;this.getContainerEl().innerHTML+='<input type="radio"'+' name="'+this.getId()+'"'+' value="'+K+'"'+' id="'+Q+'" />';N=this.getContainerEl().appendChild(document.createElement("label"));N.htmlFor=Q;N.innerHTML=(C.isValue(J.label))?J.label:J;}var P=[],R;for(var L=0;L<O;L++){R=this.getContainerEl().childNodes[L*2];P[P.length]=R;}this.radios=P;if(this.disableBtns){this.handleDisabledBtns();}}else{}},handleDisabledBtns:function(){I.addListener(this.getContainerEl(),"click",function(J){if(I.getTarget(J).tagName.toLowerCase()==="input"){this.save();}},this,true);},resetForm:function(){for(var L=0,K=this.radios.length;L<K;L++){var J=this.radios[L];if(this.value===J.value){J.checked=true;return;}}},focus:function(){for(var K=0,J=this.radios.length;K<J;K++){if(this.radios[K].checked){this.radios[K].focus();return;}}},getInputValue:function(){for(var K=0,J=this.radios.length;K<J;K++){if(this.radios[K].checked){return this.radios[K].value;}}}});C.augmentObject(E.RadioCellEditor,A);E.TextareaCellEditor=function(J){this._sId="yui-textareaceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.TextareaCellEditor.superclass.constructor.call(this,"textarea",J);};C.extend(E.TextareaCellEditor,A,{textarea:null,renderForm:function(){var J=this.getContainerEl().appendChild(document.createElement("textarea"));this.textarea=J;if(this.disableBtns){this.handleDisabledBtns();}},handleDisabledBtns:function(){I.addListener(this.textarea,"blur",function(J){this.save();},this,true);},move:function(){this.textarea.style.width=this.getTdEl().offsetWidth+"px";this.textarea.style.height="3em";YAHOO.widget.TextareaCellEditor.superclass.move.call(this);},resetForm:function(){this.textarea.value=this.value;},focus:function(){this.getDataTable()._focusEl(this.textarea);this.textarea.select();},getInputValue:function(){return this.textarea.value;}});C.augmentObject(E.TextareaCellEditor,A);E.TextboxCellEditor=function(J){this._sId="yui-textboxceditor"+YAHOO.widget.BaseCellEditor._nCount++;E.TextboxCellEditor.superclass.constructor.call(this,"textbox",J);};C.extend(E.TextboxCellEditor,A,{textbox:null,renderForm:function(){var J;if(B.webkit>420){J=this.getContainerEl().appendChild(document.createElement("form")).appendChild(document.createElement("input"));}else{J=this.getContainerEl().appendChild(document.createElement("input"));}J.type="text";this.textbox=J;I.addListener(J,"keypress",function(K){if((K.keyCode===13)){YAHOO.util.Event.preventDefault(K);this.save();}},this,true);if(this.disableBtns){this.handleDisabledBtns();}},move:function(){this.textbox.style.width=this.getTdEl().offsetWidth+"px";E.TextboxCellEditor.superclass.move.call(this);},resetForm:function(){this.textbox.value=C.isValue(this.value)?this.value.toString():"";},focus:function(){this.getDataTable()._focusEl(this.textbox);this.textbox.select();},getInputValue:function(){return this.textbox.value;}});C.augmentObject(E.TextboxCellEditor,A);H.Editors={checkbox:E.CheckboxCellEditor,"date":E.DateCellEditor,dropdown:E.DropdownCellEditor,radio:E.RadioCellEditor,textarea:E.TextareaCellEditor,textbox:E.TextboxCellEditor};E.CellEditor=function(K,J){if(K&&H.Editors[K]){C.augmentObject(A,H.Editors[K]);return new H.Editors[K](J);}else{return new A(null,J);}};var G=E.CellEditor;C.augmentObject(G,A);})();YAHOO.register("datatable",YAHOO.widget.DataTable,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/datatable/datatable.js b/build/datatable/datatable.js
index 3f31481..b2c9d6c 100644
--- a/build/datatable/datatable.js
+++ b/build/datatable/datatable.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Mechanism to execute a series of callbacks in a non-blocking queue.  Each callback is executed via setTimout unless configured with a negative timeout, in which case it is run in blocking mode in the same execution thread as the previous callback.  Callbacks can be function references or object literals with the following keys:
@@ -17119,4 +17119,4 @@ lang.augmentObject(CE, BCE);
 
 })();
 
-YAHOO.register("datatable", YAHOO.widget.DataTable, {version: "2.8.1", build: "19"});
+YAHOO.register("datatable", YAHOO.widget.DataTable, {version: "2.8.2r1", build: "7"});
diff --git a/build/datemath/datemath-debug.js b/build/datemath/datemath-debug.js
index baed920..3707727 100644
--- a/build/datemath/datemath-debug.js
+++ b/build/datemath/datemath-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
 * The datemath module provides utility methods for basic JavaScript Date object manipulation and 
@@ -405,4 +405,4 @@ YAHOO.widget.DateMath = {
         return dt;
     }
 };
-YAHOO.register("datemath", YAHOO.widget.DateMath, {version: "2.8.1", build: "19"});
+YAHOO.register("datemath", YAHOO.widget.DateMath, {version: "2.8.2r1", build: "7"});
diff --git a/build/datemath/datemath-min.js b/build/datemath/datemath-min.js
index 2c09d8e..e0240c6 100644
--- a/build/datemath/datemath-min.js
+++ b/build/datemath/datemath-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.widget.DateMath={DAY:"D",WEEK:"W",YEAR:"Y",MONTH:"M",ONE_DAY_MS:1000*60*60*24,WEEK_ONE_JAN_DATE:1,add:function(A,D,C){var F=new Date(A.getTime());switch(D){case this.MONTH:var E=A.getMonth()+C;var B=0;if(E<0){while(E<0){E+=12;B-=1;}}else{if(E>11){while(E>11){E-=12;B+=1;}}}F.setMonth(E);F.setFullYear(A.getFullYear()+B);break;case this.DAY:this._addDays(F,C);break;case this.YEAR:F.setFullYear(A.getFullYear()+C);break;case this.WEEK:this._addDays(F,(C*7));break;}return F;},_addDays:function(D,C){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420){if(C<0){for(var B=-128;C<B;C-=B){D.setDate(D.getDate()+B);}}else{for(var A=96;C>A;C-=A){D.setDate(D.getDate()+A);}}}D.setDate(D.getDate()+C);},subtract:function(A,C,B){return this.add(A,C,(B*-1));},before:function(C,B){var A=B.getTime();if(C.getTime()<A){return true;}else{return false;}},after:function(C,B){var A=B.getTime();if(C.getTime()>A){return true;}else{return false;}},between:function(B,A,C){if(this.after(B,A)&&this.before(B,C)){return true;}else{return false;}},getJan1:function(A){return this.getDate(A,0,1);},getDayOffset:function(B,D){var C=this.getJan1(D);var A=Math.ceil((B.getTime()-C.getTime())/this.ONE_DAY_MS);return A;},getWeekNumber:function(D,B,G){B=B||0;G=G||this.WEEK_ONE_JAN_DATE;var H=this.clearTime(D),L,M;if(H.getDay()===B){L=H;}else{L=this.getFirstDayOfWeek(H,B);}var I=L.getFullYear();M=new Date(L.getTime()+6*this.ONE_DAY_MS);var F;if(I!==M.getFullYear()&&M.getDate()>=G){F=1;}else{var E=this.clearTime(this.getDate(I,0,G)),A=this.getFirstDayOfWeek(E,B);var J=Math.round((H.getTime()-A.getTime())/this.ONE_DAY_MS);var K=J%7;var C=(J-K)/7;F=C+1;}return F;},getFirstDayOfWeek:function(D,A){A=A||0;var B=D.getDay(),C=(B-A+7)%7;return this.subtract(D,this.DAY,C);},isYearOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getFullYear()!=A.getFullYear()){C=true;}return C;},isMonthOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getMonth()!=A.getMonth()){C=true;}return C;},findMonthStart:function(A){var B=this.getDate(A.getFullYear(),A.getMonth(),1);return B;},findMonthEnd:function(B){var D=this.findMonthStart(B);var C=this.add(D,this.MONTH,1);var A=this.subtract(C,this.DAY,1);return A;},clearTime:function(A){A.setHours(12,0,0,0);return A;},getDate:function(D,A,C){var B=null;if(YAHOO.lang.isUndefined(C)){C=1;}if(D>=100){B=new Date(D,A,C);}else{B=new Date();B.setFullYear(D);B.setMonth(A);B.setDate(C);B.setHours(0,0,0,0);}return B;}};YAHOO.register("datemath",YAHOO.widget.DateMath,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.widget.DateMath={DAY:"D",WEEK:"W",YEAR:"Y",MONTH:"M",ONE_DAY_MS:1000*60*60*24,WEEK_ONE_JAN_DATE:1,add:function(A,D,C){var F=new Date(A.getTime());switch(D){case this.MONTH:var E=A.getMonth()+C;var B=0;if(E<0){while(E<0){E+=12;B-=1;}}else{if(E>11){while(E>11){E-=12;B+=1;}}}F.setMonth(E);F.setFullYear(A.getFullYear()+B);break;case this.DAY:this._addDays(F,C);break;case this.YEAR:F.setFullYear(A.getFullYear()+C);break;case this.WEEK:this._addDays(F,(C*7));break;}return F;},_addDays:function(D,C){if(YAHOO.env.ua.webkit&&YAHOO.env.ua.webkit<420){if(C<0){for(var B=-128;C<B;C-=B){D.setDate(D.getDate()+B);}}else{for(var A=96;C>A;C-=A){D.setDate(D.getDate()+A);}}}D.setDate(D.getDate()+C);},subtract:function(A,C,B){return this.add(A,C,(B*-1));},before:function(C,B){var A=B.getTime();if(C.getTime()<A){return true;}else{return false;}},after:function(C,B){var A=B.getTime();if(C.getTime()>A){return true;}else{return false;}},between:function(B,A,C){if(this.after(B,A)&&this.before(B,C)){return true;}else{return false;}},getJan1:function(A){return this.getDate(A,0,1);},getDayOffset:function(B,D){var C=this.getJan1(D);var A=Math.ceil((B.getTime()-C.getTime())/this.ONE_DAY_MS);return A;},getWeekNumber:function(D,B,G){B=B||0;G=G||this.WEEK_ONE_JAN_DATE;var H=this.clearTime(D),L,M;if(H.getDay()===B){L=H;}else{L=this.getFirstDayOfWeek(H,B);}var I=L.getFullYear();M=new Date(L.getTime()+6*this.ONE_DAY_MS);var F;if(I!==M.getFullYear()&&M.getDate()>=G){F=1;}else{var E=this.clearTime(this.getDate(I,0,G)),A=this.getFirstDayOfWeek(E,B);var J=Math.round((H.getTime()-A.getTime())/this.ONE_DAY_MS);var K=J%7;var C=(J-K)/7;F=C+1;}return F;},getFirstDayOfWeek:function(D,A){A=A||0;var B=D.getDay(),C=(B-A+7)%7;return this.subtract(D,this.DAY,C);},isYearOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getFullYear()!=A.getFullYear()){C=true;}return C;},isMonthOverlapWeek:function(A){var C=false;var B=this.add(A,this.DAY,6);if(B.getMonth()!=A.getMonth()){C=true;}return C;},findMonthStart:function(A){var B=this.getDate(A.getFullYear(),A.getMonth(),1);return B;},findMonthEnd:function(B){var D=this.findMonthStart(B);var C=this.add(D,this.MONTH,1);var A=this.subtract(C,this.DAY,1);return A;},clearTime:function(A){A.setHours(12,0,0,0);return A;},getDate:function(D,A,C){var B=null;if(YAHOO.lang.isUndefined(C)){C=1;}if(D>=100){B=new Date(D,A,C);}else{B=new Date();B.setFullYear(D);B.setMonth(A);B.setDate(C);B.setHours(0,0,0,0);}return B;}};YAHOO.register("datemath",YAHOO.widget.DateMath,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/datemath/datemath.js b/build/datemath/datemath.js
index baed920..3707727 100644
--- a/build/datemath/datemath.js
+++ b/build/datemath/datemath.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
 * The datemath module provides utility methods for basic JavaScript Date object manipulation and 
@@ -405,4 +405,4 @@ YAHOO.widget.DateMath = {
         return dt;
     }
 };
-YAHOO.register("datemath", YAHOO.widget.DateMath, {version: "2.8.1", build: "19"});
+YAHOO.register("datemath", YAHOO.widget.DateMath, {version: "2.8.2r1", build: "7"});
diff --git a/build/dom/dom-debug.js b/build/dom/dom-debug.js
index a078a37..d0c8c19 100644
--- a/build/dom/dom-debug.js
+++ b/build/dom/dom-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The dom module provides helper methods for manipulating Dom elements.
@@ -1869,4 +1869,4 @@ Y.Dom.Color = {
     }
 };
 }());
-YAHOO.register("dom", YAHOO.util.Dom, {version: "2.8.1", build: "19"});
+YAHOO.register("dom", YAHOO.util.Dom, {version: "2.8.2r1", build: "7"});
diff --git a/build/dom/dom-min.js b/build/dom/dom-min.js
index 648648f..6abc47b 100644
--- a/build/dom/dom-min.js
+++ b/build/dom/dom-min.js
@@ -2,8 +2,8 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){YAHOO.env._id_counter=YAHOO.env._id_counter||0;var E=YAHOO.util,L=YAHOO.lang,m=YAHOO.env.ua,A=YAHOO.lang.trim,d={},h={},N=/^t(?:able|d|h)$/i,X=/color$/i,K=window.document,W=K.documentElement,e="ownerDocument",n="defaultView",v="documentElement",t="compatMode",b="offsetLeft",P="offsetTop",u="offsetParent",Z="parentNode",l="nodeType",C="tagName",O="scrollLeft",i="scrollTop",Q="getBoundingClientRect",w="getComputedStyle",a="currentStyle",M="CSS1Compat",c="BackCompat",g="class",F="className",J="",B=" ",s="(?:^|\\s)",k="(?= |$)",U="g",p="position",f="fixed",V="relative",j="left",o="top",r="medium",q="borderLeftWidth",R="borderTopWidth",D=m.opera,I=m.webkit,H=m.gecko,T=m.ie;E.Dom={CUSTOM_ATTRIBUTES:(!W.hasAttribute)?{"for":"htmlFor","class":F}:{"htmlFor":"for","className":g},DOT_ATTRIBUTES:{},get:function(z){var AB,x,AA,y,Y,G;if(z){if(z[l]||z.item){return z;}if(typeof z==="string"){AB=z;z=K.getElementById(z);G=(z)?z.attributes:null;if(z&&G&&G.id&&G.id.value===AB){return z;}else{if(z&&K.all){z=null;x=K.all[AB];for(y=0,Y=x.length;y<Y;++y){if(x[y].id===AB){return x[y];}}}}return z;}if(YAHOO.util.Element&&z instanceof YAHOO.util.Element){z=z.get("element");}if("length" in z){AA=[];for(y=0,Y=z.length;y<Y;++y){AA[AA.length]=E.Dom.get(z[y]);}return AA;}return z;}return null;},getComputedStyle:function(G,Y){if(window[w]){return G[e][n][w](G,null)[Y];}else{if(G[a]){return E.Dom.IE_ComputedStyle.get(G,Y);}}},getStyle:function(G,Y){return E.Dom.batch(G,E.Dom._getStyle,Y);},_getStyle:function(){if(window[w]){return function(G,y){y=(y==="float")?y="cssFloat":E.Dom._toCamel(y);var x=G.style[y],Y;if(!x){Y=G[e][n][w](G,null);if(Y){x=Y[y];}}return x;};}else{if(W[a]){return function(G,y){var x;switch(y){case"opacity":x=100;try{x=G.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(z){try{x=G.filters("alpha").opacity;}catch(Y){}}return x/100;case"float":y="styleFloat";default:y=E.Dom._toCamel(y);x=G[a]?G[a][y]:null;return(G.style[y]||x);}};}}}(),setStyle:function(G,Y,x){E.Dom.batch(G,E.Dom._setStyle,{prop:Y,val:x});},_setStyle:function(){if(T){return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){switch(x){case"opacity":if(L.isString(Y.style.filter)){Y.style.filter="alpha(opacity="+y*100+")";if(!Y[a]||!Y[a].hasLayout){Y.style.zoom=1;}}break;case"float":x="styleFloat";default:Y.style[x]=y;}}else{}};}else{return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){if(x=="float"){x="cssFloat";}Y.style[x]=y;}else{}};}}(),getXY:function(G){return E.Dom.batch(G,E.Dom._getXY);},_canPosition:function(G){return(E.Dom._getStyle(G,"display")!=="none"&&E.Dom._inDoc(G));},_getXY:function(){if(K[v][Q]){return function(y){var z,Y,AA,AF,AE,AD,AC,G,x,AB=Math.floor,AG=false;if(E.Dom._canPosition(y)){AA=y[Q]();AF=y[e];z=E.Dom.getDocumentScrollLeft(AF);Y=E.Dom.getDocumentScrollTop(AF);AG=[AB(AA[j]),AB(AA[o])];if(T&&m.ie<8){AE=2;AD=2;AC=AF[t];if(m.ie===6){if(AC!==c){AE=0;AD=0;}}if((AC===c)){G=S(AF[v],q);x=S(AF[v],R);if(G!==r){AE=parseInt(G,10);}if(x!==r){AD=parseInt(x,10);}}AG[0]-=AE;AG[1]-=AD;}if((Y||z)){AG[0]+=z;AG[1]+=Y;}AG[0]=AB(AG[0]);AG[1]=AB(AG[1]);}else{}return AG;};}else{return function(y){var x,Y,AA,AB,AC,z=false,G=y;if(E.Dom._canPosition(y)){z=[y[b],y[P]];x=E.Dom.getDocumentScrollLeft(y[e]);Y=E.Dom.getDocumentScrollTop(y[e]);AC=((H||m.webkit>519)?true:false);while((G=G[u])){z[0]+=G[b];z[1]+=G[P];if(AC){z=E.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!==f){G=y;while((G=G[Z])&&G[C]){AA=G[i];AB=G[O];if(H&&(E.Dom._getStyle(G,"overflow")!=="visible")){z=E.Dom._calcBorders(G,z);}if(AA||AB){z[0]-=AB;z[1]-=AA;}}z[0]+=x;z[1]+=Y;}else{if(D){z[0]-=x;z[1]-=Y;}else{if(I||H){z[0]+=x;z[1]+=Y;}}}z[0]=Math.floor(z[0]);z[1]=Math.floor(z[1]);}else{}return z;};}}(),getX:function(G){var Y=function(x){return E.Dom.getXY(x)[0];};return E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var Y=function(x){return E.Dom.getXY(x)[1];};return E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var AA=E.Dom._getStyle(G,p),y=E.Dom.setStyle,AD=z.pos,Y=z.noRetry,AB=[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle(G,o),10)],AC,x;if(AA=="static"){AA=V;y(G,p,AA);}AC=E.Dom._getXY(G);if(!AD||AC===false){return false;}if(isNaN(AB[0])){AB[0]=(AA==V)?0:G[b];}if(isNaN(AB[1])){AB[1]=(AA==V)?0:G[P];}if(AD[0]!==null){y(G,j,AD[0]-AC[0]+AB[0]+"px");}if(AD[1]!==null){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=E.Dom._getXY(G);if((AD[0]!==null&&x[0]!=AD[0])||(AD[1]!==null&&x[1]!=AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Dom.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getRegion:function(G){var Y=function(x){var y=false;if(E.Dom._canPosition(x)){y=E.Region.getRegion(x);}else{}return y;};return E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return E.Dom.getViewportWidth();},getClientHeight:function(){return E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x,AD){AF=AF||"*";AC=(AC)?E.Dom.get(AC):null||K;if(!AC){return[];}var Y=[],G=AC.getElementsByTagName(AF),z=E.Dom.hasClass;for(var y=0,AA=G.length;y<AA;++y){if(z(G[y],AB)){Y[Y.length]=G[y];}}if(AE){E.Dom.batch(Y,AE,x,AD);}return Y;},hasClass:function(Y,G){return E.Dom.batch(Y,E.Dom._hasClass,G);},_hasClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom._getAttribute(x,F)||J;if(Y.exec){G=Y.test(y);}else{G=Y&&(B+y+B).indexOf(B+Y+B)>-1;}}else{}return G;},addClass:function(Y,G){return E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom._getAttribute(x,F)||J;if(!E.Dom._hasClass(x,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=true;}}else{}return G;},removeClass:function(Y,G){return E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var Y=false,AA,z,G;if(y&&x){AA=E.Dom._getAttribute(y,F)||J;E.Dom.setAttribute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=E.Dom._getAttribute(y,F);if(AA!==z){E.Dom.setAttribute(y,F,A(z));Y=true;if(E.Dom._getAttribute(y,F)===""){G=(y.hasAttribute&&y.hasAttribute(g))?g:F;
 y.removeAttribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G});},_replaceClass:function(y,x){var Y,AB,AA,G=false,z;if(y&&x){AB=x.from;AA=x.to;if(!AA){G=false;}else{if(!AB){G=E.Dom._addClass(y,x.to);}else{if(AB!==AA){z=E.Dom._getAttribute(y,F)||J;Y=(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.join(J)));G=true;}}}}else{}return G;},generateId:function(G,x){x=x||"yui-gen";var Y=function(y){if(y&&y.id){return y.id;}var z=x+YAHOO.env._id_counter++;if(y){if(y[e]&&y[e].getElementById(z)){return E.Dom.generateId(y,z+x);}y.id=z;}return z;};return E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:function(Y,x){Y=E.Dom.get(Y);x=E.Dom.get(x);var G=false;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!==x){G=Y.contains(x);}else{if(Y.compareDocumentPosition){G=!!(Y.compareDocumentPosition(x)&16);}}}else{}return G;},inDocument:function(G,Y){return E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var G=false;if(Y&&Y[C]){x=x||Y[e];G=E.Dom.isAncestor(x[v],Y);}else{}return G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=AF||"*";AB=(AB)?E.Dom.get(AB):null||K;if(!AB){return[];}var x=[],G=AB.getElementsByTagName(AF);for(var z=0,AA=G.length;z<AA;++z){if(Y(G[z])){if(AE){x=G[z];break;}else{x[x.length]=G[z];}}}if(AD){E.Dom.batch(x,AD,y,AC);}return x;},getElementBy:function(x,G,Y){return E.Dom.getElementsBy(x,G,Y,null,null,null,true);},batch:function(x,AB,AA,z){var y=[],Y=(z)?AA:window;x=(x&&(x[C]||x.item))?x:E.Dom.get(x);if(x&&AB){if(x[C]||x.length===undefined){return AB.call(Y,x,AA);}for(var G=0;G<x.length;++G){y[y.length]=AB.call(Y,x[G],AA);}}else{return false;}return y;},getDocumentHeight:function(){var Y=(K[t]!=M||I)?K.body.scrollHeight:W.scrollHeight,G=Math.max(Y,E.Dom.getViewportHeight());return G;},getDocumentWidth:function(){var Y=(K[t]!=M||I)?K.body.scrollWidth:W.scrollWidth,G=Math.max(Y,E.Dom.getViewportWidth());return G;},getViewportHeight:function(){var G=self.innerHeight,Y=K[t];if((Y||T)&&!D){G=(Y==M)?W.clientHeight:K.body.clientHeight;}return G;},getViewportWidth:function(){var G=self.innerWidth,Y=K[t];if(Y||T){G=(Y==M)?W.clientWidth:K.body.clientWidth;}return G;},getAncestorBy:function(G,Y){while((G=G[Z])){if(E.Dom._testElement(G,Y)){return G;}}return null;},getAncestorByClassName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return E.Dom.hasClass(y,G);};return E.Dom.getAncestorBy(Y,x);},getAncestorByTagName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return y[C]&&y[C].toUpperCase()==G.toUpperCase();};return E.Dom.getAncestorBy(Y,x);},getPreviousSiblingBy:function(G,Y){while(G){G=G.previousSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getPreviousSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getPreviousSiblingBy(G);},getNextSiblingBy:function(G,Y){while(G){G=G.nextSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getNextSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getNextSiblingBy(G);},getFirstChildBy:function(G,x){var Y=(E.Dom._testElement(G.firstChild,x))?G.firstChild:null;return Y||E.Dom.getNextSiblingBy(G.firstChild,x);},getFirstChild:function(G,Y){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getFirstChildBy(G);},getLastChildBy:function(G,x){if(!G){return null;}var Y=(E.Dom._testElement(G.lastChild,x))?G.lastChild:null;return Y||E.Dom.getPreviousSiblingBy(G.lastChild,x);},getLastChild:function(G){G=E.Dom.get(G);return E.Dom.getLastChildBy(G);},getChildrenBy:function(Y,y){var x=E.Dom.getFirstChildBy(Y,y),G=x?[x]:[];E.Dom.getNextSiblingBy(x,function(z){if(!y||y(z)){G[G.length]=z;}return false;});return G;},getChildren:function(G){G=E.Dom.get(G);if(!G){}return E.Dom.getChildrenBy(G);},getDocumentScrollLeft:function(G){G=G||K;return Math.max(G[v].scrollLeft,G.body.scrollLeft);},getDocumentScrollTop:function(G){G=G||K;return Math.max(G[v].scrollTop,G.body.scrollTop);},insertBefore:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}return G[Z].insertBefore(Y,G);},insertAfter:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}if(G.nextSibling){return G[Z].insertBefore(Y,G.nextSibling);}else{return G[Z].appendChild(Y);}},getClientRegion:function(){var x=E.Dom.getDocumentScrollTop(),Y=E.Dom.getDocumentScrollLeft(),y=E.Dom.getViewportWidth()+Y,G=E.Dom.getViewportHeight()+x;return new E.Region(x,y,G,Y);},setAttribute:function(Y,G,x){E.Dom.batch(Y,E.Dom._setAttribute,{attr:G,val:x});},_setAttribute:function(x,Y){var G=E.Dom._toCamel(Y.attr),y=Y.val;if(x&&x.setAttribute){if(E.Dom.DOT_ATTRIBUTES[G]){x[G]=y;}else{G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;x.setAttribute(G,y);}}else{}},getAttribute:function(Y,G){return E.Dom.batch(Y,E.Dom._getAttribute,G);},_getAttribute:function(Y,G){var x;G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;if(Y&&Y.getAttribute){x=Y.getAttribute(G,2);}else{}return x;},_toCamel:function(Y){var x=d;function G(y,z){return z.toUpperCase();}return x[Y]||(x[Y]=Y.indexOf("-")===-1?Y:Y.replace(/-([a-z])/gi,G));},_getClassRegex:function(Y){var G;if(Y!==undefined){if(Y.exec){G=Y;}else{G=h[Y];if(!G){Y=Y.replace(E.Dom._patterns.CLASS_RE_TOKENS,"\\$1");G=h[Y]=new RegExp(s+Y+k,U);}}}return G;},_patterns:{ROOT_TAG:/^body|html$/i,CLASS_RE_TOKENS:/([\.\(\)\^\$\*\+\?\|\[\]\{\}\\])/g},_testElement:function(G,Y){return G&&G[l]==1&&(!Y||Y(G));},_calcBorders:function(x,y){var Y=parseInt(E.Dom[w](x,R),10)||0,G=parseInt(E.Dom[w](x,q),10)||0;if(H){if(N.test(x[C])){Y=0;G=0;}}y[0]+=G;y[1]+=Y;return y;}};var S=E.Dom[w];if(m.opera){E.Dom[w]=function(Y,G){var x=S(Y,G);if(X.test(G)){x=E.Dom.Color.toRGB(x);}return x;};}if(m.webkit){E.Dom[w]=function(Y,G){var x=S(Y,G);if(x==="rgba(0, 0, 0, 0)"){x="transparent";}return x;};}if(m.ie&&m.ie>=8&&K.documentElement.hasAttribute){E.Dom.DOT_ATTRIBUTES.type=true;}})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this.y=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this.x=B;this[0]=B;
-this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/dom/dom.js b/build/dom/dom.js
index 089d5ee..e521416 100644
--- a/build/dom/dom.js
+++ b/build/dom/dom.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The dom module provides helper methods for manipulating Dom elements.
@@ -1829,4 +1829,4 @@ Y.Dom.Color = {
     }
 };
 }());
-YAHOO.register("dom", YAHOO.util.Dom, {version: "2.8.1", build: "19"});
+YAHOO.register("dom", YAHOO.util.Dom, {version: "2.8.2r1", build: "7"});
diff --git a/build/dragdrop/dragdrop-debug.js b/build/dragdrop/dragdrop-debug.js
index 25bca71..bf5bd42 100644
--- a/build/dragdrop/dragdrop-debug.js
+++ b/build/dragdrop/dragdrop-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The drag and drop utility provides a framework for building drag and drop
@@ -3707,4 +3707,4 @@ YAHOO.extend(YAHOO.util.DDTarget, YAHOO.util.DragDrop, {
         return ("DDTarget " + this.id);
     }
 });
-YAHOO.register("dragdrop", YAHOO.util.DragDropMgr, {version: "2.8.1", build: "19"});
+YAHOO.register("dragdrop", YAHOO.util.DragDropMgr, {version: "2.8.2r1", build: "7"});
diff --git a/build/dragdrop/dragdrop-min.js b/build/dragdrop/dragdrop-min.js
index 6e8ac99..3f86f11 100644
--- a/build/dragdrop/dragdrop-min.js
+++ b/build/dragdrop/dragdrop-min.js
@@ -2,9 +2,9 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom;return{useShim:false,_shimActive:false,_shimState:false,_debugShim:false,_createShim:function(){var C=document.createElement("div");C.id="yui-ddm-shim";if(document.body.firstChild){document.body.insertBefore(C,document.body.firstChild);}else{document.body.appendChild(C);}C.style.display="none";C.style.backgroundColor="red";C.style.position="absolute";C.style.zIndex="99999";B.setStyle(C,"opacity","0");this._shim=C;A.on(C,"mouseup",this.handleMouseUp,this,true);A.on(C,"mousemove",this.handleMouseMove,this,true);A.on(window,"scroll",this._sizeShim,this,true);},_sizeShim:function(){if(this._shimActive){var C=this._shim;C.style.height=B.getDocumentHeight()+"px";C.style.width=B.getDocumentWidth()+"px";C.style.top="0";C.style.left="0";}},_activateShim:function(){if(this.useShim){if(!this._shim){this._createShim();}this._shimActive=true;var C=this._shim,D="0";if(this._debugShim){D=".5";}B.setStyle(C,"opacity",D);this._sizeShim();C.style.display="block";}},_deactivateShim:function(){this._shim.style.display="none";this._shimActive=false;},_shim:null,ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(E,D){for(var F in this.ids){for(var C in this.ids[F]){var G=this.ids[F][C];if(!this.isTypeOfDD(G)){continue;}G[E].apply(G,D);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(C){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(D,C){if(!this.initialized){this.init();}if(!this.ids[C]){this.ids[C]={};}this.ids[C][D.id]=D;},removeDDFromGroup:function(E,C){if(!this.ids[C]){this.ids[C]={};}var D=this.ids[C];if(D&&D[E.id]){delete D[E.id];}},_remove:function(E){for(var D in E.groups){if(D){var C=this.ids[D];if(C&&C[E.id]){delete C[E.id];}}}delete this.handleIds[E.id];},regHandle:function(D,C){if(!this.handleIds[D]){this.handleIds[D]={};}this.handleIds[D][C]=C;},isDragDrop:function(C){return(this.getDDById(C))?true:false;},getRelated:function(H,D){var G=[];for(var F in H.groups){for(var E in this.ids[F]){var C=this.ids[F][E];if(!this.isTypeOfDD(C)){continue;}if(!D||C.isTarget){G[G.length]=C;}}}return G;},isLegalTarget:function(G,F){var D=this.getRelated(G,true);for(var E=0,C=D.length;E<C;++E){if(D[E].id==F.id){return true;}}return false;},isTypeOfDD:function(C){return(C&&C.__ygDragDrop);},isHandle:function(D,C){return(this.handleIds[D]&&this.handleIds[D][C]);},getDDById:function(D){for(var C in this.ids){if(this.ids[C][D]){return this.ids[C][D];}}return null;},handleMouseDown:function(E,D){this.currentTarget=YAHOO.util.Event.getTarget(E);this.dragCurrent=D;var C=D.getEl();this.startX=YAHOO.util.Event.getPageX(E);this.startY=YAHOO.util.Event.getPageY(E);this.deltaX=this.startX-C.offsetLeft;this.deltaY=this.startY-C.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var F=YAHOO.util.DDM;F.startDrag(F.startX,F.startY);F.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(C,E){if(this.dragCurrent&&this.dragCurrent.useShim){this._shimState=this.useShim;this.useShim=true;}this._activateShim();clearTimeout(this.clickTimeout);var D=this.dragCurrent;if(D&&D.events.b4StartDrag){D.b4StartDrag(C,E);D.fireEvent("b4StartDragEvent",{x:C,y:E});}if(D&&D.events.startDrag){D.startDrag(C,E);D.fireEvent("startDragEvent",{x:C,y:E});}this.dragThreshMet=true;},handleMouseUp:function(C){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.fromTimeout=false;this.handleMouseMove(C);}this.fromTimeout=false;this.fireEvents(C,true);}else{}this.stopDrag(C);this.stopEvent(C);}},stopEvent:function(C){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(C);}if(this.preventDefault){YAHOO.util.Event.preventDefault(C);}},stopDrag:function(E,D){var C=this.dragCurrent;if(C&&!D){if(this.dragThreshMet){if(C.events.b4EndDrag){C.b4EndDrag(E);C.fireEvent("b4EndDragEvent",{e:E});}if(C.events.endDrag){C.endDrag(E);C.fireEvent("endDragEvent",{e:E});}}if(C.events.mouseUp){C.onMouseUp(E);C.fireEvent("mouseUpEvent",{e:E});}}if(this._shimActive){this._deactivateShim();if(this.dragCurrent&&this.dragCurrent.useShim){this.useShim=this._shimState;this._shimState=false;}}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(F){var C=this.dragCurrent;if(C){if(YAHOO.util.Event.isIE&&!F.button){this.stopEvent(F);return this.handleMouseUp(F);}else{if(F.clientX<0||F.clientY<0){}}if(!this.dragThreshMet){var E=Math.abs(this.startX-YAHOO.util.Event.getPageX(F));var D=Math.abs(this.startY-YAHOO.util.Event.getPageY(F));if(E>this.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(V,L){var a=this.dragCurrent;if(!a||a.isLocked()||a.dragOnly){return;}var N=YAHOO.util.Event.getPageX(V),M=YAHOO.util.Event.getPageY(V),P=new YAHOO.util.Point(N,M),K=a.getTargetCoord(P.x,P.y),F=a.getDragEl(),E=["out","over","drop","enter"],U=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},Q=[],c={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var S in this.dragOvers){var d=this.dragOvers[S];if(!this.isTypeOfDD(d)){continue;
 }if(!this.isOverTarget(P,d,this.mode,U)){c.outEvts.push(d);}I[S]=true;delete this.dragOvers[S];}for(var R in a.groups){if("string"!=typeof R){continue;}for(S in this.ids[R]){var G=this.ids[R][S];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=a){if(this.isOverTarget(P,G,this.mode,U)){D[R]=true;if(L){c.dropEvts.push(G);}else{if(!I[G.id]){c.enterEvts.push(G);}else{c.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:c.outEvts,enter:c.enterEvts,over:c.overEvts,drop:c.dropEvts,point:P,draggedRegion:U,sourceRegion:this.locationCache[a.id],validDrop:L};for(var C in D){Q.push(C);}if(L&&!c.dropEvts.length){this.interactionInfo.validDrop=false;if(a.events.invalidDrop){a.onInvalidDrop(V);a.fireEvent("invalidDropEvent",{e:V});}}for(S=0;S<E.length;S++){var Y=null;if(c[E[S]+"Evts"]){Y=c[E[S]+"Evts"];}if(Y&&Y.length){var H=E[S].charAt(0).toUpperCase()+E[S].substr(1),X="onDrag"+H,J="b4Drag"+H,O="drag"+H+"Event",W="drag"+H;if(this.mode){if(a.events[J]){a[J](V,Y,Q);a.fireEvent(J+"Event",{event:V,info:Y,group:Q});}if(a.events[W]){a[X](V,Y,Q);a.fireEvent(O,{event:V,info:Y,group:Q});}}else{for(var Z=0,T=Y.length;Z<T;++Z){if(a.events[J]){a[J](V,Y[Z].id,Q[0]);a.fireEvent(J+"Event",{event:V,info:Y[Z].id,group:Q[0]});}if(a.events[W]){a[X](V,Y[Z].id,Q[0]);a.fireEvent(O,{event:V,info:Y[Z].id,group:Q[0]});}}}}}},getBestMatch:function(E){var G=null;var D=E.length;if(D==1){G=E[0];}else{for(var F=0;F<D;++F){var C=E[F];if(this.mode==this.INTERSECT&&C.cursorIsOver){G=C;break;}else{if(!G||!G.overlap||(C.overlap&&G.overlap.getArea()<C.overlap.getArea())){G=C;}}}}return G;},refreshCache:function(D){var F=D||this.ids;for(var C in F){if("string"!=typeof C){continue;}for(var E in this.ids[C]){var G=this.ids[C][E];if(this.isTypeOfDD(G)){var H=this.getLocation(G);if(H){this.locationCache[G.id]=H;}else{delete this.locationCache[G.id];}}}}},verifyEl:function(D){try{if(D){var C=D.offsetParent;if(C){return true;}}}catch(E){}return false;},getLocation:function(H){if(!this.isTypeOfDD(H)){return null;}var F=H.getEl(),K,E,D,M,L,N,C,J,G;try{K=YAHOO.util.Dom.getXY(F);}catch(I){}if(!K){return null;}E=K[0];D=E+F.offsetWidth;M=K[1];L=M+F.offsetHeight;N=M-H.padding[0];C=D+H.padding[1];J=L+H.padding[2];G=E-H.padding[3];return new YAHOO.util.Region(N,C,J,G);},isOverTarget:function(K,C,E,F){var G=this.locationCache[C.id];if(!G||!this.useCache){G=this.getLocation(C);this.locationCache[C.id]=G;}if(!G){return false;}C.cursorIsOver=G.contains(K);var J=this.dragCurrent;if(!J||(!E&&!J.constrainX&&!J.constrainY)){return C.cursorIsOver;}C.overlap=null;if(!F){var H=J.getTargetCoord(K.x,K.y);var D=J.getDragEl();F=new YAHOO.util.Region(H.y,H.x+D.offsetWidth,H.y+D.offsetHeight,H.x);}var I=F.intersect(G);if(I){C.overlap=I;return(E)?true:C.cursorIsOver;}else{return false;}},_onUnload:function(D,C){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}this._execOnAll("unreg",[]);this.ids={};},elementCache:{},getElWrapper:function(D){var C=this.elementCache[D];if(!C||!C.el){C=this.elementCache[D]=new this.ElementWrapper(YAHOO.util.Dom.get(D));}return C;},getElement:function(C){return YAHOO.util.Dom.get(C);},getCss:function(D){var C=YAHOO.util.Dom.get(D);return(C)?C.style:null;},ElementWrapper:function(C){this.el=C||null;this.id=this.el&&C.id;this.css=this.el&&C.style;},getPosX:function(C){return YAHOO.util.Dom.getX(C);},getPosY:function(C){return YAHOO.util.Dom.getY(C);},swapNode:function(E,C){if(E.swapNode){E.swapNode(C);}else{var F=C.parentNode;var D=C.nextSibling;if(D==E){F.insertBefore(E,C);}else{if(C==E.nextSibling){F.insertBefore(C,E);}else{E.parentNode.replaceChild(C,E);F.insertBefore(E,D);}}}},getScroll:function(){var E,C,F=document.documentElement,D=document.body;if(F&&(F.scrollTop||F.scrollLeft)){E=F.scrollTop;C=F.scrollLeft;}else{if(D){E=D.scrollTop;C=D.scrollLeft;}else{}}return{top:E,left:C};},getStyle:function(D,C){return YAHOO.util.Dom.getStyle(D,C);},getScrollTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(C,E){var D=YAHOO.util.Dom.getXY(E);YAHOO.util.Dom.setXY(C,D);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(D,C){return(D-C);},_timeoutCount:0,_addListeners:function(){var C=YAHOO.util.DDM;if(YAHOO.util.Event&&document){C._onLoad();}else{if(C._timeoutCount>2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);
 }return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.mouseDown){H=this.fireEvent("mouseDownEvent",J);}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(C<this.minX){C=this.minX;}if(C>this.maxX){C=this.maxX;}}if(this.constrainY){if(F<this.minY){F=this.minY;}if(F>this.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E<C;++E){if(this.invalidHandleClasses[E]==D){delete this.invalidHandleClasses[E];}}},isValidHandleChild:function(F){var E=true;var H;try{H=F.nodeName.toUpperCase();}catch(G){H=F.nodeName;}E=E&&!this.invalidHandleTypes[H];E=E&&!this.invalidHandleIds[F.id];for(var D=0,C=this.invalidHandleClasses.length;E&&D<C;++D){E=!B.hasClass(F,this.invalidHandleClasses[D]);}return E;},setXTicks:function(F,C){this.xTicks=[];this.xTickSize=C;var E={};for(var D=this.initPageX;D>=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);
-}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return;}var F=this.getDragEl(),E=YAHOO.util.Dom;if(!F){F=document.createElement("div");F.id=this.dragElId;var D=F.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");F.appendChild(C);A.insertBefore(F,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DDM.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return;}var F=this.getDragEl(),E=YAHOO.util.Dom;if(!F){F=document.createElement("div");F.id=this.dragElId;var D=F.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");F.appendChild(C);A.insertBefore(F,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DDM.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/dragdrop/dragdrop.js b/build/dragdrop/dragdrop.js
index 3140a2f..1eef047 100644
--- a/build/dragdrop/dragdrop.js
+++ b/build/dragdrop/dragdrop.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The drag and drop utility provides a framework for building drag and drop
@@ -3598,4 +3598,4 @@ YAHOO.extend(YAHOO.util.DDTarget, YAHOO.util.DragDrop, {
         return ("DDTarget " + this.id);
     }
 });
-YAHOO.register("dragdrop", YAHOO.util.DragDropMgr, {version: "2.8.1", build: "19"});
+YAHOO.register("dragdrop", YAHOO.util.DragDropMgr, {version: "2.8.2r1", build: "7"});
diff --git a/build/editor/assets/editor-core.css b/build/editor/assets/editor-core.css
index a000cf2..10ab06d 100644
--- a/build/editor/assets/editor-core.css
+++ b/build/editor/assets/editor-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Set the cursor to busy when we are doing something */
 .yui-busy {
diff --git a/build/editor/assets/simpleeditor-core.css b/build/editor/assets/simpleeditor-core.css
index a000cf2..10ab06d 100644
--- a/build/editor/assets/simpleeditor-core.css
+++ b/build/editor/assets/simpleeditor-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Set the cursor to busy when we are doing something */
 .yui-busy {
diff --git a/build/editor/assets/skins/sam/editor-skin.css b/build/editor/assets/skins/sam/editor-skin.css
index d688d8d..5fabedf 100644
--- a/build/editor/assets/skins/sam/editor-skin.css
+++ b/build/editor/assets/skins/sam/editor-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Place the border around the editor */
 .yui-skin-sam .yui-editor-container {
diff --git a/build/editor/assets/skins/sam/editor.css b/build/editor/assets/skins/sam/editor.css
index b6a4987..a5b4128 100644
--- a/build/editor/assets/skins/sam/editor.css
+++ b/build/editor/assets/skins/sam/editor.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-busy{cursor:wait!important;}.yui-toolbar-container fieldset,.yui-editor-container fieldset{padding:0;margin:0;border:0;}.yui-toolbar-container legend{display:none;}.yui-skin-sam .yui-toolbar-container .yui-button button,.yui-skin-sam .yui-toolbar-container .yui-button a,.yui-skin-sam .yui-toolbar-container .yui-button a:visited{font-size:0;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-select button,.yui-skin-sam .yui-toolbar-container .yui-toolbar-select a,.yui-skin-sam .yui-toolbar-container .yui-toolbar-select a:visited,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton button,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a:visited{font-size:12px;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down{font-size:0;line-height:0;padding:0;}.yui-toolbar-container .yui-toolbar-subcont{padding:.25em 0;zoom:1;}.yui-toolbar-container-collapsed .yui-toolbar-subcont{display:none;}.yui-toolbar-container .yui-toolbar-subcont:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-container span.yui-toolbar-draghandle{cursor:move;border-left:1px solid #999;border-right:1px solid #999;overflow:hidden;text-indent:77777px;width:2px;height:20px;display:block;clear:none;float:left;margin:0 0 0 .2em;}.yui-toolbar-container .yui-toolbar-titlebar.draggable{cursor:move;}.yui-toolbar-container .yui-toolbar-titlebar{position:relative;}.yui-toolbar-container .yui-toolbar-titlebar h2{font-weight:bold;letter-spacing:0;border:none;color:#000;margin:0;padding:.2em;}.yui-toolbar-container .yui-toolbar-titlebar h2 a{text-decoration:none;color:#000;cursor:default;}.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-draghandle{height:40px;}.yui-toolbar-container .yui-toolbar-group{float:left;margin-right:.5em;zoom:1;}.yui-toolbar-container .yui-toolbar-group:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-container .yui-toolbar-group h3{font-size:75%;padding:0 0 0 .25em;margin:0;}.yui-toolbar-container span.yui-toolbar-separator{width:2px;padding:0;height:18px;margin:.2em 0 .2em .1em;display:none;float:left;}.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-separator{height:45px;*height:50px;}.yui-toolbar-container.yui-toolbar-grouped .yui-toolbar-group span.yui-toolbar-separator{height:18px;display:block;}.yui-toolbar-container ul li{margin:0;padding:0;list-style-type:none;}.yui-toolbar-container .yui-toolbar-nogrouplabels h3{display:none;}.yui-toolbar-container .yui-push-button,.yui-toolbar-container .yui-color-button,.yui-toolbar-container .yui-menu-button{position:relative;cursor:pointer;}.yui-toolbar-container .yui-button .first-child,.yui-toolbar-container .yui-button .first-child a{height:100%;width:100%;overflow:hidden;font-size:0;}.yui-toolbar-container .yui-button-disabled{cursor:default;}.yui-toolbar-container .yui-button-disabled .yui-toolbar-icon{opacity:.5;filter:alpha(opacity=50);}.yui-toolbar-container .yui-button-disabled .up,.yui-toolbar-container .yui-button-disabled .down{opacity:.5;filter:alpha(opacity=50);}.yui-toolbar-container .yui-button a{overflow:hidden;}.yui-toolbar-container .yui-toolbar-select .first-child a{cursor:pointer;}.yui-toolbar-fontname-arial{font-family:Arial;}.yui-toolbar-fontname-arial-black{font-family:Arial Black;}.yui-toolbar-fontname-comic-sans-ms{font-family:Comic Sans MS;}.yui-toolbar-fontname-courier-new{font-family:Courier New;}.yui-toolbar-fontname-times-new-roman{font-family:Times New Roman;}.yui-toolbar-fontname-verdana{font-family:Verdana;}.yui-toolbar-fontname-impact{font-family:Impact;}.yui-toolbar-fontname-lucida-console{font-family:Lucida Console;}.yui-toolbar-fontname-tahoma{font-family:Tahoma;}.yui-toolbar-fontname-trebuchet-ms{font-family:Trebuchet MS;}.yui-toolbar-container .yui-toolbar-spinbutton{position:relative;}.yui-toolbar-container .yui-toolbar-spinbutton .first-child a{z-index:0;opacity:1;}.yui-toolbar-container .yui-toolbar-spinbutton a.up,.yui-toolbar-container .yui-toolbar-spinbutton a.down{position:absolute;display:block;right:0;cursor:pointer;z-index:1;padding:0;margin:0;}.yui-toolbar-container .yui-overlay{position:absolute;}.yui-toolbar-container .yui-overlay ul li{margin:0;list-style-type:none;}.yui-toolbar-container{z-index:1;}.yui-editor-container .yui-editor-editable-container{position:relative;z-index:0;width:100%;}.yui-editor-container .yui-editor-masked{background-color:#CCC;height:100%;width:100%;position:absolute;top:0;left:0;opacity:.5;filter:alpha(opacity=50);}.yui-editor-container iframe{border:0;padding:0;margin:0;zoom:1;display:block;}.yui-editor-container .yui-editor-editable{padding:0;margin:0;}.yui-editor-container .dompath{font-size:85%;}.yui-editor-panel .hd{text-align:left;position:relative;}.yui-editor-panel .hd h3{font-weight:bold;padding:.25em 0 .25em .25em;margin:0;}.yui-editor-panel .bd{width:100%;zoom:1;position:relative;}.yui-editor-panel .bd div.yui-editor-body-cont{padding:.25em .1em;zoom:1;}.yui-editor-panel .bd .gecko form{overflow:auto;}.yui-editor-panel .bd div.yui-editor-body-cont:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-editor-panel .ft{text-align:right;width:99%;float:left;clear:both;}.yui-editor-panel .ft span.tip{display:block;position:relative;padding:.5em .5em .5em 23px;text-align:left;zoom:1;}.yui-editor-panel label{clear:both;float:left;padding:0;width:100%;text-align:left;zoom:1;}.yui-editor-panel .gecko label{overflow:auto;}.yui-editor-panel label strong{float:left;width:6em;}.yui-editor-panel .removeLink{width:80%;text-align:right;}.yui-editor-panel label input{margin-left:.25em;float:left;}.yui-editor-panel .yui-toolbar-group{margin-bottom:.75em;}.yui-editor-panel .height-width{float:left;}.yui-editor-panel .height-width span{font-style:italic;display:block;float:left;overflow:visible;}.yui-editor-panel .height-width span.info{font-size:70%;margin-top:3px;float:none;}
 .yui-editor-panel .yui-toolbar-bordersize,.yui-editor-panel .yui-toolbar-bordertype{font-size:75%;}.yui-editor-panel .yui-toolbar-container span.yui-toolbar-separator{border:none;}.yui-editor-panel .yui-toolbar-bordersize span a span,.yui-editor-panel .yui-toolbar-bordertype span a span{display:block;height:8px;left:4px;position:absolute;top:3px;_top:-5px;width:24px;text-indent:52px;font-size:0;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-solid{border-bottom:1px solid black;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dotted{border-bottom:1px dotted black;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dashed{border-bottom:1px dashed black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-0{*top:0;text-indent:0;font-size:75%;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-1{border-bottom:1px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-2{border-bottom:2px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-3{top:2px;*top:-5px;border-bottom:3px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-4{top:1px;*top:-5px;border-bottom:4px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-5{top:1px;*top:-5px;border-bottom:5px solid black;}.yui-toolbar-container .yui-toolbar-bordersize-menu,.yui-toolbar-container .yui-toolbar-bordertype-menu{width:95px!important;}.yui-toolbar-bordersize-menu .yuimenuitemlabel,.yui-toolbar-bordertype-menu .yuimenuitemlabel,.yui-toolbar-bordersize-menu .yuimenuitemlabel,.yui-toolbar-bordertype-menu .yuimenuitemlabel:hover{margin:0 3px 7px 17px;}.yui-toolbar-bordersize-menu .yuimenuitemlabel .checkedindicator,.yui-toolbar-bordertype-menu .yuimenuitemlabel .checkedindicator{position:absolute;left:-12px;*top:14px;*left:0;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-1 a{border-bottom:1px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-2 a{border-bottom:2px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-3 a{border-bottom:3px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-4 a{border-bottom:4px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-5 a{border-bottom:5px solid black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-solid a{border-bottom:1px solid black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dashed a{border-bottom:1px dashed black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dotted a{border-bottom:1px dotted black;height:14px;}h2.yui-editor-skipheader,h3.yui-editor-skipheader{height:0;margin:0;padding:0;border:none;width:0;overflow:hidden;position:absolute;}.yui-toolbar-colors{width:133px;zoom:1;display:none;z-index:100;overflow:hidden;}.yui-toolbar-colors:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-colors a{height:9px;width:9px;float:left;display:block;overflow:hidden;text-indent:999px;margin:0;cursor:pointer;border:1px solid #F6F7EE;}.yui-toolbar-colors a:hover{border:1px solid black;}.yui-color-button-menu{overflow:visible;background-color:transparent;}.yui-toolbar-colors span{position:relative;display:block;padding:3px;overflow:hidden;float:left;width:100%;zoom:1;}.yui-toolbar-colors span:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-colors span em{height:35px;width:30px;float:left;display:block;overflow:hidden;text-indent:999px;margin:.75px;border:1px solid black;}.yui-toolbar-colors span strong{font-weight:normal;padding-left:3px;display:block;font-size:85%;float:left;width:65%;}.yui-toolbar-group-undoredo h3,.yui-toolbar-group-insertitem h3,.yui-toolbar-group-indentlist h3{width:68px;}.yui-toolbar-group-indentlist2 h3{width:122px;}.yui-toolbar-group-alignment h3{width:130px;}.yui-skin-sam .yui-editor-container{border:1px solid #808080;}.yui-skin-sam .yui-toolbar-container{zoom:1;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -200px;position:relative;}.yui-skin-sam .yui-editor-container .draggable .yui-toolbar-titlebar{cursor:move;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar h2{color:#000;font-weight:bold;margin:0;padding:.3em 1em;font-size:100%;text-align:left;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-group h3{color:#808080;font-size:75%;margin:1em 0 0;padding-bottom:0;padding-left:.25em;text-align:left;}.yui-toolbar-container span.yui-toolbar-separator{border:none;text-indent:33px;overflow:hidden;margin:0 .25em;}.yui-skin-sam .yui-toolbar-container{background-color:#F2F2F2;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-subcont{padding:0 1em .35em;border-bottom:1px solid #808080;}.yui-skin-sam .yui-toolbar-container-collapsed .yui-toolbar-titlebar{border-bottom:1px solid #808080;}.yui-skin-sam .yui-editor-container .visible .yui-menu-shadow,.yui-skin-sam .yui-editor-panel .visible .yui-menu-shadow{display:none;}.yui-skin-sam .yui-editor-container ul{list-style-type:none;margin:0;padding:0;}.yui-skin-sam .yui-editor-container ul li{list-style-type:none;margin:0;padding:0;}.yui-skin-sam .yui-toolbar-group ul li.yui-toolbar-groupitem{float:left;}.yui-skin-sam .yui-editor-container .dompath{background-color:#F2F2F2;border-top:1px solid #808080;color:#999;text-align:left;padding:.25em;}.yui-skin-sam .yui-toolbar-container .collapse{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -400px;}.yui-skin-sam .yui-toolbar-container .collapsed{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -350px;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar span.collapse{cursor:pointer;position:absolute;top:4px;right:2px;display:block;overflow:hidden;height:15px;width:15px;text-indent:9999px;}
diff --git a/build/editor/assets/skins/sam/simpleeditor-skin.css b/build/editor/assets/skins/sam/simpleeditor-skin.css
index d688d8d..5fabedf 100644
--- a/build/editor/assets/skins/sam/simpleeditor-skin.css
+++ b/build/editor/assets/skins/sam/simpleeditor-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Place the border around the editor */
 .yui-skin-sam .yui-editor-container {
diff --git a/build/editor/assets/skins/sam/simpleeditor.css b/build/editor/assets/skins/sam/simpleeditor.css
index b6a4987..a5b4128 100644
--- a/build/editor/assets/skins/sam/simpleeditor.css
+++ b/build/editor/assets/skins/sam/simpleeditor.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-busy{cursor:wait!important;}.yui-toolbar-container fieldset,.yui-editor-container fieldset{padding:0;margin:0;border:0;}.yui-toolbar-container legend{display:none;}.yui-skin-sam .yui-toolbar-container .yui-button button,.yui-skin-sam .yui-toolbar-container .yui-button a,.yui-skin-sam .yui-toolbar-container .yui-button a:visited{font-size:0;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-select button,.yui-skin-sam .yui-toolbar-container .yui-toolbar-select a,.yui-skin-sam .yui-toolbar-container .yui-toolbar-select a:visited,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton button,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a:visited{font-size:12px;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.up,.yui-skin-sam .yui-toolbar-container .yui-toolbar-spinbutton a.down{font-size:0;line-height:0;padding:0;}.yui-toolbar-container .yui-toolbar-subcont{padding:.25em 0;zoom:1;}.yui-toolbar-container-collapsed .yui-toolbar-subcont{display:none;}.yui-toolbar-container .yui-toolbar-subcont:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-container span.yui-toolbar-draghandle{cursor:move;border-left:1px solid #999;border-right:1px solid #999;overflow:hidden;text-indent:77777px;width:2px;height:20px;display:block;clear:none;float:left;margin:0 0 0 .2em;}.yui-toolbar-container .yui-toolbar-titlebar.draggable{cursor:move;}.yui-toolbar-container .yui-toolbar-titlebar{position:relative;}.yui-toolbar-container .yui-toolbar-titlebar h2{font-weight:bold;letter-spacing:0;border:none;color:#000;margin:0;padding:.2em;}.yui-toolbar-container .yui-toolbar-titlebar h2 a{text-decoration:none;color:#000;cursor:default;}.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-draghandle{height:40px;}.yui-toolbar-container .yui-toolbar-group{float:left;margin-right:.5em;zoom:1;}.yui-toolbar-container .yui-toolbar-group:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-container .yui-toolbar-group h3{font-size:75%;padding:0 0 0 .25em;margin:0;}.yui-toolbar-container span.yui-toolbar-separator{width:2px;padding:0;height:18px;margin:.2em 0 .2em .1em;display:none;float:left;}.yui-toolbar-container.yui-toolbar-grouped span.yui-toolbar-separator{height:45px;*height:50px;}.yui-toolbar-container.yui-toolbar-grouped .yui-toolbar-group span.yui-toolbar-separator{height:18px;display:block;}.yui-toolbar-container ul li{margin:0;padding:0;list-style-type:none;}.yui-toolbar-container .yui-toolbar-nogrouplabels h3{display:none;}.yui-toolbar-container .yui-push-button,.yui-toolbar-container .yui-color-button,.yui-toolbar-container .yui-menu-button{position:relative;cursor:pointer;}.yui-toolbar-container .yui-button .first-child,.yui-toolbar-container .yui-button .first-child a{height:100%;width:100%;overflow:hidden;font-size:0;}.yui-toolbar-container .yui-button-disabled{cursor:default;}.yui-toolbar-container .yui-button-disabled .yui-toolbar-icon{opacity:.5;filter:alpha(opacity=50);}.yui-toolbar-container .yui-button-disabled .up,.yui-toolbar-container .yui-button-disabled .down{opacity:.5;filter:alpha(opacity=50);}.yui-toolbar-container .yui-button a{overflow:hidden;}.yui-toolbar-container .yui-toolbar-select .first-child a{cursor:pointer;}.yui-toolbar-fontname-arial{font-family:Arial;}.yui-toolbar-fontname-arial-black{font-family:Arial Black;}.yui-toolbar-fontname-comic-sans-ms{font-family:Comic Sans MS;}.yui-toolbar-fontname-courier-new{font-family:Courier New;}.yui-toolbar-fontname-times-new-roman{font-family:Times New Roman;}.yui-toolbar-fontname-verdana{font-family:Verdana;}.yui-toolbar-fontname-impact{font-family:Impact;}.yui-toolbar-fontname-lucida-console{font-family:Lucida Console;}.yui-toolbar-fontname-tahoma{font-family:Tahoma;}.yui-toolbar-fontname-trebuchet-ms{font-family:Trebuchet MS;}.yui-toolbar-container .yui-toolbar-spinbutton{position:relative;}.yui-toolbar-container .yui-toolbar-spinbutton .first-child a{z-index:0;opacity:1;}.yui-toolbar-container .yui-toolbar-spinbutton a.up,.yui-toolbar-container .yui-toolbar-spinbutton a.down{position:absolute;display:block;right:0;cursor:pointer;z-index:1;padding:0;margin:0;}.yui-toolbar-container .yui-overlay{position:absolute;}.yui-toolbar-container .yui-overlay ul li{margin:0;list-style-type:none;}.yui-toolbar-container{z-index:1;}.yui-editor-container .yui-editor-editable-container{position:relative;z-index:0;width:100%;}.yui-editor-container .yui-editor-masked{background-color:#CCC;height:100%;width:100%;position:absolute;top:0;left:0;opacity:.5;filter:alpha(opacity=50);}.yui-editor-container iframe{border:0;padding:0;margin:0;zoom:1;display:block;}.yui-editor-container .yui-editor-editable{padding:0;margin:0;}.yui-editor-container .dompath{font-size:85%;}.yui-editor-panel .hd{text-align:left;position:relative;}.yui-editor-panel .hd h3{font-weight:bold;padding:.25em 0 .25em .25em;margin:0;}.yui-editor-panel .bd{width:100%;zoom:1;position:relative;}.yui-editor-panel .bd div.yui-editor-body-cont{padding:.25em .1em;zoom:1;}.yui-editor-panel .bd .gecko form{overflow:auto;}.yui-editor-panel .bd div.yui-editor-body-cont:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-editor-panel .ft{text-align:right;width:99%;float:left;clear:both;}.yui-editor-panel .ft span.tip{display:block;position:relative;padding:.5em .5em .5em 23px;text-align:left;zoom:1;}.yui-editor-panel label{clear:both;float:left;padding:0;width:100%;text-align:left;zoom:1;}.yui-editor-panel .gecko label{overflow:auto;}.yui-editor-panel label strong{float:left;width:6em;}.yui-editor-panel .removeLink{width:80%;text-align:right;}.yui-editor-panel label input{margin-left:.25em;float:left;}.yui-editor-panel .yui-toolbar-group{margin-bottom:.75em;}.yui-editor-panel .height-width{float:left;}.yui-editor-panel .height-width span{font-style:italic;display:block;float:left;overflow:visible;}.yui-editor-panel .height-width span.info{font-size:70%;margin-top:3px;float:none;}
 .yui-editor-panel .yui-toolbar-bordersize,.yui-editor-panel .yui-toolbar-bordertype{font-size:75%;}.yui-editor-panel .yui-toolbar-container span.yui-toolbar-separator{border:none;}.yui-editor-panel .yui-toolbar-bordersize span a span,.yui-editor-panel .yui-toolbar-bordertype span a span{display:block;height:8px;left:4px;position:absolute;top:3px;_top:-5px;width:24px;text-indent:52px;font-size:0;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-solid{border-bottom:1px solid black;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dotted{border-bottom:1px dotted black;}.yui-editor-panel .yui-toolbar-bordertype span a span.yui-toolbar-bordertype-dashed{border-bottom:1px dashed black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-0{*top:0;text-indent:0;font-size:75%;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-1{border-bottom:1px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-2{border-bottom:2px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-3{top:2px;*top:-5px;border-bottom:3px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-4{top:1px;*top:-5px;border-bottom:4px solid black;}.yui-editor-panel .yui-toolbar-bordersize span a span.yui-toolbar-bordersize-5{top:1px;*top:-5px;border-bottom:5px solid black;}.yui-toolbar-container .yui-toolbar-bordersize-menu,.yui-toolbar-container .yui-toolbar-bordertype-menu{width:95px!important;}.yui-toolbar-bordersize-menu .yuimenuitemlabel,.yui-toolbar-bordertype-menu .yuimenuitemlabel,.yui-toolbar-bordersize-menu .yuimenuitemlabel,.yui-toolbar-bordertype-menu .yuimenuitemlabel:hover{margin:0 3px 7px 17px;}.yui-toolbar-bordersize-menu .yuimenuitemlabel .checkedindicator,.yui-toolbar-bordertype-menu .yuimenuitemlabel .checkedindicator{position:absolute;left:-12px;*top:14px;*left:0;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-1 a{border-bottom:1px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-2 a{border-bottom:2px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-3 a{border-bottom:3px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-4 a{border-bottom:4px solid black;height:14px;}.yui-toolbar-bordersize-menu li.yui-toolbar-bordersize-5 a{border-bottom:5px solid black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-solid a{border-bottom:1px solid black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dashed a{border-bottom:1px dashed black;height:14px;}.yui-toolbar-bordertype-menu li.yui-toolbar-bordertype-dotted a{border-bottom:1px dotted black;height:14px;}h2.yui-editor-skipheader,h3.yui-editor-skipheader{height:0;margin:0;padding:0;border:none;width:0;overflow:hidden;position:absolute;}.yui-toolbar-colors{width:133px;zoom:1;display:none;z-index:100;overflow:hidden;}.yui-toolbar-colors:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-colors a{height:9px;width:9px;float:left;display:block;overflow:hidden;text-indent:999px;margin:0;cursor:pointer;border:1px solid #F6F7EE;}.yui-toolbar-colors a:hover{border:1px solid black;}.yui-color-button-menu{overflow:visible;background-color:transparent;}.yui-toolbar-colors span{position:relative;display:block;padding:3px;overflow:hidden;float:left;width:100%;zoom:1;}.yui-toolbar-colors span:after{display:block;clear:both;visibility:hidden;content:'.';height:0;}.yui-toolbar-colors span em{height:35px;width:30px;float:left;display:block;overflow:hidden;text-indent:999px;margin:.75px;border:1px solid black;}.yui-toolbar-colors span strong{font-weight:normal;padding-left:3px;display:block;font-size:85%;float:left;width:65%;}.yui-toolbar-group-undoredo h3,.yui-toolbar-group-insertitem h3,.yui-toolbar-group-indentlist h3{width:68px;}.yui-toolbar-group-indentlist2 h3{width:122px;}.yui-toolbar-group-alignment h3{width:130px;}.yui-skin-sam .yui-editor-container{border:1px solid #808080;}.yui-skin-sam .yui-toolbar-container{zoom:1;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -200px;position:relative;}.yui-skin-sam .yui-editor-container .draggable .yui-toolbar-titlebar{cursor:move;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar h2{color:#000;font-weight:bold;margin:0;padding:.3em 1em;font-size:100%;text-align:left;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-group h3{color:#808080;font-size:75%;margin:1em 0 0;padding-bottom:0;padding-left:.25em;text-align:left;}.yui-toolbar-container span.yui-toolbar-separator{border:none;text-indent:33px;overflow:hidden;margin:0 .25em;}.yui-skin-sam .yui-toolbar-container{background-color:#F2F2F2;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-subcont{padding:0 1em .35em;border-bottom:1px solid #808080;}.yui-skin-sam .yui-toolbar-container-collapsed .yui-toolbar-titlebar{border-bottom:1px solid #808080;}.yui-skin-sam .yui-editor-container .visible .yui-menu-shadow,.yui-skin-sam .yui-editor-panel .visible .yui-menu-shadow{display:none;}.yui-skin-sam .yui-editor-container ul{list-style-type:none;margin:0;padding:0;}.yui-skin-sam .yui-editor-container ul li{list-style-type:none;margin:0;padding:0;}.yui-skin-sam .yui-toolbar-group ul li.yui-toolbar-groupitem{float:left;}.yui-skin-sam .yui-editor-container .dompath{background-color:#F2F2F2;border-top:1px solid #808080;color:#999;text-align:left;padding:.25em;}.yui-skin-sam .yui-toolbar-container .collapse{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -400px;}.yui-skin-sam .yui-toolbar-container .collapsed{background:url(../../../../assets/skins/sam/sprite.png) no-repeat 0 -350px;}.yui-skin-sam .yui-toolbar-container .yui-toolbar-titlebar span.collapse{cursor:pointer;position:absolute;top:4px;right:2px;display:block;overflow:hidden;height:15px;width:15px;text-indent:9999px;}
diff --git a/build/editor/editor-debug.js b/build/editor/editor-debug.js
index ad2ab20..8370c05 100644
--- a/build/editor/editor-debug.js
+++ b/build/editor/editor-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 var Dom = YAHOO.util.Dom,
@@ -9554,4 +9554,4 @@ var Dom = YAHOO.util.Dom,
         }
     };
 })();
-YAHOO.register("editor", YAHOO.widget.Editor, {version: "2.8.1", build: "19"});
+YAHOO.register("editor", YAHOO.widget.Editor, {version: "2.8.2r1", build: "7"});
diff --git a/build/editor/editor-min.js b/build/editor/editor-min.js
index aaef85c..e86e2ed 100644
--- a/build/editor/editor-min.js
+++ b/build/editor/editor-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var B=YAHOO.util.Dom,A=YAHOO.util.Event,C=YAHOO.lang;if(YAHOO.widget.Button){YAHOO.widget.ToolbarButtonAdvanced=YAHOO.widget.Button;YAHOO.widget.ToolbarButtonAdvanced.prototype.buttonType="rich";YAHOO.widget.ToolbarButtonAdvanced.prototype.checkValue=function(F){var E=this.getMenu().getItems();if(E.length===0){this.getMenu()._onBeforeShow();E=this.getMenu().getItems();}for(var D=0;D<E.length;D++){E[D].cfg.setProperty("checked",false);if(E[D].value==F){E[D].cfg.setProperty("checked",true);}}};}else{YAHOO.widget.ToolbarButtonAdvanced=function(){};}YAHOO.widget.ToolbarButton=function(E,D){if(C.isObject(arguments[0])&&!B.get(E).nodeType){D=E;}var G=(D||{});var F={element:null,attributes:G};if(!F.attributes.type){F.attributes.type="push";}F.element=document.createElement("span");F.element.setAttribute("unselectable","on");F.element.className="yui-button yui-"+F.attributes.type+"-button";F.element.innerHTML='<span class="first-child"><a href="#">LABEL</a></span>';F.element.firstChild.firstChild.tabIndex="-1";F.attributes.id=(F.attributes.id||B.generateId());F.element.id=F.attributes.id;YAHOO.widget.ToolbarButton.superclass.constructor.call(this,F.element,F.attributes);};YAHOO.extend(YAHOO.widget.ToolbarButton,YAHOO.util.Element,{buttonType:"normal",_handleMouseOver:function(){if(!this.get("disabled")){this.addClass("yui-button-hover");this.addClass("yui-"+this.get("type")+"-button-hover");}},_handleMouseOut:function(){this.removeClass("yui-button-hover");this.removeClass("yui-"+this.get("type")+"-button-hover");},checkValue:function(F){if(this.get("type")=="menu"){var E=this._button.options;for(var D=0;D<E.length;D++){if(E[D].value==F){E.selectedIndex=D;}}}},init:function(E,D){YAHOO.widget.ToolbarButton.superclass.init.call(this,E,D);this.on("mouseover",this._handleMouseOver,this,true);this.on("mouseout",this._handleMouseOut,this,true);this.on("click",function(F){A.stopEvent(F);return false;},this,true);},initAttributes:function(D){YAHOO.widget.ToolbarButton.superclass.initAttributes.call(this,D);this.setAttributeConfig("value",{value:D.value});this.setAttributeConfig("menu",{value:D.menu||false});this.setAttributeConfig("type",{value:D.type,writeOnce:true,method:function(H){var G,F;if(!this._button){this._button=this.get("element").getElementsByTagName("a")[0];}switch(H){case"select":case"menu":G=document.createElement("select");G.id=this.get("id");var I=this.get("menu");for(var E=0;E<I.length;E++){F=document.createElement("option");F.innerHTML=I[E].text;F.value=I[E].value;if(I[E].checked){F.selected=true;}G.appendChild(F);}this._button.parentNode.replaceChild(G,this._button);A.on(G,"change",this._handleSelect,this,true);this._button=G;break;}}});this.setAttributeConfig("disabled",{value:D.disabled||false,method:function(E){if(E){this.addClass("yui-button-disabled");this.addClass("yui-"+this.get("type")+"-button-disabled");}else{this.removeClass("yui-button-disabled");this.removeClass("yui-"+this.get("type")+"-button-disabled");}if((this.get("type")=="menu")||(this.get("type")=="select")){this._button.disabled=E;}}});this.setAttributeConfig("label",{value:D.label,method:function(E){if(!this._button){this._button=this.get("element").getElementsByTagName("a")[0];}if(this.get("type")=="push"){this._button.innerHTML=E;}}});this.setAttributeConfig("title",{value:D.title});this.setAttributeConfig("container",{value:null,writeOnce:true,method:function(E){this.appendTo(E);}});},_handleSelect:function(E){var D=A.getTarget(E);var F=D.options[D.selectedIndex].value;this.fireEvent("change",{type:"change",value:F});},getMenu:function(){return this.get("menu");},destroy:function(){A.purgeElement(this.get("element"),true);this.get("element").parentNode.removeChild(this.get("element"));for(var D in this){if(C.hasOwnProperty(this,D)){this[D]=null;}}},fireEvent:function(E,D){if(this.DOM_EVENTS[E]&&this.get("disabled")){A.stopEvent(D);return;}YAHOO.widget.ToolbarButton.superclass.fireEvent.call(this,E,D);},toString:function(){return"ToolbarButton ("+this.get("id")+")";}});})();(function(){var C=YAHOO.util.Dom,A=YAHOO.util.Event,D=YAHOO.lang;var B=function(F){var E=F;if(D.isString(F)){E=this.getButtonById(F);}if(D.isNumber(F)){E=this.getButtonByIndex(F);}if((!(E instanceof YAHOO.widget.ToolbarButton))&&(!(E instanceof YAHOO.widget.ToolbarButtonAdvanced))){E=this.getButtonByValue(F);}if((E instanceof YAHOO.widget.ToolbarButton)||(E instanceof YAHOO.widget.ToolbarButtonAdvanced)){return E;}return false;};YAHOO.widget.Toolbar=function(I,H){if(D.isObject(arguments[0])&&!C.get(I).nodeType){H=I;}var K={};if(H){D.augmentObject(K,H);}var J={element:null,attributes:K};if(D.isString(I)&&C.get(I)){J.element=C.get(I);}else{if(D.isObject(I)&&C.get(I)&&C.get(I).nodeType){J.element=C.get(I);}}if(!J.element){J.element=document.createElement("DIV");J.element.id=C.generateId();if(K.container&&C.get(K.container)){C.get(K.container).appendChild(J.element);}}if(!J.element.id){J.element.id=((D.isString(I))?I:C.generateId());}var F=document.createElement("fieldset");var G=document.createElement("legend");G.innerHTML="Toolbar";F.appendChild(G);var E=document.createElement("DIV");J.attributes.cont=E;C.addClass(E,"yui-toolbar-subcont");F.appendChild(E);J.element.appendChild(F);J.element.tabIndex=-1;J.attributes.element=J.element;J.attributes.id=J.element.id;this._configuredButtons=[];YAHOO.widget.Toolbar.superclass.constructor.call(this,J.element,J.attributes);};YAHOO.extend(YAHOO.widget.Toolbar,YAHOO.util.Element,{_configuredButtons:null,_addMenuClasses:function(H,E,I){C.addClass(this.element,"yui-toolbar-"+I.get("value")+"-menu");if(C.hasClass(I._button.parentNode.parentNode,"yui-toolbar-select")){C.addClass(this.element,"yui-toolbar-select-menu");}var F=this.getItems();for(var G=0;G<F.length;G++){C.addClass(F[G].element,"yui-toolbar-"+I.get("value")+"-"+((F[G].value)?F[G].value.replace(/ /g,"-").toLowerCase():F[G]._oText.nodeValue.replace(/ /g,"-").toLowerCase()));C.addClass(F[G].element,"yui-toolbar-"+I.get("value")+"-"+((F[G].value)?F[G].value.replace(/ /g,"-"):F[G]._oText.nodeValue.replace(/ /g,"-")));
 }},buttonType:YAHOO.widget.ToolbarButton,dd:null,_colorData:{"#111111":"Obsidian","#2D2D2D":"Dark Gray","#434343":"Shale","#5B5B5B":"Flint","#737373":"Gray","#8B8B8B":"Concrete","#A2A2A2":"Gray","#B9B9B9":"Titanium","#000000":"Black","#D0D0D0":"Light Gray","#E6E6E6":"Silver","#FFFFFF":"White","#BFBF00":"Pumpkin","#FFFF00":"Yellow","#FFFF40":"Banana","#FFFF80":"Pale Yellow","#FFFFBF":"Butter","#525330":"Raw Siena","#898A49":"Mildew","#AEA945":"Olive","#7F7F00":"Paprika","#C3BE71":"Earth","#E0DCAA":"Khaki","#FCFAE1":"Cream","#60BF00":"Cactus","#80FF00":"Chartreuse","#A0FF40":"Green","#C0FF80":"Pale Lime","#DFFFBF":"Light Mint","#3B5738":"Green","#668F5A":"Lime Gray","#7F9757":"Yellow","#407F00":"Clover","#8A9B55":"Pistachio","#B7C296":"Light Jade","#E6EBD5":"Breakwater","#00BF00":"Spring Frost","#00FF80":"Pastel Green","#40FFA0":"Light Emerald","#80FFC0":"Sea Foam","#BFFFDF":"Sea Mist","#033D21":"Dark Forrest","#438059":"Moss","#7FA37C":"Medium Green","#007F40":"Pine","#8DAE94":"Yellow Gray Green","#ACC6B5":"Aqua Lung","#DDEBE2":"Sea Vapor","#00BFBF":"Fog","#00FFFF":"Cyan","#40FFFF":"Turquoise Blue","#80FFFF":"Light Aqua","#BFFFFF":"Pale Cyan","#033D3D":"Dark Teal","#347D7E":"Gray Turquoise","#609A9F":"Green Blue","#007F7F":"Seaweed","#96BDC4":"Green Gray","#B5D1D7":"Soapstone","#E2F1F4":"Light Turquoise","#0060BF":"Summer Sky","#0080FF":"Sky Blue","#40A0FF":"Electric Blue","#80C0FF":"Light Azure","#BFDFFF":"Ice Blue","#1B2C48":"Navy","#385376":"Biscay","#57708F":"Dusty Blue","#00407F":"Sea Blue","#7792AC":"Sky Blue Gray","#A8BED1":"Morning Sky","#DEEBF6":"Vapor","#0000BF":"Deep Blue","#0000FF":"Blue","#4040FF":"Cerulean Blue","#8080FF":"Evening Blue","#BFBFFF":"Light Blue","#212143":"Deep Indigo","#373E68":"Sea Blue","#444F75":"Night Blue","#00007F":"Indigo Blue","#585E82":"Dockside","#8687A4":"Blue Gray","#D2D1E1":"Light Blue Gray","#6000BF":"Neon Violet","#8000FF":"Blue Violet","#A040FF":"Violet Purple","#C080FF":"Violet Dusk","#DFBFFF":"Pale Lavender","#302449":"Cool Shale","#54466F":"Dark Indigo","#655A7F":"Dark Violet","#40007F":"Violet","#726284":"Smoky Violet","#9E8FA9":"Slate Gray","#DCD1DF":"Violet White","#BF00BF":"Royal Violet","#FF00FF":"Fuchsia","#FF40FF":"Magenta","#FF80FF":"Orchid","#FFBFFF":"Pale Magenta","#4A234A":"Dark Purple","#794A72":"Medium Purple","#936386":"Cool Granite","#7F007F":"Purple","#9D7292":"Purple Moon","#C0A0B6":"Pale Purple","#ECDAE5":"Pink Cloud","#BF005F":"Hot Pink","#FF007F":"Deep Pink","#FF409F":"Grape","#FF80BF":"Electric Pink","#FFBFDF":"Pink","#451528":"Purple Red","#823857":"Purple Dino","#A94A76":"Purple Gray","#7F003F":"Rose","#BC6F95":"Antique Mauve","#D8A5BB":"Cool Marble","#F7DDE9":"Pink Granite","#C00000":"Apple","#FF0000":"Fire Truck","#FF4040":"Pale Red","#FF8080":"Salmon","#FFC0C0":"Warm Pink","#441415":"Sepia","#82393C":"Rust","#AA4D4E":"Brick","#800000":"Brick Red","#BC6E6E":"Mauve","#D8A3A4":"Shrimp Pink","#F8DDDD":"Shell Pink","#BF5F00":"Dark Orange","#FF7F00":"Orange","#FF9F40":"Grapefruit","#FFBF80":"Canteloupe","#FFDFBF":"Wax","#482C1B":"Dark Brick","#855A40":"Dirt","#B27C51":"Tan","#7F3F00":"Nutmeg","#C49B71":"Mustard","#E1C4A8":"Pale Tan","#FDEEE0":"Marble"},_colorPicker:null,STR_COLLAPSE:"Collapse Toolbar",STR_EXPAND:"Expand Toolbar",STR_SPIN_LABEL:"Spin Button with value {VALUE}. Use Control Shift Up Arrow and Control Shift Down arrow keys to increase or decrease the value.",STR_SPIN_UP:"Click to increase the value of this input",STR_SPIN_DOWN:"Click to decrease the value of this input",_titlebar:null,browser:YAHOO.env.ua,_buttonList:null,_buttonGroupList:null,_sep:null,_sepCount:null,_dragHandle:null,_toolbarConfigs:{renderer:true},CLASS_CONTAINER:"yui-toolbar-container",CLASS_DRAGHANDLE:"yui-toolbar-draghandle",CLASS_SEPARATOR:"yui-toolbar-separator",CLASS_DISABLED:"yui-toolbar-disabled",CLASS_PREFIX:"yui-toolbar",init:function(F,E){YAHOO.widget.Toolbar.superclass.init.call(this,F,E);},initAttributes:function(E){YAHOO.widget.Toolbar.superclass.initAttributes.call(this,E);this.addClass(this.CLASS_CONTAINER);this.setAttributeConfig("buttonType",{value:E.buttonType||"basic",writeOnce:true,validator:function(F){switch(F){case"advanced":case"basic":return true;}return false;},method:function(F){if(F=="advanced"){if(YAHOO.widget.Button){this.buttonType=YAHOO.widget.ToolbarButtonAdvanced;}else{this.buttonType=YAHOO.widget.ToolbarButton;}}else{this.buttonType=YAHOO.widget.ToolbarButton;}}});this.setAttributeConfig("buttons",{value:[],writeOnce:true,method:function(K){var I,H,J,G,F;for(I in K){if(D.hasOwnProperty(K,I)){if(K[I].type=="separator"){this.addSeparator();}else{if(K[I].group!==undefined){J=this.addButtonGroup(K[I]);if(J){G=J.length;for(F=0;F<G;F++){if(J[F]){this._configuredButtons[this._configuredButtons.length]=J[F].id;}}}}else{H=this.addButton(K[I]);if(H){this._configuredButtons[this._configuredButtons.length]=H.id;}}}}}}});this.setAttributeConfig("disabled",{value:false,method:function(F){if(this.get("disabled")===F){return false;}if(F){this.addClass(this.CLASS_DISABLED);this.set("draggable",false);this.disableAllButtons();}else{this.removeClass(this.CLASS_DISABLED);if(this._configs.draggable._initialConfig.value){this.set("draggable",true);}this.resetAllButtons();}}});this.setAttributeConfig("cont",{value:E.cont,readOnly:true});this.setAttributeConfig("grouplabels",{value:((E.grouplabels===false)?false:true),method:function(F){if(F){C.removeClass(this.get("cont"),(this.CLASS_PREFIX+"-nogrouplabels"));}else{C.addClass(this.get("cont"),(this.CLASS_PREFIX+"-nogrouplabels"));}}});this.setAttributeConfig("titlebar",{value:false,method:function(G){if(G){if(this._titlebar&&this._titlebar.parentNode){this._titlebar.parentNode.removeChild(this._titlebar);}this._titlebar=document.createElement("DIV");this._titlebar.tabIndex="-1";A.on(this._titlebar,"focus",function(){this._handleFocus();},this,true);C.addClass(this._titlebar,this.CLASS_PREFIX+"-titlebar");if(D.isString(G)){var F=document.createElement("h2");F.tabIndex="-1";F.innerHTML='<a href="#" tabIndex="0">'+G+"</a>";
@@ -27,4 +27,4 @@ this._undoLevel=this._undoCache.length;}else{var F=this.getEditorHTML();var E=th
 }else{if(J.substring(0,1)!="#"){J="http:/"+"/"+J;}}}H.setAttribute("href",J);if(I.checked){H.setAttribute("target",I.value);}else{H.setAttribute("target","");}H.setAttribute("title",((K.value)?K.value:""));}else{var F=this._getDoc().createElement("span");F.innerHTML=H.innerHTML;C.addClass(F,"yui-non");H.parentNode.replaceChild(F,H);}C.removeClass(G,"warning");C.get(this.get("id")+"_createlink_url").value="";C.get(this.get("id")+"_createlink_title").value="";C.get(this.get("id")+"_createlink_target").checked=false;this.nodeChange();this.currentElement=[];},_renderInsertImageWindow:function(){var G=this.currentElement[0];var M='<label for="'+this.get("id")+'_insertimage_url"><strong>'+this.STR_IMAGE_URL+':</strong> <input type="text" id="'+this.get("id")+'_insertimage_url" value="" size="40"></label>';var K=document.createElement("div");K.innerHTML=M;var J=document.createElement("div");J.id=this.get("id")+"_img_toolbar";K.appendChild(J);var I='<label for="'+this.get("id")+'_insertimage_title"><strong>'+this.STR_IMAGE_TITLE+':</strong> <input type="text" id="'+this.get("id")+'_insertimage_title" value="" size="40"></label>';I+='<label for="'+this.get("id")+'_insertimage_link"><strong>'+this.STR_LINK_URL+':</strong> <input type="text" name="'+this.get("id")+'_insertimage_link" id="'+this.get("id")+'_insertimage_link" value=""></label>';I+='<label for="'+this.get("id")+'_insertimage_target"><strong> </strong><input type="checkbox" name="'+this.get("id")+'_insertimage_target_" id="'+this.get("id")+'_insertimage_target" value="_blank" class="insertimage_target"> '+this.STR_LINK_NEW_WINDOW+"</label>";var E=document.createElement("div");E.innerHTML=I;K.appendChild(E);var F={};D.augmentObject(F,this._defaultImageToolbarConfig);var H=new YAHOO.widget.Toolbar(J,F);H.editor_el=G;this._defaultImageToolbar=H;var N=H.get("cont");var L=document.createElement("div");L.className="yui-toolbar-group yui-toolbar-group-height-width height-width";L.innerHTML="<h3>"+this.STR_IMAGE_SIZE+":</h3>";L.innerHTML+='<span tabIndex="-1"><input type="text" size="3" value="" id="'+this.get("id")+'_insertimage_width"> x <input type="text" size="3" value="" id="'+this.get("id")+'_insertimage_height"></span>';N.insertBefore(L,N.firstChild);A.onAvailable(this.get("id")+"_insertimage_width",function(){A.on(this.get("id")+"_insertimage_width","blur",function(){var O=parseInt(C.get(this.get("id")+"_insertimage_width").value,10);if(O>5){this._defaultImageToolbar.editor_el.style.width=O+"px";}},this,true);},this,true);A.onAvailable(this.get("id")+"_insertimage_height",function(){A.on(this.get("id")+"_insertimage_height","blur",function(){var O=parseInt(C.get(this.get("id")+"_insertimage_height").value,10);if(O>5){this._defaultImageToolbar.editor_el.style.height=O+"px";}},this,true);},this,true);H.on("colorPickerClicked",function(T){var P="1",S="solid",O="black",R=this._defaultImageToolbar.editor_el;if(R.style.borderLeftWidth){P=parseInt(R.style.borderLeftWidth,10);}if(R.style.borderLeftStyle){S=R.style.borderLeftStyle;}if(R.style.borderLeftColor){O=R.style.borderLeftColor;}var Q=P+"px "+S+" #"+T.color;R.style.border=Q;},this,true);H.on("buttonClick",function(V){var T=V.button.value,S=this._defaultImageToolbar.editor_el,R="";if(V.button.menucmd){T=V.button.menucmd;}var P="1",Q="solid",O="black";if(S.style.borderLeftWidth){P=parseInt(S.style.borderLeftWidth,10);}if(S.style.borderLeftStyle){Q=S.style.borderLeftStyle;}if(S.style.borderLeftColor){O=S.style.borderLeftColor;}switch(T){case"bordersize":if(this.browser.webkit&&this._lastImage){C.removeClass(this._lastImage,"selected");this._lastImage=null;}R=parseInt(V.button.value,10)+"px "+Q+" "+O;S.style.border=R;if(parseInt(V.button.value,10)>0){H.enableButton("bordertype");H.enableButton("bordercolor");}else{H.disableButton("bordertype");H.disableButton("bordercolor");}break;case"bordertype":if(this.browser.webkit&&this._lastImage){C.removeClass(this._lastImage,"selected");this._lastImage=null;}R=P+"px "+V.button.value+" "+O;S.style.border=R;break;case"right":case"left":H.deselectAllButtons();S.style.display="";S.align=V.button.value;break;case"inline":H.deselectAllButtons();S.style.display="";S.align="";break;case"block":H.deselectAllButtons();S.style.display="block";S.align="center";break;case"padding":var U=H.getButtonById(V.button.id);S.style.margin=U.get("label")+"px";break;}H.selectButton(V.button.value);if(T!=="padding"){this.moveWindow();}},this,true);if(this.get("localFileWarning")){A.on(this.get("id")+"_insertimage_link","blur",function(){var O=C.get(this.get("id")+"_insertimage_link");if(this._isLocalFile(O.value)){C.addClass(O,"warning");this.get("panel").setFooter(this.STR_LOCAL_FILE_WARNING);}else{C.removeClass(O,"warning");this.get("panel").setFooter(" ");if((this.browser.webkit&&!this.browser.webkit3||this.browser.air)||this.browser.opera){this.get("panel").setFooter(this.STR_IMAGE_COPY);}}},this,true);}A.on(this.get("id")+"_insertimage_url","blur",function(){var Q=C.get(this.get("id")+"_insertimage_url"),R=this.currentElement[0];if(Q.value&&R){if(Q.value==R.getAttribute("src",2)){return false;}}if(this._isLocalFile(Q.value)){C.addClass(Q,"warning");this.get("panel").setFooter(this.STR_LOCAL_FILE_WARNING);}else{if(this.currentElement[0]){C.removeClass(Q,"warning");this.get("panel").setFooter(" ");if((this.browser.webkit&&!this.browser.webkit3||this.browser.air)||this.browser.opera){this.get("panel").setFooter(this.STR_IMAGE_COPY);}if(Q&&Q.value&&(Q.value!=this.STR_IMAGE_HERE)){this.currentElement[0].setAttribute("src",Q.value);var P=this,O=new Image();O.onerror=function(){Q.value=P.STR_IMAGE_HERE;O.setAttribute("src",P.get("blankimage"));P.currentElement[0].setAttribute("src",P.get("blankimage"));YAHOO.util.Dom.get(P.get("id")+"_insertimage_height").value=O.height;YAHOO.util.Dom.get(P.get("id")+"_insertimage_width").value=O.width;};var S=this.get("id");window.setTimeout(function(){YAHOO.util.Dom.get(S+"_insertimage_height").value=O.height;YAHOO.util.Dom.get(S+"_insertimage_width").value=O.width;
 if(P.currentElement&&P.currentElement[0]){if(!P.currentElement[0]._height){P.currentElement[0]._height=O.height;}if(!P.currentElement[0]._width){P.currentElement[0]._width=O.width;}}},800);if(Q.value!=this.STR_IMAGE_HERE){O.src=Q.value;}}}}},this,true);this._windows.insertimage={};this._windows.insertimage.body=K;this.get("panel").editor_form.appendChild(K);this.fireEvent("windowInsertImageRender",{type:"windowInsertImageRender",panel:this.get("panel"),body:K,toolbar:H});return K;},_handleInsertImageClick:function(){if(this.get("limitCommands")){if(!this.toolbar.getButtonByValue("insertimage")){return false;}}this.on("afterExecCommand",function(){var H=this.currentElement[0],O=null,L="",Z="",G=null,a="",K="",X="",R=75,V=75,Q=0,M=0,J=0,S=false,I=new YAHOO.widget.EditorWindow("insertimage",{width:"415px"});if(!H){H=this._getSelectedElement();}if(H){I.el=H;if(H.getAttribute("src")){K=H.getAttribute("src",2);if(K.indexOf(this.get("blankimage"))!=-1){K=this.STR_IMAGE_HERE;S=true;}}if(H.getAttribute("alt",2)){a=H.getAttribute("alt",2);}if(H.getAttribute("title",2)){a=H.getAttribute("title",2);}if(H.parentNode&&this._isElement(H.parentNode,"a")){L=H.parentNode.getAttribute("href",2);if(H.parentNode.getAttribute("target")!==null){Z=H.parentNode.getAttribute("target");}}R=parseInt(H.height,10);V=parseInt(H.width,10);if(H.style.height){R=parseInt(H.style.height,10);}if(H.style.width){V=parseInt(H.style.width,10);}if(H.style.margin){Q=parseInt(H.style.margin,10);}if(!S){if(!H._height){H._height=R;}if(!H._width){H._width=V;}M=H._height;J=H._width;}}if(this._windows.insertimage&&this._windows.insertimage.body){O=this._windows.insertimage.body;this._defaultImageToolbar.resetAllButtons();}else{O=this._renderInsertImageWindow();}G=this._defaultImageToolbar;G.editor_el=H;var F="0",U="solid";if(H.style.borderLeftWidth){F=parseInt(H.style.borderLeftWidth,10);}if(H.style.borderLeftStyle){U=H.style.borderLeftStyle;}var Y=G.getButtonByValue("bordersize"),W=((parseInt(F,10)>0)?"":this.STR_NONE);Y.set("label",'<span class="yui-toolbar-bordersize-'+F+'">'+W+"</span>");this._updateMenuChecked("bordersize",F,G);var N=G.getButtonByValue("bordertype");N.set("label",'<span class="yui-toolbar-bordertype-'+U+'">asdfa</span>');this._updateMenuChecked("bordertype",U,G);if(parseInt(F,10)>0){G.enableButton(N);G.enableButton(Y);G.enableButton("bordercolor");}if((H.align=="right")||(H.align=="left")){G.selectButton(H.align);}else{if(H.style.display=="block"){G.selectButton("block");}else{G.selectButton("inline");}}if(parseInt(H.style.marginLeft,10)>0){G.getButtonByValue("padding").set("label",""+parseInt(H.style.marginLeft,10));}if(H.style.borderSize){G.selectButton("bordersize");G.selectButton(parseInt(H.style.borderSize,10));}G.getButtonByValue("padding").set("label",""+Q);I.setHeader(this.STR_IMAGE_PROP_TITLE);I.setBody(O);if((this.browser.webkit&&!this.browser.webkit3||this.browser.air)||this.browser.opera){I.setFooter(this.STR_IMAGE_COPY);}this.openWindow(I);C.get(this.get("id")+"_insertimage_url").value=K;C.get(this.get("id")+"_insertimage_title").value=a;C.get(this.get("id")+"_insertimage_link").value=L;C.get(this.get("id")+"_insertimage_target").checked=((Z)?true:false);C.get(this.get("id")+"_insertimage_width").value=V;C.get(this.get("id")+"_insertimage_height").value=R;if(((R!=M)||(V!=J))&&(!S)){var P=document.createElement("span");P.className="info";P.innerHTML=this.STR_IMAGE_ORIG_SIZE+": ("+J+" x "+M+")";if(C.get(this.get("id")+"_insertimage_height").nextSibling){var E=C.get(this.get("id")+"_insertimage_height").nextSibling;E.parentNode.removeChild(E);}C.get(this.get("id")+"_insertimage_height").parentNode.appendChild(P);}this.toolbar.selectButton("insertimage");var T=this.get("id");window.setTimeout(function(){try{YAHOO.util.Dom.get(T+"_insertimage_url").focus();if(S){YAHOO.util.Dom.get(T+"_insertimage_url").select();}}catch(c){}},50);});},_handleInsertImageWindowClose:function(){var E=C.get(this.get("id")+"_insertimage_url"),L=C.get(this.get("id")+"_insertimage_title"),I=C.get(this.get("id")+"_insertimage_link"),J=C.get(this.get("id")+"_insertimage_target"),H=arguments[0].win.el;if(E&&E.value&&(E.value!=this.STR_IMAGE_HERE)){H.setAttribute("src",E.value);H.setAttribute("title",L.value);H.setAttribute("alt",L.value);var G=H.parentNode;if(I.value){var K=I.value;if((K.indexOf(":/"+"/")==-1)&&(K.substring(0,1)!="/")&&(K.substring(0,6).toLowerCase()!="mailto")){if((K.indexOf("@")!=-1)&&(K.substring(0,6).toLowerCase()!="mailto")){K="mailto:"+K;}else{K="http:/"+"/"+K;}}if(G&&this._isElement(G,"a")){G.setAttribute("href",K);if(J.checked){G.setAttribute("target",J.value);}else{G.setAttribute("target","");}}else{var F=this._getDoc().createElement("a");F.setAttribute("href",K);if(J.checked){F.setAttribute("target",J.value);}else{F.setAttribute("target","");}H.parentNode.replaceChild(F,H);F.appendChild(H);}}else{if(G&&this._isElement(G,"a")){G.parentNode.replaceChild(H,G);}}}else{H.parentNode.removeChild(H);}C.get(this.get("id")+"_insertimage_url").value="";C.get(this.get("id")+"_insertimage_title").value="";C.get(this.get("id")+"_insertimage_link").value="";C.get(this.get("id")+"_insertimage_target").checked=false;C.get(this.get("id")+"_insertimage_width").value=0;C.get(this.get("id")+"_insertimage_height").value=0;this._defaultImageToolbar.resetAllButtons();this.currentElement=[];this.nodeChange();},EDITOR_PANEL_ID:"-panel",_renderPanel:function(){var H=document.createElement("div");C.addClass(H,"yui-editor-panel");H.id=this.get("id")+this.EDITOR_PANEL_ID;H.style.position="absolute";H.style.top="-9999px";H.style.left="-9999px";document.body.appendChild(H);this.get("element_cont").insertBefore(H,this.get("element_cont").get("firstChild"));var E=new YAHOO.widget.Overlay(this.get("id")+this.EDITOR_PANEL_ID,{width:"300px",iframe:true,visible:false,underlay:"none",draggable:false,close:false});this.set("panel",E);E.setBody("---");E.setHeader(" ");E.setFooter(" ");var K=document.createElement("div");K.className=this.CLASS_PREFIX+"-body-cont";
 for(var L in this.browser){if(this.browser[L]){C.addClass(K,L);break;}}C.addClass(K,((YAHOO.widget.Button&&(this._defaultToolbar.buttonType=="advanced"))?"good-button":"no-button"));var I=document.createElement("h3");I.className="yui-editor-skipheader";I.innerHTML=this.STR_CLOSE_WINDOW_NOTE;K.appendChild(I);var F=document.createElement("fieldset");E.editor_form=F;K.appendChild(F);var G=document.createElement("span");G.innerHTML="X";G.title=this.STR_CLOSE_WINDOW;G.className="close";A.on(G,"click",this.closeWindow,this,true);var M=document.createElement("span");M.innerHTML="^";M.className="knob";E.editor_knob=M;var N=document.createElement("h3");E.editor_header=N;N.innerHTML="<span></span>";E.setHeader(" ");E.appendToHeader(N);N.appendChild(G);N.appendChild(M);E.setBody(" ");E.setFooter(" ");E.appendToBody(K);A.on(E.element,"click",function(O){A.stopPropagation(O);});var J=function(){E.bringToTop();YAHOO.util.Dom.setStyle(this.element,"display","block");this._handleWindowInputs(false);};E.showEvent.subscribe(J,this,true);E.hideEvent.subscribe(function(){this._handleWindowInputs(true);},this,true);E.renderEvent.subscribe(function(){this._renderInsertImageWindow();this._renderCreateLinkWindow();this.fireEvent("windowRender",{type:"windowRender",panel:E});this._handleWindowInputs(true);},this,true);if(this.DOMReady){this.get("panel").render();}else{A.onDOMReady(function(){this.get("panel").render();},this,true);}return this.get("panel");},_handleWindowInputs:function(F){if(!D.isBoolean(F)){F=false;}var E=this.get("panel").element.getElementsByTagName("input");for(var G=0;G<E.length;G++){try{E[G].disabled=F;}catch(H){}}},openWindow:function(K){var P=this;window.setTimeout(function(){P.toolbar.set("disabled",true);},10);A.on(document,"keydown",this._closeWindow,this,true);if(this.currentWindow){this.closeWindow();}var Q=C.getXY(this.currentElement[0]),N=C.getXY(this.get("iframe").get("element")),E=this.get("panel"),H=[(Q[0]+N[0]-20),(Q[1]+N[1]+10)],G=(parseInt(K.attrs.width,10)/2),L="center",J=null;this.fireEvent("beforeOpenWindow",{type:"beforeOpenWindow",win:K,panel:E});var F=E.editor_form;var I=this._windows;for(var O in I){if(D.hasOwnProperty(I,O)){if(I[O]&&I[O].body){if(O==K.name){C.setStyle(I[O].body,"display","block");}else{C.setStyle(I[O].body,"display","none");}}}}if(this._windows[K.name].body){C.setStyle(this._windows[K.name].body,"display","block");F.appendChild(this._windows[K.name].body);}else{if(D.isObject(K.body)){F.appendChild(K.body);}else{var M=document.createElement("div");M.innerHTML=K.body;F.appendChild(M);}}E.editor_header.firstChild.innerHTML=K.header;if(K.footer!==null){E.setFooter(K.footer);}E.cfg.setProperty("width",K.attrs.width);this.currentWindow=K;this.moveWindow(true);E.show();this.fireEvent("afterOpenWindow",{type:"afterOpenWindow",win:K,panel:E});},moveWindow:function(F){if(!this.currentWindow){return false;}var I=this.currentWindow,J=C.getXY(this.currentElement[0]),a=C.getXY(this.get("iframe").get("element")),O=this.get("panel"),Y=[(J[0]+a[0]),(J[1]+a[1])],R=(parseInt(I.attrs.width,10)/2),U="center",Q=O.cfg.getProperty("xy")||[0,0],G=O.editor_knob,X=0,L=0,T=false;Y[0]=((Y[0]-R)+20);Y[0]=Y[0]-C.getDocumentScrollLeft(this._getDoc());Y[1]=Y[1]-C.getDocumentScrollTop(this._getDoc());if(this._isElement(this.currentElement[0],"img")){if(this.currentElement[0].src.indexOf(this.get("blankimage"))!=-1){Y[0]=(Y[0]+(75/2));Y[1]=(Y[1]+75);}else{var N=parseInt(this.currentElement[0].width,10);var W=parseInt(this.currentElement[0].height,10);Y[0]=(Y[0]+(N/2));Y[1]=(Y[1]+W);}Y[1]=Y[1]+15;}else{var K=C.getStyle(this.currentElement[0],"fontSize");if(K&&K.indexOf&&K.indexOf("px")!=-1){Y[1]=Y[1]+parseInt(C.getStyle(this.currentElement[0],"fontSize"),10)+5;}else{Y[1]=Y[1]+20;}}if(Y[0]<a[0]){Y[0]=a[0]+5;U="left";}if((Y[0]+(R*2))>(a[0]+parseInt(this.get("iframe").get("element").clientWidth,10))){Y[0]=((a[0]+parseInt(this.get("iframe").get("element").clientWidth,10))-(R*2)-5);U="right";}try{X=(Y[0]-Q[0]);L=(Y[1]-Q[1]);}catch(c){}var P=a[1]+parseInt(this.get("height"),10);var H=a[0]+parseInt(this.get("width"),10);if(Y[1]>P){Y[1]=P;}if(Y[0]>H){Y[0]=(H/2);}X=((X<0)?(X*-1):X);L=((L<0)?(L*-1):L);if(((X>10)||(L>10))||F){var S=0,V=0;if(this.currentElement[0].width){V=(parseInt(this.currentElement[0].width,10)/2);}var M=J[0]+a[0]+V;S=M-Y[0];if(S>(parseInt(I.attrs.width,10)-1)){S=((parseInt(I.attrs.width,10)-30)-1);}else{if(S<40){S=1;}}if(isNaN(S)){S=1;}if(F){if(G){G.style.left=S+"px";}O.cfg.setProperty("xy",Y);}else{if(this.get("animate")){T=new YAHOO.util.Anim(O.element,{},0.5,YAHOO.util.Easing.easeOut);T.attributes={top:{to:Y[1]},left:{to:Y[0]}};T.onComplete.subscribe(function(){O.cfg.setProperty("xy",Y);});var Z=new YAHOO.util.Anim(O.iframe,T.attributes,0.5,YAHOO.util.Easing.easeOut);var E=new YAHOO.util.Anim(G,{left:{to:S}},0.6,YAHOO.util.Easing.easeOut);T.animate();Z.animate();E.animate();}else{G.style.left=S+"px";O.cfg.setProperty("xy",Y);}}}},_closeWindow:function(E){if(this._checkKey(this._keyMap.CLOSE_WINDOW,E)){if(this.currentWindow){this.closeWindow();}}},closeWindow:function(E){this.fireEvent("window"+this.currentWindow.name+"Close",{type:"window"+this.currentWindow.name+"Close",win:this.currentWindow,el:this.currentElement[0]});this.fireEvent("closeWindow",{type:"closeWindow",win:this.currentWindow});this.currentWindow=null;this.get("panel").hide();this.get("panel").cfg.setProperty("xy",[-900,-900]);this.get("panel").syncIframe();this.unsubscribeAll("afterExecCommand");this.toolbar.set("disabled",false);this.toolbar.resetAllButtons();this.focus();A.removeListener(document,"keydown",this._closeWindow);},cmd_undo:function(G){if(this._hasUndoLevel()){var F=this.getEditorHTML(),E;if(!this._undoLevel){this._undoLevel=this._undoCache.length;}this._undoLevel=(this._undoLevel-1);if(this._undoCache[this._undoLevel]){E=this._getUndo(this._undoLevel);if(E!=F){this.setEditorHTML(E);}else{this._undoLevel=(this._undoLevel-1);E=this._getUndo(this._undoLevel);if(E!=F){this.setEditorHTML(E);}}}else{this._undoLevel=0;
-this.toolbar.disableButton("undo");}}return[false];},cmd_redo:function(F){this._undoLevel=this._undoLevel+1;if(this._undoLevel>=this._undoCache.length){this._undoLevel=this._undoCache.length;}if(this._undoCache[this._undoLevel]){var E=this._getUndo(this._undoLevel);this.setEditorHTML(E);}else{this.toolbar.disableButton("redo");}return[false];},cmd_heading:function(I){var F=true,G=null,H="heading",J=this._getSelection(),E=this._getSelectedElement();if(E){J=E;}if(this.browser.ie){H="formatblock";}if(I==this.STR_NONE){if((J&&J.tagName&&(J.tagName.toLowerCase().substring(0,1)=="h"))||(J&&J.parentNode&&J.parentNode.tagName&&(J.parentNode.tagName.toLowerCase().substring(0,1)=="h"))){if(J.parentNode.tagName.toLowerCase().substring(0,1)=="h"){J=J.parentNode;}if(this._isElement(J,"html")){return[false];}G=this._swapEl(E,"span",function(K){K.className="yui-non";});this._selectNode(G);this.currentElement[0]=G;}F=false;}else{if(this._isElement(E,"h1")||this._isElement(E,"h2")||this._isElement(E,"h3")||this._isElement(E,"h4")||this._isElement(E,"h5")||this._isElement(E,"h6")){G=this._swapEl(E,I);this._selectNode(G);this.currentElement[0]=G;}else{this._createCurrentElement(I);this._selectNode(this.currentElement[0]);}F=false;}return[F,H];},cmd_hiddenelements:function(E){if(this._showingHiddenElements){this._lastButton=null;this._showingHiddenElements=false;this.toolbar.deselectButton("hiddenelements");C.removeClass(this._getDoc().body,this.CLASS_HIDDEN);}else{this._showingHiddenElements=true;C.addClass(this._getDoc().body,this.CLASS_HIDDEN);this.toolbar.selectButton("hiddenelements");}return[false];},cmd_removeformat:function(H){var F=true;if(this.browser.webkit&&!this._getDoc().queryCommandEnabled("removeformat")){var E=this._getSelection()+"";this._createCurrentElement("span");this.currentElement[0].className="yui-non";this.currentElement[0].innerHTML=E;for(var G=1;G<this.currentElement.length;G++){this.currentElement[G].parentNode.removeChild(this.currentElement[G]);}F=false;}return[F];},cmd_script:function(K,J){var G=true,E=K.toLowerCase().substring(0,3),H=null,F=this._getSelectedElement();if(this.browser.webkit){if(this._isElement(F,E)){H=this._swapEl(this.currentElement[0],"span",function(L){L.className="yui-non";});this._selectNode(H);}else{this._createCurrentElement(E);var I=this._swapEl(this.currentElement[0],E);this._selectNode(I);this.currentElement[0]=I;}G=false;}return G;},cmd_superscript:function(E){return[this.cmd_script("superscript",E)];},cmd_subscript:function(E){return[this.cmd_script("subscript",E)];},cmd_indent:function(H){var E=true,G=this._getSelectedElement(),I=null;if(this.browser.ie){if(this._isElement(G,"blockquote")){I=this._getDoc().createElement("blockquote");I.innerHTML=G.innerHTML;G.innerHTML="";G.appendChild(I);this._selectNode(I);}else{I=this._getDoc().createElement("blockquote");var F=this._getRange().htmlText;I.innerHTML=F;this._createCurrentElement("blockquote");this.currentElement[0].parentNode.replaceChild(I,this.currentElement[0]);this.currentElement[0]=I;this._selectNode(this.currentElement[0]);}E=false;}else{H="blockquote";}return[E,"formatblock",H];},cmd_outdent:function(I){var E=true,H=this._getSelectedElement(),J=null,F=null;if(this.browser.webkit||this.browser.ie){H=this._getSelectedElement();if(this._isElement(H,"blockquote")){var G=H.parentNode;if(this._isElement(H.parentNode,"blockquote")){G.innerHTML=H.innerHTML;this._selectNode(G);}else{F=this._getDoc().createElement("span");F.innerHTML=H.innerHTML;YAHOO.util.Dom.addClass(F,"yui-non");G.replaceChild(F,H);this._selectNode(F);}}else{}E=false;}else{I=false;}return[E,"outdent",I];},cmd_justify:function(E){if(this.browser.ie){if(this._hasSelection()){this._createCurrentElement("span");this._swapEl(this.currentElement[0],"div",function(F){F.style.textAlign=E;});return[false];}}return[true,"justify"+E,""];},cmd_justifycenter:function(){return[this.cmd_justify("center")];},cmd_justifyleft:function(){return[this.cmd_justify("left")];},cmd_justifyright:function(){return[this.cmd_justify("right")];},toString:function(){var E="Editor";if(this.get&&this.get("element_cont")){E="Editor (#"+this.get("element_cont").get("id")+")"+((this.get("disabled")?" Disabled":""));}return E;}});YAHOO.widget.EditorWindow=function(F,E){this.name=F.replace(" ","_");this.attrs=E;};YAHOO.widget.EditorWindow.prototype={header:null,body:null,footer:null,setHeader:function(E){this.header=E;},setBody:function(E){this.body=E;},setFooter:function(E){this.footer=E;},toString:function(){return"Editor Window ("+this.name+")";}};})();YAHOO.register("editor",YAHOO.widget.Editor,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this.toolbar.disableButton("undo");}}return[false];},cmd_redo:function(F){this._undoLevel=this._undoLevel+1;if(this._undoLevel>=this._undoCache.length){this._undoLevel=this._undoCache.length;}if(this._undoCache[this._undoLevel]){var E=this._getUndo(this._undoLevel);this.setEditorHTML(E);}else{this.toolbar.disableButton("redo");}return[false];},cmd_heading:function(I){var F=true,G=null,H="heading",J=this._getSelection(),E=this._getSelectedElement();if(E){J=E;}if(this.browser.ie){H="formatblock";}if(I==this.STR_NONE){if((J&&J.tagName&&(J.tagName.toLowerCase().substring(0,1)=="h"))||(J&&J.parentNode&&J.parentNode.tagName&&(J.parentNode.tagName.toLowerCase().substring(0,1)=="h"))){if(J.parentNode.tagName.toLowerCase().substring(0,1)=="h"){J=J.parentNode;}if(this._isElement(J,"html")){return[false];}G=this._swapEl(E,"span",function(K){K.className="yui-non";});this._selectNode(G);this.currentElement[0]=G;}F=false;}else{if(this._isElement(E,"h1")||this._isElement(E,"h2")||this._isElement(E,"h3")||this._isElement(E,"h4")||this._isElement(E,"h5")||this._isElement(E,"h6")){G=this._swapEl(E,I);this._selectNode(G);this.currentElement[0]=G;}else{this._createCurrentElement(I);this._selectNode(this.currentElement[0]);}F=false;}return[F,H];},cmd_hiddenelements:function(E){if(this._showingHiddenElements){this._lastButton=null;this._showingHiddenElements=false;this.toolbar.deselectButton("hiddenelements");C.removeClass(this._getDoc().body,this.CLASS_HIDDEN);}else{this._showingHiddenElements=true;C.addClass(this._getDoc().body,this.CLASS_HIDDEN);this.toolbar.selectButton("hiddenelements");}return[false];},cmd_removeformat:function(H){var F=true;if(this.browser.webkit&&!this._getDoc().queryCommandEnabled("removeformat")){var E=this._getSelection()+"";this._createCurrentElement("span");this.currentElement[0].className="yui-non";this.currentElement[0].innerHTML=E;for(var G=1;G<this.currentElement.length;G++){this.currentElement[G].parentNode.removeChild(this.currentElement[G]);}F=false;}return[F];},cmd_script:function(K,J){var G=true,E=K.toLowerCase().substring(0,3),H=null,F=this._getSelectedElement();if(this.browser.webkit){if(this._isElement(F,E)){H=this._swapEl(this.currentElement[0],"span",function(L){L.className="yui-non";});this._selectNode(H);}else{this._createCurrentElement(E);var I=this._swapEl(this.currentElement[0],E);this._selectNode(I);this.currentElement[0]=I;}G=false;}return G;},cmd_superscript:function(E){return[this.cmd_script("superscript",E)];},cmd_subscript:function(E){return[this.cmd_script("subscript",E)];},cmd_indent:function(H){var E=true,G=this._getSelectedElement(),I=null;if(this.browser.ie){if(this._isElement(G,"blockquote")){I=this._getDoc().createElement("blockquote");I.innerHTML=G.innerHTML;G.innerHTML="";G.appendChild(I);this._selectNode(I);}else{I=this._getDoc().createElement("blockquote");var F=this._getRange().htmlText;I.innerHTML=F;this._createCurrentElement("blockquote");this.currentElement[0].parentNode.replaceChild(I,this.currentElement[0]);this.currentElement[0]=I;this._selectNode(this.currentElement[0]);}E=false;}else{H="blockquote";}return[E,"formatblock",H];},cmd_outdent:function(I){var E=true,H=this._getSelectedElement(),J=null,F=null;if(this.browser.webkit||this.browser.ie){H=this._getSelectedElement();if(this._isElement(H,"blockquote")){var G=H.parentNode;if(this._isElement(H.parentNode,"blockquote")){G.innerHTML=H.innerHTML;this._selectNode(G);}else{F=this._getDoc().createElement("span");F.innerHTML=H.innerHTML;YAHOO.util.Dom.addClass(F,"yui-non");G.replaceChild(F,H);this._selectNode(F);}}else{}E=false;}else{I=false;}return[E,"outdent",I];},cmd_justify:function(E){if(this.browser.ie){if(this._hasSelection()){this._createCurrentElement("span");this._swapEl(this.currentElement[0],"div",function(F){F.style.textAlign=E;});return[false];}}return[true,"justify"+E,""];},cmd_justifycenter:function(){return[this.cmd_justify("center")];},cmd_justifyleft:function(){return[this.cmd_justify("left")];},cmd_justifyright:function(){return[this.cmd_justify("right")];},toString:function(){var E="Editor";if(this.get&&this.get("element_cont")){E="Editor (#"+this.get("element_cont").get("id")+")"+((this.get("disabled")?" Disabled":""));}return E;}});YAHOO.widget.EditorWindow=function(F,E){this.name=F.replace(" ","_");this.attrs=E;};YAHOO.widget.EditorWindow.prototype={header:null,body:null,footer:null,setHeader:function(E){this.header=E;},setBody:function(E){this.body=E;},setFooter:function(E){this.footer=E;},toString:function(){return"Editor Window ("+this.name+")";}};})();YAHOO.register("editor",YAHOO.widget.Editor,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/editor/editor.js b/build/editor/editor.js
index 4a52d70..75daf78 100644
--- a/build/editor/editor.js
+++ b/build/editor/editor.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 var Dom = YAHOO.util.Dom,
@@ -9444,4 +9444,4 @@ var Dom = YAHOO.util.Dom,
         }
     };
 })();
-YAHOO.register("editor", YAHOO.widget.Editor, {version: "2.8.1", build: "19"});
+YAHOO.register("editor", YAHOO.widget.Editor, {version: "2.8.2r1", build: "7"});
diff --git a/build/editor/simpleeditor-debug.js b/build/editor/simpleeditor-debug.js
index 3e80399..f9f2856 100644
--- a/build/editor/simpleeditor-debug.js
+++ b/build/editor/simpleeditor-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 var Dom = YAHOO.util.Dom,
@@ -7490,4 +7490,4 @@ YAHOO.widget.EditorInfo = {
 
     
 })();
-YAHOO.register("simpleeditor", YAHOO.widget.SimpleEditor, {version: "2.8.1", build: "19"});
+YAHOO.register("simpleeditor", YAHOO.widget.SimpleEditor, {version: "2.8.2r1", build: "7"});
diff --git a/build/editor/simpleeditor-min.js b/build/editor/simpleeditor-min.js
index c8943b2..c791115 100644
--- a/build/editor/simpleeditor-min.js
+++ b/build/editor/simpleeditor-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var B=YAHOO.util.Dom,A=YAHOO.util.Event,C=YAHOO.lang;if(YAHOO.widget.Button){YAHOO.widget.ToolbarButtonAdvanced=YAHOO.widget.Button;YAHOO.widget.ToolbarButtonAdvanced.prototype.buttonType="rich";YAHOO.widget.ToolbarButtonAdvanced.prototype.checkValue=function(F){var E=this.getMenu().getItems();if(E.length===0){this.getMenu()._onBeforeShow();E=this.getMenu().getItems();}for(var D=0;D<E.length;D++){E[D].cfg.setProperty("checked",false);if(E[D].value==F){E[D].cfg.setProperty("checked",true);}}};}else{YAHOO.widget.ToolbarButtonAdvanced=function(){};}YAHOO.widget.ToolbarButton=function(E,D){if(C.isObject(arguments[0])&&!B.get(E).nodeType){D=E;}var G=(D||{});var F={element:null,attributes:G};if(!F.attributes.type){F.attributes.type="push";}F.element=document.createElement("span");F.element.setAttribute("unselectable","on");F.element.className="yui-button yui-"+F.attributes.type+"-button";F.element.innerHTML='<span class="first-child"><a href="#">LABEL</a></span>';F.element.firstChild.firstChild.tabIndex="-1";F.attributes.id=(F.attributes.id||B.generateId());F.element.id=F.attributes.id;YAHOO.widget.ToolbarButton.superclass.constructor.call(this,F.element,F.attributes);};YAHOO.extend(YAHOO.widget.ToolbarButton,YAHOO.util.Element,{buttonType:"normal",_handleMouseOver:function(){if(!this.get("disabled")){this.addClass("yui-button-hover");this.addClass("yui-"+this.get("type")+"-button-hover");}},_handleMouseOut:function(){this.removeClass("yui-button-hover");this.removeClass("yui-"+this.get("type")+"-button-hover");},checkValue:function(F){if(this.get("type")=="menu"){var E=this._button.options;for(var D=0;D<E.length;D++){if(E[D].value==F){E.selectedIndex=D;}}}},init:function(E,D){YAHOO.widget.ToolbarButton.superclass.init.call(this,E,D);this.on("mouseover",this._handleMouseOver,this,true);this.on("mouseout",this._handleMouseOut,this,true);this.on("click",function(F){A.stopEvent(F);return false;},this,true);},initAttributes:function(D){YAHOO.widget.ToolbarButton.superclass.initAttributes.call(this,D);this.setAttributeConfig("value",{value:D.value});this.setAttributeConfig("menu",{value:D.menu||false});this.setAttributeConfig("type",{value:D.type,writeOnce:true,method:function(H){var G,F;if(!this._button){this._button=this.get("element").getElementsByTagName("a")[0];}switch(H){case"select":case"menu":G=document.createElement("select");G.id=this.get("id");var I=this.get("menu");for(var E=0;E<I.length;E++){F=document.createElement("option");F.innerHTML=I[E].text;F.value=I[E].value;if(I[E].checked){F.selected=true;}G.appendChild(F);}this._button.parentNode.replaceChild(G,this._button);A.on(G,"change",this._handleSelect,this,true);this._button=G;break;}}});this.setAttributeConfig("disabled",{value:D.disabled||false,method:function(E){if(E){this.addClass("yui-button-disabled");this.addClass("yui-"+this.get("type")+"-button-disabled");}else{this.removeClass("yui-button-disabled");this.removeClass("yui-"+this.get("type")+"-button-disabled");}if((this.get("type")=="menu")||(this.get("type")=="select")){this._button.disabled=E;}}});this.setAttributeConfig("label",{value:D.label,method:function(E){if(!this._button){this._button=this.get("element").getElementsByTagName("a")[0];}if(this.get("type")=="push"){this._button.innerHTML=E;}}});this.setAttributeConfig("title",{value:D.title});this.setAttributeConfig("container",{value:null,writeOnce:true,method:function(E){this.appendTo(E);}});},_handleSelect:function(E){var D=A.getTarget(E);var F=D.options[D.selectedIndex].value;this.fireEvent("change",{type:"change",value:F});},getMenu:function(){return this.get("menu");},destroy:function(){A.purgeElement(this.get("element"),true);this.get("element").parentNode.removeChild(this.get("element"));for(var D in this){if(C.hasOwnProperty(this,D)){this[D]=null;}}},fireEvent:function(E,D){if(this.DOM_EVENTS[E]&&this.get("disabled")){A.stopEvent(D);return;}YAHOO.widget.ToolbarButton.superclass.fireEvent.call(this,E,D);},toString:function(){return"ToolbarButton ("+this.get("id")+")";}});})();(function(){var C=YAHOO.util.Dom,A=YAHOO.util.Event,D=YAHOO.lang;var B=function(F){var E=F;if(D.isString(F)){E=this.getButtonById(F);}if(D.isNumber(F)){E=this.getButtonByIndex(F);}if((!(E instanceof YAHOO.widget.ToolbarButton))&&(!(E instanceof YAHOO.widget.ToolbarButtonAdvanced))){E=this.getButtonByValue(F);}if((E instanceof YAHOO.widget.ToolbarButton)||(E instanceof YAHOO.widget.ToolbarButtonAdvanced)){return E;}return false;};YAHOO.widget.Toolbar=function(I,H){if(D.isObject(arguments[0])&&!C.get(I).nodeType){H=I;}var K={};if(H){D.augmentObject(K,H);}var J={element:null,attributes:K};if(D.isString(I)&&C.get(I)){J.element=C.get(I);}else{if(D.isObject(I)&&C.get(I)&&C.get(I).nodeType){J.element=C.get(I);}}if(!J.element){J.element=document.createElement("DIV");J.element.id=C.generateId();if(K.container&&C.get(K.container)){C.get(K.container).appendChild(J.element);}}if(!J.element.id){J.element.id=((D.isString(I))?I:C.generateId());}var F=document.createElement("fieldset");var G=document.createElement("legend");G.innerHTML="Toolbar";F.appendChild(G);var E=document.createElement("DIV");J.attributes.cont=E;C.addClass(E,"yui-toolbar-subcont");F.appendChild(E);J.element.appendChild(F);J.element.tabIndex=-1;J.attributes.element=J.element;J.attributes.id=J.element.id;this._configuredButtons=[];YAHOO.widget.Toolbar.superclass.constructor.call(this,J.element,J.attributes);};YAHOO.extend(YAHOO.widget.Toolbar,YAHOO.util.Element,{_configuredButtons:null,_addMenuClasses:function(H,E,I){C.addClass(this.element,"yui-toolbar-"+I.get("value")+"-menu");if(C.hasClass(I._button.parentNode.parentNode,"yui-toolbar-select")){C.addClass(this.element,"yui-toolbar-select-menu");}var F=this.getItems();for(var G=0;G<F.length;G++){C.addClass(F[G].element,"yui-toolbar-"+I.get("value")+"-"+((F[G].value)?F[G].value.replace(/ /g,"-").toLowerCase():F[G]._oText.nodeValue.replace(/ /g,"-").toLowerCase()));C.addClass(F[G].element,"yui-toolbar-"+I.get("value")+"-"+((F[G].value)?F[G].value.replace(/ /g,"-"):F[G]._oText.nodeValue.replace(/ /g,"-")));
 }},buttonType:YAHOO.widget.ToolbarButton,dd:null,_colorData:{"#111111":"Obsidian","#2D2D2D":"Dark Gray","#434343":"Shale","#5B5B5B":"Flint","#737373":"Gray","#8B8B8B":"Concrete","#A2A2A2":"Gray","#B9B9B9":"Titanium","#000000":"Black","#D0D0D0":"Light Gray","#E6E6E6":"Silver","#FFFFFF":"White","#BFBF00":"Pumpkin","#FFFF00":"Yellow","#FFFF40":"Banana","#FFFF80":"Pale Yellow","#FFFFBF":"Butter","#525330":"Raw Siena","#898A49":"Mildew","#AEA945":"Olive","#7F7F00":"Paprika","#C3BE71":"Earth","#E0DCAA":"Khaki","#FCFAE1":"Cream","#60BF00":"Cactus","#80FF00":"Chartreuse","#A0FF40":"Green","#C0FF80":"Pale Lime","#DFFFBF":"Light Mint","#3B5738":"Green","#668F5A":"Lime Gray","#7F9757":"Yellow","#407F00":"Clover","#8A9B55":"Pistachio","#B7C296":"Light Jade","#E6EBD5":"Breakwater","#00BF00":"Spring Frost","#00FF80":"Pastel Green","#40FFA0":"Light Emerald","#80FFC0":"Sea Foam","#BFFFDF":"Sea Mist","#033D21":"Dark Forrest","#438059":"Moss","#7FA37C":"Medium Green","#007F40":"Pine","#8DAE94":"Yellow Gray Green","#ACC6B5":"Aqua Lung","#DDEBE2":"Sea Vapor","#00BFBF":"Fog","#00FFFF":"Cyan","#40FFFF":"Turquoise Blue","#80FFFF":"Light Aqua","#BFFFFF":"Pale Cyan","#033D3D":"Dark Teal","#347D7E":"Gray Turquoise","#609A9F":"Green Blue","#007F7F":"Seaweed","#96BDC4":"Green Gray","#B5D1D7":"Soapstone","#E2F1F4":"Light Turquoise","#0060BF":"Summer Sky","#0080FF":"Sky Blue","#40A0FF":"Electric Blue","#80C0FF":"Light Azure","#BFDFFF":"Ice Blue","#1B2C48":"Navy","#385376":"Biscay","#57708F":"Dusty Blue","#00407F":"Sea Blue","#7792AC":"Sky Blue Gray","#A8BED1":"Morning Sky","#DEEBF6":"Vapor","#0000BF":"Deep Blue","#0000FF":"Blue","#4040FF":"Cerulean Blue","#8080FF":"Evening Blue","#BFBFFF":"Light Blue","#212143":"Deep Indigo","#373E68":"Sea Blue","#444F75":"Night Blue","#00007F":"Indigo Blue","#585E82":"Dockside","#8687A4":"Blue Gray","#D2D1E1":"Light Blue Gray","#6000BF":"Neon Violet","#8000FF":"Blue Violet","#A040FF":"Violet Purple","#C080FF":"Violet Dusk","#DFBFFF":"Pale Lavender","#302449":"Cool Shale","#54466F":"Dark Indigo","#655A7F":"Dark Violet","#40007F":"Violet","#726284":"Smoky Violet","#9E8FA9":"Slate Gray","#DCD1DF":"Violet White","#BF00BF":"Royal Violet","#FF00FF":"Fuchsia","#FF40FF":"Magenta","#FF80FF":"Orchid","#FFBFFF":"Pale Magenta","#4A234A":"Dark Purple","#794A72":"Medium Purple","#936386":"Cool Granite","#7F007F":"Purple","#9D7292":"Purple Moon","#C0A0B6":"Pale Purple","#ECDAE5":"Pink Cloud","#BF005F":"Hot Pink","#FF007F":"Deep Pink","#FF409F":"Grape","#FF80BF":"Electric Pink","#FFBFDF":"Pink","#451528":"Purple Red","#823857":"Purple Dino","#A94A76":"Purple Gray","#7F003F":"Rose","#BC6F95":"Antique Mauve","#D8A5BB":"Cool Marble","#F7DDE9":"Pink Granite","#C00000":"Apple","#FF0000":"Fire Truck","#FF4040":"Pale Red","#FF8080":"Salmon","#FFC0C0":"Warm Pink","#441415":"Sepia","#82393C":"Rust","#AA4D4E":"Brick","#800000":"Brick Red","#BC6E6E":"Mauve","#D8A3A4":"Shrimp Pink","#F8DDDD":"Shell Pink","#BF5F00":"Dark Orange","#FF7F00":"Orange","#FF9F40":"Grapefruit","#FFBF80":"Canteloupe","#FFDFBF":"Wax","#482C1B":"Dark Brick","#855A40":"Dirt","#B27C51":"Tan","#7F3F00":"Nutmeg","#C49B71":"Mustard","#E1C4A8":"Pale Tan","#FDEEE0":"Marble"},_colorPicker:null,STR_COLLAPSE:"Collapse Toolbar",STR_EXPAND:"Expand Toolbar",STR_SPIN_LABEL:"Spin Button with value {VALUE}. Use Control Shift Up Arrow and Control Shift Down arrow keys to increase or decrease the value.",STR_SPIN_UP:"Click to increase the value of this input",STR_SPIN_DOWN:"Click to decrease the value of this input",_titlebar:null,browser:YAHOO.env.ua,_buttonList:null,_buttonGroupList:null,_sep:null,_sepCount:null,_dragHandle:null,_toolbarConfigs:{renderer:true},CLASS_CONTAINER:"yui-toolbar-container",CLASS_DRAGHANDLE:"yui-toolbar-draghandle",CLASS_SEPARATOR:"yui-toolbar-separator",CLASS_DISABLED:"yui-toolbar-disabled",CLASS_PREFIX:"yui-toolbar",init:function(F,E){YAHOO.widget.Toolbar.superclass.init.call(this,F,E);},initAttributes:function(E){YAHOO.widget.Toolbar.superclass.initAttributes.call(this,E);this.addClass(this.CLASS_CONTAINER);this.setAttributeConfig("buttonType",{value:E.buttonType||"basic",writeOnce:true,validator:function(F){switch(F){case"advanced":case"basic":return true;}return false;},method:function(F){if(F=="advanced"){if(YAHOO.widget.Button){this.buttonType=YAHOO.widget.ToolbarButtonAdvanced;}else{this.buttonType=YAHOO.widget.ToolbarButton;}}else{this.buttonType=YAHOO.widget.ToolbarButton;}}});this.setAttributeConfig("buttons",{value:[],writeOnce:true,method:function(K){var I,H,J,G,F;for(I in K){if(D.hasOwnProperty(K,I)){if(K[I].type=="separator"){this.addSeparator();}else{if(K[I].group!==undefined){J=this.addButtonGroup(K[I]);if(J){G=J.length;for(F=0;F<G;F++){if(J[F]){this._configuredButtons[this._configuredButtons.length]=J[F].id;}}}}else{H=this.addButton(K[I]);if(H){this._configuredButtons[this._configuredButtons.length]=H.id;}}}}}}});this.setAttributeConfig("disabled",{value:false,method:function(F){if(this.get("disabled")===F){return false;}if(F){this.addClass(this.CLASS_DISABLED);this.set("draggable",false);this.disableAllButtons();}else{this.removeClass(this.CLASS_DISABLED);if(this._configs.draggable._initialConfig.value){this.set("draggable",true);}this.resetAllButtons();}}});this.setAttributeConfig("cont",{value:E.cont,readOnly:true});this.setAttributeConfig("grouplabels",{value:((E.grouplabels===false)?false:true),method:function(F){if(F){C.removeClass(this.get("cont"),(this.CLASS_PREFIX+"-nogrouplabels"));}else{C.addClass(this.get("cont"),(this.CLASS_PREFIX+"-nogrouplabels"));}}});this.setAttributeConfig("titlebar",{value:false,method:function(G){if(G){if(this._titlebar&&this._titlebar.parentNode){this._titlebar.parentNode.removeChild(this._titlebar);}this._titlebar=document.createElement("DIV");this._titlebar.tabIndex="-1";A.on(this._titlebar,"focus",function(){this._handleFocus();},this,true);C.addClass(this._titlebar,this.CLASS_PREFIX+"-titlebar");if(D.isString(G)){var F=document.createElement("h2");F.tabIndex="-1";F.innerHTML='<a href="#" tabIndex="0">'+G+"</a>";
@@ -21,4 +21,4 @@ if(E.webkit>=420){E.webkit3=E.webkit;}else{E.webkit3=0;}if(E.webkit>=530){E.webk
 if(E&&this._isElement(E,"span")){if(E.style.textDecoration=="underline"){E.style.textDecoration="none";}else{E.style.textDecoration="underline";}return[false];}}return[true];},cmd_backcolor:function(H){var E=true,F=this._getSelectedElement(),G="backcolor";if(this.browser.gecko||this.browser.opera){this._setEditorStyle(true);G="hilitecolor";}if(!this._isElement(F,"body")&&!this._hasSelection()){F.style.backgroundColor=H;this._selectNode(F);E=false;}else{if(this.get("insert")){F=this._createInsertElement({backgroundColor:H});}else{this._createCurrentElement("span",{backgroundColor:H,color:F.style.color,fontSize:F.style.fontSize,fontFamily:F.style.fontFamily});this._selectNode(this.currentElement[0]);}E=false;}return[E,G];},cmd_forecolor:function(G){var E=true,F=this._getSelectedElement();if(!this._isElement(F,"body")&&!this._hasSelection()){C.setStyle(F,"color",G);this._selectNode(F);E=false;}else{if(this.get("insert")){F=this._createInsertElement({color:G});}else{this._createCurrentElement("span",{color:G,fontSize:F.style.fontSize,fontFamily:F.style.fontFamily,backgroundColor:F.style.backgroundColor});this._selectNode(this.currentElement[0]);}E=false;}return[E];},cmd_unlink:function(E){this._swapEl(this.currentElement[0],"span",function(F){F.className="yui-non";});return[false];},cmd_createlink:function(G){var F=this._getSelectedElement(),E=null;if(this._hasParent(F,"a")){this.currentElement[0]=this._hasParent(F,"a");}else{if(this._isElement(F,"li")){E=this._getDoc().createElement("a");E.innerHTML=F.innerHTML;F.innerHTML="";F.appendChild(E);this.currentElement[0]=E;}else{if(!this._isElement(F,"a")){this._createCurrentElement("a");E=this._swapEl(this.currentElement[0],"a");this.currentElement[0]=E;}else{this.currentElement[0]=F;}}}return[false];},cmd_insertimage:function(J){var E=true,F=null,I="insertimage",H=this._getSelectedElement();if(J===""){J=this.get("blankimage");}if(this._isElement(H,"img")){this.currentElement[0]=H;E=false;}else{if(this._getDoc().queryCommandEnabled(I)){this._getDoc().execCommand(I,false,J);var K=this._getDoc().getElementsByTagName("img");for(var G=0;G<K.length;G++){if(!YAHOO.util.Dom.hasClass(K[G],"yui-img")){YAHOO.util.Dom.addClass(K[G],"yui-img");this.currentElement[0]=K[G];}}E=false;}else{if(H==this._getDoc().body){F=this._getDoc().createElement("img");F.setAttribute("src",J);YAHOO.util.Dom.addClass(F,"yui-img");this._getDoc().body.appendChild(F);}else{this._createCurrentElement("img");F=this._getDoc().createElement("img");F.setAttribute("src",J);YAHOO.util.Dom.addClass(F,"yui-img");this.currentElement[0].parentNode.replaceChild(F,this.currentElement[0]);}this.currentElement[0]=F;E=false;}}return[E];},cmd_inserthtml:function(H){var E=true,G="inserthtml",F=null,I=null;if(this.browser.webkit&&!this._getDoc().queryCommandEnabled(G)){this._createCurrentElement("img");F=this._getDoc().createElement("span");F.innerHTML=H;this.currentElement[0].parentNode.replaceChild(F,this.currentElement[0]);E=false;}else{if(this.browser.ie){I=this._getRange();if(I.item){I.item(0).outerHTML=H;}else{I.pasteHTML(H);}E=false;}}return[E];},cmd_list:function(e){var V=true,Z=null,N=0,G=null,U="",d=this._getSelectedElement(),W="insertorderedlist";if(e=="ul"){W="insertunorderedlist";}if((this.browser.webkit&&!this.browser.webkit4)||(this.browser.opera)){if(this._isElement(d,"li")&&this._isElement(d.parentNode,e)){G=d.parentNode;Z=this._getDoc().createElement("span");YAHOO.util.Dom.addClass(Z,"yui-non");U="";var F=G.getElementsByTagName("li"),I=((this.browser.opera&&this.get("ptags"))?"p":"div");for(N=0;N<F.length;N++){U+="<"+I+">"+F[N].innerHTML+"</"+I+">";}Z.innerHTML=U;this.currentElement[0]=G;this.currentElement[0].parentNode.replaceChild(Z,this.currentElement[0]);}else{this._createCurrentElement(e.toLowerCase());Z=this._getDoc().createElement(e);for(N=0;N<this.currentElement.length;N++){var K=this._getDoc().createElement("li");K.innerHTML=this.currentElement[N].innerHTML+'<span class="yui-non"> </span> ';Z.appendChild(K);if(N>0){this.currentElement[N].parentNode.removeChild(this.currentElement[N]);}}var T=((this.browser.opera)?"<BR>":"<br>"),S=Z.firstChild.innerHTML.split(T),Y,a;if(S.length>0){Z.innerHTML="";for(Y=0;Y<S.length;Y++){a=this._getDoc().createElement("li");a.innerHTML=S[Y];Z.appendChild(a);}}this.currentElement[0].parentNode.replaceChild(Z,this.currentElement[0]);this.currentElement[0]=Z;var H=this.currentElement[0].firstChild;H=C.getElementsByClassName("yui-non","span",H)[0];if(this.browser.webkit){this._getSelection().setBaseAndExtent(H,1,H,H.innerText.length);}}V=false;}else{G=this._getSelectedElement();if(this._isElement(G,"li")&&this._isElement(G.parentNode,e)||(this.browser.ie&&this._isElement(this._getRange().parentElement,"li"))||(this.browser.ie&&this._isElement(G,"ul"))||(this.browser.ie&&this._isElement(G,"ol"))){if(this.browser.ie){if((this.browser.ie&&this._isElement(G,"ul"))||(this.browser.ie&&this._isElement(G,"ol"))){G=G.getElementsByTagName("li")[0];}U="";var J=G.parentNode.getElementsByTagName("li");for(var X=0;X<J.length;X++){U+=J[X].innerHTML+"<br>";}var c=this._getDoc().createElement("span");c.innerHTML=U;G.parentNode.parentNode.replaceChild(c,G.parentNode);}else{this.nodeChange();this._getDoc().execCommand(W,"",G.parentNode);this.nodeChange();}V=false;}if(this.browser.opera){var R=this;window.setTimeout(function(){var f=R._getDoc().getElementsByTagName("li");for(var g=0;g<f.length;g++){if(f[g].innerHTML.toLowerCase()=="<br>"){f[g].parentNode.parentNode.removeChild(f[g].parentNode);}}},30);}if(this.browser.ie&&V){var L="";if(this._getRange().html){L="<li>"+this._getRange().html+"</li>";}else{var M=this._getRange().text.split("\n");if(M.length>1){L="";for(var Q=0;Q<M.length;Q++){L+="<li>"+M[Q]+"</li>";}}else{var P=this._getRange().text;if(P===""){L='<li id="new_list_item">'+P+"</li>";}else{L="<li>"+P+"</li>";}}}this._getRange().pasteHTML("<"+e+">"+L+"</"+e+">");var E=this._getDoc().getElementById("new_list_item");if(E){var O=this._getDoc().body.createTextRange();
 O.moveToElementText(E);O.collapse(false);O.select();E.id="";}V=false;}}return V;},cmd_insertorderedlist:function(E){return[this.cmd_list("ol")];},cmd_insertunorderedlist:function(E){return[this.cmd_list("ul")];},cmd_fontname:function(H){var E=true,G=this._getSelectedElement();this.currentFont=H;if(G&&G.tagName&&!this._hasSelection()&&!this._isElement(G,"body")&&!this.get("insert")){YAHOO.util.Dom.setStyle(G,"font-family",H);E=false;}else{if(this.get("insert")&&!this._hasSelection()){var F=this._createInsertElement({fontFamily:H});E=false;}}return[E];},cmd_fontsize:function(H){var E=null,G=true;E=this._getSelectedElement();if(this.browser.webkit){if(this.currentElement[0]){if(E==this.currentElement[0]){G=false;YAHOO.util.Dom.setStyle(E,"fontSize",H);this._selectNode(E);this.currentElement[0]=E;}}}if(G){if(!this._isElement(this._getSelectedElement(),"body")&&(!this._hasSelection())){E=this._getSelectedElement();YAHOO.util.Dom.setStyle(E,"fontSize",H);if(this.get("insert")&&this.browser.ie){var F=this._getRange();F.collapse(false);F.select();}else{this._selectNode(E);}}else{if(this.currentElement&&(this.currentElement.length>0)&&(!this._hasSelection())&&(!this.get("insert"))){YAHOO.util.Dom.setStyle(this.currentElement,"fontSize",H);}else{if(this.get("insert")&&!this._hasSelection()){E=this._createInsertElement({fontSize:H});this.currentElement[0]=E;this._selectNode(this.currentElement[0]);}else{this._createCurrentElement("span",{"fontSize":H,fontFamily:E.style.fontFamily,color:E.style.color,backgroundColor:E.style.backgroundColor});this._selectNode(this.currentElement[0]);}}}}return[false];},_swapEl:function(F,E,H){var G=this._getDoc().createElement(E);if(F){G.innerHTML=F.innerHTML;}if(typeof H=="function"){H.call(this,G);}if(F){F.parentNode.replaceChild(G,F);}return G;},_createInsertElement:function(E){this._createCurrentElement("span",E);var F=this.currentElement[0];if(this.browser.webkit){F.innerHTML='<span class="yui-non"> </span>';F=F.firstChild;this._getSelection().setBaseAndExtent(F,1,F,F.innerText.length);}else{if(this.browser.ie||this.browser.opera){F.innerHTML=" ";}}this.focus();this._selectNode(F,true);return F;},_createCurrentElement:function(G,J){G=((G)?G:"a");var R=null,F=[],H=this._getDoc();if(this.currentFont){if(!J){J={};}J.fontFamily=this.currentFont;this.currentFont=null;}this.currentElement=[];var M=function(X,Z){var Y=null;X=((X)?X:"span");X=X.toLowerCase();switch(X){case"h1":case"h2":case"h3":case"h4":case"h5":case"h6":Y=H.createElement(X);break;default:Y=H.createElement(X);if(X==="span"){YAHOO.util.Dom.addClass(Y,"yui-tag-"+X);YAHOO.util.Dom.addClass(Y,"yui-tag");Y.setAttribute("tag",X);}for(var W in Z){if(YAHOO.lang.hasOwnProperty(Z,W)){Y.style[W]=Z[W];}}break;}return Y;};if(!this._hasSelection()){if(this._getDoc().queryCommandEnabled("insertimage")){this._getDoc().execCommand("insertimage",false,"yui-tmp-img");var L=this._getDoc().getElementsByTagName("img");for(var Q=0;Q<L.length;Q++){if(L[Q].getAttribute("src",2)=="yui-tmp-img"){F=M(G,J);L[Q].parentNode.replaceChild(F,L[Q]);this.currentElement[this.currentElement.length]=F;}}}else{if(this.currentEvent){R=YAHOO.util.Event.getTarget(this.currentEvent);}else{R=this._getDoc().body;}}if(R){F=M(G,J);if(this._isElement(R,"body")||this._isElement(R,"html")){if(this._isElement(R,"html")){R=this._getDoc().body;}R.appendChild(F);}else{if(R.nextSibling){R.parentNode.insertBefore(F,R.nextSibling);}else{R.parentNode.appendChild(F);}}this.currentElement[this.currentElement.length]=F;this.currentEvent=null;if(this.browser.webkit){this._getSelection().setBaseAndExtent(F,0,F,0);if(this.browser.webkit3){this._getSelection().collapseToStart();}else{this._getSelection().collapse(true);}}}}else{this._setEditorStyle(true);this._getDoc().execCommand("fontname",false,"yui-tmp");var E=[],P,V=["font","span","i","b","u"];if(!this._isElement(this._getSelectedElement(),"body")){V[V.length]=this._getDoc().getElementsByTagName(this._getSelectedElement().tagName);V[V.length]=this._getDoc().getElementsByTagName(this._getSelectedElement().parentNode.tagName);}for(var K=0;K<V.length;K++){var I=this._getDoc().getElementsByTagName(V[K]);for(var U=0;U<I.length;U++){E[E.length]=I[U];}}for(var S=0;S<E.length;S++){if((YAHOO.util.Dom.getStyle(E[S],"font-family")=="yui-tmp")||(E[S].face&&(E[S].face=="yui-tmp"))){if(G!=="span"){F=M(G,J);}else{F=M(E[S].tagName,J);}F.innerHTML=E[S].innerHTML;if(this._isElement(E[S],"ol")||(this._isElement(E[S],"ul"))){var N=E[S].getElementsByTagName("li")[0];E[S].style.fontFamily="inherit";N.style.fontFamily="inherit";F.innerHTML=N.innerHTML;N.innerHTML="";N.appendChild(F);this.currentElement[this.currentElement.length]=F;}else{if(this._isElement(E[S],"li")){E[S].innerHTML="";E[S].appendChild(F);E[S].style.fontFamily="inherit";this.currentElement[this.currentElement.length]=F;}else{if(E[S].parentNode){E[S].parentNode.replaceChild(F,E[S]);this.currentElement[this.currentElement.length]=F;this.currentEvent=null;if(this.browser.webkit){this._getSelection().setBaseAndExtent(F,0,F,0);if(this.browser.webkit3){this._getSelection().collapseToStart();}else{this._getSelection().collapse(true);}}if(this.browser.ie&&J&&J.fontSize){this._getSelection().empty();}if(this.browser.gecko){this._getSelection().collapseToStart();}}}}}}var T=this.currentElement.length;for(var O=0;O<T;O++){if((O+1)!=T){if(this.currentElement[O]&&this.currentElement[O].nextSibling){if(this._isElement(this.currentElement[O],"br")){this.currentElement[this.currentElement.length]=this.currentElement[O].nextSibling;}}}}}},saveHTML:function(){var F=this.cleanHTML();if(this._textarea){this.get("element").value=F;}else{this.get("element").innerHTML=F;}if(this.get("saveEl")!==this.get("element")){var E=this.get("saveEl");if(D.isString(E)){E=C.get(E);}if(E){if(E.tagName.toLowerCase()==="textarea"){E.value=F;}else{E.innerHTML=F;}}}return F;},setEditorHTML:function(F){var E=this._cleanIncomingHTML(F);E=E.replace(/RIGHT_BRACKET/gi,"{");E=E.replace(/LEFT_BRACKET/gi,"}");
 this._getDoc().body.innerHTML=E;this.nodeChange();},getEditorHTML:function(){try{var E=this._getDoc().body;if(E===null){return null;}return this._getDoc().body.innerHTML;}catch(F){return"";}},show:function(){if(this.browser.gecko){this._setDesignMode("on");this.focus();}if(this.browser.webkit){var E=this;window.setTimeout(function(){E._setInitialContent.call(E);},10);}if(this.currentWindow){this.closeWindow();}this.get("iframe").setStyle("position","static");this.get("iframe").setStyle("left","");},hide:function(){if(this.currentWindow){this.closeWindow();}if(this._fixNodesTimer){clearTimeout(this._fixNodesTimer);this._fixNodesTimer=null;}if(this._nodeChangeTimer){clearTimeout(this._nodeChangeTimer);this._nodeChangeTimer=null;}this._lastNodeChange=0;this.get("iframe").setStyle("position","absolute");this.get("iframe").setStyle("left","-9999px");},_cleanIncomingHTML:function(E){E=E.replace(/{/gi,"RIGHT_BRACKET");E=E.replace(/}/gi,"LEFT_BRACKET");E=E.replace(/<strong([^>]*)>/gi,"<b$1>");E=E.replace(/<\/strong>/gi,"</b>");E=E.replace(/<embed([^>]*)>/gi,"<YUI_EMBED$1>");E=E.replace(/<\/embed>/gi,"</YUI_EMBED>");E=E.replace(/<em([^>]*)>/gi,"<i$1>");E=E.replace(/<\/em>/gi,"</i>");E=E.replace(/_moz_dirty=""/gi,"");E=E.replace(/<YUI_EMBED([^>]*)>/gi,"<embed$1>");E=E.replace(/<\/YUI_EMBED>/gi,"</embed>");if(this.get("plainText")){E=E.replace(/\n/g,"<br>").replace(/\r/g,"<br>");E=E.replace(/  /gi,"  ");E=E.replace(/\t/gi,"    ");}E=E.replace(/<script([^>]*)>/gi,"<bad>");E=E.replace(/<\/script([^>]*)>/gi,"</bad>");E=E.replace(/<script([^>]*)>/gi,"<bad>");E=E.replace(/<\/script([^>]*)>/gi,"</bad>");E=E.replace(/\r\n/g,"<YUI_LF>").replace(/\n/g,"<YUI_LF>").replace(/\r/g,"<YUI_LF>");E=E.replace(new RegExp("<bad([^>]*)>(.*?)</bad>","gi"),"");E=E.replace(/<YUI_LF>/g,"\n");return E;},cleanHTML:function(H){if(!H){H=this.getEditorHTML();}var F=this.get("markup");H=this.pre_filter_linebreaks(H,F);H=this.filter_msword(H);H=H.replace(/<img([^>]*)\/>/gi,"<YUI_IMG$1>");H=H.replace(/<img([^>]*)>/gi,"<YUI_IMG$1>");H=H.replace(/<input([^>]*)\/>/gi,"<YUI_INPUT$1>");H=H.replace(/<input([^>]*)>/gi,"<YUI_INPUT$1>");H=H.replace(/<ul([^>]*)>/gi,"<YUI_UL$1>");H=H.replace(/<\/ul>/gi,"</YUI_UL>");H=H.replace(/<blockquote([^>]*)>/gi,"<YUI_BQ$1>");H=H.replace(/<\/blockquote>/gi,"</YUI_BQ>");H=H.replace(/<embed([^>]*)>/gi,"<YUI_EMBED$1>");H=H.replace(/<\/embed>/gi,"</YUI_EMBED>");if((F=="semantic")||(F=="xhtml")){H=H.replace(/<i(\s+[^>]*)?>/gi,"<em$1>");H=H.replace(/<\/i>/gi,"</em>");H=H.replace(/<b(\s+[^>]*)?>/gi,"<strong$1>");H=H.replace(/<\/b>/gi,"</strong>");}H=H.replace(/_moz_dirty=""/gi,"");H=H.replace(/<strike/gi,'<span style="text-decoration: line-through;"');H=H.replace(/\/strike>/gi,"/span>");if(this.browser.ie){H=H.replace(/text-decoration/gi,"text-decoration");H=H.replace(/font-weight/gi,"font-weight");H=H.replace(/_width="([^>]*)"/gi,"");H=H.replace(/_height="([^>]*)"/gi,"");var G=this._baseHREF.replace(/\//gi,"\\/"),I=new RegExp('src="'+G,"gi");H=H.replace(I,'src="');}H=H.replace(/<font/gi,"<font");H=H.replace(/<\/font>/gi,"</font>");H=H.replace(/<span/gi,"<span");H=H.replace(/<\/span>/gi,"</span>");if((F=="semantic")||(F=="xhtml")||(F=="css")){H=H.replace(new RegExp('<font([^>]*)face="([^>]*)">(.*?)</font>',"gi"),'<span $1 style="font-family: $2;">$3</span>');H=H.replace(/<u/gi,'<span style="text-decoration: underline;"');if(this.browser.webkit){H=H.replace(new RegExp('<span class="Apple-style-span" style="font-weight: bold;">([^>]*)</span>',"gi"),"<strong>$1</strong>");H=H.replace(new RegExp('<span class="Apple-style-span" style="font-style: italic;">([^>]*)</span>',"gi"),"<em>$1</em>");}H=H.replace(/\/u>/gi,"/span>");if(F=="css"){H=H.replace(/<em([^>]*)>/gi,"<i$1>");H=H.replace(/<\/em>/gi,"</i>");H=H.replace(/<strong([^>]*)>/gi,"<b$1>");H=H.replace(/<\/strong>/gi,"</b>");H=H.replace(/<b/gi,'<span style="font-weight: bold;"');H=H.replace(/\/b>/gi,"/span>");H=H.replace(/<i/gi,'<span style="font-style: italic;"');H=H.replace(/\/i>/gi,"/span>");}H=H.replace(/  /gi," ");}else{H=H.replace(/<u/gi,"<u");H=H.replace(/\/u>/gi,"/u>");}H=H.replace(/<ol([^>]*)>/gi,"<ol$1>");H=H.replace(/\/ol>/gi,"/ol>");H=H.replace(/<li/gi,"<li");H=H.replace(/\/li>/gi,"/li>");H=this.filter_safari(H);H=this.filter_internals(H);H=this.filter_all_rgb(H);H=this.post_filter_linebreaks(H,F);if(F=="xhtml"){H=H.replace(/<YUI_IMG([^>]*)>/g,"<img $1 />");H=H.replace(/<YUI_INPUT([^>]*)>/g,"<input $1 />");}else{H=H.replace(/<YUI_IMG([^>]*)>/g,"<img $1>");H=H.replace(/<YUI_INPUT([^>]*)>/g,"<input $1>");}H=H.replace(/<YUI_UL([^>]*)>/g,"<ul$1>");H=H.replace(/<\/YUI_UL>/g,"</ul>");H=this.filter_invalid_lists(H);H=H.replace(/<YUI_BQ([^>]*)>/g,"<blockquote$1>");H=H.replace(/<\/YUI_BQ>/g,"</blockquote>");H=H.replace(/<YUI_EMBED([^>]*)>/g,"<embed$1>");H=H.replace(/<\/YUI_EMBED>/g,"</embed>");H=H.replace(/ & /gi," YUI_AMP ");H=H.replace(/ &/gi," YUI_AMP_F ");H=H.replace(/& /gi," YUI_AMP_R ");H=H.replace(/&/gi,"&");H=H.replace(/ YUI_AMP /gi," & ");H=H.replace(/ YUI_AMP_F /gi," &");H=H.replace(/ YUI_AMP_R /gi,"& ");H=YAHOO.lang.trim(H);if(this.get("removeLineBreaks")){H=H.replace(/\n/g,"").replace(/\r/g,"");H=H.replace(/  /gi," ");}for(var E in this.invalidHTML){if(YAHOO.lang.hasOwnProperty(this.invalidHTML,E)){if(D.isObject(E)&&E.keepContents){H=H.replace(new RegExp("<"+E+"([^>]*)>(.*?)</"+E+">","gi"),"$1");}else{H=H.replace(new RegExp("<"+E+"([^>]*)>(.*?)</"+E+">","gi"),"");}}}this.fireEvent("cleanHTML",{type:"cleanHTML",target:this,html:H});return H;},filter_msword:function(E){if(!this.get("filterWord")){return E;}E=E.replace(/<o:p>\s*<\/o:p>/g,"");E=E.replace(/<o:p>[\s\S]*?<\/o:p>/g," ");E=E.replace(/<w:[^>]*>[\s\S]*?<\/w:[^>]*>/gi,"");E=E.replace(/\s*mso-[^:]+:[^;"]+;?/gi,"");E=E.replace(/\s*MARGIN: 0cm 0cm 0pt\s*;/gi,"");E=E.replace(/\s*MARGIN: 0cm 0cm 0pt\s*"/gi,'"');E=E.replace(/\s*TEXT-INDENT: 0cm\s*;/gi,"");E=E.replace(/\s*TEXT-INDENT: 0cm\s*"/gi,'"');E=E.replace(/\s*PAGE-BREAK-BEFORE: [^\s;]+;?"/gi,'"');
-E=E.replace(/\s*FONT-VARIANT: [^\s;]+;?"/gi,'"');E=E.replace(/\s*tab-stops:[^;"]*;?/gi,"");E=E.replace(/\s*tab-stops:[^"]*/gi,"");E=E.replace(/<\\?\?xml[^>]*>/gi,"");E=E.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");E=E.replace(/<(\w[^>]*) language=([^ |>]*)([^>]*)/gi,"<$1$3");E=E.replace(/<(\w[^>]*) onmouseover="([^\"]*)"([^>]*)/gi,"<$1$3");E=E.replace(/<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi,"<$1$3");return E;},filter_invalid_lists:function(E){E=E.replace(/<\/li>\n/gi,"</li>");E=E.replace(/<\/li><ol>/gi,"</li><li><ol>");E=E.replace(/<\/ol>/gi,"</ol></li>");E=E.replace(/<\/ol><\/li>\n/gi,"</ol>");E=E.replace(/<\/li><ul>/gi,"</li><li><ul>");E=E.replace(/<\/ul>/gi,"</ul></li>");E=E.replace(/<\/ul><\/li>\n?/gi,"</ul>");E=E.replace(/<\/li>/gi,"</li>");E=E.replace(/<\/ol>/gi,"</ol>");E=E.replace(/<ol>/gi,"<ol>");E=E.replace(/<ul>/gi,"<ul>");return E;},filter_safari:function(E){if(this.browser.webkit){E=E.replace(/<span class="Apple-tab-span" style="white-space:pre">([^>])<\/span>/gi,"    ");E=E.replace(/Apple-style-span/gi,"");E=E.replace(/style="line-height: normal;"/gi,"");E=E.replace(/yui-wk-div/gi,"");E=E.replace(/yui-wk-p/gi,"");E=E.replace(/<li><\/li>/gi,"");E=E.replace(/<li> <\/li>/gi,"");E=E.replace(/<li>  <\/li>/gi,"");if(this.get("ptags")){E=E.replace(/<div([^>]*)>/g,"<p$1>");E=E.replace(/<\/div>/gi,"</p>");}else{E=E.replace(/<div([^>]*)>([ tnr]*)<\/div>/gi,"<br>");E=E.replace(/<\/div>/gi,"");}}return E;},filter_internals:function(E){E=E.replace(/\r/g,"");E=E.replace(/<\/?(body|head|html)[^>]*>/gi,"");E=E.replace(/<YUI_BR><\/li>/gi,"</li>");E=E.replace(/yui-tag-span/gi,"");E=E.replace(/yui-tag/gi,"");E=E.replace(/yui-non/gi,"");E=E.replace(/yui-img/gi,"");E=E.replace(/ tag="span"/gi,"");E=E.replace(/ class=""/gi,"");E=E.replace(/ style=""/gi,"");E=E.replace(/ class=" "/gi,"");E=E.replace(/ class="  "/gi,"");E=E.replace(/ target=""/gi,"");E=E.replace(/ title=""/gi,"");if(this.browser.ie){E=E.replace(/ class= /gi,"");E=E.replace(/ class= >/gi,"");}return E;},filter_all_rgb:function(I){var H=new RegExp("rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)","gi");var E=I.match(H);if(D.isArray(E)){for(var G=0;G<E.length;G++){var F=this.filter_rgb(E[G]);I=I.replace(E[G].toString(),F);}}return I;},filter_rgb:function(G){if(G.toLowerCase().indexOf("rgb")!=-1){var J=new RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)","gi");var F=G.replace(J,"$1,$2,$3,$4,$5").split(",");if(F.length==5){var I=parseInt(F[1],10).toString(16);var H=parseInt(F[2],10).toString(16);var E=parseInt(F[3],10).toString(16);I=I.length==1?"0"+I:I;H=H.length==1?"0"+H:H;E=E.length==1?"0"+E:E;G="#"+I+H+E;}}return G;},pre_filter_linebreaks:function(F,E){if(this.browser.webkit){F=F.replace(/<br class="khtml-block-placeholder">/gi,"<YUI_BR>");F=F.replace(/<br class="webkit-block-placeholder">/gi,"<YUI_BR>");}F=F.replace(/<br>/gi,"<YUI_BR>");F=F.replace(/<br (.*?)>/gi,"<YUI_BR>");F=F.replace(/<br\/>/gi,"<YUI_BR>");F=F.replace(/<br \/>/gi,"<YUI_BR>");F=F.replace(/<div><YUI_BR><\/div>/gi,"<YUI_BR>");F=F.replace(/<p>( | )<\/p>/g,"<YUI_BR>");F=F.replace(/<p><br> <\/p>/gi,"<YUI_BR>");F=F.replace(/<p> <\/p>/gi,"<YUI_BR>");F=F.replace(/<YUI_BR>$/,"");F=F.replace(/<YUI_BR><\/p>/g,"</p>");if(this.browser.ie){F=F.replace(/    /g,"\t");}return F;},post_filter_linebreaks:function(F,E){if(E=="xhtml"){F=F.replace(/<YUI_BR>/g,"<br />");}else{F=F.replace(/<YUI_BR>/g,"<br>");}return F;},clearEditorDoc:function(){this._getDoc().body.innerHTML=" ";},openWindow:function(E){},moveWindow:function(){},_closeWindow:function(){},closeWindow:function(){this.toolbar.resetAllButtons();this.focus();},destroy:function(){if(this._nodeChangeDelayTimer){clearTimeout(this._nodeChangeDelayTimer);}this.hide();if(this.resize){this.resize.destroy();}if(this.dd){this.dd.unreg();}if(this.get("panel")){this.get("panel").destroy();}this.saveHTML();this.toolbar.destroy();this.setStyle("visibility","visible");this.setStyle("position","static");this.setStyle("top","");this.setStyle("left","");var E=this.get("element");this.get("element_cont").get("parentNode").replaceChild(E,this.get("element_cont").get("element"));this.get("element_cont").get("element").innerHTML="";this.set("handleSubmit",false);return true;},toString:function(){var E="SimpleEditor";if(this.get&&this.get("element_cont")){E="SimpleEditor (#"+this.get("element_cont").get("id")+")"+((this.get("disabled")?" Disabled":""));}return E;}});YAHOO.widget.EditorInfo={_instances:{},blankImage:"",window:{},panel:null,getEditorById:function(E){if(!YAHOO.lang.isString(E)){E=E.id;}if(this._instances[E]){return this._instances[E];}return false;},saveAll:function(G){var F,H,E=YAHOO.widget.EditorInfo._instances;if(G){for(F in E){if(D.hasOwnProperty(E,F)){H=E[F];if(H.get("element").form&&(H.get("element").form==G)){H.saveHTML();}}}}else{for(F in E){if(D.hasOwnProperty(E,F)){E[F].saveHTML();}}}},toString:function(){var E=0;for(var F in this._instances){if(D.hasOwnProperty(this._instances,F)){E++;}}return"Editor Info ("+E+" registered intance"+((E>1)?"s":"")+")";}};})();YAHOO.register("simpleeditor",YAHOO.widget.SimpleEditor,{version:"2.8.1",build:"19"});
\ No newline at end of file
+E=E.replace(/\s*FONT-VARIANT: [^\s;]+;?"/gi,'"');E=E.replace(/\s*tab-stops:[^;"]*;?/gi,"");E=E.replace(/\s*tab-stops:[^"]*/gi,"");E=E.replace(/<\\?\?xml[^>]*>/gi,"");E=E.replace(/<(\w[^>]*) lang=([^ |>]*)([^>]*)/gi,"<$1$3");E=E.replace(/<(\w[^>]*) language=([^ |>]*)([^>]*)/gi,"<$1$3");E=E.replace(/<(\w[^>]*) onmouseover="([^\"]*)"([^>]*)/gi,"<$1$3");E=E.replace(/<(\w[^>]*) onmouseout="([^\"]*)"([^>]*)/gi,"<$1$3");return E;},filter_invalid_lists:function(E){E=E.replace(/<\/li>\n/gi,"</li>");E=E.replace(/<\/li><ol>/gi,"</li><li><ol>");E=E.replace(/<\/ol>/gi,"</ol></li>");E=E.replace(/<\/ol><\/li>\n/gi,"</ol>");E=E.replace(/<\/li><ul>/gi,"</li><li><ul>");E=E.replace(/<\/ul>/gi,"</ul></li>");E=E.replace(/<\/ul><\/li>\n?/gi,"</ul>");E=E.replace(/<\/li>/gi,"</li>");E=E.replace(/<\/ol>/gi,"</ol>");E=E.replace(/<ol>/gi,"<ol>");E=E.replace(/<ul>/gi,"<ul>");return E;},filter_safari:function(E){if(this.browser.webkit){E=E.replace(/<span class="Apple-tab-span" style="white-space:pre">([^>])<\/span>/gi,"    ");E=E.replace(/Apple-style-span/gi,"");E=E.replace(/style="line-height: normal;"/gi,"");E=E.replace(/yui-wk-div/gi,"");E=E.replace(/yui-wk-p/gi,"");E=E.replace(/<li><\/li>/gi,"");E=E.replace(/<li> <\/li>/gi,"");E=E.replace(/<li>  <\/li>/gi,"");if(this.get("ptags")){E=E.replace(/<div([^>]*)>/g,"<p$1>");E=E.replace(/<\/div>/gi,"</p>");}else{E=E.replace(/<div([^>]*)>([ tnr]*)<\/div>/gi,"<br>");E=E.replace(/<\/div>/gi,"");}}return E;},filter_internals:function(E){E=E.replace(/\r/g,"");E=E.replace(/<\/?(body|head|html)[^>]*>/gi,"");E=E.replace(/<YUI_BR><\/li>/gi,"</li>");E=E.replace(/yui-tag-span/gi,"");E=E.replace(/yui-tag/gi,"");E=E.replace(/yui-non/gi,"");E=E.replace(/yui-img/gi,"");E=E.replace(/ tag="span"/gi,"");E=E.replace(/ class=""/gi,"");E=E.replace(/ style=""/gi,"");E=E.replace(/ class=" "/gi,"");E=E.replace(/ class="  "/gi,"");E=E.replace(/ target=""/gi,"");E=E.replace(/ title=""/gi,"");if(this.browser.ie){E=E.replace(/ class= /gi,"");E=E.replace(/ class= >/gi,"");}return E;},filter_all_rgb:function(I){var H=new RegExp("rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)","gi");var E=I.match(H);if(D.isArray(E)){for(var G=0;G<E.length;G++){var F=this.filter_rgb(E[G]);I=I.replace(E[G].toString(),F);}}return I;},filter_rgb:function(G){if(G.toLowerCase().indexOf("rgb")!=-1){var J=new RegExp("(.*?)rgb\\s*?\\(\\s*?([0-9]+).*?,\\s*?([0-9]+).*?,\\s*?([0-9]+).*?\\)(.*?)","gi");var F=G.replace(J,"$1,$2,$3,$4,$5").split(",");if(F.length==5){var I=parseInt(F[1],10).toString(16);var H=parseInt(F[2],10).toString(16);var E=parseInt(F[3],10).toString(16);I=I.length==1?"0"+I:I;H=H.length==1?"0"+H:H;E=E.length==1?"0"+E:E;G="#"+I+H+E;}}return G;},pre_filter_linebreaks:function(F,E){if(this.browser.webkit){F=F.replace(/<br class="khtml-block-placeholder">/gi,"<YUI_BR>");F=F.replace(/<br class="webkit-block-placeholder">/gi,"<YUI_BR>");}F=F.replace(/<br>/gi,"<YUI_BR>");F=F.replace(/<br (.*?)>/gi,"<YUI_BR>");F=F.replace(/<br\/>/gi,"<YUI_BR>");F=F.replace(/<br \/>/gi,"<YUI_BR>");F=F.replace(/<div><YUI_BR><\/div>/gi,"<YUI_BR>");F=F.replace(/<p>( | )<\/p>/g,"<YUI_BR>");F=F.replace(/<p><br> <\/p>/gi,"<YUI_BR>");F=F.replace(/<p> <\/p>/gi,"<YUI_BR>");F=F.replace(/<YUI_BR>$/,"");F=F.replace(/<YUI_BR><\/p>/g,"</p>");if(this.browser.ie){F=F.replace(/    /g,"\t");}return F;},post_filter_linebreaks:function(F,E){if(E=="xhtml"){F=F.replace(/<YUI_BR>/g,"<br />");}else{F=F.replace(/<YUI_BR>/g,"<br>");}return F;},clearEditorDoc:function(){this._getDoc().body.innerHTML=" ";},openWindow:function(E){},moveWindow:function(){},_closeWindow:function(){},closeWindow:function(){this.toolbar.resetAllButtons();this.focus();},destroy:function(){if(this._nodeChangeDelayTimer){clearTimeout(this._nodeChangeDelayTimer);}this.hide();if(this.resize){this.resize.destroy();}if(this.dd){this.dd.unreg();}if(this.get("panel")){this.get("panel").destroy();}this.saveHTML();this.toolbar.destroy();this.setStyle("visibility","visible");this.setStyle("position","static");this.setStyle("top","");this.setStyle("left","");var E=this.get("element");this.get("element_cont").get("parentNode").replaceChild(E,this.get("element_cont").get("element"));this.get("element_cont").get("element").innerHTML="";this.set("handleSubmit",false);return true;},toString:function(){var E="SimpleEditor";if(this.get&&this.get("element_cont")){E="SimpleEditor (#"+this.get("element_cont").get("id")+")"+((this.get("disabled")?" Disabled":""));}return E;}});YAHOO.widget.EditorInfo={_instances:{},blankImage:"",window:{},panel:null,getEditorById:function(E){if(!YAHOO.lang.isString(E)){E=E.id;}if(this._instances[E]){return this._instances[E];}return false;},saveAll:function(G){var F,H,E=YAHOO.widget.EditorInfo._instances;if(G){for(F in E){if(D.hasOwnProperty(E,F)){H=E[F];if(H.get("element").form&&(H.get("element").form==G)){H.saveHTML();}}}}else{for(F in E){if(D.hasOwnProperty(E,F)){E[F].saveHTML();}}}},toString:function(){var E=0;for(var F in this._instances){if(D.hasOwnProperty(this._instances,F)){E++;}}return"Editor Info ("+E+" registered intance"+((E>1)?"s":"")+")";}};})();YAHOO.register("simpleeditor",YAHOO.widget.SimpleEditor,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/editor/simpleeditor.js b/build/editor/simpleeditor.js
index 40afd33..46d543e 100644
--- a/build/editor/simpleeditor.js
+++ b/build/editor/simpleeditor.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 var Dom = YAHOO.util.Dom,
@@ -7403,4 +7403,4 @@ YAHOO.widget.EditorInfo = {
 
     
 })();
-YAHOO.register("simpleeditor", YAHOO.widget.SimpleEditor, {version: "2.8.1", build: "19"});
+YAHOO.register("simpleeditor", YAHOO.widget.SimpleEditor, {version: "2.8.2r1", build: "7"});
diff --git a/build/element-delegate/element-delegate-debug.js b/build/element-delegate/element-delegate-debug.js
index ac49f92..f74e8ad 100644
--- a/build/element-delegate/element-delegate-debug.js
+++ b/build/element-delegate/element-delegate-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Augments the Element Utility with a <code>delegate</code> method that 
@@ -138,4 +138,4 @@ version: 2.8.1
 	});
 
 }());
-YAHOO.register("element-delegate", YAHOO.util.Element, {version: "2.8.1", build: "19"});
+YAHOO.register("element-delegate", YAHOO.util.Element, {version: "2.8.2r1", build: "7"});
diff --git a/build/element-delegate/element-delegate-min.js b/build/element-delegate/element-delegate-min.js
index 1817a0a..2bacdee 100644
--- a/build/element-delegate/element-delegate-min.js
+++ b/build/element-delegate/element-delegate-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-(function(){var A=YAHOO.util.Event,B=[],C={mouseenter:true,mouseleave:true};YAHOO.lang.augmentObject(YAHOO.util.Element.prototype,{delegate:function(J,L,F,H,I){if(YAHOO.lang.isString(F)&&!YAHOO.util.Selector){return false;}if(!A._createDelegate){return false;}var E=A._getType(J),G=this.get("element"),M,K,D=function(N){return M.call(G,N);};if(C[J]){if(!A._createMouseDelegate){return false;}K=A._createMouseDelegate(L,H,I);M=A._createDelegate(function(P,O,N){return K.call(O,P,N);},F,H,I);}else{M=A._createDelegate(L,F,H,I);}B.push([G,E,L,D]);return this.on(E,D);},removeDelegate:function(H,G){var I=A._getType(H),E=A._getCacheIndex(B,this.get("element"),I,G),F,D;if(E>=0){D=B[E];}if(D){F=this.removeListener(D[1],D[3]);if(F){delete B[E][2];delete B[E][3];B.splice(E,1);}}return F;}});}());YAHOO.register("element-delegate",YAHOO.util.Element,{version:"2.8.1",build:"19"});
\ No newline at end of file
+(function(){var A=YAHOO.util.Event,B=[],C={mouseenter:true,mouseleave:true};YAHOO.lang.augmentObject(YAHOO.util.Element.prototype,{delegate:function(J,L,F,H,I){if(YAHOO.lang.isString(F)&&!YAHOO.util.Selector){return false;}if(!A._createDelegate){return false;}var E=A._getType(J),G=this.get("element"),M,K,D=function(N){return M.call(G,N);};if(C[J]){if(!A._createMouseDelegate){return false;}K=A._createMouseDelegate(L,H,I);M=A._createDelegate(function(P,O,N){return K.call(O,P,N);},F,H,I);}else{M=A._createDelegate(L,F,H,I);}B.push([G,E,L,D]);return this.on(E,D);},removeDelegate:function(H,G){var I=A._getType(H),E=A._getCacheIndex(B,this.get("element"),I,G),F,D;if(E>=0){D=B[E];}if(D){F=this.removeListener(D[1],D[3]);if(F){delete B[E][2];delete B[E][3];B.splice(E,1);}}return F;}});}());YAHOO.register("element-delegate",YAHOO.util.Element,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/element-delegate/element-delegate.js b/build/element-delegate/element-delegate.js
index e038e74..fe6296e 100644
--- a/build/element-delegate/element-delegate.js
+++ b/build/element-delegate/element-delegate.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Augments the Element Utility with a <code>delegate</code> method that 
@@ -135,4 +135,4 @@ version: 2.8.1
 	});
 
 }());
-YAHOO.register("element-delegate", YAHOO.util.Element, {version: "2.8.1", build: "19"});
+YAHOO.register("element-delegate", YAHOO.util.Element, {version: "2.8.2r1", build: "7"});
diff --git a/build/element/element-debug.js b/build/element/element-debug.js
index 25cd22c..a70e9b0 100644
--- a/build/element/element-debug.js
+++ b/build/element/element-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides Attribute configurations.
@@ -1103,4 +1103,4 @@ YAHOO.augment(Element, AttributeProvider);
 YAHOO.util.Element = Element;
 })();
 
-YAHOO.register("element", YAHOO.util.Element, {version: "2.8.1", build: "19"});
+YAHOO.register("element", YAHOO.util.Element, {version: "2.8.2r1", build: "7"});
diff --git a/build/element/element-min.js b/build/element/element-min.js
index 07ede28..723d452 100644
--- a/build/element/element-min.js
+++ b/build/element/element-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.util.Attribute=function(B,A){if(A){this.owner=A;this.configure(B,true);}};YAHOO.util.Attribute.prototype={name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,setter:null,getter:null,validator:null,getValue:function(){var A=this.value;if(this.getter){A=this.getter.call(this.owner,this.name,A);}return A;},setValue:function(F,B){var E,A=this.owner,C=this.name;var D={type:C,prevValue:this.getValue(),newValue:F};if(this.readOnly||(this.writeOnce&&this._written)){return false;}if(this.validator&&!this.validator.call(A,F)){return false;}if(!B){E=A.fireBeforeChangeEvent(D);if(E===false){return false;}}if(this.setter){F=this.setter.call(A,F,this.name);if(F===undefined){}}if(this.method){this.method.call(A,F,this.name);}this.value=F;this._written=true;D.type=C;if(!B){this.owner.fireChangeEvent(D);}return true;},configure:function(B,C){B=B||{};if(C){this._written=false;}this._initialConfig=this._initialConfig||{};for(var A in B){if(B.hasOwnProperty(A)){this[A]=B[A];if(C){this._initialConfig[A]=B[A];}}}},resetValue:function(){return this.setValue(this._initialConfig.value);},resetConfig:function(){this.configure(this._initialConfig,true);},refresh:function(A){this.setValue(this.value,A);}};(function(){var A=YAHOO.util.Lang;YAHOO.util.AttributeProvider=function(){};YAHOO.util.AttributeProvider.prototype={_configs:null,get:function(C){this._configs=this._configs||{};var B=this._configs[C];if(!B||!this._configs.hasOwnProperty(C)){return null;}return B.getValue();},set:function(D,E,B){this._configs=this._configs||{};var C=this._configs[D];if(!C){return false;}return C.setValue(E,B);},getAttributeKeys:function(){this._configs=this._configs;var C=[],B;for(B in this._configs){if(A.hasOwnProperty(this._configs,B)&&!A.isUndefined(this._configs[B])){C[C.length]=B;}}return C;},setAttributes:function(D,B){for(var C in D){if(A.hasOwnProperty(D,C)){this.set(C,D[C],B);}}},resetValue:function(C,B){this._configs=this._configs||{};if(this._configs[C]){this.set(C,this._configs[C]._initialConfig.value,B);return true;}return false;},refresh:function(E,C){this._configs=this._configs||{};var F=this._configs;E=((A.isString(E))?[E]:E)||this.getAttributeKeys();for(var D=0,B=E.length;D<B;++D){if(F.hasOwnProperty(E[D])){this._configs[E[D]].refresh(C);}}},register:function(B,C){this.setAttributeConfig(B,C);},getAttributeConfig:function(C){this._configs=this._configs||{};var B=this._configs[C]||{};var D={};for(C in B){if(A.hasOwnProperty(B,C)){D[C]=B[C];}}return D;},setAttributeConfig:function(B,C,D){this._configs=this._configs||{};C=C||{};if(!this._configs[B]){C.name=B;this._configs[B]=this.createAttribute(C);}else{this._configs[B].configure(C,D);}},configureAttribute:function(B,C,D){this.setAttributeConfig(B,C,D);},resetAttributeConfig:function(B){this._configs=this._configs||{};this._configs[B].resetConfig();},subscribe:function(B,C){this._events=this._events||{};if(!(B in this._events)){this._events[B]=this.createEvent(B);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.subscribe.apply(this,arguments);},addListener:function(){this.subscribe.apply(this,arguments);},fireBeforeChangeEvent:function(C){var B="before";B+=C.type.charAt(0).toUpperCase()+C.type.substr(1)+"Change";C.type=B;return this.fireEvent(C.type,C);},fireChangeEvent:function(B){B.type+="Change";return this.fireEvent(B.type,B);},createAttribute:function(B){return new YAHOO.util.Attribute(B,this);}};YAHOO.augment(YAHOO.util.AttributeProvider,YAHOO.util.EventProvider);})();(function(){var B=YAHOO.util.Dom,D=YAHOO.util.AttributeProvider,C={mouseenter:true,mouseleave:true};var A=function(E,F){this.init.apply(this,arguments);};A.DOM_EVENTS={"click":true,"dblclick":true,"keydown":true,"keypress":true,"keyup":true,"mousedown":true,"mousemove":true,"mouseout":true,"mouseover":true,"mouseup":true,"mouseenter":true,"mouseleave":true,"focus":true,"blur":true,"submit":true,"change":true};A.prototype={DOM_EVENTS:null,DEFAULT_HTML_SETTER:function(G,E){var F=this.get("element");if(F){F[E]=G;}return G;},DEFAULT_HTML_GETTER:function(E){var F=this.get("element"),G;if(F){G=F[E];}return G;},appendChild:function(E){E=E.get?E.get("element"):E;return this.get("element").appendChild(E);},getElementsByTagName:function(E){return this.get("element").getElementsByTagName(E);},hasChildNodes:function(){return this.get("element").hasChildNodes();},insertBefore:function(E,F){E=E.get?E.get("element"):E;F=(F&&F.get)?F.get("element"):F;return this.get("element").insertBefore(E,F);},removeChild:function(E){E=E.get?E.get("element"):E;return this.get("element").removeChild(E);},replaceChild:function(E,F){E=E.get?E.get("element"):E;F=F.get?F.get("element"):F;return this.get("element").replaceChild(E,F);},initAttributes:function(E){},addListener:function(J,I,K,H){H=H||this;var E=YAHOO.util.Event,G=this.get("element")||this.get("id"),F=this;if(C[J]&&!E._createMouseDelegate){return false;}if(!this._events[J]){if(G&&this.DOM_EVENTS[J]){E.on(G,J,function(M,L){if(M.srcElement&&!M.target){M.target=M.srcElement;}if((M.toElement&&!M.relatedTarget)||(M.fromElement&&!M.relatedTarget)){M.relatedTarget=E.getRelatedTarget(M);}if(!M.currentTarget){M.currentTarget=G;}F.fireEvent(J,M,L);},K,H);}this.createEvent(J,{scope:this});}return YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){return this.addListener.apply(this,arguments);},subscribe:function(){return this.addListener.apply(this,arguments);},removeListener:function(F,E){return this.unsubscribe.apply(this,arguments);},addClass:function(E){B.addClass(this.get("element"),E);},getElementsByClassName:function(F,E){return B.getElementsByClassName(F,E,this.get("element"));},hasClass:function(E){return B.hasClass(this.get("element"),E);},removeClass:function(E){return B.removeClass(this.get("element"),E);},replaceClass:function(F,E){return B.replaceClass(this.get("element"),F,E);},setStyle:function(F,E){return B.setStyle(this.get("element"),F,E);
-},getStyle:function(E){return B.getStyle(this.get("element"),E);},fireQueue:function(){var F=this._queue;for(var G=0,E=F.length;G<E;++G){this[F[G][0]].apply(this,F[G][1]);}},appendTo:function(F,G){F=(F.get)?F.get("element"):B.get(F);this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:F});G=(G&&G.get)?G.get("element"):B.get(G);var E=this.get("element");if(!E){return false;}if(!F){return false;}if(E.parent!=F){if(G){F.insertBefore(E,G);}else{F.appendChild(E);}}this.fireEvent("appendTo",{type:"appendTo",target:F});return E;},get:function(E){var G=this._configs||{},F=G.element;if(F&&!G[E]&&!YAHOO.lang.isUndefined(F.value[E])){this._setHTMLAttrConfig(E);}return D.prototype.get.call(this,E);},setAttributes:function(K,H){var F={},I=this._configOrder;for(var J=0,E=I.length;J<E;++J){if(K[I[J]]!==undefined){F[I[J]]=true;this.set(I[J],K[I[J]],H);}}for(var G in K){if(K.hasOwnProperty(G)&&!F[G]){this.set(G,K[G],H);}}},set:function(F,H,E){var G=this.get("element");if(!G){this._queue[this._queue.length]=["set",arguments];if(this._configs[F]){this._configs[F].value=H;}return;}if(!this._configs[F]&&!YAHOO.lang.isUndefined(G[F])){this._setHTMLAttrConfig(F);}return D.prototype.set.apply(this,arguments);},setAttributeConfig:function(E,F,G){this._configOrder.push(E);D.prototype.setAttributeConfig.apply(this,arguments);},createEvent:function(F,E){this._events[F]=true;return D.prototype.createEvent.apply(this,arguments);},init:function(F,E){this._initElement(F,E);},destroy:function(){var E=this.get("element");YAHOO.util.Event.purgeElement(E,true);this.unsubscribeAll();if(E&&E.parentNode){E.parentNode.removeChild(E);}this._queue=[];this._events={};this._configs={};this._configOrder=[];},_initElement:function(G,F){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._configOrder=[];F=F||{};F.element=F.element||G||null;var I=false;var E=A.DOM_EVENTS;this.DOM_EVENTS=this.DOM_EVENTS||{};for(var H in E){if(E.hasOwnProperty(H)){this.DOM_EVENTS[H]=E[H];}}if(typeof F.element==="string"){this._setHTMLAttrConfig("id",{value:F.element});}if(B.get(F.element)){I=true;this._initHTMLElement(F);this._initContent(F);}YAHOO.util.Event.onAvailable(F.element,function(){if(!I){this._initHTMLElement(F);}this.fireEvent("available",{type:"available",target:B.get(F.element)});},this,true);YAHOO.util.Event.onContentReady(F.element,function(){if(!I){this._initContent(F);}this.fireEvent("contentReady",{type:"contentReady",target:B.get(F.element)});},this,true);},_initHTMLElement:function(E){this.setAttributeConfig("element",{value:B.get(E.element),readOnly:true});},_initContent:function(E){this.initAttributes(E);this.setAttributes(E,true);this.fireQueue();},_setHTMLAttrConfig:function(E,G){var F=this.get("element");G=G||{};G.name=E;G.setter=G.setter||this.DEFAULT_HTML_SETTER;G.getter=G.getter||this.DEFAULT_HTML_GETTER;G.value=G.value||F[E];this._configs[E]=new YAHOO.util.Attribute(G,this);}};YAHOO.augment(A,D);YAHOO.util.Element=A;})();YAHOO.register("element",YAHOO.util.Element,{version:"2.8.1",build:"19"});
\ No newline at end of file
+},getStyle:function(E){return B.getStyle(this.get("element"),E);},fireQueue:function(){var F=this._queue;for(var G=0,E=F.length;G<E;++G){this[F[G][0]].apply(this,F[G][1]);}},appendTo:function(F,G){F=(F.get)?F.get("element"):B.get(F);this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:F});G=(G&&G.get)?G.get("element"):B.get(G);var E=this.get("element");if(!E){return false;}if(!F){return false;}if(E.parent!=F){if(G){F.insertBefore(E,G);}else{F.appendChild(E);}}this.fireEvent("appendTo",{type:"appendTo",target:F});return E;},get:function(E){var G=this._configs||{},F=G.element;if(F&&!G[E]&&!YAHOO.lang.isUndefined(F.value[E])){this._setHTMLAttrConfig(E);}return D.prototype.get.call(this,E);},setAttributes:function(K,H){var F={},I=this._configOrder;for(var J=0,E=I.length;J<E;++J){if(K[I[J]]!==undefined){F[I[J]]=true;this.set(I[J],K[I[J]],H);}}for(var G in K){if(K.hasOwnProperty(G)&&!F[G]){this.set(G,K[G],H);}}},set:function(F,H,E){var G=this.get("element");if(!G){this._queue[this._queue.length]=["set",arguments];if(this._configs[F]){this._configs[F].value=H;}return;}if(!this._configs[F]&&!YAHOO.lang.isUndefined(G[F])){this._setHTMLAttrConfig(F);}return D.prototype.set.apply(this,arguments);},setAttributeConfig:function(E,F,G){this._configOrder.push(E);D.prototype.setAttributeConfig.apply(this,arguments);},createEvent:function(F,E){this._events[F]=true;return D.prototype.createEvent.apply(this,arguments);},init:function(F,E){this._initElement(F,E);},destroy:function(){var E=this.get("element");YAHOO.util.Event.purgeElement(E,true);this.unsubscribeAll();if(E&&E.parentNode){E.parentNode.removeChild(E);}this._queue=[];this._events={};this._configs={};this._configOrder=[];},_initElement:function(G,F){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._configOrder=[];F=F||{};F.element=F.element||G||null;var I=false;var E=A.DOM_EVENTS;this.DOM_EVENTS=this.DOM_EVENTS||{};for(var H in E){if(E.hasOwnProperty(H)){this.DOM_EVENTS[H]=E[H];}}if(typeof F.element==="string"){this._setHTMLAttrConfig("id",{value:F.element});}if(B.get(F.element)){I=true;this._initHTMLElement(F);this._initContent(F);}YAHOO.util.Event.onAvailable(F.element,function(){if(!I){this._initHTMLElement(F);}this.fireEvent("available",{type:"available",target:B.get(F.element)});},this,true);YAHOO.util.Event.onContentReady(F.element,function(){if(!I){this._initContent(F);}this.fireEvent("contentReady",{type:"contentReady",target:B.get(F.element)});},this,true);},_initHTMLElement:function(E){this.setAttributeConfig("element",{value:B.get(E.element),readOnly:true});},_initContent:function(E){this.initAttributes(E);this.setAttributes(E,true);this.fireQueue();},_setHTMLAttrConfig:function(E,G){var F=this.get("element");G=G||{};G.name=E;G.setter=G.setter||this.DEFAULT_HTML_SETTER;G.getter=G.getter||this.DEFAULT_HTML_GETTER;G.value=G.value||F[E];this._configs[E]=new YAHOO.util.Attribute(G,this);}};YAHOO.augment(A,D);YAHOO.util.Element=A;})();YAHOO.register("element",YAHOO.util.Element,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/element/element.js b/build/element/element.js
index e3eee77..215e6de 100644
--- a/build/element/element.js
+++ b/build/element/element.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides Attribute configurations.
@@ -1087,4 +1087,4 @@ YAHOO.augment(Element, AttributeProvider);
 YAHOO.util.Element = Element;
 })();
 
-YAHOO.register("element", YAHOO.util.Element, {version: "2.8.1", build: "19"});
+YAHOO.register("element", YAHOO.util.Element, {version: "2.8.2r1", build: "7"});
diff --git a/build/event-delegate/event-delegate-debug.js b/build/event-delegate/event-delegate-debug.js
index 9da0df7..343e67c 100644
--- a/build/event-delegate/event-delegate-debug.js
+++ b/build/event-delegate/event-delegate-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Augments the Event Utility with a <code>delegate</code> method that 
@@ -280,4 +280,4 @@ version: 2.8.1
 	});
 
 }());
-YAHOO.register("event-delegate", YAHOO.util.Event, {version: "2.8.1", build: "19"});
+YAHOO.register("event-delegate", YAHOO.util.Event, {version: "2.8.2r1", build: "7"});
diff --git a/build/event-delegate/event-delegate-min.js b/build/event-delegate/event-delegate-min.js
index 5d5e5f7..1e4b9f4 100644
--- a/build/event-delegate/event-delegate-min.js
+++ b/build/event-delegate/event-delegate-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-(function(){var A=YAHOO.util.Event,C=YAHOO.lang,B=[],D=function(H,E,F){var G;if(!H||H===F){G=false;}else{G=YAHOO.util.Selector.test(H,E)?H:D(H.parentNode,E,F);}return G;};C.augmentObject(A,{_createDelegate:function(F,E,G,H){return function(I){var J=this,N=A.getTarget(I),L=E,P=(J.nodeType===9),Q,K,O,M;if(C.isFunction(E)){Q=E(N);}else{if(C.isString(E)){if(!P){O=J.id;if(!O){O=A.generateId(J);}M=("#"+O+" ");L=(M+E).replace(/,/gi,(","+M));}if(YAHOO.util.Selector.test(N,L)){Q=N;}else{if(YAHOO.util.Selector.test(N,((L.replace(/,/gi," *,"))+" *"))){Q=D(N,L,J);}}}}if(Q){K=Q;if(H){if(H===true){K=G;}else{K=H;}}return F.call(K,I,Q,J,G);}};},delegate:function(F,J,L,G,H,I){var E=J,K,M;if(C.isString(G)&&!YAHOO.util.Selector){return false;}if(J=="mouseenter"||J=="mouseleave"){if(!A._createMouseDelegate){return false;}E=A._getType(J);K=A._createMouseDelegate(L,H,I);M=A._createDelegate(function(P,O,N){return K.call(O,P,N);},G,H,I);}else{M=A._createDelegate(L,G,H,I);}B.push([F,E,L,M]);return A.on(F,E,M);},removeDelegate:function(F,J,I){var K=J,H=false,G,E;if(J=="mouseenter"||J=="mouseleave"){K=A._getType(J);}G=A._getCacheIndex(B,F,K,I);if(G>=0){E=B[G];}if(F&&E){H=A.removeListener(E[0],E[1],E[3]);if(H){delete B[G][2];delete B[G][3];B.splice(G,1);}}return H;}});}());YAHOO.register("event-delegate",YAHOO.util.Event,{version:"2.8.1",build:"19"});
\ No newline at end of file
+(function(){var A=YAHOO.util.Event,C=YAHOO.lang,B=[],D=function(H,E,F){var G;if(!H||H===F){G=false;}else{G=YAHOO.util.Selector.test(H,E)?H:D(H.parentNode,E,F);}return G;};C.augmentObject(A,{_createDelegate:function(F,E,G,H){return function(I){var J=this,N=A.getTarget(I),L=E,P=(J.nodeType===9),Q,K,O,M;if(C.isFunction(E)){Q=E(N);}else{if(C.isString(E)){if(!P){O=J.id;if(!O){O=A.generateId(J);}M=("#"+O+" ");L=(M+E).replace(/,/gi,(","+M));}if(YAHOO.util.Selector.test(N,L)){Q=N;}else{if(YAHOO.util.Selector.test(N,((L.replace(/,/gi," *,"))+" *"))){Q=D(N,L,J);}}}}if(Q){K=Q;if(H){if(H===true){K=G;}else{K=H;}}return F.call(K,I,Q,J,G);}};},delegate:function(F,J,L,G,H,I){var E=J,K,M;if(C.isString(G)&&!YAHOO.util.Selector){return false;}if(J=="mouseenter"||J=="mouseleave"){if(!A._createMouseDelegate){return false;}E=A._getType(J);K=A._createMouseDelegate(L,H,I);M=A._createDelegate(function(P,O,N){return K.call(O,P,N);},G,H,I);}else{M=A._createDelegate(L,G,H,I);}B.push([F,E,L,M]);return A.on(F,E,M);},removeDelegate:function(F,J,I){var K=J,H=false,G,E;if(J=="mouseenter"||J=="mouseleave"){K=A._getType(J);}G=A._getCacheIndex(B,F,K,I);if(G>=0){E=B[G];}if(F&&E){H=A.removeListener(E[0],E[1],E[3]);if(H){delete B[G][2];delete B[G][3];B.splice(G,1);}}return H;}});}());YAHOO.register("event-delegate",YAHOO.util.Event,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/event-delegate/event-delegate.js b/build/event-delegate/event-delegate.js
index 953faad..faad1e3 100644
--- a/build/event-delegate/event-delegate.js
+++ b/build/event-delegate/event-delegate.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Augments the Event Utility with a <code>delegate</code> method that 
@@ -278,4 +278,4 @@ version: 2.8.1
 	});
 
 }());
-YAHOO.register("event-delegate", YAHOO.util.Event, {version: "2.8.1", build: "19"});
+YAHOO.register("event-delegate", YAHOO.util.Event, {version: "2.8.2r1", build: "7"});
diff --git a/build/event-mouseenter/event-mouseenter-debug.js b/build/event-mouseenter/event-mouseenter-debug.js
index fd47587..115c91b 100644
--- a/build/event-mouseenter/event-mouseenter-debug.js
+++ b/build/event-mouseenter/event-mouseenter-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Augments the Event Utility with support for the mouseenter and mouseleave 
@@ -216,4 +216,4 @@ version: 2.8.1
 	Event.on = Event.addListener;
 
 }());
-YAHOO.register("event-mouseenter", YAHOO.util.Event, {version: "2.8.1", build: "19"});
+YAHOO.register("event-mouseenter", YAHOO.util.Event, {version: "2.8.2r1", build: "7"});
diff --git a/build/event-mouseenter/event-mouseenter-min.js b/build/event-mouseenter/event-mouseenter-min.js
index 6943074..e2dd40d 100644
--- a/build/event-mouseenter/event-mouseenter-min.js
+++ b/build/event-mouseenter/event-mouseenter-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-(function(){var B=YAHOO.util.Event,G=YAHOO.lang,E=B.addListener,F=B.removeListener,C=B.getListeners,D=[],H={mouseenter:"mouseover",mouseleave:"mouseout"},A=function(N,M,L){var J=B._getCacheIndex(D,N,M,L),I,K;if(J>=0){I=D[J];}if(N&&I){K=F.call(B,I[0],M,I[3]);if(K){delete D[J][2];delete D[J][3];D.splice(J,1);}}return K;};G.augmentObject(B._specialTypes,H);G.augmentObject(B,{_createMouseDelegate:function(I,J,K){return function(Q,M){var P=this,L=B.getRelatedTarget(Q),O,N;if(P!=L&&!YAHOO.util.Dom.isAncestor(P,L)){O=P;if(K){if(K===true){O=J;}else{O=K;}}N=[Q,P,J];if(M){N.splice(2,0,M);}return I.apply(O,N);}};},addListener:function(M,L,K,N,O){var I,J;if(H[L]){I=B._createMouseDelegate(K,N,O);I.mouseDelegate=true;D.push([M,L,K,I]);J=E.call(B,M,L,I);}else{J=E.apply(B,arguments);}return J;},removeListener:function(L,K,J){var I;if(H[K]){I=A.apply(B,arguments);}else{I=F.apply(B,arguments);}return I;},getListeners:function(N,M){var L=[],P,K=(M==="mouseover"||M==="mouseout"),O,J,I;if(M&&(K||H[M])){P=C.call(B,N,this._getType(M));if(P){for(J=P.length-1;J>-1;J--){I=P[J];O=I.fn.mouseDelegate;if((H[M]&&O)||(K&&!O)){L.push(I);}}}}else{L=C.apply(B,arguments);}return(L&&L.length)?L:null;}},true);B.on=B.addListener;}());YAHOO.register("event-mouseenter",YAHOO.util.Event,{version:"2.8.1",build:"19"});
\ No newline at end of file
+(function(){var B=YAHOO.util.Event,G=YAHOO.lang,E=B.addListener,F=B.removeListener,C=B.getListeners,D=[],H={mouseenter:"mouseover",mouseleave:"mouseout"},A=function(N,M,L){var J=B._getCacheIndex(D,N,M,L),I,K;if(J>=0){I=D[J];}if(N&&I){K=F.call(B,I[0],M,I[3]);if(K){delete D[J][2];delete D[J][3];D.splice(J,1);}}return K;};G.augmentObject(B._specialTypes,H);G.augmentObject(B,{_createMouseDelegate:function(I,J,K){return function(Q,M){var P=this,L=B.getRelatedTarget(Q),O,N;if(P!=L&&!YAHOO.util.Dom.isAncestor(P,L)){O=P;if(K){if(K===true){O=J;}else{O=K;}}N=[Q,P,J];if(M){N.splice(2,0,M);}return I.apply(O,N);}};},addListener:function(M,L,K,N,O){var I,J;if(H[L]){I=B._createMouseDelegate(K,N,O);I.mouseDelegate=true;D.push([M,L,K,I]);J=E.call(B,M,L,I);}else{J=E.apply(B,arguments);}return J;},removeListener:function(L,K,J){var I;if(H[K]){I=A.apply(B,arguments);}else{I=F.apply(B,arguments);}return I;},getListeners:function(N,M){var L=[],P,K=(M==="mouseover"||M==="mouseout"),O,J,I;if(M&&(K||H[M])){P=C.call(B,N,this._getType(M));if(P){for(J=P.length-1;J>-1;J--){I=P[J];O=I.fn.mouseDelegate;if((H[M]&&O)||(K&&!O)){L.push(I);}}}}else{L=C.apply(B,arguments);}return(L&&L.length)?L:null;}},true);B.on=B.addListener;}());YAHOO.register("event-mouseenter",YAHOO.util.Event,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/event-mouseenter/event-mouseenter.js b/build/event-mouseenter/event-mouseenter.js
index fd47587..115c91b 100644
--- a/build/event-mouseenter/event-mouseenter.js
+++ b/build/event-mouseenter/event-mouseenter.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Augments the Event Utility with support for the mouseenter and mouseleave 
@@ -216,4 +216,4 @@ version: 2.8.1
 	Event.on = Event.addListener;
 
 }());
-YAHOO.register("event-mouseenter", YAHOO.util.Event, {version: "2.8.1", build: "19"});
+YAHOO.register("event-mouseenter", YAHOO.util.Event, {version: "2.8.2r1", build: "7"});
diff --git a/build/event-simulate/event-simulate-debug.js b/build/event-simulate/event-simulate-debug.js
index 9cfcdfc..989a04d 100644
--- a/build/event-simulate/event-simulate-debug.js
+++ b/build/event-simulate/event-simulate-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
 /**
@@ -619,4 +619,4 @@ YAHOO.util.UserAction = {
     
 
 };
-YAHOO.register("event-simulate", YAHOO.util.UserAction, {version: "2.8.1", build: "19"});
+YAHOO.register("event-simulate", YAHOO.util.UserAction, {version: "2.8.2r1", build: "7"});
diff --git a/build/event-simulate/event-simulate-min.js b/build/event-simulate/event-simulate-min.js
index 8689483..a9059cb 100644
--- a/build/event-simulate/event-simulate-min.js
+++ b/build/event-simulate/event-simulate-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.util.UserAction={simulateKeyEvent:function(F,J,E,C,L,B,A,K,H,N,M){F=YAHOO.util.Dom.get(F);if(!F){throw new Error("simulateKeyEvent(): Invalid target.");}if(YAHOO.lang.isString(J)){J=J.toLowerCase();switch(J){case"keyup":case"keydown":case"keypress":break;case"textevent":J="keypress";break;default:throw new Error("simulateKeyEvent(): Event type '"+J+"' not supported.");}}else{throw new Error("simulateKeyEvent(): Event type must be a string.");}if(!YAHOO.lang.isBoolean(E)){E=true;}if(!YAHOO.lang.isBoolean(C)){C=true;}if(!YAHOO.lang.isObject(L)){L=window;}if(!YAHOO.lang.isBoolean(B)){B=false;}if(!YAHOO.lang.isBoolean(A)){A=false;}if(!YAHOO.lang.isBoolean(K)){K=false;}if(!YAHOO.lang.isBoolean(H)){H=false;}if(!YAHOO.lang.isNumber(N)){N=0;}if(!YAHOO.lang.isNumber(M)){M=0;}var I=null;if(YAHOO.lang.isFunction(document.createEvent)){try{I=document.createEvent("KeyEvents");I.initKeyEvent(J,E,C,L,B,A,K,H,N,M);}catch(G){try{I=document.createEvent("Events");}catch(D){I=document.createEvent("UIEvents");}finally{I.initEvent(J,E,C);I.view=L;I.altKey=A;I.ctrlKey=B;I.shiftKey=K;I.metaKey=H;I.keyCode=N;I.charCode=M;}}F.dispatchEvent(I);}else{if(YAHOO.lang.isObject(document.createEventObject)){I=document.createEventObject();I.bubbles=E;I.cancelable=C;I.view=L;I.ctrlKey=B;I.altKey=A;I.shiftKey=K;I.metaKey=H;I.keyCode=(M>0)?M:N;F.fireEvent("on"+J,I);}else{throw new Error("simulateKeyEvent(): No event simulation framework present.");}}},simulateMouseEvent:function(K,P,H,E,Q,J,G,F,D,B,C,A,O,M,I,L){K=YAHOO.util.Dom.get(K);if(!K){throw new Error("simulateMouseEvent(): Invalid target.");}if(YAHOO.lang.isString(P)){P=P.toLowerCase();switch(P){case"mouseover":case"mouseout":case"mousedown":case"mouseup":case"click":case"dblclick":case"mousemove":break;default:throw new Error("simulateMouseEvent(): Event type '"+P+"' not supported.");}}else{throw new Error("simulateMouseEvent(): Event type must be a string.");}if(!YAHOO.lang.isBoolean(H)){H=true;}if(!YAHOO.lang.isBoolean(E)){E=(P!="mousemove");}if(!YAHOO.lang.isObject(Q)){Q=window;}if(!YAHOO.lang.isNumber(J)){J=1;}if(!YAHOO.lang.isNumber(G)){G=0;}if(!YAHOO.lang.isNumber(F)){F=0;}if(!YAHOO.lang.isNumber(D)){D=0;}if(!YAHOO.lang.isNumber(B)){B=0;}if(!YAHOO.lang.isBoolean(C)){C=false;}if(!YAHOO.lang.isBoolean(A)){A=false;}if(!YAHOO.lang.isBoolean(O)){O=false;}if(!YAHOO.lang.isBoolean(M)){M=false;}if(!YAHOO.lang.isNumber(I)){I=0;}var N=null;if(YAHOO.lang.isFunction(document.createEvent)){N=document.createEvent("MouseEvents");if(N.initMouseEvent){N.initMouseEvent(P,H,E,Q,J,G,F,D,B,C,A,O,M,I,L);}else{N=document.createEvent("UIEvents");N.initEvent(P,H,E);N.view=Q;N.detail=J;N.screenX=G;N.screenY=F;N.clientX=D;N.clientY=B;N.ctrlKey=C;N.altKey=A;N.metaKey=M;N.shiftKey=O;N.button=I;N.relatedTarget=L;}if(L&&!N.relatedTarget){if(P=="mouseout"){N.toElement=L;}else{if(P=="mouseover"){N.fromElement=L;}}}K.dispatchEvent(N);}else{if(YAHOO.lang.isObject(document.createEventObject)){N=document.createEventObject();N.bubbles=H;N.cancelable=E;N.view=Q;N.detail=J;N.screenX=G;N.screenY=F;N.clientX=D;N.clientY=B;N.ctrlKey=C;N.altKey=A;N.metaKey=M;N.shiftKey=O;switch(I){case 0:N.button=1;break;case 1:N.button=4;break;case 2:break;default:N.button=0;}N.relatedTarget=L;K.fireEvent("on"+P,N);}else{throw new Error("simulateMouseEvent(): No event simulation framework present.");}}},fireMouseEvent:function(C,B,A){A=A||{};this.simulateMouseEvent(C,B,A.bubbles,A.cancelable,A.view,A.detail,A.screenX,A.screenY,A.clientX,A.clientY,A.ctrlKey,A.altKey,A.shiftKey,A.metaKey,A.button,A.relatedTarget);},click:function(B,A){this.fireMouseEvent(B,"click",A);},dblclick:function(B,A){this.fireMouseEvent(B,"dblclick",A);},mousedown:function(B,A){this.fireMouseEvent(B,"mousedown",A);},mousemove:function(B,A){this.fireMouseEvent(B,"mousemove",A);},mouseout:function(B,A){this.fireMouseEvent(B,"mouseout",A);},mouseover:function(B,A){this.fireMouseEvent(B,"mouseover",A);},mouseup:function(B,A){this.fireMouseEvent(B,"mouseup",A);},fireKeyEvent:function(B,C,A){A=A||{};this.simulateKeyEvent(C,B,A.bubbles,A.cancelable,A.view,A.ctrlKey,A.altKey,A.shiftKey,A.metaKey,A.keyCode,A.charCode);},keydown:function(B,A){this.fireKeyEvent("keydown",B,A);},keypress:function(B,A){this.fireKeyEvent("keypress",B,A);},keyup:function(B,A){this.fireKeyEvent("keyup",B,A);}};YAHOO.register("event-simulate",YAHOO.util.UserAction,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.util.UserAction={simulateKeyEvent:function(F,J,E,C,L,B,A,K,H,N,M){F=YAHOO.util.Dom.get(F);if(!F){throw new Error("simulateKeyEvent(): Invalid target.");}if(YAHOO.lang.isString(J)){J=J.toLowerCase();switch(J){case"keyup":case"keydown":case"keypress":break;case"textevent":J="keypress";break;default:throw new Error("simulateKeyEvent(): Event type '"+J+"' not supported.");}}else{throw new Error("simulateKeyEvent(): Event type must be a string.");}if(!YAHOO.lang.isBoolean(E)){E=true;}if(!YAHOO.lang.isBoolean(C)){C=true;}if(!YAHOO.lang.isObject(L)){L=window;}if(!YAHOO.lang.isBoolean(B)){B=false;}if(!YAHOO.lang.isBoolean(A)){A=false;}if(!YAHOO.lang.isBoolean(K)){K=false;}if(!YAHOO.lang.isBoolean(H)){H=false;}if(!YAHOO.lang.isNumber(N)){N=0;}if(!YAHOO.lang.isNumber(M)){M=0;}var I=null;if(YAHOO.lang.isFunction(document.createEvent)){try{I=document.createEvent("KeyEvents");I.initKeyEvent(J,E,C,L,B,A,K,H,N,M);}catch(G){try{I=document.createEvent("Events");}catch(D){I=document.createEvent("UIEvents");}finally{I.initEvent(J,E,C);I.view=L;I.altKey=A;I.ctrlKey=B;I.shiftKey=K;I.metaKey=H;I.keyCode=N;I.charCode=M;}}F.dispatchEvent(I);}else{if(YAHOO.lang.isObject(document.createEventObject)){I=document.createEventObject();I.bubbles=E;I.cancelable=C;I.view=L;I.ctrlKey=B;I.altKey=A;I.shiftKey=K;I.metaKey=H;I.keyCode=(M>0)?M:N;F.fireEvent("on"+J,I);}else{throw new Error("simulateKeyEvent(): No event simulation framework present.");}}},simulateMouseEvent:function(K,P,H,E,Q,J,G,F,D,B,C,A,O,M,I,L){K=YAHOO.util.Dom.get(K);if(!K){throw new Error("simulateMouseEvent(): Invalid target.");}if(YAHOO.lang.isString(P)){P=P.toLowerCase();switch(P){case"mouseover":case"mouseout":case"mousedown":case"mouseup":case"click":case"dblclick":case"mousemove":break;default:throw new Error("simulateMouseEvent(): Event type '"+P+"' not supported.");}}else{throw new Error("simulateMouseEvent(): Event type must be a string.");}if(!YAHOO.lang.isBoolean(H)){H=true;}if(!YAHOO.lang.isBoolean(E)){E=(P!="mousemove");}if(!YAHOO.lang.isObject(Q)){Q=window;}if(!YAHOO.lang.isNumber(J)){J=1;}if(!YAHOO.lang.isNumber(G)){G=0;}if(!YAHOO.lang.isNumber(F)){F=0;}if(!YAHOO.lang.isNumber(D)){D=0;}if(!YAHOO.lang.isNumber(B)){B=0;}if(!YAHOO.lang.isBoolean(C)){C=false;}if(!YAHOO.lang.isBoolean(A)){A=false;}if(!YAHOO.lang.isBoolean(O)){O=false;}if(!YAHOO.lang.isBoolean(M)){M=false;}if(!YAHOO.lang.isNumber(I)){I=0;}var N=null;if(YAHOO.lang.isFunction(document.createEvent)){N=document.createEvent("MouseEvents");if(N.initMouseEvent){N.initMouseEvent(P,H,E,Q,J,G,F,D,B,C,A,O,M,I,L);}else{N=document.createEvent("UIEvents");N.initEvent(P,H,E);N.view=Q;N.detail=J;N.screenX=G;N.screenY=F;N.clientX=D;N.clientY=B;N.ctrlKey=C;N.altKey=A;N.metaKey=M;N.shiftKey=O;N.button=I;N.relatedTarget=L;}if(L&&!N.relatedTarget){if(P=="mouseout"){N.toElement=L;}else{if(P=="mouseover"){N.fromElement=L;}}}K.dispatchEvent(N);}else{if(YAHOO.lang.isObject(document.createEventObject)){N=document.createEventObject();N.bubbles=H;N.cancelable=E;N.view=Q;N.detail=J;N.screenX=G;N.screenY=F;N.clientX=D;N.clientY=B;N.ctrlKey=C;N.altKey=A;N.metaKey=M;N.shiftKey=O;switch(I){case 0:N.button=1;break;case 1:N.button=4;break;case 2:break;default:N.button=0;}N.relatedTarget=L;K.fireEvent("on"+P,N);}else{throw new Error("simulateMouseEvent(): No event simulation framework present.");}}},fireMouseEvent:function(C,B,A){A=A||{};this.simulateMouseEvent(C,B,A.bubbles,A.cancelable,A.view,A.detail,A.screenX,A.screenY,A.clientX,A.clientY,A.ctrlKey,A.altKey,A.shiftKey,A.metaKey,A.button,A.relatedTarget);},click:function(B,A){this.fireMouseEvent(B,"click",A);},dblclick:function(B,A){this.fireMouseEvent(B,"dblclick",A);},mousedown:function(B,A){this.fireMouseEvent(B,"mousedown",A);},mousemove:function(B,A){this.fireMouseEvent(B,"mousemove",A);},mouseout:function(B,A){this.fireMouseEvent(B,"mouseout",A);},mouseover:function(B,A){this.fireMouseEvent(B,"mouseover",A);},mouseup:function(B,A){this.fireMouseEvent(B,"mouseup",A);},fireKeyEvent:function(B,C,A){A=A||{};this.simulateKeyEvent(C,B,A.bubbles,A.cancelable,A.view,A.ctrlKey,A.altKey,A.shiftKey,A.metaKey,A.keyCode,A.charCode);},keydown:function(B,A){this.fireKeyEvent("keydown",B,A);},keypress:function(B,A){this.fireKeyEvent("keypress",B,A);},keyup:function(B,A){this.fireKeyEvent("keyup",B,A);}};YAHOO.register("event-simulate",YAHOO.util.UserAction,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/event-simulate/event-simulate.js b/build/event-simulate/event-simulate.js
index 9cfcdfc..989a04d 100644
--- a/build/event-simulate/event-simulate.js
+++ b/build/event-simulate/event-simulate.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
 /**
@@ -619,4 +619,4 @@ YAHOO.util.UserAction = {
     
 
 };
-YAHOO.register("event-simulate", YAHOO.util.UserAction, {version: "2.8.1", build: "19"});
+YAHOO.register("event-simulate", YAHOO.util.UserAction, {version: "2.8.2r1", build: "7"});
diff --git a/build/event/event-debug.js b/build/event/event-debug.js
index 65025b7..8c22b48 100644
--- a/build/event/event-debug.js
+++ b/build/event/event-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
 /**
@@ -2521,4 +2521,4 @@ KeyListener.KEY = {
 };
 
 })();
-YAHOO.register("event", YAHOO.util.Event, {version: "2.8.1", build: "19"});
+YAHOO.register("event", YAHOO.util.Event, {version: "2.8.2r1", build: "7"});
diff --git a/build/event/event-min.js b/build/event/event-min.js
index 5c9bf08..6f72381 100644
--- a/build/event/event-min.js
+++ b/build/event/event-min.js
@@ -2,10 +2,10 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var H=[],A=this.subscribers.length;var D=[].slice.call(arguments,0),C=true,F,B=false;if(this.fireOnce){if(this.fired){return true;}else{this.firedWith=D;}}this.fired=true;if(!A&&this.silent){return true;}if(!this.silent){}var E=this.subscribers.slice();for(F=0;F<A;++F){var G=E[F];if(!G){B=true;}else{C=this.notify(G,D);if(false===C){if(!this.silent){}break;}}}return(C!==false);},notify:function(F,C){var B,H=null,E=F.getScope(this.scope),A=YAHOO.util.Event.throwErrors;if(!this.silent){}if(this.signature==YAHOO.util.CustomEvent.FLAT){if(C.length>0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var G=false,H=[],J=[],A=0,E=[],B=0,C={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},D=YAHOO.env.ua.ie,F="focusin",I="focusout";return{POLL_RETRYS:500,POLL_INTERVAL:40,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:D,_interval:null,_dri:null,_specialTypes:{focusin:(D?"focusin":"focus"),focusout:(D?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,null,true);}},onAvailable:function(Q,M,O,P,N){var K=(YAHOO.lang.isString(Q))?[Q]:Q;for(var L=0;L<K.length;L=L+1){E.push({id:K[L],fn:M,obj:O,overrideContext:P,checkReady:N});}A=this.POLL_RETRYS;this.startInterval();},onContentReady:function(N,K,L,M){this.onAvailable(N,K,L,M,true);},onDOMReady:function(){this.DOMReadyEvent.subscribe.apply(this.DOMReadyEvent,arguments);},_addListener:function(M,K,V,P,T,Y){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var Q=0,S=M.length;Q<S;++Q){W=this.on(M[Q],K,V,P,T)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var O=this.getEl(M);if(O){M=O;}else{this.onAvailable(M,function(){YAHOO.util.Event._addListener(M,K,V,P,T,Y);});return true;}}}if(!M){return false;}if("unload"==K&&P!==this){J[J.length]=[M,K,V,P,T];return true;}var L=M;if(T){if(T===true){L=P;}else{L=T;}}var N=function(Z){return V.call(L,YAHOO.util.Event.getEvent(Z,M),P);};var X=[M,K,V,N,L,P,T,Y];var R=H.length;H[R]=X;try{this._simpleAdd(M,K,N,Y);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}return true;},_getType:function(K){return this._specialTypes[K]||K;},addListener:function(M,P,L,N,O){var K=((P==F||P==I)&&!YAHOO.env.ua.ie)?true:false;return this._addListener(M,this._getType(P),L,N,O,K);},addFocusListener:function(L,K,M,N){return this.on(L,F,K,M,N);},removeFocusListener:function(L,K){return this.removeListener(L,F,K);},addBlurListener:function(L,K,M,N){return this.on(L,I,K,M,N);},removeBlurListener:function(L,K){return this.removeListener(L,I,K);},removeListener:function(L,K,R){var M,P,U;K=this._getType(K);if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var S=true;for(M=L.length-1;M>-1;M--){S=(this.removeListener(L[M],K,R)&&S);}return S;}}if(!R||!R.call){return this.purgeElement(L,false,K);}if("unload"==K){for(M=J.length-1;M>-1;M--){U=J[M];if(U&&U[0]==L&&U[1]==K&&U[2]==R){J.splice(M,1);return true;}}return false;}var N=null;var O=arguments[3];if("undefined"===typeof O){O=this._getCacheIndex(H,L,K,R);}if(O>=0){N=H[O];}if(!L||!N){return false;}var T=N[this.CAPTURE]===true?true:false;try{this._simpleRemove(L,K,N[this.WFN],T);}catch(Q){this.lastError=Q;return false;}delete H[O][this.WFN];delete H[O][this.FN];H.splice(O,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;
 }else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in C)){K=C[K];}return K;},_getCacheIndex:function(M,P,Q,O){for(var N=0,L=M.length;N<L;N=N+1){var K=M[N];if(K&&K[this.FN]==O&&K[this.EL]==P&&K[this.TYPE]==Q){return N;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+B;++B;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",YAHOO,0,0,1),_load:function(L){if(!G){G=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(E.length===0){A=0;if(this._interval){this._interval.cancel();this._interval=null;}return;}if(this.locked){return;}if(this.isIE){if(!this.DOMReady){this.startInterval();return;}}this.locked=true;var Q=!G;if(!Q){Q=(A>0&&E.length>0);}var P=[];var R=function(T,U){var S=T;if(U.overrideContext){if(U.overrideContext===true){S=U.obj;}else{S=U.overrideContext;}}U.fn.call(S,U.obj);};var L,K,O,N,M=[];for(L=0,K=E.length;L<K;L=L+1){O=E[L];if(O){N=this.getEl(O.id);if(N){if(O.checkReady){if(G||N.nextSibling||!Q){M.push(O);E[L]=null;}}else{R(N,O);E[L]=null;}}else{P.push(O);}}}for(L=0,K=M.length;L<K;L=L+1){O=M[L];R(this.getEl(O.id),O);}A--;if(Q){for(L=E.length-1;L>-1;L--){O=E[L];if(!O||!O.id){E.splice(L,1);}}this.startInterval();}else{if(this._interval){this._interval.cancel();this._interval=null;}}this.locked=false;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=Q.length-1;N>-1;N--){var L=Q[N];this.removeListener(M,L.type,L.fn);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[H,J];}else{if(K==="unload"){L=[J];}else{K=this._getType(K);L=[H];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var L=YAHOO.util.Event,O,N,M,Q,P,S=J.slice(),K;for(O=0,Q=J.length;O<Q;++O){M=S[O];if(M){K=window;if(M[L.ADJ_SCOPE]){if(M[L.ADJ_SCOPE]===true){K=M[L.UNLOAD_OBJ];}else{K=M[L.ADJ_SCOPE];}}M[L.FN].call(K,L.getEvent(R,M[L.EL]),M[L.UNLOAD_OBJ]);S[O]=null;}}M=null;K=null;J=null;if(H){for(N=H.length-1;N>-1;N--){M=H[N];if(M){L.removeListener(M[L.EL],M[L.TYPE],M[L.FN],N);}}M=null;}L._simpleRemove(window,"unload",L._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
 /* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller/Diego Perini */
 if(EU.isIE){if(self!==self.top){document.onreadystatechange=function(){if(document.readyState=="complete"){document.onreadystatechange=null;EU._ready();}};}else{YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);
-},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C<A.length;++C){F.subscribe(A[C].fn,A[C].obj,A[C].overrideContext);}}}return D[B];},fireEvent:function(B){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[B];if(!D){return null;}var A=[];for(var C=1;C<arguments.length;++C){A.push(arguments[C]);}return D.fire.apply(D,A);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.8.1",build:"19"});
\ No newline at end of file
+},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C<A.length;++C){F.subscribe(A[C].fn,A[C].obj,A[C].overrideContext);}}}return D[B];},fireEvent:function(B){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[B];if(!D){return null;}var A=[];for(var C=1;C<arguments.length;++C){A.push(arguments[C]);}return D.fire.apply(D,A);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/event/event.js b/build/event/event.js
index 4266a39..65f553a 100644
--- a/build/event/event.js
+++ b/build/event/event.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
 /**
@@ -2497,4 +2497,4 @@ KeyListener.KEY = {
 };
 
 })();
-YAHOO.register("event", YAHOO.util.Event, {version: "2.8.1", build: "19"});
+YAHOO.register("event", YAHOO.util.Event, {version: "2.8.2r1", build: "7"});
diff --git a/build/fonts/fonts-min.css b/build/fonts/fonts-min.css
index 6309e9b..3e0f84e 100644
--- a/build/fonts/fonts-min.css
+++ b/build/fonts/fonts-min.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea,button{font:99% arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}
\ No newline at end of file
diff --git a/build/fonts/fonts.css b/build/fonts/fonts.css
index f7991e7..7ee78d5 100644
--- a/build/fonts/fonts.css
+++ b/build/fonts/fonts.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * YUI Fonts
diff --git a/build/get/get-debug.js b/build/get/get-debug.js
index 0f3f119..30ea246 100644
--- a/build/get/get-debug.js
+++ b/build/get/get-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides a mechanism to fetch remote resources and
@@ -770,4 +770,4 @@ YAHOO.util.Get = function() {
     };
 }();
 
-YAHOO.register("get", YAHOO.util.Get, {version: "2.8.1", build: "19"});
+YAHOO.register("get", YAHOO.util.Get, {version: "2.8.2r1", build: "7"});
diff --git a/build/get/get-min.js b/build/get/get-min.js
index bc3f7c8..7b45eca 100644
--- a/build/get/get-min.js
+++ b/build/get/get-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.util.Get=function(){var M={},L=0,R=0,E=false,N=YAHOO.env.ua,S=YAHOO.lang;var J=function(W,T,X){var U=X||window,Y=U.document,Z=Y.createElement(W);for(var V in T){if(T[V]&&YAHOO.lang.hasOwnProperty(T,V)){Z.setAttribute(V,T[V]);}}return Z;};var I=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/css",rel:"stylesheet",href:U};if(T){S.augmentObject(W,T);}return J("link",W,V);};var P=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/javascript",src:U};if(T){S.augmentObject(W,T);}return J("script",W,V);};var A=function(T,U){return{tId:T.tId,win:T.win,data:T.data,nodes:T.nodes,msg:U,purge:function(){D(this.tId);}};};var B=function(T,W){var U=M[W],V=(S.isString(T))?U.win.document.getElementById(T):T;if(!V){Q(W,"target node not found: "+T);}return V;};var Q=function(W,V){var T=M[W];if(T.onFailure){var U=T.scope||T.win;T.onFailure.call(U,A(T,V));}};var C=function(W){var T=M[W];T.finished=true;if(T.aborted){var V="transaction "+W+" was aborted";Q(W,V);return;}if(T.onSuccess){var U=T.scope||T.win;T.onSuccess.call(U,A(T));}};var O=function(V){var T=M[V];if(T.onTimeout){var U=T.scope||T;T.onTimeout.call(U,A(T));}};var G=function(V,Z){var U=M[V];if(U.timer){U.timer.cancel();}if(U.aborted){var X="transaction "+V+" was aborted";Q(V,X);return;}if(Z){U.url.shift();if(U.varName){U.varName.shift();}}else{U.url=(S.isString(U.url))?[U.url]:U.url;if(U.varName){U.varName=(S.isString(U.varName))?[U.varName]:U.varName;}}var c=U.win,b=c.document,a=b.getElementsByTagName("head")[0],W;if(U.url.length===0){if(U.type==="script"&&N.webkit&&N.webkit<420&&!U.finalpass&&!U.varName){var Y=P(null,U.win,U.attributes);Y.innerHTML='YAHOO.util.Get._finalize("'+V+'");';U.nodes.push(Y);a.appendChild(Y);}else{C(V);}return;}var T=U.url[0];if(!T){U.url.shift();return G(V);}if(U.timeout){U.timer=S.later(U.timeout,U,O,V);}if(U.type==="script"){W=P(T,c,U.attributes);}else{W=I(T,c,U.attributes);}F(U.type,W,V,T,c,U.url.length);U.nodes.push(W);if(U.insertBefore){var e=B(U.insertBefore,V);if(e){e.parentNode.insertBefore(W,e);}}else{a.appendChild(W);}if((N.webkit||N.gecko)&&U.type==="css"){G(V,T);}};var K=function(){if(E){return;}E=true;for(var T in M){var U=M[T];if(U.autopurge&&U.finished){D(U.tId);delete M[T];}}E=false;};var D=function(Z){if(M[Z]){var T=M[Z],U=T.nodes,X=U.length,c=T.win.document,a=c.getElementsByTagName("head")[0],V,Y,W,b;if(T.insertBefore){V=B(T.insertBefore,Z);if(V){a=V.parentNode;}}for(Y=0;Y<X;Y=Y+1){W=U[Y];if(W.clearAttributes){W.clearAttributes();}else{for(b in W){delete W[b];}}a.removeChild(W);}T.nodes=[];}};var H=function(U,T,V){var X="q"+(L++);V=V||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[X]=S.merge(V,{tId:X,type:U,url:T,finished:false,aborted:false,nodes:[]});var W=M[X];W.win=W.win||window;W.scope=W.scope||W.win;W.autopurge=("autopurge" in W)?W.autopurge:(U==="script")?true:false;if(V.charset){W.attributes=W.attributes||{};W.attributes.charset=V.charset;}S.later(0,W,G,X);return{tId:X};};var F=function(c,X,W,U,Y,Z,b){var a=b||G;if(N.ie){X.onreadystatechange=function(){var d=this.readyState;if("loaded"===d||"complete"===d){X.onreadystatechange=null;a(W,U);}};}else{if(N.webkit){if(c==="script"){if(N.webkit>=420){X.addEventListener("load",function(){a(W,U);});}else{var T=M[W];if(T.varName){var V=YAHOO.util.Get.POLL_FREQ;T.maxattempts=YAHOO.util.Get.TIMEOUT/V;T.attempts=0;T._cache=T.varName[0].split(".");T.timer=S.later(V,T,function(j){var f=this._cache,e=f.length,d=this.win,g;for(g=0;g<e;g=g+1){d=d[f[g]];if(!d){this.attempts++;if(this.attempts++>this.maxattempts){var h="Over retry limit, giving up";T.timer.cancel();Q(W,h);}else{}return;}}T.timer.cancel();a(W,U);},null,true);}else{S.later(YAHOO.util.Get.POLL_FREQ,null,a,[W,U]);}}}}else{X.onload=function(){a(W,U);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(T){S.later(0,null,C,T);},abort:function(U){var V=(S.isString(U))?U:U.tId;var T=M[V];if(T){T.aborted=true;}},script:function(T,U){return H("script",T,U);},css:function(T,U){return H("css",T,U);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.util.Get=function(){var M={},L=0,R=0,E=false,N=YAHOO.env.ua,S=YAHOO.lang;var J=function(W,T,X){var U=X||window,Y=U.document,Z=Y.createElement(W);for(var V in T){if(T[V]&&YAHOO.lang.hasOwnProperty(T,V)){Z.setAttribute(V,T[V]);}}return Z;};var I=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/css",rel:"stylesheet",href:U};if(T){S.augmentObject(W,T);}return J("link",W,V);};var P=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/javascript",src:U};if(T){S.augmentObject(W,T);}return J("script",W,V);};var A=function(T,U){return{tId:T.tId,win:T.win,data:T.data,nodes:T.nodes,msg:U,purge:function(){D(this.tId);}};};var B=function(T,W){var U=M[W],V=(S.isString(T))?U.win.document.getElementById(T):T;if(!V){Q(W,"target node not found: "+T);}return V;};var Q=function(W,V){var T=M[W];if(T.onFailure){var U=T.scope||T.win;T.onFailure.call(U,A(T,V));}};var C=function(W){var T=M[W];T.finished=true;if(T.aborted){var V="transaction "+W+" was aborted";Q(W,V);return;}if(T.onSuccess){var U=T.scope||T.win;T.onSuccess.call(U,A(T));}};var O=function(V){var T=M[V];if(T.onTimeout){var U=T.scope||T;T.onTimeout.call(U,A(T));}};var G=function(V,Z){var U=M[V];if(U.timer){U.timer.cancel();}if(U.aborted){var X="transaction "+V+" was aborted";Q(V,X);return;}if(Z){U.url.shift();if(U.varName){U.varName.shift();}}else{U.url=(S.isString(U.url))?[U.url]:U.url;if(U.varName){U.varName=(S.isString(U.varName))?[U.varName]:U.varName;}}var c=U.win,b=c.document,a=b.getElementsByTagName("head")[0],W;if(U.url.length===0){if(U.type==="script"&&N.webkit&&N.webkit<420&&!U.finalpass&&!U.varName){var Y=P(null,U.win,U.attributes);Y.innerHTML='YAHOO.util.Get._finalize("'+V+'");';U.nodes.push(Y);a.appendChild(Y);}else{C(V);}return;}var T=U.url[0];if(!T){U.url.shift();return G(V);}if(U.timeout){U.timer=S.later(U.timeout,U,O,V);}if(U.type==="script"){W=P(T,c,U.attributes);}else{W=I(T,c,U.attributes);}F(U.type,W,V,T,c,U.url.length);U.nodes.push(W);if(U.insertBefore){var e=B(U.insertBefore,V);if(e){e.parentNode.insertBefore(W,e);}}else{a.appendChild(W);}if((N.webkit||N.gecko)&&U.type==="css"){G(V,T);}};var K=function(){if(E){return;}E=true;for(var T in M){var U=M[T];if(U.autopurge&&U.finished){D(U.tId);delete M[T];}}E=false;};var D=function(Z){if(M[Z]){var T=M[Z],U=T.nodes,X=U.length,c=T.win.document,a=c.getElementsByTagName("head")[0],V,Y,W,b;if(T.insertBefore){V=B(T.insertBefore,Z);if(V){a=V.parentNode;}}for(Y=0;Y<X;Y=Y+1){W=U[Y];if(W.clearAttributes){W.clearAttributes();}else{for(b in W){delete W[b];}}a.removeChild(W);}T.nodes=[];}};var H=function(U,T,V){var X="q"+(L++);V=V||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[X]=S.merge(V,{tId:X,type:U,url:T,finished:false,aborted:false,nodes:[]});var W=M[X];W.win=W.win||window;W.scope=W.scope||W.win;W.autopurge=("autopurge" in W)?W.autopurge:(U==="script")?true:false;if(V.charset){W.attributes=W.attributes||{};W.attributes.charset=V.charset;}S.later(0,W,G,X);return{tId:X};};var F=function(c,X,W,U,Y,Z,b){var a=b||G;if(N.ie){X.onreadystatechange=function(){var d=this.readyState;if("loaded"===d||"complete"===d){X.onreadystatechange=null;a(W,U);}};}else{if(N.webkit){if(c==="script"){if(N.webkit>=420){X.addEventListener("load",function(){a(W,U);});}else{var T=M[W];if(T.varName){var V=YAHOO.util.Get.POLL_FREQ;T.maxattempts=YAHOO.util.Get.TIMEOUT/V;T.attempts=0;T._cache=T.varName[0].split(".");T.timer=S.later(V,T,function(j){var f=this._cache,e=f.length,d=this.win,g;for(g=0;g<e;g=g+1){d=d[f[g]];if(!d){this.attempts++;if(this.attempts++>this.maxattempts){var h="Over retry limit, giving up";T.timer.cancel();Q(W,h);}else{}return;}}T.timer.cancel();a(W,U);},null,true);}else{S.later(YAHOO.util.Get.POLL_FREQ,null,a,[W,U]);}}}}else{X.onload=function(){a(W,U);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(T){S.later(0,null,C,T);},abort:function(U){var V=(S.isString(U))?U:U.tId;var T=M[V];if(T){T.aborted=true;}},script:function(T,U){return H("script",T,U);},css:function(T,U){return H("css",T,U);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/get/get.js b/build/get/get.js
index 8b8d90c..14f3ced 100644
--- a/build/get/get.js
+++ b/build/get/get.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides a mechanism to fetch remote resources and
@@ -752,4 +752,4 @@ YAHOO.util.Get = function() {
     };
 }();
 
-YAHOO.register("get", YAHOO.util.Get, {version: "2.8.1", build: "19"});
+YAHOO.register("get", YAHOO.util.Get, {version: "2.8.2r1", build: "7"});
diff --git a/build/grids/grids-min.css b/build/grids/grids-min.css
index 322ca3c..12581db 100644
--- a/build/grids/grids-min.css
+++ b/build/grids/grids-min.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 body{text-align:center;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main,.yui-g .yui-u .yui-g{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-g .yui-u{width:48.1%;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}.yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#hd:after,#bd:after,#ft:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#hd,#bd,#ft,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}
\ No newline at end of file
diff --git a/build/grids/grids.css b/build/grids/grids.css
index 88053b2..fb64196 100644
--- a/build/grids/grids.css
+++ b/build/grids/grids.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * YUI Grids
diff --git a/build/history/history-debug.js b/build/history/history-debug.js
index 6cc5bff..47ab976 100644
--- a/build/history/history-debug.js
+++ b/build/history/history-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Browser History Manager provides the ability to use the back/forward
@@ -805,4 +805,4 @@ YAHOO.util.History = (function () {
     };
 
 })();
-YAHOO.register("history", YAHOO.util.History, {version: "2.8.1", build: "19"});
+YAHOO.register("history", YAHOO.util.History, {version: "2.8.2r1", build: "7"});
diff --git a/build/history/history-min.js b/build/history/history-min.js
index f2bf63d..9de6de4 100644
--- a/build/history/history-min.js
+++ b/build/history/history-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.util.History=(function(){var C=null;var K=null;var F=false;var D=[];var B=[];function I(){var M,L;L=top.location.href;M=L.indexOf("#");return M>=0?L.substr(M+1):null;}function A(){var M,N,O=[],L=[];for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){N=D[M];O.push(M+"="+N.initialState);L.push(M+"="+N.currentState);}}K.value=O.join("&")+"|"+L.join("&");if(YAHOO.env.ua.webkit){K.value+="|"+B.join(",");}}function H(L){var Q,R,M,O,P,T,S,N;if(!L){for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){O=D[M];O.currentState=O.initialState;O.onStateChange(unescape(O.currentState));}}return;}P=[];T=L.split("&");for(Q=0,R=T.length;Q<R;Q++){S=T[Q].split("=");if(S.length===2){M=S[0];N=S[1];P[M]=N;}}for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){O=D[M];N=P[M];if(!N||O.currentState!==N){O.currentState=N||O.initialState;O.onStateChange(unescape(O.currentState));}}}}function J(O){var L,N;L='<html><body><div id="state">'+O.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")+"</div></body></html>";try{N=C.contentWindow.document;N.open();N.write(L);N.close();return true;}catch(M){return false;}}function G(){var O,L,N,M;if(!C.contentWindow||!C.contentWindow.document){setTimeout(G,10);return;}O=C.contentWindow.document;L=O.getElementById("state");N=L?L.innerText:null;M=I();setInterval(function(){var U,Q,R,S,T,P;O=C.contentWindow.document;L=O.getElementById("state");U=L?L.innerText:null;T=I();if(U!==N){N=U;H(N);if(!N){Q=[];for(R in D){if(YAHOO.lang.hasOwnProperty(D,R)){S=D[R];Q.push(R+"="+S.initialState);}}T=Q.join("&");}else{T=N;}top.location.hash=T;M=T;A();}else{if(T!==M){M=T;J(T);}}},50);F=true;YAHOO.util.History.onLoadEvent.fire();}function E(){var S,U,Q,W,M,O,V,P,T,N,L,R;Q=K.value.split("|");if(Q.length>1){V=Q[0].split("&");for(S=0,U=V.length;S<U;S++){W=V[S].split("=");if(W.length===2){M=W[0];P=W[1];O=D[M];if(O){O.initialState=P;}}}T=Q[1].split("&");for(S=0,U=T.length;S<U;S++){W=T[S].split("=");if(W.length>=2){M=W[0];N=W[1];O=D[M];if(O){O.currentState=N;}}}}if(Q.length>2){B=Q[2].split(",");}if(YAHOO.env.ua.ie){if(typeof document.documentMode==="undefined"||document.documentMode<8){G();}else{YAHOO.util.Event.on(top,"hashchange",function(){var X=I();H(X);A();});F=true;YAHOO.util.History.onLoadEvent.fire();}}else{L=history.length;R=I();setInterval(function(){var Z,X,Y;X=I();Y=history.length;if(X!==R){R=X;L=Y;H(R);A();}else{if(Y!==L&&YAHOO.env.ua.webkit){R=X;L=Y;Z=B[L-1];H(Z);A();}}},50);F=true;YAHOO.util.History.onLoadEvent.fire();}}return{onLoadEvent:new YAHOO.util.CustomEvent("onLoad"),onReady:function(L,M,N){if(F){setTimeout(function(){var O=window;if(N){if(N===true){O=M;}else{O=N;}}L.call(O,"onLoad",[],M);},0);}else{YAHOO.util.History.onLoadEvent.subscribe(L,M,N);}},register:function(N,L,P,Q,R){var O,M;if(typeof N!=="string"||YAHOO.lang.trim(N)===""||typeof L!=="string"||typeof P!=="function"){throw new Error("Missing or invalid argument");}if(D[N]){return;}if(F){throw new Error("All modules must be registered before calling YAHOO.util.History.initialize");}N=escape(N);L=escape(L);O=null;if(R===true){O=Q;}else{O=R;}M=function(S){return P.call(O,S,Q);};D[N]={name:N,initialState:L,currentState:L,onStateChange:M};},initialize:function(L,M){if(F){return;}if(YAHOO.env.ua.opera&&typeof history.navigationMode!=="undefined"){history.navigationMode="compatible";}if(typeof L==="string"){L=document.getElementById(L);}if(!L||L.tagName.toUpperCase()!=="TEXTAREA"&&(L.tagName.toUpperCase()!=="INPUT"||L.type!=="hidden"&&L.type!=="text")){throw new Error("Missing or invalid argument");}K=L;if(YAHOO.env.ua.ie&&(typeof document.documentMode==="undefined"||document.documentMode<8)){if(typeof M==="string"){M=document.getElementById(M);}if(!M||M.tagName.toUpperCase()!=="IFRAME"){throw new Error("Missing or invalid argument");}C=M;}YAHOO.util.Event.onDOMReady(E);},navigate:function(M,N){var L;if(typeof M!=="string"||typeof N!=="string"){throw new Error("Missing or invalid argument");}L={};L[M]=N;return YAHOO.util.History.multiNavigate(L);},multiNavigate:function(M){var L,N,P,O,Q;if(typeof M!=="object"){throw new Error("Missing or invalid argument");}if(!F){throw new Error("The Browser History Manager is not initialized");}for(N in M){if(!D[N]){throw new Error("The following module has not been registered: "+N);}}L=[];for(N in D){if(YAHOO.lang.hasOwnProperty(D,N)){P=D[N];if(YAHOO.lang.hasOwnProperty(M,N)){O=M[unescape(N)];}else{O=unescape(P.currentState);}N=escape(N);O=escape(O);L.push(N+"="+O);}}Q=L.join("&");if(YAHOO.env.ua.ie&&(typeof document.documentMode==="undefined"||document.documentMode<8)){return J(Q);}else{top.location.hash=Q;if(YAHOO.env.ua.webkit){B[history.length]=Q;A();}return true;}},getCurrentState:function(L){var M;if(typeof L!=="string"){throw new Error("Missing or invalid argument");}if(!F){throw new Error("The Browser History Manager is not initialized");}M=D[L];if(!M){throw new Error("No such registered module: "+L);}return unescape(M.currentState);},getBookmarkedState:function(Q){var P,M,L,S,N,R,O;if(typeof Q!=="string"){throw new Error("Missing or invalid argument");}L=top.location.href.indexOf("#");if(L>=0){S=top.location.href.substr(L+1);N=S.split("&");for(P=0,M=N.length;P<M;P++){R=N[P].split("=");if(R.length===2){O=R[0];if(O===Q){return unescape(R[1]);}}}}return null;},getQueryStringParameter:function(Q,N){var O,M,L,S,R,P;N=N||top.location.href;L=N.indexOf("?");S=L>=0?N.substr(L+1):N;L=S.lastIndexOf("#");S=L>=0?S.substr(0,L):S;R=S.split("&");for(O=0,M=R.length;O<M;O++){P=R[O].split("=");if(P.length>=2){if(P[0]===Q){return unescape(P[1]);}}}return null;}};})();YAHOO.register("history",YAHOO.util.History,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.util.History=(function(){var C=null;var K=null;var F=false;var D=[];var B=[];function I(){var M,L;L=top.location.href;M=L.indexOf("#");return M>=0?L.substr(M+1):null;}function A(){var M,N,O=[],L=[];for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){N=D[M];O.push(M+"="+N.initialState);L.push(M+"="+N.currentState);}}K.value=O.join("&")+"|"+L.join("&");if(YAHOO.env.ua.webkit){K.value+="|"+B.join(",");}}function H(L){var Q,R,M,O,P,T,S,N;if(!L){for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){O=D[M];O.currentState=O.initialState;O.onStateChange(unescape(O.currentState));}}return;}P=[];T=L.split("&");for(Q=0,R=T.length;Q<R;Q++){S=T[Q].split("=");if(S.length===2){M=S[0];N=S[1];P[M]=N;}}for(M in D){if(YAHOO.lang.hasOwnProperty(D,M)){O=D[M];N=P[M];if(!N||O.currentState!==N){O.currentState=N||O.initialState;O.onStateChange(unescape(O.currentState));}}}}function J(O){var L,N;L='<html><body><div id="state">'+O.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")+"</div></body></html>";try{N=C.contentWindow.document;N.open();N.write(L);N.close();return true;}catch(M){return false;}}function G(){var O,L,N,M;if(!C.contentWindow||!C.contentWindow.document){setTimeout(G,10);return;}O=C.contentWindow.document;L=O.getElementById("state");N=L?L.innerText:null;M=I();setInterval(function(){var U,Q,R,S,T,P;O=C.contentWindow.document;L=O.getElementById("state");U=L?L.innerText:null;T=I();if(U!==N){N=U;H(N);if(!N){Q=[];for(R in D){if(YAHOO.lang.hasOwnProperty(D,R)){S=D[R];Q.push(R+"="+S.initialState);}}T=Q.join("&");}else{T=N;}top.location.hash=T;M=T;A();}else{if(T!==M){M=T;J(T);}}},50);F=true;YAHOO.util.History.onLoadEvent.fire();}function E(){var S,U,Q,W,M,O,V,P,T,N,L,R;Q=K.value.split("|");if(Q.length>1){V=Q[0].split("&");for(S=0,U=V.length;S<U;S++){W=V[S].split("=");if(W.length===2){M=W[0];P=W[1];O=D[M];if(O){O.initialState=P;}}}T=Q[1].split("&");for(S=0,U=T.length;S<U;S++){W=T[S].split("=");if(W.length>=2){M=W[0];N=W[1];O=D[M];if(O){O.currentState=N;}}}}if(Q.length>2){B=Q[2].split(",");}if(YAHOO.env.ua.ie){if(typeof document.documentMode==="undefined"||document.documentMode<8){G();}else{YAHOO.util.Event.on(top,"hashchange",function(){var X=I();H(X);A();});F=true;YAHOO.util.History.onLoadEvent.fire();}}else{L=history.length;R=I();setInterval(function(){var Z,X,Y;X=I();Y=history.length;if(X!==R){R=X;L=Y;H(R);A();}else{if(Y!==L&&YAHOO.env.ua.webkit){R=X;L=Y;Z=B[L-1];H(Z);A();}}},50);F=true;YAHOO.util.History.onLoadEvent.fire();}}return{onLoadEvent:new YAHOO.util.CustomEvent("onLoad"),onReady:function(L,M,N){if(F){setTimeout(function(){var O=window;if(N){if(N===true){O=M;}else{O=N;}}L.call(O,"onLoad",[],M);},0);}else{YAHOO.util.History.onLoadEvent.subscribe(L,M,N);}},register:function(N,L,P,Q,R){var O,M;if(typeof N!=="string"||YAHOO.lang.trim(N)===""||typeof L!=="string"||typeof P!=="function"){throw new Error("Missing or invalid argument");}if(D[N]){return;}if(F){throw new Error("All modules must be registered before calling YAHOO.util.History.initialize");}N=escape(N);L=escape(L);O=null;if(R===true){O=Q;}else{O=R;}M=function(S){return P.call(O,S,Q);};D[N]={name:N,initialState:L,currentState:L,onStateChange:M};},initialize:function(L,M){if(F){return;}if(YAHOO.env.ua.opera&&typeof history.navigationMode!=="undefined"){history.navigationMode="compatible";}if(typeof L==="string"){L=document.getElementById(L);}if(!L||L.tagName.toUpperCase()!=="TEXTAREA"&&(L.tagName.toUpperCase()!=="INPUT"||L.type!=="hidden"&&L.type!=="text")){throw new Error("Missing or invalid argument");}K=L;if(YAHOO.env.ua.ie&&(typeof document.documentMode==="undefined"||document.documentMode<8)){if(typeof M==="string"){M=document.getElementById(M);}if(!M||M.tagName.toUpperCase()!=="IFRAME"){throw new Error("Missing or invalid argument");}C=M;}YAHOO.util.Event.onDOMReady(E);},navigate:function(M,N){var L;if(typeof M!=="string"||typeof N!=="string"){throw new Error("Missing or invalid argument");}L={};L[M]=N;return YAHOO.util.History.multiNavigate(L);},multiNavigate:function(M){var L,N,P,O,Q;if(typeof M!=="object"){throw new Error("Missing or invalid argument");}if(!F){throw new Error("The Browser History Manager is not initialized");}for(N in M){if(!D[N]){throw new Error("The following module has not been registered: "+N);}}L=[];for(N in D){if(YAHOO.lang.hasOwnProperty(D,N)){P=D[N];if(YAHOO.lang.hasOwnProperty(M,N)){O=M[unescape(N)];}else{O=unescape(P.currentState);}N=escape(N);O=escape(O);L.push(N+"="+O);}}Q=L.join("&");if(YAHOO.env.ua.ie&&(typeof document.documentMode==="undefined"||document.documentMode<8)){return J(Q);}else{top.location.hash=Q;if(YAHOO.env.ua.webkit){B[history.length]=Q;A();}return true;}},getCurrentState:function(L){var M;if(typeof L!=="string"){throw new Error("Missing or invalid argument");}if(!F){throw new Error("The Browser History Manager is not initialized");}M=D[L];if(!M){throw new Error("No such registered module: "+L);}return unescape(M.currentState);},getBookmarkedState:function(Q){var P,M,L,S,N,R,O;if(typeof Q!=="string"){throw new Error("Missing or invalid argument");}L=top.location.href.indexOf("#");if(L>=0){S=top.location.href.substr(L+1);N=S.split("&");for(P=0,M=N.length;P<M;P++){R=N[P].split("=");if(R.length===2){O=R[0];if(O===Q){return unescape(R[1]);}}}}return null;},getQueryStringParameter:function(Q,N){var O,M,L,S,R,P;N=N||top.location.href;L=N.indexOf("?");S=L>=0?N.substr(L+1):N;L=S.lastIndexOf("#");S=L>=0?S.substr(0,L):S;R=S.split("&");for(O=0,M=R.length;O<M;O++){P=R[O].split("=");if(P.length>=2){if(P[0]===Q){return unescape(P[1]);}}}return null;}};})();YAHOO.register("history",YAHOO.util.History,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/history/history.js b/build/history/history.js
index 6cc5bff..47ab976 100644
--- a/build/history/history.js
+++ b/build/history/history.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Browser History Manager provides the ability to use the back/forward
@@ -805,4 +805,4 @@ YAHOO.util.History = (function () {
     };
 
 })();
-YAHOO.register("history", YAHOO.util.History, {version: "2.8.1", build: "19"});
+YAHOO.register("history", YAHOO.util.History, {version: "2.8.2r1", build: "7"});
diff --git a/build/imagecropper/assets/imagecropper-core.css b/build/imagecropper/assets/imagecropper-core.css
index cb383fe..c3d052d 100644
--- a/build/imagecropper/assets/imagecropper-core.css
+++ b/build/imagecropper/assets/imagecropper-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-crop {
     position: relative;
diff --git a/build/imagecropper/assets/skins/sam/imagecropper-skin.css b/build/imagecropper/assets/skins/sam/imagecropper-skin.css
index ad9e7f8..ab41adb 100644
--- a/build/imagecropper/assets/skins/sam/imagecropper-skin.css
+++ b/build/imagecropper/assets/skins/sam/imagecropper-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-crop .yui-crop-mask {
     background-color: #000;
diff --git a/build/imagecropper/assets/skins/sam/imagecropper.css b/build/imagecropper/assets/skins/sam/imagecropper.css
index 8b70fb9..dad5f82 100644
--- a/build/imagecropper/assets/skins/sam/imagecropper.css
+++ b/build/imagecropper/assets/skins/sam/imagecropper.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-crop{position:relative;}.yui-crop .yui-crop-mask{position:absolute;top:0;left:0;height:100%;width:100%;}.yui-crop .yui-resize{position:absolute;top:10px;left:10px;border:0;}.yui-crop .yui-crop-resize-mask{position:absolute;top:0;left:0;height:100%;width:100%;background-position:-10px -10px;overflow:hidden;}.yui-skin-sam .yui-crop .yui-crop-mask{background-color:#000;opacity:.5;filter:alpha(opacity=50);}.yui-skin-sam .yui-crop .yui-resize{border:1px dashed #fff;}
diff --git a/build/imagecropper/imagecropper-debug.js b/build/imagecropper/imagecropper-debug.js
index ebd6d97..c73ed49 100644
--- a/build/imagecropper/imagecropper-debug.js
+++ b/build/imagecropper/imagecropper-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * @description <p>Creates a Image Cropper control.</p>
@@ -904,4 +904,4 @@ var Dom = YAHOO.util.Dom,
 
 })();
 
-YAHOO.register("imagecropper", YAHOO.widget.ImageCropper, {version: "2.8.1", build: "19"});
+YAHOO.register("imagecropper", YAHOO.widget.ImageCropper, {version: "2.8.2r1", build: "7"});
diff --git a/build/imagecropper/imagecropper-min.js b/build/imagecropper/imagecropper-min.js
index dd35a83..1a837f4 100644
--- a/build/imagecropper/imagecropper-min.js
+++ b/build/imagecropper/imagecropper-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var C=YAHOO.util.Dom,A=YAHOO.util.Event,D=YAHOO.lang;var B=function(F,E){var G={element:F,attributes:E||{}};B.superclass.constructor.call(this,G.element,G.attributes);};B._instances={};B.getCropperById=function(E){if(B._instances[E]){return B._instances[E];}return false;};YAHOO.extend(B,YAHOO.util.Element,{CSS_MAIN:"yui-crop",CSS_MASK:"yui-crop-mask",CSS_RESIZE_MASK:"yui-crop-resize-mask",_image:null,_active:null,_resize:null,_resizeEl:null,_resizeMaskEl:null,_wrap:null,_mask:null,_createWrap:function(){this._wrap=document.createElement("div");this._wrap.id=this.get("element").id+"_wrap";this._wrap.className=this.CSS_MAIN;var F=this.get("element");this._wrap.style.width=F.width?F.width+"px":C.getStyle(F,"width");this._wrap.style.height=F.height?F.height+"px":C.getStyle(F,"height");var E=this.get("element").parentNode;E.replaceChild(this._wrap,this.get("element"));this._wrap.appendChild(this.get("element"));A.on(this._wrap,"mouseover",this._handleMouseOver,this,true);A.on(this._wrap,"mouseout",this._handleMouseOut,this,true);A.on(this._wrap,"click",function(G){A.stopEvent(G);},this,true);},_createMask:function(){this._mask=document.createElement("div");this._mask.className=this.CSS_MASK;this._wrap.appendChild(this._mask);},_createResize:function(){this._resizeEl=document.createElement("div");this._resizeEl.className=YAHOO.util.Resize.prototype.CSS_RESIZE;this._resizeEl.style.position="absolute";this._resizeEl.innerHTML='<div class="'+this.CSS_RESIZE_MASK+'"></div>';this._resizeMaskEl=this._resizeEl.firstChild;this._wrap.appendChild(this._resizeEl);this._resizeEl.style.top=this.get("initialXY")[1]+"px";this._resizeEl.style.left=this.get("initialXY")[0]+"px";this._resizeMaskEl.style.height=Math.floor(this.get("initHeight"))+"px";this._resizeMaskEl.style.width=Math.floor(this.get("initWidth"))+"px";this._resize=new YAHOO.util.Resize(this._resizeEl,{knobHandles:true,handles:"all",draggable:true,status:this.get("status"),minWidth:this.get("minWidth"),minHeight:this.get("minHeight"),ratio:this.get("ratio"),autoRatio:this.get("autoRatio"),height:this.get("initHeight"),width:this.get("initWidth")});this._setBackgroundImage(this.get("element").getAttribute("src",2));this._setBackgroundPosition(-(this.get("initialXY")[0]),-(this.get("initialXY")[1]));this._resize.on("startResize",this._handleStartResizeEvent,this,true);this._resize.on("endResize",this._handleEndResizeEvent,this,true);this._resize.on("dragEvent",this._handleDragEvent,this,true);this._resize.on("beforeResize",this._handleBeforeResizeEvent,this,true);this._resize.on("resize",this._handleResizeEvent,this,true);this._resize.dd.on("b4StartDragEvent",this._handleB4DragEvent,this,true);},_handleMouseOver:function(F){var E="keydown";if(YAHOO.env.ua.gecko||YAHOO.env.ua.opera){E="keypress";}if(!this._active){this._active=true;if(this.get("useKeys")){A.on(document,E,this._handleKeyPress,this,true);}}},_handleMouseOut:function(F){var E="keydown";if(YAHOO.env.ua.gecko||YAHOO.env.ua.opera){E="keypress";}this._active=false;if(this.get("useKeys")){A.removeListener(document,E,this._handleKeyPress);}},_moveEl:function(G,J){var H=0,E=0,I=this._setConstraints(),F=true;switch(G){case"down":H=-(J);if((I.bottom-J)<0){F=false;this._resizeEl.style.top=(I.top+I.bottom)+"px";}break;case"up":H=(J);if((I.top-J)<0){F=false;this._resizeEl.style.top="0px";}break;case"right":E=-(J);if((I.right-J)<0){F=false;this._resizeEl.style.left=(I.left+I.right)+"px";}break;case"left":E=J;if((I.left-J)<0){F=false;this._resizeEl.style.left="0px";}break;}if(F){this._resizeEl.style.left=(parseInt(this._resizeEl.style.left,10)-E)+"px";this._resizeEl.style.top=(parseInt(this._resizeEl.style.top,10)-H)+"px";this.fireEvent("moveEvent",{target:"keypress"});}else{this._setConstraints();}this._syncBackgroundPosition();},_handleKeyPress:function(G){var E=A.getCharCode(G),F=false,H=((G.shiftKey)?this.get("shiftKeyTick"):this.get("keyTick"));switch(E){case 37:this._moveEl("left",H);F=true;break;case 38:this._moveEl("up",H);F=true;break;case 39:this._moveEl("right",H);F=true;break;case 40:this._moveEl("down",H);F=true;break;default:}if(F){A.preventDefault(G);}},_handleB4DragEvent:function(){this._setConstraints();},_handleDragEvent:function(){this._syncBackgroundPosition();this.fireEvent("dragEvent",arguments);this.fireEvent("moveEvent",{target:"dragevent"});},_handleBeforeResizeEvent:function(F){var I=C.getRegion(this.get("element")),J=this._resize._cache,H=this._resize._currentHandle,G=0,E=0;if(F.top&&(F.top<I.top)){G=(J.height+J.top)-I.top;C.setY(this._resize.getWrapEl(),I.top);this._resize.getWrapEl().style.height=G+"px";this._resize._cache.height=G;this._resize._cache.top=I.top;this._syncBackgroundPosition();return false;}if(F.left&&(F.left<I.left)){E=(J.width+J.left)-I.left;C.setX(this._resize.getWrapEl(),I.left);this._resize._cache.left=I.left;this._resize.getWrapEl().style.width=E+"px";this._resize._cache.width=E;this._syncBackgroundPosition();return false;}if(H!="tl"&&H!="l"&&H!="bl"){if(J.left&&F.width&&((J.left+F.width)>I.right)){E=(I.right-J.left);C.setX(this._resize.getWrapEl(),(I.right-E));this._resize.getWrapEl().style.width=E+"px";this._resize._cache.left=(I.right-E);this._resize._cache.width=E;this._syncBackgroundPosition();return false;}}if(H!="t"&&H!="tr"&&H!="tl"){if(J.top&&F.height&&((J.top+F.height)>I.bottom)){G=(I.bottom-J.top);C.setY(this._resize.getWrapEl(),(I.bottom-G));this._resize.getWrapEl().style.height=G+"px";this._resize._cache.height=G;this._resize._cache.top=(I.bottom-G);this._syncBackgroundPosition();return false;}}},_handleResizeMaskEl:function(){var E=this._resize._cache;this._resizeMaskEl.style.height=Math.floor(E.height)+"px";this._resizeMaskEl.style.width=Math.floor(E.width)+"px";},_handleResizeEvent:function(E){this._setConstraints(true);this._syncBackgroundPosition();this.fireEvent("resizeEvent",arguments);this.fireEvent("moveEvent",{target:"resizeevent"});},_syncBackgroundPosition:function(){this._handleResizeMaskEl();this._setBackgroundPosition(-(parseInt(this._resizeEl.style.left,10)),-(parseInt(this._resizeEl.style.top,10)));
-},_setBackgroundPosition:function(F,H){var J=parseInt(C.getStyle(this._resize.get("element"),"borderLeftWidth"),10);var G=parseInt(C.getStyle(this._resize.get("element"),"borderTopWidth"),10);if(isNaN(J)){J=0;}if(isNaN(G)){G=0;}var E=this._resize.getWrapEl().firstChild;var I=(F-J)+"px "+(H-G)+"px";this._resizeMaskEl.style.backgroundPosition=I;},_setBackgroundImage:function(F){var E=this._resize.getWrapEl().firstChild;this._image=F;E.style.backgroundImage="url("+F+"#)";},_handleEndResizeEvent:function(){this._setConstraints(true);},_handleStartResizeEvent:function(){this._setConstraints(true);var I=this._resize._cache.height,F=this._resize._cache.width,H=parseInt(this._resize.getWrapEl().style.top,10),E=parseInt(this._resize.getWrapEl().style.left,10),G=0,J=0;switch(this._resize._currentHandle){case"b":G=(I+this._resize.dd.bottomConstraint);break;case"l":J=(F+this._resize.dd.leftConstraint);break;case"r":G=(I+H);J=(F+this._resize.dd.rightConstraint);break;case"br":G=(I+this._resize.dd.bottomConstraint);J=(F+this._resize.dd.rightConstraint);break;case"tr":G=(I+H);J=(F+this._resize.dd.rightConstraint);break;}if(G){}if(J){}this.fireEvent("startResizeEvent",arguments);},_setConstraints:function(J){var H=this._resize;H.dd.resetConstraints();var N=parseInt(H.get("height"),10),F=parseInt(H.get("width"),10);if(J){N=H._cache.height;F=H._cache.width;}var L=C.getRegion(this.get("element"));var G=H.getWrapEl();var O=C.getXY(G);var I=O[0]-L.left;var M=L.right-O[0]-F;var K=O[1]-L.top;var E=L.bottom-O[1]-N;if(K<0){K=0;}H.dd.setXConstraint(I,M);H.dd.setYConstraint(K,E);return{top:K,right:M,bottom:E,left:I};},getCropCoords:function(){var E={top:parseInt(this._resize.getWrapEl().style.top,10),left:parseInt(this._resize.getWrapEl().style.left,10),height:this._resize._cache.height,width:this._resize._cache.width,image:this._image};return E;},reset:function(){this._resize.resize(null,this.get("initHeight"),this.get("initWidth"),0,0,true);this._resizeEl.style.top=this.get("initialXY")[1]+"px";this._resizeEl.style.left=this.get("initialXY")[0]+"px";this._syncBackgroundPosition();return this;},getEl:function(){return this.get("element");},getResizeEl:function(){return this._resizeEl;},getWrapEl:function(){return this._wrap;},getMaskEl:function(){return this._mask;},getResizeMaskEl:function(){return this._resizeMaskEl;},getResizeObject:function(){return this._resize;},init:function(G,E){B.superclass.init.call(this,G,E);var H=G;if(!D.isString(H)){if(H.tagName&&(H.tagName.toLowerCase()=="img")){H=C.generateId(H);}else{return false;}}else{var F=C.get(H);if(F.tagName&&F.tagName.toLowerCase()=="img"){}else{return false;}}B._instances[H]=this;this._createWrap();this._createMask();this._createResize();this._setConstraints();},initAttributes:function(E){B.superclass.initAttributes.call(this,E);this.setAttributeConfig("initialXY",{writeOnce:true,validator:YAHOO.lang.isArray,value:E.initialXY||[10,10]});this.setAttributeConfig("keyTick",{validator:YAHOO.lang.isNumber,value:E.keyTick||1});this.setAttributeConfig("shiftKeyTick",{validator:YAHOO.lang.isNumber,value:E.shiftKeyTick||10});this.setAttributeConfig("useKeys",{validator:YAHOO.lang.isBoolean,value:((E.useKeys===false)?false:true)});this.setAttributeConfig("status",{validator:YAHOO.lang.isBoolean,value:((E.status===false)?false:true),method:function(F){if(this._resize){this._resize.set("status",F);}}});this.setAttributeConfig("minHeight",{validator:YAHOO.lang.isNumber,value:E.minHeight||50,method:function(F){if(this._resize){this._resize.set("minHeight",F);}}});this.setAttributeConfig("minWidth",{validator:YAHOO.lang.isNumber,value:E.minWidth||50,method:function(F){if(this._resize){this._resize.set("minWidth",F);}}});this.setAttributeConfig("ratio",{validator:YAHOO.lang.isBoolean,value:E.ratio||false,method:function(F){if(this._resize){this._resize.set("ratio",F);}}});this.setAttributeConfig("autoRatio",{validator:YAHOO.lang.isBoolean,value:((E.autoRatio===false)?false:true),method:function(F){if(this._resize){this._resize.set("autoRatio",F);}}});this.setAttributeConfig("initHeight",{writeOnce:true,validator:YAHOO.lang.isNumber,value:E.initHeight||(this.get("element").height/4)});this.setAttributeConfig("initWidth",{validator:YAHOO.lang.isNumber,writeOnce:true,value:E.initWidth||(this.get("element").width/4)});},destroy:function(){this._resize.destroy();this._resizeEl.parentNode.removeChild(this._resizeEl);this._mask.parentNode.removeChild(this._mask);A.purgeElement(this._wrap);this._wrap.parentNode.replaceChild(this.get("element"),this._wrap);for(var E in this){if(D.hasOwnProperty(this,E)){this[E]=null;}}},toString:function(){if(this.get){return"ImageCropper (#"+this.get("id")+")";}return"Image Cropper";}});YAHOO.widget.ImageCropper=B;})();YAHOO.register("imagecropper",YAHOO.widget.ImageCropper,{version:"2.8.1",build:"19"});
\ No newline at end of file
+},_setBackgroundPosition:function(F,H){var J=parseInt(C.getStyle(this._resize.get("element"),"borderLeftWidth"),10);var G=parseInt(C.getStyle(this._resize.get("element"),"borderTopWidth"),10);if(isNaN(J)){J=0;}if(isNaN(G)){G=0;}var E=this._resize.getWrapEl().firstChild;var I=(F-J)+"px "+(H-G)+"px";this._resizeMaskEl.style.backgroundPosition=I;},_setBackgroundImage:function(F){var E=this._resize.getWrapEl().firstChild;this._image=F;E.style.backgroundImage="url("+F+"#)";},_handleEndResizeEvent:function(){this._setConstraints(true);},_handleStartResizeEvent:function(){this._setConstraints(true);var I=this._resize._cache.height,F=this._resize._cache.width,H=parseInt(this._resize.getWrapEl().style.top,10),E=parseInt(this._resize.getWrapEl().style.left,10),G=0,J=0;switch(this._resize._currentHandle){case"b":G=(I+this._resize.dd.bottomConstraint);break;case"l":J=(F+this._resize.dd.leftConstraint);break;case"r":G=(I+H);J=(F+this._resize.dd.rightConstraint);break;case"br":G=(I+this._resize.dd.bottomConstraint);J=(F+this._resize.dd.rightConstraint);break;case"tr":G=(I+H);J=(F+this._resize.dd.rightConstraint);break;}if(G){}if(J){}this.fireEvent("startResizeEvent",arguments);},_setConstraints:function(J){var H=this._resize;H.dd.resetConstraints();var N=parseInt(H.get("height"),10),F=parseInt(H.get("width"),10);if(J){N=H._cache.height;F=H._cache.width;}var L=C.getRegion(this.get("element"));var G=H.getWrapEl();var O=C.getXY(G);var I=O[0]-L.left;var M=L.right-O[0]-F;var K=O[1]-L.top;var E=L.bottom-O[1]-N;if(K<0){K=0;}H.dd.setXConstraint(I,M);H.dd.setYConstraint(K,E);return{top:K,right:M,bottom:E,left:I};},getCropCoords:function(){var E={top:parseInt(this._resize.getWrapEl().style.top,10),left:parseInt(this._resize.getWrapEl().style.left,10),height:this._resize._cache.height,width:this._resize._cache.width,image:this._image};return E;},reset:function(){this._resize.resize(null,this.get("initHeight"),this.get("initWidth"),0,0,true);this._resizeEl.style.top=this.get("initialXY")[1]+"px";this._resizeEl.style.left=this.get("initialXY")[0]+"px";this._syncBackgroundPosition();return this;},getEl:function(){return this.get("element");},getResizeEl:function(){return this._resizeEl;},getWrapEl:function(){return this._wrap;},getMaskEl:function(){return this._mask;},getResizeMaskEl:function(){return this._resizeMaskEl;},getResizeObject:function(){return this._resize;},init:function(G,E){B.superclass.init.call(this,G,E);var H=G;if(!D.isString(H)){if(H.tagName&&(H.tagName.toLowerCase()=="img")){H=C.generateId(H);}else{return false;}}else{var F=C.get(H);if(F.tagName&&F.tagName.toLowerCase()=="img"){}else{return false;}}B._instances[H]=this;this._createWrap();this._createMask();this._createResize();this._setConstraints();},initAttributes:function(E){B.superclass.initAttributes.call(this,E);this.setAttributeConfig("initialXY",{writeOnce:true,validator:YAHOO.lang.isArray,value:E.initialXY||[10,10]});this.setAttributeConfig("keyTick",{validator:YAHOO.lang.isNumber,value:E.keyTick||1});this.setAttributeConfig("shiftKeyTick",{validator:YAHOO.lang.isNumber,value:E.shiftKeyTick||10});this.setAttributeConfig("useKeys",{validator:YAHOO.lang.isBoolean,value:((E.useKeys===false)?false:true)});this.setAttributeConfig("status",{validator:YAHOO.lang.isBoolean,value:((E.status===false)?false:true),method:function(F){if(this._resize){this._resize.set("status",F);}}});this.setAttributeConfig("minHeight",{validator:YAHOO.lang.isNumber,value:E.minHeight||50,method:function(F){if(this._resize){this._resize.set("minHeight",F);}}});this.setAttributeConfig("minWidth",{validator:YAHOO.lang.isNumber,value:E.minWidth||50,method:function(F){if(this._resize){this._resize.set("minWidth",F);}}});this.setAttributeConfig("ratio",{validator:YAHOO.lang.isBoolean,value:E.ratio||false,method:function(F){if(this._resize){this._resize.set("ratio",F);}}});this.setAttributeConfig("autoRatio",{validator:YAHOO.lang.isBoolean,value:((E.autoRatio===false)?false:true),method:function(F){if(this._resize){this._resize.set("autoRatio",F);}}});this.setAttributeConfig("initHeight",{writeOnce:true,validator:YAHOO.lang.isNumber,value:E.initHeight||(this.get("element").height/4)});this.setAttributeConfig("initWidth",{validator:YAHOO.lang.isNumber,writeOnce:true,value:E.initWidth||(this.get("element").width/4)});},destroy:function(){this._resize.destroy();this._resizeEl.parentNode.removeChild(this._resizeEl);this._mask.parentNode.removeChild(this._mask);A.purgeElement(this._wrap);this._wrap.parentNode.replaceChild(this.get("element"),this._wrap);for(var E in this){if(D.hasOwnProperty(this,E)){this[E]=null;}}},toString:function(){if(this.get){return"ImageCropper (#"+this.get("id")+")";}return"Image Cropper";}});YAHOO.widget.ImageCropper=B;})();YAHOO.register("imagecropper",YAHOO.widget.ImageCropper,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/imagecropper/imagecropper.js b/build/imagecropper/imagecropper.js
index b99a3bd..923c1ef 100644
--- a/build/imagecropper/imagecropper.js
+++ b/build/imagecropper/imagecropper.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * @description <p>Creates a Image Cropper control.</p>
@@ -886,4 +886,4 @@ var Dom = YAHOO.util.Dom,
 
 })();
 
-YAHOO.register("imagecropper", YAHOO.widget.ImageCropper, {version: "2.8.1", build: "19"});
+YAHOO.register("imagecropper", YAHOO.widget.ImageCropper, {version: "2.8.2r1", build: "7"});
diff --git a/build/imageloader/imageloader-debug.js b/build/imageloader/imageloader-debug.js
index b7b6ef1..042a6b0 100644
--- a/build/imageloader/imageloader-debug.js
+++ b/build/imageloader/imageloader-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The ImageLoader Utility is a framework to dynamically load images according to certain triggers,
@@ -484,4 +484,4 @@ YAHOO.util.ImageLoader.pngBgImgObj.prototype._applyUrl = function(el) {
 		el.style.backgroundImage = "url('" + this.url + "')";
 	}
 };
-YAHOO.register("imageloader", YAHOO.util.ImageLoader, {version: "2.8.1", build: "19"});
+YAHOO.register("imageloader", YAHOO.util.ImageLoader, {version: "2.8.2r1", build: "7"});
diff --git a/build/imageloader/imageloader-min.js b/build/imageloader/imageloader-min.js
index f077949..27cc633 100644
--- a/build/imageloader/imageloader-min.js
+++ b/build/imageloader/imageloader-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-if(typeof(YAHOO.util.ImageLoader)=="undefined"){YAHOO.util.ImageLoader={};}YAHOO.util.ImageLoader.group=function(A,B,C){this.name="unnamed";this._imgObjs={};this.timeoutLen=C;this._timeout=null;this._triggers=[];this._customTriggers=[];this.foldConditional=false;this.className=null;this._classImageEls=null;YAHOO.util.Event.addListener(window,"load",this._onloadTasks,this,true);this.addTrigger(A,B);};YAHOO.util.ImageLoader.group.prototype.addTrigger=function(B,C){if(!B||!C){return;}var A=function(){this.fetch();};this._triggers.push([B,C,A]);YAHOO.util.Event.addListener(B,C,A,this,true);};YAHOO.util.ImageLoader.group.prototype.addCustomTrigger=function(B){if(!B||!B instanceof YAHOO.util.CustomEvent){return;}var A=function(){this.fetch();};this._customTriggers.push([B,A]);B.subscribe(A,this,true);};YAHOO.util.ImageLoader.group.prototype._onloadTasks=function(){if(this.timeoutLen&&typeof(this.timeoutLen)=="number"&&this.timeoutLen>0){this._timeout=setTimeout(this._getFetchTimeout(),this.timeoutLen*1000);}if(this.foldConditional){this._foldCheck();}};YAHOO.util.ImageLoader.group.prototype._getFetchTimeout=function(){var A=this;return function(){A.fetch();};};YAHOO.util.ImageLoader.group.prototype.registerBgImage=function(B,A){this._imgObjs[B]=new YAHOO.util.ImageLoader.bgImgObj(B,A);return this._imgObjs[B];};YAHOO.util.ImageLoader.group.prototype.registerSrcImage=function(D,B,C,A){this._imgObjs[D]=new YAHOO.util.ImageLoader.srcImgObj(D,B,C,A);return this._imgObjs[D];};YAHOO.util.ImageLoader.group.prototype.registerPngBgImage=function(C,B,A){this._imgObjs[C]=new YAHOO.util.ImageLoader.pngBgImgObj(C,B,A);return this._imgObjs[C];};YAHOO.util.ImageLoader.group.prototype.fetch=function(){clearTimeout(this._timeout);for(var B=0,A=this._triggers.length;B<A;B++){YAHOO.util.Event.removeListener(this._triggers[B][0],this._triggers[B][1],this._triggers[B][2]);}for(var B=0,A=this._customTriggers.length;B<A;B++){this._customTriggers[B][0].unsubscribe(this._customTriggers[B][1],this);}this._fetchByClass();for(var C in this._imgObjs){if(YAHOO.lang.hasOwnProperty(this._imgObjs,C)){this._imgObjs[C].fetch();}}};YAHOO.util.ImageLoader.group.prototype._foldCheck=function(){var C=(document.compatMode!="CSS1Compat")?document.body.scrollTop:document.documentElement.scrollTop;var D=YAHOO.util.Dom.getViewportHeight();var A=C+D;var E=(document.compatMode!="CSS1Compat")?document.body.scrollLeft:document.documentElement.scrollLeft;var G=YAHOO.util.Dom.getViewportWidth();var I=E+G;for(var B in this._imgObjs){if(YAHOO.lang.hasOwnProperty(this._imgObjs,B)){var J=YAHOO.util.Dom.getXY(this._imgObjs[B].domId);if(J[1]<A&&J[0]<I){this._imgObjs[B].fetch();}}}if(this.className){this._classImageEls=YAHOO.util.Dom.getElementsByClassName(this.className);for(var F=0,H=this._classImageEls.length;F<H;F++){var J=YAHOO.util.Dom.getXY(this._classImageEls[F]);if(J[1]<A&&J[0]<I){YAHOO.util.Dom.removeClass(this._classImageEls[F],this.className);}}}};YAHOO.util.ImageLoader.group.prototype._fetchByClass=function(){if(!this.className){return;}if(this._classImageEls===null){this._classImageEls=YAHOO.util.Dom.getElementsByClassName(this.className);}YAHOO.util.Dom.removeClass(this._classImageEls,this.className);};YAHOO.util.ImageLoader.imgObj=function(B,A){this.domId=B;this.url=A;this.width=null;this.height=null;this.setVisible=false;this._fetched=false;};YAHOO.util.ImageLoader.imgObj.prototype.fetch=function(){if(this._fetched){return;}var A=document.getElementById(this.domId);if(!A){return;}this._applyUrl(A);if(this.setVisible){A.style.visibility="visible";}if(this.width){A.width=this.width;}if(this.height){A.height=this.height;}this._fetched=true;};YAHOO.util.ImageLoader.imgObj.prototype._applyUrl=function(A){};YAHOO.util.ImageLoader.bgImgObj=function(B,A){YAHOO.util.ImageLoader.bgImgObj.superclass.constructor.call(this,B,A);};YAHOO.lang.extend(YAHOO.util.ImageLoader.bgImgObj,YAHOO.util.ImageLoader.imgObj);YAHOO.util.ImageLoader.bgImgObj.prototype._applyUrl=function(A){A.style.backgroundImage="url('"+this.url+"')";};YAHOO.util.ImageLoader.srcImgObj=function(D,B,C,A){YAHOO.util.ImageLoader.srcImgObj.superclass.constructor.call(this,D,B);this.width=C;this.height=A;};YAHOO.lang.extend(YAHOO.util.ImageLoader.srcImgObj,YAHOO.util.ImageLoader.imgObj);YAHOO.util.ImageLoader.srcImgObj.prototype._applyUrl=function(A){A.src=this.url;};YAHOO.util.ImageLoader.pngBgImgObj=function(C,B,A){YAHOO.util.ImageLoader.pngBgImgObj.superclass.constructor.call(this,C,B);this.props=A||{};};YAHOO.lang.extend(YAHOO.util.ImageLoader.pngBgImgObj,YAHOO.util.ImageLoader.imgObj);YAHOO.util.ImageLoader.pngBgImgObj.prototype._applyUrl=function(B){if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<=6){var C=(YAHOO.lang.isUndefined(this.props.sizingMethod))?"scale":this.props.sizingMethod;var A=(YAHOO.lang.isUndefined(this.props.enabled))?"true":this.props.enabled;B.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+this.url+'", sizingMethod="'+C+'", enabled="'+A+'")';}else{B.style.backgroundImage="url('"+this.url+"')";}};YAHOO.register("imageloader",YAHOO.util.ImageLoader,{version:"2.8.1",build:"19"});
\ No newline at end of file
+if(typeof(YAHOO.util.ImageLoader)=="undefined"){YAHOO.util.ImageLoader={};}YAHOO.util.ImageLoader.group=function(A,B,C){this.name="unnamed";this._imgObjs={};this.timeoutLen=C;this._timeout=null;this._triggers=[];this._customTriggers=[];this.foldConditional=false;this.className=null;this._classImageEls=null;YAHOO.util.Event.addListener(window,"load",this._onloadTasks,this,true);this.addTrigger(A,B);};YAHOO.util.ImageLoader.group.prototype.addTrigger=function(B,C){if(!B||!C){return;}var A=function(){this.fetch();};this._triggers.push([B,C,A]);YAHOO.util.Event.addListener(B,C,A,this,true);};YAHOO.util.ImageLoader.group.prototype.addCustomTrigger=function(B){if(!B||!B instanceof YAHOO.util.CustomEvent){return;}var A=function(){this.fetch();};this._customTriggers.push([B,A]);B.subscribe(A,this,true);};YAHOO.util.ImageLoader.group.prototype._onloadTasks=function(){if(this.timeoutLen&&typeof(this.timeoutLen)=="number"&&this.timeoutLen>0){this._timeout=setTimeout(this._getFetchTimeout(),this.timeoutLen*1000);}if(this.foldConditional){this._foldCheck();}};YAHOO.util.ImageLoader.group.prototype._getFetchTimeout=function(){var A=this;return function(){A.fetch();};};YAHOO.util.ImageLoader.group.prototype.registerBgImage=function(B,A){this._imgObjs[B]=new YAHOO.util.ImageLoader.bgImgObj(B,A);return this._imgObjs[B];};YAHOO.util.ImageLoader.group.prototype.registerSrcImage=function(D,B,C,A){this._imgObjs[D]=new YAHOO.util.ImageLoader.srcImgObj(D,B,C,A);return this._imgObjs[D];};YAHOO.util.ImageLoader.group.prototype.registerPngBgImage=function(C,B,A){this._imgObjs[C]=new YAHOO.util.ImageLoader.pngBgImgObj(C,B,A);return this._imgObjs[C];};YAHOO.util.ImageLoader.group.prototype.fetch=function(){clearTimeout(this._timeout);for(var B=0,A=this._triggers.length;B<A;B++){YAHOO.util.Event.removeListener(this._triggers[B][0],this._triggers[B][1],this._triggers[B][2]);}for(var B=0,A=this._customTriggers.length;B<A;B++){this._customTriggers[B][0].unsubscribe(this._customTriggers[B][1],this);}this._fetchByClass();for(var C in this._imgObjs){if(YAHOO.lang.hasOwnProperty(this._imgObjs,C)){this._imgObjs[C].fetch();}}};YAHOO.util.ImageLoader.group.prototype._foldCheck=function(){var C=(document.compatMode!="CSS1Compat")?document.body.scrollTop:document.documentElement.scrollTop;var D=YAHOO.util.Dom.getViewportHeight();var A=C+D;var E=(document.compatMode!="CSS1Compat")?document.body.scrollLeft:document.documentElement.scrollLeft;var G=YAHOO.util.Dom.getViewportWidth();var I=E+G;for(var B in this._imgObjs){if(YAHOO.lang.hasOwnProperty(this._imgObjs,B)){var J=YAHOO.util.Dom.getXY(this._imgObjs[B].domId);if(J[1]<A&&J[0]<I){this._imgObjs[B].fetch();}}}if(this.className){this._classImageEls=YAHOO.util.Dom.getElementsByClassName(this.className);for(var F=0,H=this._classImageEls.length;F<H;F++){var J=YAHOO.util.Dom.getXY(this._classImageEls[F]);if(J[1]<A&&J[0]<I){YAHOO.util.Dom.removeClass(this._classImageEls[F],this.className);}}}};YAHOO.util.ImageLoader.group.prototype._fetchByClass=function(){if(!this.className){return;}if(this._classImageEls===null){this._classImageEls=YAHOO.util.Dom.getElementsByClassName(this.className);}YAHOO.util.Dom.removeClass(this._classImageEls,this.className);};YAHOO.util.ImageLoader.imgObj=function(B,A){this.domId=B;this.url=A;this.width=null;this.height=null;this.setVisible=false;this._fetched=false;};YAHOO.util.ImageLoader.imgObj.prototype.fetch=function(){if(this._fetched){return;}var A=document.getElementById(this.domId);if(!A){return;}this._applyUrl(A);if(this.setVisible){A.style.visibility="visible";}if(this.width){A.width=this.width;}if(this.height){A.height=this.height;}this._fetched=true;};YAHOO.util.ImageLoader.imgObj.prototype._applyUrl=function(A){};YAHOO.util.ImageLoader.bgImgObj=function(B,A){YAHOO.util.ImageLoader.bgImgObj.superclass.constructor.call(this,B,A);};YAHOO.lang.extend(YAHOO.util.ImageLoader.bgImgObj,YAHOO.util.ImageLoader.imgObj);YAHOO.util.ImageLoader.bgImgObj.prototype._applyUrl=function(A){A.style.backgroundImage="url('"+this.url+"')";};YAHOO.util.ImageLoader.srcImgObj=function(D,B,C,A){YAHOO.util.ImageLoader.srcImgObj.superclass.constructor.call(this,D,B);this.width=C;this.height=A;};YAHOO.lang.extend(YAHOO.util.ImageLoader.srcImgObj,YAHOO.util.ImageLoader.imgObj);YAHOO.util.ImageLoader.srcImgObj.prototype._applyUrl=function(A){A.src=this.url;};YAHOO.util.ImageLoader.pngBgImgObj=function(C,B,A){YAHOO.util.ImageLoader.pngBgImgObj.superclass.constructor.call(this,C,B);this.props=A||{};};YAHOO.lang.extend(YAHOO.util.ImageLoader.pngBgImgObj,YAHOO.util.ImageLoader.imgObj);YAHOO.util.ImageLoader.pngBgImgObj.prototype._applyUrl=function(B){if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<=6){var C=(YAHOO.lang.isUndefined(this.props.sizingMethod))?"scale":this.props.sizingMethod;var A=(YAHOO.lang.isUndefined(this.props.enabled))?"true":this.props.enabled;B.style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(src="'+this.url+'", sizingMethod="'+C+'", enabled="'+A+'")';}else{B.style.backgroundImage="url('"+this.url+"')";}};YAHOO.register("imageloader",YAHOO.util.ImageLoader,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/imageloader/imageloader.js b/build/imageloader/imageloader.js
index b4ee8fc..ae2fc0d 100644
--- a/build/imageloader/imageloader.js
+++ b/build/imageloader/imageloader.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The ImageLoader Utility is a framework to dynamically load images according to certain triggers,
@@ -478,4 +478,4 @@ YAHOO.util.ImageLoader.pngBgImgObj.prototype._applyUrl = function(el) {
 		el.style.backgroundImage = "url('" + this.url + "')";
 	}
 };
-YAHOO.register("imageloader", YAHOO.util.ImageLoader, {version: "2.8.1", build: "19"});
+YAHOO.register("imageloader", YAHOO.util.ImageLoader, {version: "2.8.2r1", build: "7"});
diff --git a/build/json/json-debug.js b/build/json/json-debug.js
index 413dc35..1a3fdef 100644
--- a/build/json/json-debug.js
+++ b/build/json/json-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides methods to parse JSON strings and convert objects to JSON strings.
@@ -535,4 +535,4 @@ YAHOO.lang.JSON = {
 YAHOO.lang.JSON.isValid = YAHOO.lang.JSON.isSafe;
 
 })();
-YAHOO.register("json", YAHOO.lang.JSON, {version: "2.8.1", build: "19"});
+YAHOO.register("json", YAHOO.lang.JSON, {version: "2.8.2r1", build: "7"});
diff --git a/build/json/json-min.js b/build/json/json-min.js
index cada557..263ce8c 100644
--- a/build/json/json-min.js
+++ b/build/json/json-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-(function(){var l=YAHOO.lang,isFunction=l.isFunction,isObject=l.isObject,isArray=l.isArray,_toStr=Object.prototype.toString,Native=(YAHOO.env.ua.caja?window:this).JSON,_UNICODE_EXCEPTIONS=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,_ESCAPES=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,_VALUES=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,_BRACKETS=/(?:^|:|,)(?:\s*\[)+/g,_UNSAFE=/^[\],:{}\s]*$/,_SPECIAL_CHARS=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,_CHARS={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},UNDEFINED="undefined",OBJECT="object",NULL="null",STRING="string",NUMBER="number",BOOLEAN="boolean",DATE="date",_allowable={"undefined":UNDEFINED,"string":STRING,"[object String]":STRING,"number":NUMBER,"[object Number]":NUMBER,"boolean":BOOLEAN,"[object Boolean]":BOOLEAN,"[object Date]":DATE,"[object RegExp]":OBJECT},EMPTY="",OPEN_O="{",CLOSE_O="}",OPEN_A="[",CLOSE_A="]",COMMA=",",COMMA_CR=",\n",CR="\n",COLON=":",COLON_SP=": ",QUOTE='"';Native=_toStr.call(Native)==="[object JSON]"&&Native;function _char(c){if(!_CHARS[c]){_CHARS[c]="\\u"+("0000"+(+(c.charCodeAt(0))).toString(16)).slice(-4);}return _CHARS[c];}function _revive(data,reviver){var walk=function(o,key){var k,v,value=o[key];if(value&&typeof value==="object"){for(k in value){if(l.hasOwnProperty(value,k)){v=walk(value,k);if(v===undefined){delete value[k];}else{value[k]=v;}}}}return reviver.call(o,key,value);};return typeof reviver==="function"?walk({"":data},""):data;}function _prepare(s){return s.replace(_UNICODE_EXCEPTIONS,_char);}function _isSafe(str){return l.isString(str)&&_UNSAFE.test(str.replace(_ESCAPES,"@").replace(_VALUES,"]").replace(_BRACKETS,""));}function _parse(s,reviver){s=_prepare(s);if(_isSafe(s)){return _revive(eval("("+s+")"),reviver);}throw new SyntaxError("JSON.parse");}function _type(o){var t=typeof o;return _allowable[t]||_allowable[_toStr.call(o)]||(t===OBJECT?(o?OBJECT:NULL):UNDEFINED);}function _string(s){return QUOTE+s.replace(_SPECIAL_CHARS,_char)+QUOTE;}function _indent(s,space){return s.replace(/^/gm,space);}function _stringify(o,w,space){if(o===undefined){return undefined;}var replacer=isFunction(w)?w:null,format=_toStr.call(space).match(/String|Number/)||[],_date=YAHOO.lang.JSON.dateToString,stack=[],tmp,i,len;if(replacer||!isArray(w)){w=undefined;}if(w){tmp={};for(i=0,len=w.length;i<len;++i){tmp[w[i]]=true;}w=tmp;}space=format[0]==="Number"?new Array(Math.min(Math.max(0,space),10)+1).join(" "):(space||EMPTY).slice(0,10);function _serialize(h,key){var value=h[key],t=_type(value),a=[],colon=space?COLON_SP:COLON,arr,i,keys,k,v;if(isObject(value)&&isFunction(value.toJSON)){value=value.toJSON(key);}else{if(t===DATE){value=_date(value);}}if(isFunction(replacer)){value=replacer.call(h,key,value);}if(value!==h[key]){t=_type(value);}switch(t){case DATE:case OBJECT:break;case STRING:return _string(value);case NUMBER:return isFinite(value)?value+EMPTY:NULL;case BOOLEAN:return value+EMPTY;case NULL:return NULL;default:return undefined;}for(i=stack.length-1;i>=0;--i){if(stack[i]===value){throw new Error("JSON.stringify. Cyclical reference");}}arr=isArray(value);stack.push(value);if(arr){for(i=value.length-1;i>=0;--i){a[i]=_serialize(value,i)||NULL;}}else{keys=w||value;i=0;for(k in keys){if(keys.hasOwnProperty(k)){v=_serialize(value,k);if(v){a[i++]=_string(k)+colon+v;}}}}stack.pop();if(space&&a.length){return arr?OPEN_A+CR+_indent(a.join(COMMA_CR),space)+CR+CLOSE_A:OPEN_O+CR+_indent(a.join(COMMA_CR),space)+CR+CLOSE_O;}else{return arr?OPEN_A+a.join(COMMA)+CLOSE_A:OPEN_O+a.join(COMMA)+CLOSE_O;}}return _serialize({"":o},"");}YAHOO.lang.JSON={useNativeParse:!!Native,useNativeStringify:!!Native,isSafe:function(s){return _isSafe(_prepare(s));},parse:function(s,reviver){return Native&&YAHOO.lang.JSON.useNativeParse?Native.parse(s,reviver):_parse(s,reviver);},stringify:function(o,w,space){return Native&&YAHOO.lang.JSON.useNativeStringify?Native.stringify(o,w,space):_stringify(o,w,space);},dateToString:function(d){function _zeroPad(v){return v<10?"0"+v:v;}return d.getUTCFullYear()+"-"+_zeroPad(d.getUTCMonth()+1)+"-"+_zeroPad(d.getUTCDate())+"T"+_zeroPad(d.getUTCHours())+COLON+_zeroPad(d.getUTCMinutes())+COLON+_zeroPad(d.getUTCSeconds())+"Z";},stringToDate:function(str){var m=str.match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{3}))?Z$/);if(m){var d=new Date();d.setUTCFullYear(m[1],m[2]-1,m[3]);d.setUTCHours(m[4],m[5],m[6],(m[7]||0));return d;}return str;}};YAHOO.lang.JSON.isValid=YAHOO.lang.JSON.isSafe;})();YAHOO.register("json",YAHOO.lang.JSON,{version:"2.8.1",build:"19"});
\ No newline at end of file
+(function(){var l=YAHOO.lang,isFunction=l.isFunction,isObject=l.isObject,isArray=l.isArray,_toStr=Object.prototype.toString,Native=(YAHOO.env.ua.caja?window:this).JSON,_UNICODE_EXCEPTIONS=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,_ESCAPES=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,_VALUES=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,_BRACKETS=/(?:^|:|,)(?:\s*\[)+/g,_UNSAFE=/^[\],:{}\s]*$/,_SPECIAL_CHARS=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,_CHARS={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},UNDEFINED="undefined",OBJECT="object",NULL="null",STRING="string",NUMBER="number",BOOLEAN="boolean",DATE="date",_allowable={"undefined":UNDEFINED,"string":STRING,"[object String]":STRING,"number":NUMBER,"[object Number]":NUMBER,"boolean":BOOLEAN,"[object Boolean]":BOOLEAN,"[object Date]":DATE,"[object RegExp]":OBJECT},EMPTY="",OPEN_O="{",CLOSE_O="}",OPEN_A="[",CLOSE_A="]",COMMA=",",COMMA_CR=",\n",CR="\n",COLON=":",COLON_SP=": ",QUOTE='"';Native=_toStr.call(Native)==="[object JSON]"&&Native;function _char(c){if(!_CHARS[c]){_CHARS[c]="\\u"+("0000"+(+(c.charCodeAt(0))).toString(16)).slice(-4);}return _CHARS[c];}function _revive(data,reviver){var walk=function(o,key){var k,v,value=o[key];if(value&&typeof value==="object"){for(k in value){if(l.hasOwnProperty(value,k)){v=walk(value,k);if(v===undefined){delete value[k];}else{value[k]=v;}}}}return reviver.call(o,key,value);};return typeof reviver==="function"?walk({"":data},""):data;}function _prepare(s){return s.replace(_UNICODE_EXCEPTIONS,_char);}function _isSafe(str){return l.isString(str)&&_UNSAFE.test(str.replace(_ESCAPES,"@").replace(_VALUES,"]").replace(_BRACKETS,""));}function _parse(s,reviver){s=_prepare(s);if(_isSafe(s)){return _revive(eval("("+s+")"),reviver);}throw new SyntaxError("JSON.parse");}function _type(o){var t=typeof o;return _allowable[t]||_allowable[_toStr.call(o)]||(t===OBJECT?(o?OBJECT:NULL):UNDEFINED);}function _string(s){return QUOTE+s.replace(_SPECIAL_CHARS,_char)+QUOTE;}function _indent(s,space){return s.replace(/^/gm,space);}function _stringify(o,w,space){if(o===undefined){return undefined;}var replacer=isFunction(w)?w:null,format=_toStr.call(space).match(/String|Number/)||[],_date=YAHOO.lang.JSON.dateToString,stack=[],tmp,i,len;if(replacer||!isArray(w)){w=undefined;}if(w){tmp={};for(i=0,len=w.length;i<len;++i){tmp[w[i]]=true;}w=tmp;}space=format[0]==="Number"?new Array(Math.min(Math.max(0,space),10)+1).join(" "):(space||EMPTY).slice(0,10);function _serialize(h,key){var value=h[key],t=_type(value),a=[],colon=space?COLON_SP:COLON,arr,i,keys,k,v;if(isObject(value)&&isFunction(value.toJSON)){value=value.toJSON(key);}else{if(t===DATE){value=_date(value);}}if(isFunction(replacer)){value=replacer.call(h,key,value);}if(value!==h[key]){t=_type(value);}switch(t){case DATE:case OBJECT:break;case STRING:return _string(value);case NUMBER:return isFinite(value)?value+EMPTY:NULL;case BOOLEAN:return value+EMPTY;case NULL:return NULL;default:return undefined;}for(i=stack.length-1;i>=0;--i){if(stack[i]===value){throw new Error("JSON.stringify. Cyclical reference");}}arr=isArray(value);stack.push(value);if(arr){for(i=value.length-1;i>=0;--i){a[i]=_serialize(value,i)||NULL;}}else{keys=w||value;i=0;for(k in keys){if(keys.hasOwnProperty(k)){v=_serialize(value,k);if(v){a[i++]=_string(k)+colon+v;}}}}stack.pop();if(space&&a.length){return arr?OPEN_A+CR+_indent(a.join(COMMA_CR),space)+CR+CLOSE_A:OPEN_O+CR+_indent(a.join(COMMA_CR),space)+CR+CLOSE_O;}else{return arr?OPEN_A+a.join(COMMA)+CLOSE_A:OPEN_O+a.join(COMMA)+CLOSE_O;}}return _serialize({"":o},"");}YAHOO.lang.JSON={useNativeParse:!!Native,useNativeStringify:!!Native,isSafe:function(s){return _isSafe(_prepare(s));},parse:function(s,reviver){return Native&&YAHOO.lang.JSON.useNativeParse?Native.parse(s,reviver):_parse(s,reviver);},stringify:function(o,w,space){return Native&&YAHOO.lang.JSON.useNativeStringify?Native.stringify(o,w,space):_stringify(o,w,space);},dateToString:function(d){function _zeroPad(v){return v<10?"0"+v:v;}return d.getUTCFullYear()+"-"+_zeroPad(d.getUTCMonth()+1)+"-"+_zeroPad(d.getUTCDate())+"T"+_zeroPad(d.getUTCHours())+COLON+_zeroPad(d.getUTCMinutes())+COLON+_zeroPad(d.getUTCSeconds())+"Z";},stringToDate:function(str){var m=str.match(/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{3}))?Z$/);if(m){var d=new Date();d.setUTCFullYear(m[1],m[2]-1,m[3]);d.setUTCHours(m[4],m[5],m[6],(m[7]||0));return d;}return str;}};YAHOO.lang.JSON.isValid=YAHOO.lang.JSON.isSafe;})();YAHOO.register("json",YAHOO.lang.JSON,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/json/json.js b/build/json/json.js
index 413dc35..1a3fdef 100644
--- a/build/json/json.js
+++ b/build/json/json.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides methods to parse JSON strings and convert objects to JSON strings.
@@ -535,4 +535,4 @@ YAHOO.lang.JSON = {
 YAHOO.lang.JSON.isValid = YAHOO.lang.JSON.isSafe;
 
 })();
-YAHOO.register("json", YAHOO.lang.JSON, {version: "2.8.1", build: "19"});
+YAHOO.register("json", YAHOO.lang.JSON, {version: "2.8.2r1", build: "7"});
diff --git a/build/layout/assets/layout-core.css b/build/layout/assets/layout-core.css
index ed0f68a..f39652e 100644
--- a/build/layout/assets/layout-core.css
+++ b/build/layout/assets/layout-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-layout-loading {
     visibility: hidden;
diff --git a/build/layout/assets/skins/sam/layout-skin.css b/build/layout/assets/skins/sam/layout-skin.css
index 55d1091..0592ab3 100644
--- a/build/layout/assets/skins/sam/layout-skin.css
+++ b/build/layout/assets/skins/sam/layout-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Remove the dotted border on the resize proxy */
 .yui-skin-sam .yui-layout .yui-resize-proxy {
diff --git a/build/layout/assets/skins/sam/layout.css b/build/layout/assets/skins/sam/layout.css
index 4c2dc59..3dff4fe 100644
--- a/build/layout/assets/skins/sam/layout.css
+++ b/build/layout/assets/skins/sam/layout.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-layout-loading{visibility:hidden;}body.yui-layout{overflow:hidden;position:relative;padding:0;margin:0;}.yui-layout-doc{position:relative;overflow:hidden;padding:0;margin:0;}.yui-layout-unit{height:50px;width:50px;padding:0;margin:0;float:none;z-index:0;}.yui-layout-unit-top{position:absolute;top:0;left:0;width:100%;}.yui-layout-unit-left{position:absolute;top:0;left:0;}.yui-layout-unit-right{position:absolute;top:0;right:0;}.yui-layout-unit-bottom{position:absolute;bottom:0;left:0;width:100%;}.yui-layout-unit-center{position:absolute;top:0;left:0;width:100%;}.yui-layout div.yui-layout-hd{position:absolute;top:0;left:0;zoom:1;width:100%;}.yui-layout div.yui-layout-bd{position:absolute;top:0;left:0;zoom:1;width:100%;}.yui-layout .yui-layout-noscroll div.yui-layout-bd{overflow:hidden;}.yui-layout .yui-layout-scroll div.yui-layout-bd{overflow:auto;}.yui-layout div.yui-layout-ft{position:absolute;bottom:0;left:0;width:100%;zoom:1;}.yui-layout .yui-layout-unit div.yui-layout-hd h2{text-align:left;}.yui-layout .yui-layout-unit div.yui-layout-hd .collapse{cursor:pointer;height:13px;position:absolute;right:2px;top:2px;width:17px;font-size:0;}.yui-layout .yui-layout-unit div.yui-layout-hd .close{cursor:pointer;height:13px;position:absolute;right:2px;top:2px;width:17px;font-size:0;}.yui-layout .yui-layout-unit div.yui-layout-hd .collapse-close{right:25px;}.yui-layout .yui-layout-clip{position:absolute;height:20px;background-color:#c0c0c0;display:none;}.yui-layout .yui-layout-clip .collapse{cursor:pointer;height:13px;position:absolute;right:2px;top:2px;width:17px;font-size:0;}.yui-layout .yui-layout-wrap{height:100%;width:100%;position:absolute;left:0;}.yui-skin-sam .yui-layout .yui-resize-proxy{border:none;font-size:0;margin:0;padding:0;}.yui-skin-sam .yui-layout .yui-resize-resizing .yui-resize-handle{display:none;zoom:1;}.yui-skin-sam .yui-layout .yui-resize-proxy div{position:absolute;border:1px solid #808080;background-color:#EDF5FF;}.yui-skin-sam .yui-layout .yui-resize .yui-resize-handle-active{zoom:1;}.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-l{width:5px;height:100%;top:0;left:0;zoom:1;}.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-r{width:5px;top:0;right:0;height:100%;position:absolute;zoom:1;}.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-b{width:100%;bottom:0;left:0;height:5px;}.yui-skin-sam .yui-layout .yui-resize-proxy .yui-layout-handle-t{width:100%;top:0;left:0;height:5px;}.yui-skin-sam .yui-layout .yui-layout-unit-left div.yui-layout-hd .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -160px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip-left .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -140px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit-right div.yui-layout-hd .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -200px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip-right .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -120px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit-top div.yui-layout-hd .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -220px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip-top .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -240px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit-bottom div.yui-layout-hd .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -260px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip-bottom .collapse{background:transparent url(layout_sprite.png) no-repeat -20px -180px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-hd .close{background:transparent url(layout_sprite.png) no-repeat -20px -100px;border:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-hd{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1400px;border:1px solid #808080;}.yui-skin-sam .yui-layout{background-color:#EDF5FF;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-hd h2{font-weight:bold;color:#fff;padding:3px;margin:0;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd{border:1px solid #808080;border-bottom:none;border-top:none;*border-bottom-width:0;*border-top-width:0;background-color:#f2f2f2;text-align:left;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd-noft{border-bottom:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-unit div.yui-layout-bd-nohd{border-top:1px solid #808080;}.yui-skin-sam .yui-layout .yui-layout-clip{position:absolute;height:20px;background-color:#EDF5FF;display:none;border:1px solid #808080;}.yui-skin-sam .yui-layout div.yui-layout-ft{border:1px solid #808080;border-top:none;*border-top-width:0;background-color:#f2f2f2;}.yui-skin-sam .yui-layout-unit .yui-resize-handle{background-color:transparent;zoom:1;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-r{right:0;top:0;background-image:none;zoom:1;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-l{left:0;top:0;background-image:none;zoom:1;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-b{right:0;bottom:0;background-image:none;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-t{right:0;top:0;background-image:none;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-r .yui-layout-resize-knob,.yui-skin-sam .yui-layout-unit .yui-resize-handle-l .yui-layout-resize-knob{position:absolute;height:16px;width:6px;top:45%;left:0;display:block;background:transparent url(layout_sprite.png) no-repeat 0 -5px;}.yui-skin-sam .yui-layout-unit .yui-resize-handle-t .yui-layout-resize-knob,.yui-skin-sam .yui-layout-unit .yui-resize-handle-b .yui-layout-resize-knob{position:absolute;height:6px;width:16px;left:45%;background:transparent url(layout_sprite.png) no-repeat -20px 0;zoom:1;}
diff --git a/build/layout/layout-debug.js b/build/layout/layout-debug.js
index 4c24f42..c5dec6a 100644
--- a/build/layout/layout-debug.js
+++ b/build/layout/layout-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * @description <p>Provides a fixed layout containing, top, bottom, left, right and center layout units. It can be applied to either the body or an element.</p>
@@ -2302,4 +2302,4 @@ version: 2.8.1
 
     YAHOO.widget.LayoutUnit = LayoutUnit;
 })();
-YAHOO.register("layout", YAHOO.widget.Layout, {version: "2.8.1", build: "19"});
+YAHOO.register("layout", YAHOO.widget.Layout, {version: "2.8.2r1", build: "7"});
diff --git a/build/layout/layout-min.js b/build/layout/layout-min.js
index cbb6e9a..e4ddb54 100644
--- a/build/layout/layout-min.js
+++ b/build/layout/layout-min.js
@@ -2,10 +2,10 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var C=YAHOO.util.Dom,A=YAHOO.util.Event,D=YAHOO.lang;var B=function(F,E){if(D.isObject(F)&&!F.tagName){E=F;F=null;}if(D.isString(F)){if(C.get(F)){F=C.get(F);}}if(!F){F=document.body;}var G={element:F,attributes:E||{}};B.superclass.constructor.call(this,G.element,G.attributes);};B._instances={};B.getLayoutById=function(E){if(B._instances[E]){return B._instances[E];}return false;};YAHOO.extend(B,YAHOO.util.Element,{browser:function(){var E=YAHOO.env.ua;E.standardsMode=false;E.secure=false;return E;}(),_units:null,_rendered:null,_zIndex:null,_sizes:null,_setBodySize:function(G){var F=0,E=0;G=((G===false)?false:true);if(this._isBody){F=C.getClientHeight();E=C.getClientWidth();}else{F=parseInt(this.getStyle("height"),10);E=parseInt(this.getStyle("width"),10);if(isNaN(E)){E=this.get("element").clientWidth;}if(isNaN(F)){F=this.get("element").clientHeight;}}if(this.get("minWidth")){if(E<this.get("minWidth")){E=this.get("minWidth");}}if(this.get("minHeight")){if(F<this.get("minHeight")){F=this.get("minHeight");}}if(G){if(F<0){F=0;}if(E<0){E=0;}C.setStyle(this._doc,"height",F+"px");C.setStyle(this._doc,"width",E+"px");}this._sizes.doc={h:F,w:E};this._setSides(G);},_setSides:function(J){var H=((this._units.top)?this._units.top.get("height"):0),G=((this._units.bottom)?this._units.bottom.get("height"):0),I=this._sizes.doc.h,E=this._sizes.doc.w;J=((J===false)?false:true);this._sizes.top={h:H,w:((this._units.top)?E:0),t:0};this._sizes.bottom={h:G,w:((this._units.bottom)?E:0)};var F=(I-(H+G));this._sizes.left={h:F,w:((this._units.left)?this._units.left.get("width"):0)};this._sizes.right={h:F,w:((this._units.right)?this._units.right.get("width"):0),l:((this._units.right)?(E-this._units.right.get("width")):0),t:((this._units.top)?this._sizes.top.h:0)};if(this._units.right&&J){this._units.right.set("top",this._sizes.right.t);if(!this._units.right._collapsing){this._units.right.set("left",this._sizes.right.l);}this._units.right.set("height",this._sizes.right.h,true);}if(this._units.left){this._sizes.left.l=0;if(this._units.top){this._sizes.left.t=this._sizes.top.h;}else{this._sizes.left.t=0;}if(J){this._units.left.set("top",this._sizes.left.t);this._units.left.set("height",this._sizes.left.h,true);this._units.left.set("left",0);}}if(this._units.bottom){this._sizes.bottom.t=this._sizes.top.h+this._sizes.left.h;if(J){this._units.bottom.set("top",this._sizes.bottom.t);this._units.bottom.set("width",this._sizes.bottom.w,true);}}if(this._units.top){if(J){this._units.top.set("width",this._sizes.top.w,true);}}this._setCenter(J);},_setCenter:function(G){G=((G===false)?false:true);var F=this._sizes.left.h;var E=(this._sizes.doc.w-(this._sizes.left.w+this._sizes.right.w));if(G){this._units.center.set("height",F,true);this._units.center.set("width",E,true);this._units.center.set("top",this._sizes.top.h);this._units.center.set("left",this._sizes.left.w);}this._sizes.center={h:F,w:E,t:this._sizes.top.h,l:this._sizes.left.w};},getSizes:function(){return this._sizes;},getUnitById:function(E){return YAHOO.widget.LayoutUnit.getLayoutUnitById(E);},getUnitByPosition:function(E){if(E){E=E.toLowerCase();if(this._units[E]){return this._units[E];}return false;}return false;},removeUnit:function(E){delete this._units[E.get("position")];this.resize();},addUnit:function(G){if(!G.position){return false;}if(this._units[G.position]){return false;}var H=null,J=null;if(G.id){if(C.get(G.id)){H=C.get(G.id);delete G.id;}}if(G.element){H=G.element;}if(!J){J=document.createElement("div");var L=C.generateId();J.id=L;}if(!H){H=document.createElement("div");}C.addClass(H,"yui-layout-wrap");if(this.browser.ie&&!this.browser.standardsMode){J.style.zoom=1;H.style.zoom=1;}if(J.firstChild){J.insertBefore(H,J.firstChild);}else{J.appendChild(H);}this._doc.appendChild(J);var I=false,F=false;if(G.height){I=parseInt(G.height,10);}if(G.width){F=parseInt(G.width,10);}var E={};YAHOO.lang.augmentObject(E,G);E.parent=this;E.wrap=H;E.height=I;E.width=F;var K=new YAHOO.widget.LayoutUnit(J,E);K.on("heightChange",this.resize,{unit:K},this);K.on("widthChange",this.resize,{unit:K},this);K.on("gutterChange",this.resize,{unit:K},this);this._units[G.position]=K;if(this._rendered){this.resize();}return K;},_createUnits:function(){var E=this.get("units");for(var F in E){if(D.hasOwnProperty(E,F)){this.addUnit(E[F]);}}},resize:function(H,G){var E=H;if(E&&E.prevValue&&E.newValue){if(E.prevValue==E.newValue){if(G){if(G.unit){if(!G.unit.get("animate")){H=false;}}}}}H=((H===false)?false:true);if(H){var F=this.fireEvent("beforeResize");if(F===false){H=false;}if(this.browser.ie){if(this._isBody){C.removeClass(document.documentElement,"yui-layout");C.addClass(document.documentElement,"yui-layout");}else{this.removeClass("yui-layout");this.addClass("yui-layout");}}}this._setBodySize(H);if(H){this.fireEvent("resize",{target:this,sizes:this._sizes,event:E});}return this;},_setupBodyElements:function(){this._doc=C.get("layout-doc");if(!this._doc){this._doc=document.createElement("div");this._doc.id="layout-doc";if(document.body.firstChild){document.body.insertBefore(this._doc,document.body.firstChild);}else{document.body.appendChild(this._doc);}}this._createUnits();this._setBodySize();A.on(window,"resize",this.resize,this,true);C.addClass(this._doc,"yui-layout-doc");},_setupElements:function(){this._doc=this.getElementsByClassName("yui-layout-doc")[0];if(!this._doc){this._doc=document.createElement("div");this.get("element").appendChild(this._doc);}this._createUnits();this._setBodySize();C.addClass(this._doc,"yui-layout-doc");},_isBody:null,_doc:null,init:function(F,E){this._zIndex=0;B.superclass.init.call(this,F,E);if(this.get("parent")){this._zIndex=this.get("parent")._zIndex+10;}this._sizes={};this._units={};var G=F;if(!D.isString(G)){G=C.generateId(G);}B._instances[G]=this;},render:function(){this._stamp();var E=this.get("element");if(E&&E.tagName&&(E.tagName.toLowerCase()=="body")){this._isBody=true;C.addClass(document.body,"yui-layout");if(C.hasClass(document.body,"yui-skin-sam")){C.addClass(document.documentElement,"yui-skin-sam");
 C.removeClass(document.body,"yui-skin-sam");}this._setupBodyElements();}else{this._isBody=false;this.addClass("yui-layout");this._setupElements();}this.resize();this._rendered=true;this.fireEvent("render");return this;},_stamp:function(){if(document.compatMode=="CSS1Compat"){this.browser.standardsMode=true;}if(window.location.href.toLowerCase().indexOf("https")===0){C.addClass(document.documentElement,"secure");this.browser.secure=true;}},initAttributes:function(E){B.superclass.initAttributes.call(this,E);this.setAttributeConfig("units",{writeOnce:true,validator:YAHOO.lang.isArray,value:E.units||[]});this.setAttributeConfig("minHeight",{value:E.minHeight||false,validator:YAHOO.lang.isNumber});this.setAttributeConfig("minWidth",{value:E.minWidth||false,validator:YAHOO.lang.isNumber});this.setAttributeConfig("height",{value:E.height||false,validator:YAHOO.lang.isNumber,method:function(F){if(F<0){F=0;}this.setStyle("height",F+"px");}});this.setAttributeConfig("width",{value:E.width||false,validator:YAHOO.lang.isNumber,method:function(F){if(F<0){F=0;}this.setStyle("width",F+"px");}});this.setAttributeConfig("parent",{writeOnce:true,value:E.parent||false,method:function(F){if(F){F.on("resize",this.resize,this,true);}}});},destroy:function(){var G=this.get("parent");if(G){G.removeListener("resize",this.resize,this,true);}A.removeListener(window,"resize",this.resize,this,true);this.unsubscribeAll();for(var E in this._units){if(D.hasOwnProperty(this._units,E)){if(this._units[E]){this._units[E].destroy(true);}}}A.purgeElement(this.get("element"));this.get("parentNode").removeChild(this.get("element"));delete YAHOO.widget.Layout._instances[this.get("id")];for(var F in this){if(D.hasOwnProperty(this,F)){this[F]=null;delete this[F];}}if(G){G.resize();}},toString:function(){if(this.get){return"Layout #"+this.get("id");}return"Layout";}});YAHOO.widget.Layout=B;})();(function(){var D=YAHOO.util.Dom,C=YAHOO.util.Selector,A=YAHOO.util.Event,E=YAHOO.lang;var B=function(G,F){var H={element:G,attributes:F||{}};B.superclass.constructor.call(this,H.element,H.attributes);};B._instances={};B.getLayoutUnitById=function(F){if(B._instances[F]){return B._instances[F];}return false;};YAHOO.extend(B,YAHOO.util.Element,{STR_CLOSE:"Click to close this pane.",STR_COLLAPSE:"Click to collapse this pane.",STR_EXPAND:"Click to expand this pane.",LOADING_CLASSNAME:"loading",browser:null,_sizes:null,_anim:null,_resize:null,_clip:null,_gutter:null,header:null,body:null,footer:null,_collapsed:null,_collapsing:null,_lastWidth:null,_lastHeight:null,_lastTop:null,_lastLeft:null,_lastScroll:null,_lastCenterScroll:null,_lastScrollTop:null,resize:function(F){var G=this.fireEvent("beforeResize");if(G===false){return this;}if(!this._collapsing||(F===true)){var N=this.get("scroll");this.set("scroll",false);var K=this._getBoxSize(this.header),J=this._getBoxSize(this.footer),L=[this.get("height"),this.get("width")];var H=(L[0]-K[0]-J[0])-(this._gutter.top+this._gutter.bottom),M=L[1]-(this._gutter.left+this._gutter.right);var O=(H+(K[0]+J[0])),I=M;if(this._collapsed&&!this._collapsing){this._setHeight(this._clip,O);this._setWidth(this._clip,I);D.setStyle(this._clip,"top",this.get("top")+this._gutter.top+"px");D.setStyle(this._clip,"left",this.get("left")+this._gutter.left+"px");}else{if(!this._collapsed||(this._collapsed&&this._collapsing)){O=this._setHeight(this.get("wrap"),O);I=this._setWidth(this.get("wrap"),I);this._sizes.wrap.h=O;this._sizes.wrap.w=I;D.setStyle(this.get("wrap"),"top",this._gutter.top+"px");D.setStyle(this.get("wrap"),"left",this._gutter.left+"px");this._sizes.header.w=this._setWidth(this.header,I);this._sizes.header.h=K[0];this._sizes.footer.w=this._setWidth(this.footer,I);this._sizes.footer.h=J[0];D.setStyle(this.footer,"bottom","0px");this._sizes.body.h=this._setHeight(this.body,(O-(K[0]+J[0])));this._sizes.body.w=this._setWidth(this.body,I);D.setStyle(this.body,"top",K[0]+"px");this.set("scroll",N);this.fireEvent("resize");}}}return this;},_setWidth:function(H,G){if(H){var F=this._getBorderSizes(H);G=(G-(F[1]+F[3]));G=this._fixQuirks(H,G,"w");if(G<0){G=0;}D.setStyle(H,"width",G+"px");}return G;},_setHeight:function(H,G){if(H){var F=this._getBorderSizes(H);G=(G-(F[0]+F[2]));G=this._fixQuirks(H,G,"h");if(G<0){G=0;}D.setStyle(H,"height",G+"px");}return G;},_fixQuirks:function(I,L,G){var K=0,H=2;if(G=="w"){K=1;H=3;}if((this.browser.ie<8)&&!this.browser.standardsMode){var F=this._getBorderSizes(I),J=this._getBorderSizes(I.parentNode);if((F[K]===0)&&(F[H]===0)){if((J[K]!==0)&&(J[H]!==0)){L=(L-(J[K]+J[H]));}}else{if((J[K]===0)&&(J[H]===0)){L=(L+(F[K]+F[H]));}}}return L;},_getBoxSize:function(H){var G=[0,0];if(H){if(this.browser.ie&&!this.browser.standardsMode){H.style.zoom=1;}var F=this._getBorderSizes(H);G[0]=H.clientHeight+(F[0]+F[2]);G[1]=H.clientWidth+(F[1]+F[3]);}return G;},_getBorderSizes:function(H){var G=[];H=H||this.get("element");if(this.browser.ie&&!this.browser.standardsMode){H.style.zoom=1;}G[0]=parseInt(D.getStyle(H,"borderTopWidth"),10);G[1]=parseInt(D.getStyle(H,"borderRightWidth"),10);G[2]=parseInt(D.getStyle(H,"borderBottomWidth"),10);G[3]=parseInt(D.getStyle(H,"borderLeftWidth"),10);for(var F=0;F<G.length;F++){if(isNaN(G[F])){G[F]=0;}}return G;},_createClip:function(){if(!this._clip){this._clip=document.createElement("div");this._clip.className="yui-layout-clip yui-layout-clip-"+this.get("position");this._clip.innerHTML='<div class="collapse"></div>';var F=this._clip.firstChild;F.title=this.STR_EXPAND;A.on(F,"click",this.expand,this,true);this.get("element").parentNode.appendChild(this._clip);}},_toggleClip:function(){if(!this._collapsed){var J=this._getBoxSize(this.header),K=this._getBoxSize(this.footer),I=[this.get("height"),this.get("width")];var H=(I[0]-J[0]-K[0])-(this._gutter.top+this._gutter.bottom),F=I[1]-(this._gutter.left+this._gutter.right),G=(H+(J[0]+K[0]));switch(this.get("position")){case"top":case"bottom":this._setWidth(this._clip,F);this._setHeight(this._clip,this.get("collapseSize"));D.setStyle(this._clip,"left",(this._lastLeft+this._gutter.left)+"px");
 if(this.get("position")=="bottom"){D.setStyle(this._clip,"top",((this._lastTop+this._lastHeight)-(this.get("collapseSize")-this._gutter.top))+"px");}else{D.setStyle(this._clip,"top",this.get("top")+this._gutter.top+"px");}break;case"left":case"right":this._setWidth(this._clip,this.get("collapseSize"));this._setHeight(this._clip,G);D.setStyle(this._clip,"top",(this.get("top")+this._gutter.top)+"px");if(this.get("position")=="right"){D.setStyle(this._clip,"left",(((this._lastLeft+this._lastWidth)-this.get("collapseSize"))-this._gutter.left)+"px");}else{D.setStyle(this._clip,"left",(this.get("left")+this._gutter.left)+"px");}break;}D.setStyle(this._clip,"display","block");this.setStyle("display","none");}else{D.setStyle(this._clip,"display","none");}},getSizes:function(){return this._sizes;},toggle:function(){if(this._collapsed){this.expand();}else{this.collapse();}return this;},expand:function(){if(!this._collapsed){return this;}var L=this.fireEvent("beforeExpand");if(L===false){return this;}this._collapsing=true;this.setStyle("zIndex",this.get("parent")._zIndex+1);if(this._anim){this.setStyle("display","none");var F={},H;switch(this.get("position")){case"left":case"right":this.set("width",this._lastWidth,true);this.setStyle("width",this._lastWidth+"px");this.get("parent").resize(false);H=this.get("parent").getSizes()[this.get("position")];this.set("height",H.h,true);var K=H.l;F={left:{to:K}};if(this.get("position")=="left"){F.left.from=(K-H.w);this.setStyle("left",(K-H.w)+"px");}break;case"top":case"bottom":this.set("height",this._lastHeight,true);this.setStyle("height",this._lastHeight+"px");this.get("parent").resize(false);H=this.get("parent").getSizes()[this.get("position")];this.set("width",H.w,true);var J=H.t;F={top:{to:J}};if(this.get("position")=="top"){this.setStyle("top",(J-H.h)+"px");F.top.from=(J-H.h);}break;}this._anim.attributes=F;var I=function(){this.setStyle("display","block");this.resize(true);this._anim.onStart.unsubscribe(I,this,true);};var G=function(){this._collapsing=false;this.setStyle("zIndex",this.get("parent")._zIndex);this.set("width",this._lastWidth);this.set("height",this._lastHeight);this._collapsed=false;this.resize();this.set("scroll",this._lastScroll);if(this._lastScrollTop>0){this.body.scrollTop=this._lastScrollTop;}this._anim.onComplete.unsubscribe(G,this,true);this.fireEvent("expand");};this._anim.onStart.subscribe(I,this,true);this._anim.onComplete.subscribe(G,this,true);this._anim.animate();this._toggleClip();}else{this._collapsing=false;this._toggleClip();this._collapsed=false;this.setStyle("zIndex",this.get("parent")._zIndex);this.setStyle("display","block");this.set("width",this._lastWidth);this.set("height",this._lastHeight);this.resize();this.set("scroll",this._lastScroll);if(this._lastScrollTop>0){this.body.scrollTop=this._lastScrollTop;}this.fireEvent("expand");}return this;},collapse:function(){if(this._collapsed){return this;}var J=this.fireEvent("beforeCollapse");if(J===false){return this;}if(!this._clip){this._createClip();}this._collapsing=true;var G=this.get("width"),H=this.get("height"),F={};this._lastWidth=G;this._lastHeight=H;this._lastScroll=this.get("scroll");this._lastScrollTop=this.body.scrollTop;this.set("scroll",false,true);this._lastLeft=parseInt(this.get("element").style.left,10);this._lastTop=parseInt(this.get("element").style.top,10);if(isNaN(this._lastTop)){this._lastTop=0;this.set("top",0);}if(isNaN(this._lastLeft)){this._lastLeft=0;this.set("left",0);}this.setStyle("zIndex",this.get("parent")._zIndex+1);var K=this.get("position");switch(K){case"top":case"bottom":this.set("height",(this.get("collapseSize")+(this._gutter.top+this._gutter.bottom)));F={top:{to:(this.get("top")-H)}};if(K=="bottom"){F.top.to=(this.get("top")+H);}break;case"left":case"right":this.set("width",(this.get("collapseSize")+(this._gutter.left+this._gutter.right)));F={left:{to:-(this._lastWidth)}};if(K=="right"){F.left={to:(this.get("left")+G)};}break;}if(this._anim){this._anim.attributes=F;var I=function(){this._collapsing=false;this._toggleClip();this.setStyle("zIndex",this.get("parent")._zIndex);this._collapsed=true;this.get("parent").resize();this._anim.onComplete.unsubscribe(I,this,true);this.fireEvent("collapse");};this._anim.onComplete.subscribe(I,this,true);this._anim.animate();}else{this._collapsing=false;this.setStyle("display","none");this._toggleClip();this.setStyle("zIndex",this.get("parent")._zIndex);this.get("parent").resize();this._collapsed=true;this.fireEvent("collapse");}return this;},close:function(){this.setStyle("display","none");this.get("parent").removeUnit(this);this.fireEvent("close");if(this._clip){this._clip.parentNode.removeChild(this._clip);this._clip=null;}return this.get("parent");},loadHandler:{success:function(F){this.body.innerHTML=F.responseText;this.resize(true);},failure:function(F){}},dataConnection:null,_loading:false,loadContent:function(){if(YAHOO.util.Connect&&this.get("dataSrc")&&!this._loading&&!this.get("dataLoaded")){this._loading=true;D.addClass(this.body,this.LOADING_CLASSNAME);this.dataConnection=YAHOO.util.Connect.asyncRequest(this.get("loadMethod"),this.get("dataSrc"),{success:function(F){this.loadHandler.success.call(this,F);this.set("dataLoaded",true);this.dataConnection=null;D.removeClass(this.body,this.LOADING_CLASSNAME);this._loading=false;this.fireEvent("load");},failure:function(F){this.loadHandler.failure.call(this,F);this.dataConnection=null;D.removeClass(this.body,this.LOADING_CLASSNAME);this._loading=false;this.fireEvent("loadError",{error:F});},scope:this,timeout:this.get("dataTimeout")});return this.dataConnection;}return false;},init:function(H,G){this._gutter={left:0,right:0,top:0,bottom:0};this._sizes={wrap:{h:0,w:0},header:{h:0,w:0},body:{h:0,w:0},footer:{h:0,w:0}};B.superclass.init.call(this,H,G);this.browser=this.get("parent").browser;var K=H;if(!E.isString(K)){K=D.generateId(K);}B._instances[K]=this;this.setStyle("position","absolute");this.addClass("yui-layout-unit");this.addClass("yui-layout-unit-"+this.get("position"));
 var J=this.getElementsByClassName("yui-layout-hd","div")[0];if(J){this.header=J;}var F=this.getElementsByClassName("yui-layout-bd","div")[0];if(F){this.body=F;}var I=this.getElementsByClassName("yui-layout-ft","div")[0];if(I){this.footer=I;}this.on("contentChange",this.resize,this,true);this._lastScrollTop=0;this.set("animate",this.get("animate"));},initAttributes:function(F){B.superclass.initAttributes.call(this,F);this.setAttributeConfig("wrap",{value:F.wrap||null,method:function(G){if(G){var H=D.generateId(G);B._instances[H]=this;}}});this.setAttributeConfig("grids",{value:F.grids||false});this.setAttributeConfig("top",{value:F.top||0,validator:E.isNumber,method:function(G){if(!this._collapsing){this.setStyle("top",G+"px");}}});this.setAttributeConfig("left",{value:F.left||0,validator:E.isNumber,method:function(G){if(!this._collapsing){this.setStyle("left",G+"px");}}});this.setAttributeConfig("minWidth",{value:F.minWidth||false,method:function(G){if(this._resize){this._resize.set("minWidth",G);}},validator:YAHOO.lang.isNumber});this.setAttributeConfig("maxWidth",{value:F.maxWidth||false,method:function(G){if(this._resize){this._resize.set("maxWidth",G);}},validator:YAHOO.lang.isNumber});this.setAttributeConfig("minHeight",{value:F.minHeight||false,method:function(G){if(this._resize){this._resize.set("minHeight",G);}},validator:YAHOO.lang.isNumber});this.setAttributeConfig("maxHeight",{value:F.maxHeight||false,method:function(G){if(this._resize){this._resize.set("maxHeight",G);}},validator:YAHOO.lang.isNumber});this.setAttributeConfig("height",{value:F.height,validator:E.isNumber,method:function(G){if(!this._collapsing){if(G<0){G=0;}this.setStyle("height",G+"px");}}});this.setAttributeConfig("width",{value:F.width,validator:E.isNumber,method:function(G){if(!this._collapsing){if(G<0){G=0;}this.setStyle("width",G+"px");}}});this.setAttributeConfig("zIndex",{value:F.zIndex||false,method:function(G){this.setStyle("zIndex",G);}});this.setAttributeConfig("position",{value:F.position});this.setAttributeConfig("gutter",{value:F.gutter||0,validator:YAHOO.lang.isString,method:function(H){var G=H.split(" ");if(G.length){this._gutter.top=parseInt(G[0],10);if(G[1]){this._gutter.right=parseInt(G[1],10);}else{this._gutter.right=this._gutter.top;}if(G[2]){this._gutter.bottom=parseInt(G[2],10);}else{this._gutter.bottom=this._gutter.top;}if(G[3]){this._gutter.left=parseInt(G[3],10);}else{if(G[1]){this._gutter.left=this._gutter.right;}else{this._gutter.left=this._gutter.top;}}}}});this.setAttributeConfig("parent",{writeOnce:true,value:F.parent||false,method:function(G){if(G){G.on("resize",this.resize,this,true);}}});this.setAttributeConfig("collapseSize",{value:F.collapseSize||25,validator:YAHOO.lang.isNumber});this.setAttributeConfig("duration",{value:F.duration||0.5});this.setAttributeConfig("easing",{value:F.easing||((YAHOO.util&&YAHOO.util.Easing)?YAHOO.util.Easing.BounceIn:"false")});this.setAttributeConfig("animate",{value:((F.animate===false)?false:true),validator:function(){var G=false;if(YAHOO.util.Anim){G=true;}return G;},method:function(G){if(G){this._anim=new YAHOO.util.Anim(this.get("element"),{},this.get("duration"),this.get("easing"));}else{this._anim=false;}}});this.setAttributeConfig("header",{value:F.header||false,method:function(G){if(G===false){if(this.header){D.addClass(this.body,"yui-layout-bd-nohd");this.header.parentNode.removeChild(this.header);this.header=null;}}else{if(!this.header){var I=this.getElementsByClassName("yui-layout-hd","div")[0];if(!I){I=this._createHeader();}this.header=I;}var H=this.header.getElementsByTagName("h2")[0];if(!H){H=document.createElement("h2");this.header.appendChild(H);}H.innerHTML=G;if(this.body){D.removeClass(this.body,"yui-layout-bd-nohd");}}this.fireEvent("contentChange",{target:"header"});}});this.setAttributeConfig("proxy",{writeOnce:true,value:((F.proxy===false)?false:true)});this.setAttributeConfig("body",{value:F.body||false,method:function(I){if(!this.body){var G=this.getElementsByClassName("yui-layout-bd","div")[0];if(G){this.body=G;}else{G=document.createElement("div");G.className="yui-layout-bd";this.body=G;this.get("wrap").appendChild(G);}}if(!this.header){D.addClass(this.body,"yui-layout-bd-nohd");}D.addClass(this.body,"yui-layout-bd-noft");var H=null;if(E.isString(I)){H=D.get(I);}else{if(I&&I.tagName){H=I;}}if(H){var J=D.generateId(H);B._instances[J]=this;this.body.appendChild(H);}else{this.body.innerHTML=I;}this._cleanGrids();this.fireEvent("contentChange",{target:"body"});}});this.setAttributeConfig("footer",{value:F.footer||false,method:function(H){if(H===false){if(this.footer){D.addClass(this.body,"yui-layout-bd-noft");this.footer.parentNode.removeChild(this.footer);this.footer=null;}}else{if(!this.footer){var I=this.getElementsByClassName("yui-layout-ft","div")[0];if(!I){I=document.createElement("div");I.className="yui-layout-ft";this.footer=I;this.get("wrap").appendChild(I);}else{this.footer=I;}}var G=null;if(E.isString(H)){G=D.get(H);}else{if(H&&H.tagName){G=H;}}if(G){this.footer.appendChild(G);}else{this.footer.innerHTML=H;}D.removeClass(this.body,"yui-layout-bd-noft");}this.fireEvent("contentChange",{target:"footer"});}});this.setAttributeConfig("close",{value:F.close||false,method:function(G){if(this.get("position")=="center"){return false;}if(!this.header&&G){this._createHeader();}var H=D.getElementsByClassName("close","div",this.header)[0];if(G){if(!this.get("header")){this.set("header"," ");}if(!H){H=document.createElement("div");H.className="close";this.header.appendChild(H);A.on(H,"click",this.close,this,true);}H.title=this.STR_CLOSE;}else{if(H&&H.parentNode){A.purgeElement(H);H.parentNode.removeChild(H);}}this._configs.close.value=G;this.set("collapse",this.get("collapse"));}});this.setAttributeConfig("collapse",{value:F.collapse||false,method:function(G){if(this.get("position")=="center"){return false;}if(!this.header&&G){this._createHeader();}var H=D.getElementsByClassName("collapse","div",this.header)[0];if(G){if(!this.get("header")){this.set("header"," ");
-}if(!H){H=document.createElement("div");this.header.appendChild(H);A.on(H,"click",this.collapse,this,true);}H.title=this.STR_COLLAPSE;H.className="collapse"+((this.get("close"))?" collapse-close":"");}else{if(H&&H.parentNode){A.purgeElement(H);H.parentNode.removeChild(H);}}}});this.setAttributeConfig("scroll",{value:(((F.scroll===true)||(F.scroll===false)||(F.scroll===null))?F.scroll:false),method:function(G){if((G===false)&&!this._collapsed){if(this.body){if(this.body.scrollTop>0){this._lastScrollTop=this.body.scrollTop;}}}if(G===true){this.addClass("yui-layout-scroll");this.removeClass("yui-layout-noscroll");if(this._lastScrollTop>0){if(this.body){this.body.scrollTop=this._lastScrollTop;}}}else{if(G===false){this.removeClass("yui-layout-scroll");this.addClass("yui-layout-noscroll");}else{if(G===null){this.removeClass("yui-layout-scroll");this.removeClass("yui-layout-noscroll");}}}}});this.setAttributeConfig("hover",{writeOnce:true,value:F.hover||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("useShim",{value:F.useShim||false,validator:YAHOO.lang.isBoolean,method:function(G){if(this._resize){this._resize.set("useShim",G);}}});this.setAttributeConfig("resize",{value:F.resize||false,validator:function(G){if(YAHOO.util&&YAHOO.util.Resize){return true;}return false;},method:function(G){if(G&&!this._resize){if(this.get("position")=="center"){return false;}var I=false;switch(this.get("position")){case"top":I="b";break;case"bottom":I="t";break;case"right":I="l";break;case"left":I="r";break;}this.setStyle("position","absolute");if(I){this._resize=new YAHOO.util.Resize(this.get("element"),{proxy:this.get("proxy"),hover:this.get("hover"),status:false,autoRatio:false,handles:[I],minWidth:this.get("minWidth"),maxWidth:this.get("maxWidth"),minHeight:this.get("minHeight"),maxHeight:this.get("maxHeight"),height:this.get("height"),width:this.get("width"),setSize:false,useShim:this.get("useShim"),wrap:false});this._resize._handles[I].innerHTML='<div class="yui-layout-resize-knob"></div>';if(this.get("proxy")){var H=this._resize.getProxyEl();H.innerHTML='<div class="yui-layout-handle-'+I+'"></div>';}this._resize.on("startResize",function(J){this._lastScroll=this.get("scroll");this.set("scroll",false);if(this.get("parent")){this.get("parent").fireEvent("startResize");var K=this.get("parent").getUnitByPosition("center");this._lastCenterScroll=K.get("scroll");K.addClass(this._resize.CSS_RESIZING);K.set("scroll",false);}this.fireEvent("startResize");},this,true);this._resize.on("resize",function(J){this.set("height",J.height);this.set("width",J.width);},this,true);this._resize.on("endResize",function(J){this.set("scroll",this._lastScroll);if(this.get("parent")){var K=this.get("parent").getUnitByPosition("center");K.set("scroll",this._lastCenterScroll);K.removeClass(this._resize.CSS_RESIZING);}this.resize();this.fireEvent("endResize");},this,true);}}else{if(this._resize){this._resize.destroy();}}}});this.setAttributeConfig("dataSrc",{value:F.dataSrc});this.setAttributeConfig("loadMethod",{value:F.loadMethod||"GET",validator:YAHOO.lang.isString});this.setAttributeConfig("dataLoaded",{value:false,validator:YAHOO.lang.isBoolean,writeOnce:true});this.setAttributeConfig("dataTimeout",{value:F.dataTimeout||null,validator:YAHOO.lang.isNumber});},_cleanGrids:function(){if(this.get("grids")){var F=C.query("div.yui-b",this.body,true);if(F){D.removeClass(F,"yui-b");}A.onAvailable("yui-main",function(){D.setStyle(C.query("#yui-main"),"margin-left","0");D.setStyle(C.query("#yui-main"),"margin-right","0");});}},_createHeader:function(){var F=document.createElement("div");F.className="yui-layout-hd";if(this.get("firstChild")){this.get("wrap").insertBefore(F,this.get("wrap").firstChild);}else{this.get("wrap").appendChild(F);}this.header=F;return F;},destroy:function(H){if(this._resize){this._resize.destroy();}var G=this.get("parent");this.setStyle("display","none");if(this._clip){this._clip.parentNode.removeChild(this._clip);this._clip=null;}if(!H){G.removeUnit(this);}if(G){G.removeListener("resize",this.resize,this,true);}this.unsubscribeAll();A.purgeElement(this.get("element"));this.get("parentNode").removeChild(this.get("element"));delete YAHOO.widget.LayoutUnit._instances[this.get("id")];for(var F in this){if(E.hasOwnProperty(this,F)){this[F]=null;delete this[F];}}return G;},toString:function(){if(this.get){return"LayoutUnit #"+this.get("id")+" ("+this.get("position")+")";}return"LayoutUnit";}});YAHOO.widget.LayoutUnit=B;})();YAHOO.register("layout",YAHOO.widget.Layout,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}if(!H){H=document.createElement("div");this.header.appendChild(H);A.on(H,"click",this.collapse,this,true);}H.title=this.STR_COLLAPSE;H.className="collapse"+((this.get("close"))?" collapse-close":"");}else{if(H&&H.parentNode){A.purgeElement(H);H.parentNode.removeChild(H);}}}});this.setAttributeConfig("scroll",{value:(((F.scroll===true)||(F.scroll===false)||(F.scroll===null))?F.scroll:false),method:function(G){if((G===false)&&!this._collapsed){if(this.body){if(this.body.scrollTop>0){this._lastScrollTop=this.body.scrollTop;}}}if(G===true){this.addClass("yui-layout-scroll");this.removeClass("yui-layout-noscroll");if(this._lastScrollTop>0){if(this.body){this.body.scrollTop=this._lastScrollTop;}}}else{if(G===false){this.removeClass("yui-layout-scroll");this.addClass("yui-layout-noscroll");}else{if(G===null){this.removeClass("yui-layout-scroll");this.removeClass("yui-layout-noscroll");}}}}});this.setAttributeConfig("hover",{writeOnce:true,value:F.hover||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("useShim",{value:F.useShim||false,validator:YAHOO.lang.isBoolean,method:function(G){if(this._resize){this._resize.set("useShim",G);}}});this.setAttributeConfig("resize",{value:F.resize||false,validator:function(G){if(YAHOO.util&&YAHOO.util.Resize){return true;}return false;},method:function(G){if(G&&!this._resize){if(this.get("position")=="center"){return false;}var I=false;switch(this.get("position")){case"top":I="b";break;case"bottom":I="t";break;case"right":I="l";break;case"left":I="r";break;}this.setStyle("position","absolute");if(I){this._resize=new YAHOO.util.Resize(this.get("element"),{proxy:this.get("proxy"),hover:this.get("hover"),status:false,autoRatio:false,handles:[I],minWidth:this.get("minWidth"),maxWidth:this.get("maxWidth"),minHeight:this.get("minHeight"),maxHeight:this.get("maxHeight"),height:this.get("height"),width:this.get("width"),setSize:false,useShim:this.get("useShim"),wrap:false});this._resize._handles[I].innerHTML='<div class="yui-layout-resize-knob"></div>';if(this.get("proxy")){var H=this._resize.getProxyEl();H.innerHTML='<div class="yui-layout-handle-'+I+'"></div>';}this._resize.on("startResize",function(J){this._lastScroll=this.get("scroll");this.set("scroll",false);if(this.get("parent")){this.get("parent").fireEvent("startResize");var K=this.get("parent").getUnitByPosition("center");this._lastCenterScroll=K.get("scroll");K.addClass(this._resize.CSS_RESIZING);K.set("scroll",false);}this.fireEvent("startResize");},this,true);this._resize.on("resize",function(J){this.set("height",J.height);this.set("width",J.width);},this,true);this._resize.on("endResize",function(J){this.set("scroll",this._lastScroll);if(this.get("parent")){var K=this.get("parent").getUnitByPosition("center");K.set("scroll",this._lastCenterScroll);K.removeClass(this._resize.CSS_RESIZING);}this.resize();this.fireEvent("endResize");},this,true);}}else{if(this._resize){this._resize.destroy();}}}});this.setAttributeConfig("dataSrc",{value:F.dataSrc});this.setAttributeConfig("loadMethod",{value:F.loadMethod||"GET",validator:YAHOO.lang.isString});this.setAttributeConfig("dataLoaded",{value:false,validator:YAHOO.lang.isBoolean,writeOnce:true});this.setAttributeConfig("dataTimeout",{value:F.dataTimeout||null,validator:YAHOO.lang.isNumber});},_cleanGrids:function(){if(this.get("grids")){var F=C.query("div.yui-b",this.body,true);if(F){D.removeClass(F,"yui-b");}A.onAvailable("yui-main",function(){D.setStyle(C.query("#yui-main"),"margin-left","0");D.setStyle(C.query("#yui-main"),"margin-right","0");});}},_createHeader:function(){var F=document.createElement("div");F.className="yui-layout-hd";if(this.get("firstChild")){this.get("wrap").insertBefore(F,this.get("wrap").firstChild);}else{this.get("wrap").appendChild(F);}this.header=F;return F;},destroy:function(H){if(this._resize){this._resize.destroy();}var G=this.get("parent");this.setStyle("display","none");if(this._clip){this._clip.parentNode.removeChild(this._clip);this._clip=null;}if(!H){G.removeUnit(this);}if(G){G.removeListener("resize",this.resize,this,true);}this.unsubscribeAll();A.purgeElement(this.get("element"));this.get("parentNode").removeChild(this.get("element"));delete YAHOO.widget.LayoutUnit._instances[this.get("id")];for(var F in this){if(E.hasOwnProperty(this,F)){this[F]=null;delete this[F];}}return G;},toString:function(){if(this.get){return"LayoutUnit #"+this.get("id")+" ("+this.get("position")+")";}return"LayoutUnit";}});YAHOO.widget.LayoutUnit=B;})();YAHOO.register("layout",YAHOO.widget.Layout,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/layout/layout.js b/build/layout/layout.js
index 3498469..123cdce 100644
--- a/build/layout/layout.js
+++ b/build/layout/layout.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * @description <p>Provides a fixed layout containing, top, bottom, left, right and center layout units. It can be applied to either the body or an element.</p>
@@ -2287,4 +2287,4 @@ version: 2.8.1
 
     YAHOO.widget.LayoutUnit = LayoutUnit;
 })();
-YAHOO.register("layout", YAHOO.widget.Layout, {version: "2.8.1", build: "19"});
+YAHOO.register("layout", YAHOO.widget.Layout, {version: "2.8.2r1", build: "7"});
diff --git a/build/logger/assets/logger-core.css b/build/logger/assets/logger-core.css
index 46ec748..9d0ab6d 100644
--- a/build/logger/assets/logger-core.css
+++ b/build/logger/assets/logger-core.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* This file intentionally left blank */
diff --git a/build/logger/assets/logger.css b/build/logger/assets/logger.css
index c07eae4..3d8931d 100644
--- a/build/logger/assets/logger.css
+++ b/build/logger/assets/logger.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* logger default styles */
 /* default width: 31em */
diff --git a/build/logger/assets/skins/sam/logger-skin.css b/build/logger/assets/skins/sam/logger-skin.css
index 5661667..b085b9f 100644
--- a/build/logger/assets/skins/sam/logger-skin.css
+++ b/build/logger/assets/skins/sam/logger-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* logger default styles */
 /* default width: 31em */
diff --git a/build/logger/assets/skins/sam/logger.css b/build/logger/assets/skins/sam/logger.css
index f71ebb5..e6ae845 100644
--- a/build/logger/assets/skins/sam/logger.css
+++ b/build/logger/assets/skins/sam/logger.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-log{padding:1em;width:31em;background-color:#AAA;color:#000;border:1px solid black;font-family:monospace;font-size:77%;text-align:left;z-index:9000;}.yui-skin-sam .yui-log-container{position:absolute;top:1em;right:1em;}.yui-skin-sam .yui-log input{margin:0;padding:0;font-family:arial;font-size:100%;font-weight:normal;}.yui-skin-sam .yui-log .yui-log-btns{position:relative;float:right;bottom:.25em;}.yui-skin-sam .yui-log .yui-log-hd{margin-top:1em;padding:.5em;background-color:#575757;}.yui-skin-sam .yui-log .yui-log-hd h4{margin:0;padding:0;font-size:108%;font-weight:bold;color:#FFF;}.yui-skin-sam .yui-log .yui-log-bd{width:100%;height:20em;background-color:#FFF;border:1px solid gray;overflow:auto;}.yui-skin-sam .yui-log p{margin:1px;padding:.1em;}.yui-skin-sam .yui-log pre{margin:0;padding:0;}.yui-skin-sam .yui-log pre.yui-log-verbose{white-space:pre-wrap;white-space:-moz-pre-wrap!important;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word;}.yui-skin-sam .yui-log .yui-log-ft{margin-top:.5em;}.yui-skin-sam .yui-log .yui-log-ft .yui-log-sourcefilters{width:100%;border-top:1px solid #575757;margin-top:.75em;padding-top:.75em;}.yui-skin-sam .yui-log .yui-log-filtergrp{margin-right:.5em;}.yui-skin-sam .yui-log .info{background-color:#A7CC25;}.yui-skin-sam .yui-log .warn{background-color:#F58516;}.yui-skin-sam .yui-log .error{background-color:#E32F0B;}.yui-skin-sam .yui-log .time{background-color:#A6C9D7;}.yui-skin-sam .yui-log .window{background-color:#F2E886;}
diff --git a/build/logger/logger-debug.js b/build/logger/logger-debug.js
index acfdef8..2594188 100644
--- a/build/logger/logger-debug.js
+++ b/build/logger/logger-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /****************************************************************************/
 /****************************************************************************/
@@ -2101,4 +2101,4 @@ LogReader.prototype = {
 YAHOO.widget.LogReader = LogReader;
 
 })();
-YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.8.1", build: "19"});
+YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.8.2r1", build: "7"});
diff --git a/build/logger/logger-min.js b/build/logger/logger-min.js
index 9a92c75..3561c00 100644
--- a/build/logger/logger-min.js
+++ b/build/logger/logger-min.js
@@ -2,8 +2,8 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.widget.LogMsg=function(A){this.msg=this.time=this.category=this.source=this.sourceDetail=null;if(A&&(A.constructor==Object)){for(var B in A){if(A.hasOwnProperty(B)){this[B]=A[B];}}}};YAHOO.widget.LogWriter=function(A){if(!A){YAHOO.log("Could not instantiate LogWriter due to invalid source.","error","LogWriter");return;}this._source=A;};YAHOO.widget.LogWriter.prototype.toString=function(){return"LogWriter "+this._sSource;};YAHOO.widget.LogWriter.prototype.log=function(A,B){YAHOO.widget.Logger.log(A,B,this._source);};YAHOO.widget.LogWriter.prototype.getSource=function(){return this._source;};YAHOO.widget.LogWriter.prototype.setSource=function(A){if(!A){YAHOO.log("Could not set source due to invalid source.","error",this.toString());return;}else{this._source=A;}};YAHOO.widget.LogWriter.prototype._source=null;if(!YAHOO.widget.Logger){YAHOO.widget.Logger={loggerEnabled:true,_browserConsoleEnabled:false,categories:["info","warn","error","time","window"],sources:["global"],_stack:[],maxStackEntries:2500,_startTime:new Date().getTime(),_lastTime:null,_windowErrorsHandled:false,_origOnWindowError:null};YAHOO.widget.Logger.log=function(B,F,G){if(this.loggerEnabled){if(!F){F="info";}else{F=F.toLocaleLowerCase();if(this._isNewCategory(F)){this._createNewCategory(F);}}var C="global";var A=null;if(G){var D=G.indexOf(" ");if(D>0){C=G.substring(0,D);A=G.substring(D,G.length);}else{C=G;}if(this._isNewSource(C)){this._createNewSource(C);}}var H=new Date();var J=new YAHOO.widget.LogMsg({msg:B,time:H,category:F,source:C,sourceDetail:A});var I=this._stack;var E=this.maxStackEntries;if(E&&!isNaN(E)&&(I.length>=E)){I.shift();}I.push(J);this.newLogEvent.fire(J);if(this._browserConsoleEnabled){this._printToBrowserConsole(J);}return true;}else{return false;}};YAHOO.widget.Logger.reset=function(){this._stack=[];this._startTime=new Date().getTime();this.loggerEnabled=true;this.log("Logger reset");this.logResetEvent.fire();};YAHOO.widget.Logger.getStack=function(){return this._stack;};YAHOO.widget.Logger.getStartTime=function(){return this._startTime;};YAHOO.widget.Logger.disableBrowserConsole=function(){YAHOO.log("Logger output to the function console.log() has been disabled.");this._browserConsoleEnabled=false;};YAHOO.widget.Logger.enableBrowserConsole=function(){this._browserConsoleEnabled=true;YAHOO.log("Logger output to the function console.log() has been enabled.");};YAHOO.widget.Logger.handleWindowErrors=function(){if(!YAHOO.widget.Logger._windowErrorsHandled){if(window.error){YAHOO.widget.Logger._origOnWindowError=window.onerror;}window.onerror=YAHOO.widget.Logger._onWindowError;YAHOO.widget.Logger._windowErrorsHandled=true;YAHOO.log("Logger handling of window.onerror has been enabled.");}else{YAHOO.log("Logger handling of window.onerror had already been enabled.");}};YAHOO.widget.Logger.unhandleWindowErrors=function(){if(YAHOO.widget.Logger._windowErrorsHandled){if(YAHOO.widget.Logger._origOnWindowError){window.onerror=YAHOO.widget.Logger._origOnWindowError;YAHOO.widget.Logger._origOnWindowError=null;}else{window.onerror=null;}YAHOO.widget.Logger._windowErrorsHandled=false;YAHOO.log("Logger handling of window.onerror has been disabled.");}else{YAHOO.log("Logger handling of window.onerror had already been disabled.");}};YAHOO.widget.Logger.categoryCreateEvent=new YAHOO.util.CustomEvent("categoryCreate",this,true);YAHOO.widget.Logger.sourceCreateEvent=new YAHOO.util.CustomEvent("sourceCreate",this,true);YAHOO.widget.Logger.newLogEvent=new YAHOO.util.CustomEvent("newLog",this,true);YAHOO.widget.Logger.logResetEvent=new YAHOO.util.CustomEvent("logReset",this,true);YAHOO.widget.Logger._createNewCategory=function(A){this.categories.push(A);this.categoryCreateEvent.fire(A);};YAHOO.widget.Logger._isNewCategory=function(B){for(var A=0;A<this.categories.length;A++){if(B==this.categories[A]){return false;}}return true;};YAHOO.widget.Logger._createNewSource=function(A){this.sources.push(A);this.sourceCreateEvent.fire(A);};YAHOO.widget.Logger._isNewSource=function(A){if(A){for(var B=0;B<this.sources.length;B++){if(A==this.sources[B]){return false;}}return true;}};YAHOO.widget.Logger._printToBrowserConsole=function(C){if(window.console&&console.log){var E=C.category;var D=C.category.substring(0,4).toUpperCase();var G=C.time;var F;if(G.toLocaleTimeString){F=G.toLocaleTimeString();}else{F=G.toString();}var H=G.getTime();var B=(YAHOO.widget.Logger._lastTime)?(H-YAHOO.widget.Logger._lastTime):0;YAHOO.widget.Logger._lastTime=H;var A=F+" ("+B+"ms): "+C.source+": ";if(YAHOO.env.ua.webkit){A+=C.msg;}console.log(A,C.msg);}};YAHOO.widget.Logger._onWindowError=function(A,C,B){try{YAHOO.widget.Logger.log(A+" ("+C+", line "+B+")","window");if(YAHOO.widget.Logger._origOnWindowError){YAHOO.widget.Logger._origOnWindowError();}}catch(D){return false;}};YAHOO.widget.Logger.log("Logger initialized");}(function(){var C=YAHOO.widget.Logger,D=YAHOO.util,E=D.Dom,A=D.Event,G=document;function B(I,H){I=G.createElement(I);if(H){for(var J in H){if(H.hasOwnProperty(J)){I[J]=H[J];}}}return I;}function F(I,H){this._sName=F._index;F._index++;this._init.apply(this,arguments);if(this.autoRender!==false){this.render();}}YAHOO.lang.augmentObject(F,{_index:0,ENTRY_TEMPLATE:(function(){return B("pre",{className:"yui-log-entry"});})(),VERBOSE_TEMPLATE:"<p><span class='{category}'>{label}</span> {totalTime}ms (+{elapsedTime}) {localTime}:</p><p>{sourceAndDetail}</p><p>{message}</p>",BASIC_TEMPLATE:"<p><span class='{category}'>{label}</span> {totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}</p>"});F.prototype={logReaderEnabled:true,width:null,height:null,top:null,left:null,right:null,bottom:null,fontSize:null,footerEnabled:true,verboseOutput:true,entryFormat:null,newestOnTop:true,outputBuffer:100,thresholdMax:500,thresholdMin:100,isCollapsed:false,isPaused:false,draggable:true,toString:function(){return"LogReader instance"+this._sName;},pause:function(){this.isPaused=true;this._timeout=null;this.logReaderEnabled=false;if(this._btnPause){this._btnPause.value="Resume";
 }},resume:function(){this.isPaused=false;this.logReaderEnabled=true;this._printBuffer();if(this._btnPause){this._btnPause.value="Pause";}},render:function(){if(this.rendered){return;}this._initContainerEl();this._initHeaderEl();this._initConsoleEl();this._initFooterEl();this._initCategories();this._initSources();this._initDragDrop();C.newLogEvent.subscribe(this._onNewLog,this);C.logResetEvent.subscribe(this._onReset,this);C.categoryCreateEvent.subscribe(this._onCategoryCreate,this);C.sourceCreateEvent.subscribe(this._onSourceCreate,this);this.rendered=true;this._filterLogs();},destroy:function(){A.purgeElement(this._elContainer,true);this._elContainer.innerHTML="";this._elContainer.parentNode.removeChild(this._elContainer);this.rendered=false;},hide:function(){this._elContainer.style.display="none";},show:function(){this._elContainer.style.display="block";},collapse:function(){this._elConsole.style.display="none";if(this._elFt){this._elFt.style.display="none";}this._btnCollapse.value="Expand";this.isCollapsed=true;},expand:function(){this._elConsole.style.display="block";if(this._elFt){this._elFt.style.display="block";}this._btnCollapse.value="Collapse";this.isCollapsed=false;},getCheckbox:function(H){return this._filterCheckboxes[H];},getCategories:function(){return this._categoryFilters;},showCategory:function(I){var K=this._categoryFilters;if(K.indexOf){if(K.indexOf(I)>-1){return;}}else{for(var H=0;H<K.length;H++){if(K[H]===I){return;}}}this._categoryFilters.push(I);this._filterLogs();var J=this.getCheckbox(I);if(J){J.checked=true;}},hideCategory:function(I){var K=this._categoryFilters;for(var H=0;H<K.length;H++){if(I==K[H]){K.splice(H,1);break;}}this._filterLogs();var J=this.getCheckbox(I);if(J){J.checked=false;}},getSources:function(){return this._sourceFilters;},showSource:function(H){var K=this._sourceFilters;if(K.indexOf){if(K.indexOf(H)>-1){return;}}else{for(var I=0;I<K.length;I++){if(H==K[I]){return;}}}K.push(H);this._filterLogs();var J=this.getCheckbox(H);if(J){J.checked=true;}},hideSource:function(H){var K=this._sourceFilters;for(var I=0;I<K.length;I++){if(H==K[I]){K.splice(I,1);break;}}this._filterLogs();var J=this.getCheckbox(H);if(J){J.checked=false;}},clearConsole:function(){this._timeout=null;this._buffer=[];this._consoleMsgCount=0;var H=this._elConsole;H.innerHTML="";},setTitle:function(H){this._title.innerHTML=this.html2Text(H);},getLastTime:function(){return this._lastTime;},formatMsg:function(I){var H=this.entryFormat||(this.verboseOutput?F.VERBOSE_TEMPLATE:F.BASIC_TEMPLATE),J={category:I.category,label:I.category.substring(0,4).toUpperCase(),sourceAndDetail:I.sourceDetail?I.source+" "+I.sourceDetail:I.source,message:this.html2Text(I.msg||I.message||"")};if(I.time&&I.time.getTime){J.localTime=I.time.toLocaleTimeString?I.time.toLocaleTimeString():I.time.toString();J.elapsedTime=I.time.getTime()-this.getLastTime();J.totalTime=I.time.getTime()-C.getStartTime();}var K=F.ENTRY_TEMPLATE.cloneNode(true);if(this.verboseOutput){K.className+=" yui-log-verbose";}K.innerHTML=H.replace(/\{(\w+)\}/g,function(L,M){return(M in J)?J[M]:"";});return K;},html2Text:function(H){if(H){H+="";return H.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">");}return"";},_sName:null,_buffer:null,_consoleMsgCount:0,_lastTime:null,_timeout:null,_filterCheckboxes:null,_categoryFilters:null,_sourceFilters:null,_elContainer:null,_elHd:null,_elCollapse:null,_btnCollapse:null,_title:null,_elConsole:null,_elFt:null,_elBtns:null,_elCategoryFilters:null,_elSourceFilters:null,_btnPause:null,_btnClear:null,_init:function(H,I){this._buffer=[];this._filterCheckboxes={};this._lastTime=C.getStartTime();if(I&&(I.constructor==Object)){for(var J in I){if(I.hasOwnProperty(J)){this[J]=I[J];}}}this._elContainer=E.get(H);YAHOO.log("LogReader initialized",null,this.toString());},_initContainerEl:function(){if(!this._elContainer||!/div$/i.test(this._elContainer.tagName)){this._elContainer=G.body.insertBefore(B("div"),G.body.firstChild);E.addClass(this._elContainer,"yui-log-container");}E.addClass(this._elContainer,"yui-log");var J=this._elContainer.style,H=["width","right","top","fontSize"],K,I;for(I=H.length-1;I>=0;--I){K=H[I];if(this[K]){J[K]=this[K];}}if(this.left){J.left=this.left;J.right="auto";}if(this.bottom){J.bottom=this.bottom;J.top="auto";}if(YAHOO.env.ua.opera){G.body.style+="";}},_initHeaderEl:function(){if(this._elHd){A.purgeElement(this._elHd,true);this._elHd.innerHTML="";}this._elHd=B("div",{id:"yui-log-hd"+this._sName,className:"yui-log-hd"});this._elCollapse=B("div",{className:"yui-log-btns"});this._btnCollapse=B("input",{type:"button",className:"yui-log-button",value:"Collapse"});A.on(this._btnCollapse,"click",this._onClickCollapseBtn,this);this._title=B("h4",{innerHTML:"Logger Console"});this._elCollapse.appendChild(this._btnCollapse);this._elHd.appendChild(this._elCollapse);this._elHd.appendChild(this._title);this._elContainer.appendChild(this._elHd);},_initConsoleEl:function(){if(this._elConsole){A.purgeElement(this._elConsole,true);this._elConsole.innerHTML="";}this._elConsole=B("div",{className:"yui-log-bd"});if(this.height){this._elConsole.style.height=this.height;}this._elContainer.appendChild(this._elConsole);},_initFooterEl:function(){if(this.footerEnabled){if(this._elFt){A.purgeElement(this._elFt,true);this._elFt.innerHTML="";}this._elFt=B("div",{className:"yui-log-ft"});this._elBtns=B("div",{className:"yui-log-btns"});this._btnPause=B("input",{type:"button",className:"yui-log-button",value:"Pause"});A.on(this._btnPause,"click",this._onClickPauseBtn,this);this._btnClear=B("input",{type:"button",className:"yui-log-button",value:"Clear"});A.on(this._btnClear,"click",this._onClickClearBtn,this);this._elCategoryFilters=B("div",{className:"yui-log-categoryfilters"});this._elSourceFilters=B("div",{className:"yui-log-sourcefilters"});this._elBtns.appendChild(this._btnPause);this._elBtns.appendChild(this._btnClear);this._elFt.appendChild(this._elBtns);this._elFt.appendChild(this._elCategoryFilters);
-this._elFt.appendChild(this._elSourceFilters);this._elContainer.appendChild(this._elFt);}},_initDragDrop:function(){if(D.DD&&this.draggable&&this._elHd){var H=new D.DD(this._elContainer);H.setHandleElId(this._elHd.id);this._elHd.style.cursor="move";}},_initCategories:function(){this._categoryFilters=[];var J=C.categories;for(var H=0;H<J.length;H++){var I=J[H];this._categoryFilters.push(I);if(this._elCategoryFilters){this._createCategoryCheckbox(I);}}},_initSources:function(){this._sourceFilters=[];var J=C.sources;for(var I=0;I<J.length;I++){var H=J[I];this._sourceFilters.push(H);if(this._elSourceFilters){this._createSourceCheckbox(H);}}},_createCategoryCheckbox:function(K){if(this._elFt){var J=B("span",{className:"yui-log-filtergrp"}),H=B("input",{id:"yui-log-filter-"+K+this._sName,className:"yui-log-filter-"+K,type:"checkbox",category:K}),I=B("label",{htmlFor:H.id,className:K,innerHTML:K});A.on(H,"click",this._onCheckCategory,this);this._filterCheckboxes[K]=H;J.appendChild(H);J.appendChild(I);this._elCategoryFilters.appendChild(J);H.checked=true;}},_createSourceCheckbox:function(H){if(this._elFt){var K=B("span",{className:"yui-log-filtergrp"}),I=B("input",{id:"yui-log-filter-"+H+this._sName,className:"yui-log-filter-"+H,type:"checkbox",source:H}),J=B("label",{htmlFor:I.id,className:H,innerHTML:H});A.on(I,"click",this._onCheckSource,this);this._filterCheckboxes[H]=I;K.appendChild(I);K.appendChild(J);this._elSourceFilters.appendChild(K);I.checked=true;}},_filterLogs:function(){if(this._elConsole!==null){this.clearConsole();this._printToConsole(C.getStack());}},_printBuffer:function(){this._timeout=null;if(this._elConsole!==null){var I=this.thresholdMax;I=(I&&!isNaN(I))?I:500;if(this._consoleMsgCount<I){var H=[];for(var J=0;J<this._buffer.length;J++){H[J]=this._buffer[J];}this._buffer=[];this._printToConsole(H);}else{this._filterLogs();}if(!this.newestOnTop){this._elConsole.scrollTop=this._elConsole.scrollHeight;}}},_printToConsole:function(P){var I=P.length,T=G.createDocumentFragment(),W=[],X=this.thresholdMin,J=this._sourceFilters.length,U=this._categoryFilters.length,R,O,N,M,S;if(isNaN(X)||(X>this.thresholdMax)){X=0;}R=(I>X)?(I-X):0;for(O=R;O<I;O++){var L=false,Q=false,V=P[O],H=V.source,K=V.category;for(N=0;N<J;N++){if(H==this._sourceFilters[N]){Q=true;break;}}if(Q){for(N=0;N<U;N++){if(K==this._categoryFilters[N]){L=true;break;}}}if(L){if(this._consoleMsgCount===0){this._lastTime=V.time.getTime();}M=this.formatMsg(V);if(typeof M==="string"){W[W.length]=M;}else{T.insertBefore(M,this.newestOnTop?T.firstChild||null:null);}this._consoleMsgCount++;this._lastTime=V.time.getTime();}}if(W.length){W.splice(0,0,this._elConsole.innerHTML);this._elConsole.innerHTML=this.newestOnTop?W.reverse().join(""):W.join("");}else{if(T.firstChild){this._elConsole.insertBefore(T,this.newestOnTop?this._elConsole.firstChild||null:null);}}},_onCategoryCreate:function(K,J,H){var I=J[0];H._categoryFilters.push(I);if(H._elFt){H._createCategoryCheckbox(I);}},_onSourceCreate:function(K,J,H){var I=J[0];H._sourceFilters.push(I);if(H._elFt){H._createSourceCheckbox(I);}},_onCheckCategory:function(H,I){var J=this.category;if(!this.checked){I.hideCategory(J);}else{I.showCategory(J);}},_onCheckSource:function(H,I){var J=this.source;if(!this.checked){I.hideSource(J);}else{I.showSource(J);}},_onClickCollapseBtn:function(H,I){if(!I.isCollapsed){I.collapse();}else{I.expand();}},_onClickPauseBtn:function(H,I){if(!I.isPaused){I.pause();}else{I.resume();}},_onClickClearBtn:function(H,I){I.clearConsole();},_onNewLog:function(K,J,H){var I=J[0];H._buffer.push(I);if(H.logReaderEnabled===true&&H._timeout===null){H._timeout=setTimeout(function(){H._printBuffer();},H.outputBuffer);}},_onReset:function(J,I,H){H._filterLogs();}};YAHOO.widget.LogReader=F;})();YAHOO.register("logger",YAHOO.widget.Logger,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this._elFt.appendChild(this._elSourceFilters);this._elContainer.appendChild(this._elFt);}},_initDragDrop:function(){if(D.DD&&this.draggable&&this._elHd){var H=new D.DD(this._elContainer);H.setHandleElId(this._elHd.id);this._elHd.style.cursor="move";}},_initCategories:function(){this._categoryFilters=[];var J=C.categories;for(var H=0;H<J.length;H++){var I=J[H];this._categoryFilters.push(I);if(this._elCategoryFilters){this._createCategoryCheckbox(I);}}},_initSources:function(){this._sourceFilters=[];var J=C.sources;for(var I=0;I<J.length;I++){var H=J[I];this._sourceFilters.push(H);if(this._elSourceFilters){this._createSourceCheckbox(H);}}},_createCategoryCheckbox:function(K){if(this._elFt){var J=B("span",{className:"yui-log-filtergrp"}),H=B("input",{id:"yui-log-filter-"+K+this._sName,className:"yui-log-filter-"+K,type:"checkbox",category:K}),I=B("label",{htmlFor:H.id,className:K,innerHTML:K});A.on(H,"click",this._onCheckCategory,this);this._filterCheckboxes[K]=H;J.appendChild(H);J.appendChild(I);this._elCategoryFilters.appendChild(J);H.checked=true;}},_createSourceCheckbox:function(H){if(this._elFt){var K=B("span",{className:"yui-log-filtergrp"}),I=B("input",{id:"yui-log-filter-"+H+this._sName,className:"yui-log-filter-"+H,type:"checkbox",source:H}),J=B("label",{htmlFor:I.id,className:H,innerHTML:H});A.on(I,"click",this._onCheckSource,this);this._filterCheckboxes[H]=I;K.appendChild(I);K.appendChild(J);this._elSourceFilters.appendChild(K);I.checked=true;}},_filterLogs:function(){if(this._elConsole!==null){this.clearConsole();this._printToConsole(C.getStack());}},_printBuffer:function(){this._timeout=null;if(this._elConsole!==null){var I=this.thresholdMax;I=(I&&!isNaN(I))?I:500;if(this._consoleMsgCount<I){var H=[];for(var J=0;J<this._buffer.length;J++){H[J]=this._buffer[J];}this._buffer=[];this._printToConsole(H);}else{this._filterLogs();}if(!this.newestOnTop){this._elConsole.scrollTop=this._elConsole.scrollHeight;}}},_printToConsole:function(P){var I=P.length,T=G.createDocumentFragment(),W=[],X=this.thresholdMin,J=this._sourceFilters.length,U=this._categoryFilters.length,R,O,N,M,S;if(isNaN(X)||(X>this.thresholdMax)){X=0;}R=(I>X)?(I-X):0;for(O=R;O<I;O++){var L=false,Q=false,V=P[O],H=V.source,K=V.category;for(N=0;N<J;N++){if(H==this._sourceFilters[N]){Q=true;break;}}if(Q){for(N=0;N<U;N++){if(K==this._categoryFilters[N]){L=true;break;}}}if(L){if(this._consoleMsgCount===0){this._lastTime=V.time.getTime();}M=this.formatMsg(V);if(typeof M==="string"){W[W.length]=M;}else{T.insertBefore(M,this.newestOnTop?T.firstChild||null:null);}this._consoleMsgCount++;this._lastTime=V.time.getTime();}}if(W.length){W.splice(0,0,this._elConsole.innerHTML);this._elConsole.innerHTML=this.newestOnTop?W.reverse().join(""):W.join("");}else{if(T.firstChild){this._elConsole.insertBefore(T,this.newestOnTop?this._elConsole.firstChild||null:null);}}},_onCategoryCreate:function(K,J,H){var I=J[0];H._categoryFilters.push(I);if(H._elFt){H._createCategoryCheckbox(I);}},_onSourceCreate:function(K,J,H){var I=J[0];H._sourceFilters.push(I);if(H._elFt){H._createSourceCheckbox(I);}},_onCheckCategory:function(H,I){var J=this.category;if(!this.checked){I.hideCategory(J);}else{I.showCategory(J);}},_onCheckSource:function(H,I){var J=this.source;if(!this.checked){I.hideSource(J);}else{I.showSource(J);}},_onClickCollapseBtn:function(H,I){if(!I.isCollapsed){I.collapse();}else{I.expand();}},_onClickPauseBtn:function(H,I){if(!I.isPaused){I.pause();}else{I.resume();}},_onClickClearBtn:function(H,I){I.clearConsole();},_onNewLog:function(K,J,H){var I=J[0];H._buffer.push(I);if(H.logReaderEnabled===true&&H._timeout===null){H._timeout=setTimeout(function(){H._printBuffer();},H.outputBuffer);}},_onReset:function(J,I,H){H._filterLogs();}};YAHOO.widget.LogReader=F;})();YAHOO.register("logger",YAHOO.widget.Logger,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/logger/logger.js b/build/logger/logger.js
index acfdef8..2594188 100644
--- a/build/logger/logger.js
+++ b/build/logger/logger.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /****************************************************************************/
 /****************************************************************************/
@@ -2101,4 +2101,4 @@ LogReader.prototype = {
 YAHOO.widget.LogReader = LogReader;
 
 })();
-YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.8.1", build: "19"});
+YAHOO.register("logger", YAHOO.widget.Logger, {version: "2.8.2r1", build: "7"});
diff --git a/build/menu/assets/menu-core.css b/build/menu/assets/menu-core.css
index 5e100b0..09aadaa 100644
--- a/build/menu/assets/menu-core.css
+++ b/build/menu/assets/menu-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Menu & MenuBar styles */
 
diff --git a/build/menu/assets/menu.css b/build/menu/assets/menu.css
index 9ee68e9..4be206c 100644
--- a/build/menu/assets/menu.css
+++ b/build/menu/assets/menu.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Menu & MenuBar styles */
 
diff --git a/build/menu/assets/skins/sam/menu-skin.css b/build/menu/assets/skins/sam/menu-skin.css
index d6b9df5..0953cef 100644
--- a/build/menu/assets/skins/sam/menu-skin.css
+++ b/build/menu/assets/skins/sam/menu-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* MenuBar style rules */
 
diff --git a/build/menu/assets/skins/sam/menu.css b/build/menu/assets/skins/sam/menu.css
index 4f72f25..068a946 100644
--- a/build/menu/assets/skins/sam/menu.css
+++ b/build/menu/assets/skins/sam/menu.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yuimenu{top:-999em;left:-999em;}.yuimenubar{position:static;}.yuimenu .yuimenu,.yuimenubar .yuimenu{position:absolute;}.yuimenubar li,.yuimenu li{list-style-type:none;}.yuimenubar ul,.yuimenu ul,.yuimenubar li,.yuimenu li,.yuimenu h6,.yuimenubar h6{margin:0;padding:0;}.yuimenuitemlabel,.yuimenubaritemlabel{text-align:left;white-space:nowrap;}.yuimenubar ul{*zoom:1;}.yuimenubar .yuimenu ul{*zoom:normal;}.yuimenubar>.bd>ul:after{content:".";display:block;clear:both;visibility:hidden;height:0;line-height:0;}.yuimenubaritem{float:left;}.yuimenubaritemlabel,.yuimenuitemlabel{display:block;}.yuimenuitemlabel .helptext{font-style:normal;display:block;margin:-1em 0 0 10em;}.yui-menu-shadow{position:absolute;visibility:hidden;z-index:-1;}.yui-menu-shadow-visible{top:2px;right:-3px;left:-3px;bottom:-3px;visibility:visible;}.hide-scrollbars *{overflow:hidden;}.hide-scrollbars select{display:none;}.yuimenu.show-scrollbars,.yuimenubar.show-scrollbars{overflow:visible;}.yuimenu.hide-scrollbars .yui-menu-shadow,.yuimenubar.hide-scrollbars .yui-menu-shadow{overflow:hidden;}.yuimenu.show-scrollbars .yui-menu-shadow,.yuimenubar.show-scrollbars .yui-menu-shadow{overflow:auto;}.yui-overlay.yui-force-redraw{margin-bottom:1px;}.yui-skin-sam .yuimenubar{font-size:93%;line-height:2;*line-height:1.9;border:solid 1px #808080;background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 0;}.yui-skin-sam .yuimenubarnav .yuimenubaritem{border-right:solid 1px #ccc;}.yui-skin-sam .yuimenubaritemlabel{padding:0 10px;color:#000;text-decoration:none;cursor:default;border-style:solid;border-color:#808080;border-width:1px 0;*position:relative;margin:-1px 0;}.yui-skin-sam .yuimenubaritemlabel:visited{color:#000;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel{padding-right:20px;*display:inline-block;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu{background:url(menubaritem_submenuindicator.png) right center no-repeat;}.yui-skin-sam .yuimenubaritem-selected{background:url(../../../../assets/skins/sam/sprite.png) repeat-x 0 -1700px;}.yui-skin-sam .yuimenubaritemlabel-selected{border-color:#7D98B8;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-selected{border-left-width:1px;margin-left:-1px;*left:-1px;}.yui-skin-sam .yuimenubaritemlabel-disabled,.yui-skin-sam .yuimenubaritemlabel-disabled:visited{cursor:default;color:#A6A6A6;}.yui-skin-sam .yuimenubarnav .yuimenubaritemlabel-hassubmenu-disabled{background-image:url(menubaritem_submenuindicator_disabled.png);}.yui-skin-sam .yuimenu{font-size:93%;line-height:1.5;*line-height:1.45;}.yui-skin-sam .yuimenubar .yuimenu,.yui-skin-sam .yuimenu .yuimenu{font-size:100%;}.yui-skin-sam .yuimenu .bd{*zoom:1;_zoom:normal;border:solid 1px #808080;background-color:#fff;}.yui-skin-sam .yuimenu .yuimenu .bd{*zoom:normal;}.yui-skin-sam .yuimenu ul{padding:3px 0;border-width:1px 0 0 0;border-color:#ccc;border-style:solid;}.yui-skin-sam .yuimenu ul.first-of-type{border-width:0;}.yui-skin-sam .yuimenu h6{font-weight:bold;border-style:solid;border-color:#ccc;border-width:1px 0 0 0;color:#a4a4a4;padding:3px 10px 0 10px;}.yui-skin-sam .yuimenu ul.hastitle,.yui-skin-sam .yuimenu h6.first-of-type{border-width:0;}.yui-skin-sam .yuimenu .yui-menu-body-scrolled{border-color:#ccc #808080;overflow:hidden;}.yui-skin-sam .yuimenu .topscrollbar,.yui-skin-sam .yuimenu .bottomscrollbar{height:16px;border:solid 1px #808080;background:#fff url(../../../../assets/skins/sam/sprite.png) no-repeat 0 0;}.yui-skin-sam .yuimenu .topscrollbar{border-bottom-width:0;background-position:center -950px;}.yui-skin-sam .yuimenu .topscrollbar_disabled{background-position:center -975px;}.yui-skin-sam .yuimenu .bottomscrollbar{border-top-width:0;background-position:center -850px;}.yui-skin-sam .yuimenu .bottomscrollbar_disabled{background-position:center -875px;}.yui-skin-sam .yuimenuitem{_border-bottom:solid 1px #fff;}.yui-skin-sam .yuimenuitemlabel{padding:0 20px;color:#000;text-decoration:none;cursor:default;}.yui-skin-sam .yuimenuitemlabel:visited{color:#000;}.yui-skin-sam .yuimenuitemlabel .helptext{margin-top:-1.5em;*margin-top:-1.45em;}.yui-skin-sam .yuimenuitem-hassubmenu{background-image:url(menuitem_submenuindicator.png);background-position:right center;background-repeat:no-repeat;}.yui-skin-sam .yuimenuitem-checked{background-image:url(menuitem_checkbox.png);background-position:left center;background-repeat:no-repeat;}.yui-skin-sam .yui-menu-shadow-visible{background-color:#000;opacity:.12;filter:alpha(opacity=12);}.yui-skin-sam .yuimenuitem-selected{background-color:#B3D4FF;}.yui-skin-sam .yuimenuitemlabel-disabled,.yui-skin-sam .yuimenuitemlabel-disabled:visited{cursor:default;color:#A6A6A6;}.yui-skin-sam .yuimenuitem-hassubmenu-disabled{background-image:url(menuitem_submenuindicator_disabled.png);}.yui-skin-sam .yuimenuitem-checked-disabled{background-image:url(menuitem_checkbox_disabled.png);}
diff --git a/build/menu/menu-debug.js b/build/menu/menu-debug.js
index ec1b929..0058aa2 100644
--- a/build/menu/menu-debug.js
+++ b/build/menu/menu-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
 
@@ -9867,4 +9867,4 @@ toString: function() {
 }
     
 }); // END YAHOO.lang.extend
-YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.8.1", build: "19"});
+YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.8.2r1", build: "7"});
diff --git a/build/menu/menu-min.js b/build/menu/menu-min.js
index 4677ecf..a0b15a5 100644
--- a/build/menu/menu-min.js
+++ b/build/menu/menu-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var K=YAHOO.env.ua,C=YAHOO.util.Dom,Z=YAHOO.util.Event,H=YAHOO.lang,T="DIV",P="hd",M="bd",O="ft",X="LI",A="disabled",D="mouseover",F="mouseout",U="mousedown",G="mouseup",V="click",B="keydown",N="keyup",I="keypress",L="clicktohide",S="position",Q="dynamic",Y="showdelay",J="selected",E="visible",W="UL",R="MenuManager";YAHOO.widget.MenuManager=function(){var l=false,d={},o={},h={},c={"click":"clickEvent","mousedown":"mouseDownEvent","mouseup":"mouseUpEvent","mouseover":"mouseOverEvent","mouseout":"mouseOutEvent","keydown":"keyDownEvent","keyup":"keyUpEvent","keypress":"keyPressEvent","focus":"focusEvent","focusin":"focusEvent","blur":"blurEvent","focusout":"blurEvent"},i=null;function b(r){var p,q;if(r&&r.tagName){switch(r.tagName.toUpperCase()){case T:p=r.parentNode;if((C.hasClass(r,P)||C.hasClass(r,M)||C.hasClass(r,O))&&p&&p.tagName&&p.tagName.toUpperCase()==T){q=p;}else{q=r;}break;case X:q=r;break;default:p=r.parentNode;if(p){q=b(p);}break;}}return q;}function e(t){var p=Z.getTarget(t),q=b(p),u=true,w=t.type,x,r,s,z,y;if(q){r=q.tagName.toUpperCase();if(r==X){s=q.id;if(s&&h[s]){z=h[s];y=z.parent;}}else{if(r==T){if(q.id){y=d[q.id];}}}}if(y){x=c[w];if(w=="click"&&(K.gecko&&y.platform!="mac")&&t.button>0){u=false;}if(u&&z&&!z.cfg.getProperty(A)){z[x].fire(t);}if(u){y[x].fire(t,z);}}else{if(w==U){for(var v in o){if(H.hasOwnProperty(o,v)){y=o[v];if(y.cfg.getProperty(L)&&!(y instanceof YAHOO.widget.MenuBar)&&y.cfg.getProperty(S)==Q){y.hide();if(K.ie&&p.focus){p.setActive();}}else{if(y.cfg.getProperty(Y)>0){y._cancelShowDelay();}if(y.activeItem){y.activeItem.blur();y.activeItem.cfg.setProperty(J,false);y.activeItem=null;}}}}}}}function n(q,p,r){if(d[r.id]){this.removeMenu(r);}}function k(q,p){var r=p[1];if(r){i=r;}}function f(q,p){i=null;}function a(r,q){var p=q[0],s=this.id;if(p){o[s]=this;}else{if(o[s]){delete o[s];}}}function j(q,p){m(this);}function m(q){var p=q.id;if(p&&h[p]){if(i==q){i=null;}delete h[p];q.destroyEvent.unsubscribe(j);}}function g(q,p){var s=p[0],r;if(s instanceof YAHOO.widget.MenuItem){r=s.id;if(!h[r]){h[r]=s;s.destroyEvent.subscribe(j);}}}return{addMenu:function(q){var p;if(q instanceof YAHOO.widget.Menu&&q.id&&!d[q.id]){d[q.id]=q;if(!l){p=document;Z.on(p,D,e,this,true);Z.on(p,F,e,this,true);Z.on(p,U,e,this,true);Z.on(p,G,e,this,true);Z.on(p,V,e,this,true);Z.on(p,B,e,this,true);Z.on(p,N,e,this,true);Z.on(p,I,e,this,true);Z.onFocus(p,e,this,true);Z.onBlur(p,e,this,true);l=true;}q.cfg.subscribeToConfigEvent(E,a);q.destroyEvent.subscribe(n,q,this);q.itemAddedEvent.subscribe(g);q.focusEvent.subscribe(k);q.blurEvent.subscribe(f);}},removeMenu:function(s){var q,p,r;if(s){q=s.id;if((q in d)&&(d[q]==s)){p=s.getItems();if(p&&p.length>0){r=p.length-1;do{m(p[r]);}while(r--);}delete d[q];if((q in o)&&(o[q]==s)){delete o[q];}if(s.cfg){s.cfg.unsubscribeFromConfigEvent(E,a);}s.destroyEvent.unsubscribe(n,s);s.itemAddedEvent.unsubscribe(g);s.focusEvent.unsubscribe(k);s.blurEvent.unsubscribe(f);}}},hideVisible:function(){var p;for(var q in o){if(H.hasOwnProperty(o,q)){p=o[q];if(!(p instanceof YAHOO.widget.MenuBar)&&p.cfg.getProperty(S)==Q){p.hide();}}}},getVisible:function(){return o;},getMenus:function(){return d;},getMenu:function(q){var p;if(q in d){p=d[q];}return p;},getMenuItem:function(q){var p;if(q in h){p=h[q];}return p;},getMenuItemGroup:function(t){var q=C.get(t),p,v,u,r,s;if(q&&q.tagName&&q.tagName.toUpperCase()==W){v=q.firstChild;if(v){p=[];do{r=v.id;if(r){u=this.getMenuItem(r);if(u){p[p.length]=u;}}}while((v=v.nextSibling));if(p.length>0){s=p;}}}return s;},getFocusedMenuItem:function(){return i;},getFocusedMenu:function(){var p;if(i){p=i.parent.getRoot();}return p;},toString:function(){return R;}};}();})();(function(){var AM=YAHOO.lang,Aq="Menu",G="DIV",K="div",Am="id",AH="SELECT",e="xy",R="y",Ax="UL",L="ul",AJ="first-of-type",k="LI",h="OPTGROUP",Az="OPTION",Ah="disabled",AY="none",y="selected",At="groupindex",i="index",O="submenu",Au="visible",AX="hidedelay",Ac="position",AD="dynamic",C="static",An=AD+","+C,Q="url",M="#",V="target",AU="maxheight",T="topscrollbar",x="bottomscrollbar",d="_",P=T+d+Ah,E=x+d+Ah,b="mousemove",Av="showdelay",c="submenuhidedelay",AF="iframe",w="constraintoviewport",A4="preventcontextoverlap",AO="submenualignment",Z="autosubmenudisplay",AC="clicktohide",g="container",j="scrollincrement",Aj="minscrollheight",A2="classname",Ag="shadow",Ar="keepopen",A0="hd",D="hastitle",p="context",u="",Ak="mousedown",Ae="keydown",Ao="height",U="width",AQ="px",Ay="effect",AE="monitorresize",AW="display",AV="block",J="visibility",z="absolute",AS="zindex",l="yui-menu-body-scrolled",AK=" ",A1=" ",Ai="mouseover",H="mouseout",AR="itemAdded",n="itemRemoved",AL="hidden",s="yui-menu-shadow",AG=s+"-visible",m=s+A1+AG;YAHOO.widget.Menu=function(A6,A5){if(A5){this.parent=A5.parent;this.lazyLoad=A5.lazyLoad||A5.lazyload;this.itemData=A5.itemData||A5.itemdata;}YAHOO.widget.Menu.superclass.constructor.call(this,A6,A5);};function B(A6){var A5=false;if(AM.isString(A6)){A5=(An.indexOf((A6.toLowerCase()))!=-1);}return A5;}var f=YAHOO.util.Dom,AA=YAHOO.util.Event,Aw=YAHOO.widget.Module,AB=YAHOO.widget.Overlay,r=YAHOO.widget.Menu,A3=YAHOO.widget.MenuManager,F=YAHOO.util.CustomEvent,As=YAHOO.env.ua,Ap,AT=false,Ad,Ab=[["mouseOverEvent",Ai],["mouseOutEvent",H],["mouseDownEvent",Ak],["mouseUpEvent","mouseup"],["clickEvent","click"],["keyPressEvent","keypress"],["keyDownEvent",Ae],["keyUpEvent","keyup"],["focusEvent","focus"],["blurEvent","blur"],["itemAddedEvent",AR],["itemRemovedEvent",n]],AZ={key:Au,value:false,validator:AM.isBoolean},AP={key:w,value:true,validator:AM.isBoolean,supercedes:[AF,"x",R,e]},AI={key:A4,value:true,validator:AM.isBoolean,supercedes:[w]},S={key:Ac,value:AD,validator:B,supercedes:[Au,AF]},A={key:AO,value:["tl","tr"]},t={key:Z,value:true,validator:AM.isBoolean,suppressEvent:true},Y={key:Av,value:250,validator:AM.isNumber,suppressEvent:true},q={key:AX,value:0,validator:AM.isNumber,suppressEvent:true},v={key:c,value:250,validator:AM.isNumber,suppressEvent:true},o={key:AC,value:true,validator:AM.isBoolean,suppressEvent:true},AN={key:g,suppressEvent:true},Af={key:j,value:1,validator:AM.isNumber,supercedes:[AU],suppressEvent:true},N={key:Aj,value:90,validator:AM.isNumber,supercedes:[AU],suppressEvent:true},X={key:AU,value:0,validator:AM.isNumber,supercedes:[AF],suppressEvent:true},W={key:A2,value:null,validator:AM.isString,suppressEvent:true},a={key:Ah,value:false,validator:AM.isBoolean,suppressEvent:true},I={key:Ag,value:true,validator:AM.isBoolean,suppressEvent:true,supercedes:[Au]},Al={key:Ar,value:false,validator:AM.isBoolean};
 function Aa(A5){Ad=AA.getTarget(A5);}YAHOO.lang.extend(r,AB,{CSS_CLASS_NAME:"yuimenu",ITEM_TYPE:null,GROUP_TITLE_TAG_NAME:"h6",OFF_SCREEN_POSITION:"-999em",_useHideDelay:false,_bHandledMouseOverEvent:false,_bHandledMouseOutEvent:false,_aGroupTitleElements:null,_aItemGroups:null,_aListElements:null,_nCurrentMouseX:0,_bStopMouseEventHandlers:false,_sClassName:null,lazyLoad:false,itemData:null,activeItem:null,parent:null,srcElement:null,init:function(A7,A6){this._aItemGroups=[];this._aListElements=[];this._aGroupTitleElements=[];if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuItem;}var A5;if(AM.isString(A7)){A5=f.get(A7);}else{if(A7.tagName){A5=A7;}}if(A5&&A5.tagName){switch(A5.tagName.toUpperCase()){case G:this.srcElement=A5;if(!A5.id){A5.setAttribute(Am,f.generateId());}r.superclass.init.call(this,A5);this.beforeInitEvent.fire(r);break;case AH:this.srcElement=A5;r.superclass.init.call(this,f.generateId());this.beforeInitEvent.fire(r);break;}}else{r.superclass.init.call(this,A7);this.beforeInitEvent.fire(r);}if(this.element){f.addClass(this.element,this.CSS_CLASS_NAME);this.initEvent.subscribe(this._onInit);this.beforeRenderEvent.subscribe(this._onBeforeRender);this.renderEvent.subscribe(this._onRender);this.beforeShowEvent.subscribe(this._onBeforeShow);this.hideEvent.subscribe(this._onHide);this.showEvent.subscribe(this._onShow);this.beforeHideEvent.subscribe(this._onBeforeHide);this.mouseOverEvent.subscribe(this._onMouseOver);this.mouseOutEvent.subscribe(this._onMouseOut);this.clickEvent.subscribe(this._onClick);this.keyDownEvent.subscribe(this._onKeyDown);this.keyPressEvent.subscribe(this._onKeyPress);this.blurEvent.subscribe(this._onBlur);if(!AT){AA.onFocus(document,Aa);AT=true;}if((As.gecko&&As.gecko<1.9)||As.webkit){this.cfg.subscribeToConfigEvent(R,this._onYChange);}if(A6){this.cfg.applyConfig(A6,true);}A3.addMenu(this);this.initEvent.fire(r);}},_initSubTree:function(){var A6=this.srcElement,A5,A8,BB,BC,BA,A9,A7;if(A6){A5=(A6.tagName&&A6.tagName.toUpperCase());if(A5==G){BC=this.body.firstChild;if(BC){A8=0;BB=this.GROUP_TITLE_TAG_NAME.toUpperCase();do{if(BC&&BC.tagName){switch(BC.tagName.toUpperCase()){case BB:this._aGroupTitleElements[A8]=BC;break;case Ax:this._aListElements[A8]=BC;this._aItemGroups[A8]=[];A8++;break;}}}while((BC=BC.nextSibling));if(this._aListElements[0]){f.addClass(this._aListElements[0],AJ);}}}BC=null;if(A5){switch(A5){case G:BA=this._aListElements;A9=BA.length;if(A9>0){A7=A9-1;do{BC=BA[A7].firstChild;if(BC){do{if(BC&&BC.tagName&&BC.tagName.toUpperCase()==k){this.addItem(new this.ITEM_TYPE(BC,{parent:this}),A7);}}while((BC=BC.nextSibling));}}while(A7--);}break;case AH:BC=A6.firstChild;do{if(BC&&BC.tagName){switch(BC.tagName.toUpperCase()){case h:case Az:this.addItem(new this.ITEM_TYPE(BC,{parent:this}));break;}}}while((BC=BC.nextSibling));break;}}}},_getFirstEnabledItem:function(){var A5=this.getItems(),A9=A5.length,A8,A7;for(var A6=0;A6<A9;A6++){A8=A5[A6];if(A8&&!A8.cfg.getProperty(Ah)&&A8.element.style.display!=AY){A7=A8;break;}}return A7;},_addItemToGroup:function(BA,BB,BF){var BD,BG,A8,BE,A9,A6,A7,BC;function A5(BH,BI){return(BH[BI]||A5(BH,(BI+1)));}if(BB instanceof this.ITEM_TYPE){BD=BB;BD.parent=this;}else{if(AM.isString(BB)){BD=new this.ITEM_TYPE(BB,{parent:this});}else{if(AM.isObject(BB)){BB.parent=this;BD=new this.ITEM_TYPE(BB.text,BB);}}}if(BD){if(BD.cfg.getProperty(y)){this.activeItem=BD;}BG=AM.isNumber(BA)?BA:0;A8=this._getItemGroup(BG);if(!A8){A8=this._createItemGroup(BG);}if(AM.isNumber(BF)){A9=(BF>=A8.length);if(A8[BF]){A8.splice(BF,0,BD);}else{A8[BF]=BD;}BE=A8[BF];if(BE){if(A9&&(!BE.element.parentNode||BE.element.parentNode.nodeType==11)){this._aListElements[BG].appendChild(BE.element);}else{A6=A5(A8,(BF+1));if(A6&&(!BE.element.parentNode||BE.element.parentNode.nodeType==11)){this._aListElements[BG].insertBefore(BE.element,A6.element);}}BE.parent=this;this._subscribeToItemEvents(BE);this._configureSubmenu(BE);this._updateItemProperties(BG);this.itemAddedEvent.fire(BE);this.changeContentEvent.fire();BC=BE;}}else{A7=A8.length;A8[A7]=BD;BE=A8[A7];if(BE){if(!f.isAncestor(this._aListElements[BG],BE.element)){this._aListElements[BG].appendChild(BE.element);}BE.element.setAttribute(At,BG);BE.element.setAttribute(i,A7);BE.parent=this;BE.index=A7;BE.groupIndex=BG;this._subscribeToItemEvents(BE);this._configureSubmenu(BE);if(A7===0){f.addClass(BE.element,AJ);}this.itemAddedEvent.fire(BE);this.changeContentEvent.fire();BC=BE;}}}return BC;},_removeItemFromGroupByIndex:function(A8,A6){var A7=AM.isNumber(A8)?A8:0,A9=this._getItemGroup(A7),BB,BA,A5;if(A9){BB=A9.splice(A6,1);BA=BB[0];if(BA){this._updateItemProperties(A7);if(A9.length===0){A5=this._aListElements[A7];if(this.body&&A5){this.body.removeChild(A5);}this._aItemGroups.splice(A7,1);this._aListElements.splice(A7,1);A5=this._aListElements[0];if(A5){f.addClass(A5,AJ);}}this.itemRemovedEvent.fire(BA);this.changeContentEvent.fire();}}return BA;},_removeItemFromGroupByValue:function(A8,A5){var BA=this._getItemGroup(A8),BB,A9,A7,A6;if(BA){BB=BA.length;A9=-1;if(BB>0){A6=BB-1;do{if(BA[A6]==A5){A9=A6;break;}}while(A6--);if(A9>-1){A7=this._removeItemFromGroupByIndex(A8,A9);}}}return A7;},_updateItemProperties:function(A6){var A7=this._getItemGroup(A6),BA=A7.length,A9,A8,A5;if(BA>0){A5=BA-1;do{A9=A7[A5];if(A9){A8=A9.element;A9.index=A5;A9.groupIndex=A6;A8.setAttribute(At,A6);A8.setAttribute(i,A5);f.removeClass(A8,AJ);}}while(A5--);if(A8){f.addClass(A8,AJ);}}},_createItemGroup:function(A7){var A5,A6;if(!this._aItemGroups[A7]){this._aItemGroups[A7]=[];A5=document.createElement(L);this._aListElements[A7]=A5;A6=this._aItemGroups[A7];}return A6;},_getItemGroup:function(A7){var A5=AM.isNumber(A7)?A7:0,A8=this._aItemGroups,A6;if(A5 in A8){A6=A8[A5];}return A6;},_configureSubmenu:function(A5){var A6=A5.cfg.getProperty(O);if(A6){this.cfg.configChangedEvent.subscribe(this._onParentMenuConfigChange,A6,true);this.renderEvent.subscribe(this._onParentMenuRender,A6,true);}},_subscribeToItemEvents:function(A5){A5.destroyEvent.subscribe(this._onMenuItemDestroy,A5,this);
@@ -13,4 +13,4 @@ BA=A8.offsetWidth;A8.style.width=BA+AQ;A6=(BA-(A8.offsetWidth-BA))+AQ;this.cfg.s
 A5.addProperty(S.key,{handler:this.configPosition,value:S.value,validator:S.validator,supercedes:S.supercedes});A5.addProperty(A.key,{value:A.value,suppressEvent:A.suppressEvent});A5.addProperty(t.key,{value:t.value,validator:t.validator,suppressEvent:t.suppressEvent});A5.addProperty(Y.key,{value:Y.value,validator:Y.validator,suppressEvent:Y.suppressEvent});A5.addProperty(q.key,{handler:this.configHideDelay,value:q.value,validator:q.validator,suppressEvent:q.suppressEvent});A5.addProperty(v.key,{value:v.value,validator:v.validator,suppressEvent:v.suppressEvent});A5.addProperty(o.key,{value:o.value,validator:o.validator,suppressEvent:o.suppressEvent});A5.addProperty(AN.key,{handler:this.configContainer,value:document.body,suppressEvent:AN.suppressEvent});A5.addProperty(Af.key,{value:Af.value,validator:Af.validator,supercedes:Af.supercedes,suppressEvent:Af.suppressEvent});A5.addProperty(N.key,{value:N.value,validator:N.validator,supercedes:N.supercedes,suppressEvent:N.suppressEvent});A5.addProperty(X.key,{handler:this.configMaxHeight,value:X.value,validator:X.validator,suppressEvent:X.suppressEvent,supercedes:X.supercedes});A5.addProperty(W.key,{handler:this.configClassName,value:W.value,validator:W.validator,supercedes:W.supercedes});A5.addProperty(a.key,{handler:this.configDisabled,value:a.value,validator:a.validator,suppressEvent:a.suppressEvent});A5.addProperty(I.key,{handler:this.configShadow,value:I.value,validator:I.validator});A5.addProperty(Al.key,{value:Al.value,validator:Al.validator});}});})();(function(){YAHOO.widget.MenuItem=function(AS,AR){if(AS){if(AR){this.parent=AR.parent;this.value=AR.value;this.id=AR.id;}this.init(AS,AR);}};var x=YAHOO.util.Dom,j=YAHOO.widget.Module,AB=YAHOO.widget.Menu,c=YAHOO.widget.MenuItem,AK=YAHOO.util.CustomEvent,k=YAHOO.env.ua,AQ=YAHOO.lang,AL="text",O="#",Q="-",L="helptext",n="url",AH="target",A="emphasis",N="strongemphasis",b="checked",w="submenu",H="disabled",B="selected",P="hassubmenu",U="checked-disabled",AI="hassubmenu-disabled",AD="hassubmenu-selected",T="checked-selected",q="onclick",J="classname",AJ="",i="OPTION",v="OPTGROUP",K="LI",AE="href",r="SELECT",X="DIV",AN='<em class="helptext">',a="<em>",I="</em>",W="<strong>",y="</strong>",Y="preventcontextoverlap",h="obj",AG="scope",t="none",V="visible",E=" ",m="MenuItem",AA="click",D="show",M="hide",S="li",AF='<a href="#"></a>',p=[["mouseOverEvent","mouseover"],["mouseOutEvent","mouseout"],["mouseDownEvent","mousedown"],["mouseUpEvent","mouseup"],["clickEvent",AA],["keyPressEvent","keypress"],["keyDownEvent","keydown"],["keyUpEvent","keyup"],["focusEvent","focus"],["blurEvent","blur"],["destroyEvent","destroy"]],o={key:AL,value:AJ,validator:AQ.isString,suppressEvent:true},s={key:L,supercedes:[AL],suppressEvent:true},G={key:n,value:O,suppressEvent:true},AO={key:AH,suppressEvent:true},AP={key:A,value:false,validator:AQ.isBoolean,suppressEvent:true,supercedes:[AL]},d={key:N,value:false,validator:AQ.isBoolean,suppressEvent:true,supercedes:[AL]},l={key:b,value:false,validator:AQ.isBoolean,suppressEvent:true,supercedes:[H,B]},F={key:w,suppressEvent:true,supercedes:[H,B]},AM={key:H,value:false,validator:AQ.isBoolean,suppressEvent:true,supercedes:[AL,B]},f={key:B,value:false,validator:AQ.isBoolean,suppressEvent:true},u={key:q,suppressEvent:true},AC={key:J,value:null,validator:AQ.isString,suppressEvent:true},z={key:"keylistener",value:null,suppressEvent:true},C=null,e={};var Z=function(AU,AT){var AR=e[AU];if(!AR){e[AU]={};AR=e[AU];}var AS=AR[AT];if(!AS){AS=AU+Q+AT;AR[AT]=AS;}return AS;};var g=function(AR){x.addClass(this.element,Z(this.CSS_CLASS_NAME,AR));x.addClass(this._oAnchor,Z(this.CSS_LABEL_CLASS_NAME,AR));};var R=function(AR){x.removeClass(this.element,Z(this.CSS_CLASS_NAME,AR));x.removeClass(this._oAnchor,Z(this.CSS_LABEL_CLASS_NAME,AR));};c.prototype={CSS_CLASS_NAME:"yuimenuitem",CSS_LABEL_CLASS_NAME:"yuimenuitemlabel",SUBMENU_TYPE:null,_oAnchor:null,_oHelpTextEM:null,_oSubmenu:null,_oOnclickAttributeValue:null,_sClassName:null,constructor:c,index:null,groupIndex:null,parent:null,element:null,srcElement:null,value:null,browser:j.prototype.browser,id:null,init:function(AR,Ab){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=AB;}this.cfg=new YAHOO.util.Config(this);this.initDefaultConfig();var AX=this.cfg,AY=O,AT,Aa,AZ,AS,AV,AU,AW;if(AQ.isString(AR)){this._createRootNodeStructure();AX.queueProperty(AL,AR);}else{if(AR&&AR.tagName){switch(AR.tagName.toUpperCase()){case i:this._createRootNodeStructure();AX.queueProperty(AL,AR.text);AX.queueProperty(H,AR.disabled);this.value=AR.value;this.srcElement=AR;break;case v:this._createRootNodeStructure();AX.queueProperty(AL,AR.label);AX.queueProperty(H,AR.disabled);this.srcElement=AR;this._initSubTree();break;case K:AZ=x.getFirstChild(AR);if(AZ){AY=AZ.getAttribute(AE,2);AS=AZ.getAttribute(AH);AV=AZ.innerHTML;}this.srcElement=AR;this.element=AR;this._oAnchor=AZ;AX.setProperty(AL,AV,true);AX.setProperty(n,AY,true);AX.setProperty(AH,AS,true);this._initSubTree();break;}}}if(this.element){AU=(this.srcElement||this.element).id;if(!AU){AU=this.id||x.generateId();this.element.id=AU;}this.id=AU;x.addClass(this.element,this.CSS_CLASS_NAME);x.addClass(this._oAnchor,this.CSS_LABEL_CLASS_NAME);AW=p.length-1;do{Aa=p[AW];AT=this.createEvent(Aa[1]);AT.signature=AK.LIST;this[Aa[0]]=AT;}while(AW--);if(Ab){AX.applyConfig(Ab);}AX.fireQueue();}},_createRootNodeStructure:function(){var AR,AS;if(!C){C=document.createElement(S);C.innerHTML=AF;}AR=C.cloneNode(true);AR.className=this.CSS_CLASS_NAME;AS=AR.firstChild;AS.className=this.CSS_LABEL_CLASS_NAME;this.element=AR;this._oAnchor=AS;},_initSubTree:function(){var AX=this.srcElement,AT=this.cfg,AV,AU,AS,AR,AW;if(AX.childNodes.length>0){if(this.parent.lazyLoad&&this.parent.srcElement&&this.parent.srcElement.tagName.toUpperCase()==r){AT.setProperty(w,{id:x.generateId(),itemdata:AX.childNodes});}else{AV=AX.firstChild;AU=[];do{if(AV&&AV.tagName){switch(AV.tagName.toUpperCase()){case X:AT.setProperty(w,AV);break;case i:AU[AU.length]=AV;break;}}}while((AV=AV.nextSibling));
 AS=AU.length;if(AS>0){AR=new this.SUBMENU_TYPE(x.generateId());AT.setProperty(w,AR);for(AW=0;AW<AS;AW++){AR.addItem((new AR.ITEM_TYPE(AU[AW])));}}}}},configText:function(Aa,AT,AV){var AS=AT[0],AU=this.cfg,AY=this._oAnchor,AR=AU.getProperty(L),AZ=AJ,AW=AJ,AX=AJ;if(AS){if(AR){AZ=AN+AR+I;}if(AU.getProperty(A)){AW=a;AX=I;}if(AU.getProperty(N)){AW=W;AX=y;}AY.innerHTML=(AW+AS+AX+AZ);}},configHelpText:function(AT,AS,AR){this.cfg.refireEvent(AL);},configURL:function(AT,AS,AR){var AV=AS[0];if(!AV){AV=O;}var AU=this._oAnchor;if(k.opera){AU.removeAttribute(AE);}AU.setAttribute(AE,AV);},configTarget:function(AU,AT,AS){var AR=AT[0],AV=this._oAnchor;if(AR&&AR.length>0){AV.setAttribute(AH,AR);}else{AV.removeAttribute(AH);}},configEmphasis:function(AT,AS,AR){var AV=AS[0],AU=this.cfg;if(AV&&AU.getProperty(N)){AU.setProperty(N,false);}AU.refireEvent(AL);},configStrongEmphasis:function(AU,AT,AS){var AR=AT[0],AV=this.cfg;if(AR&&AV.getProperty(A)){AV.setProperty(A,false);}AV.refireEvent(AL);},configChecked:function(AT,AS,AR){var AV=AS[0],AU=this.cfg;if(AV){g.call(this,b);}else{R.call(this,b);}AU.refireEvent(AL);if(AU.getProperty(H)){AU.refireEvent(H);}if(AU.getProperty(B)){AU.refireEvent(B);}},configDisabled:function(AT,AS,AR){var AV=AS[0],AW=this.cfg,AU=AW.getProperty(w),AX=AW.getProperty(b);if(AV){if(AW.getProperty(B)){AW.setProperty(B,false);}g.call(this,H);if(AU){g.call(this,AI);}if(AX){g.call(this,U);}}else{R.call(this,H);if(AU){R.call(this,AI);}if(AX){R.call(this,U);}}},configSelected:function(AT,AS,AR){var AX=this.cfg,AW=this._oAnchor,AV=AS[0],AY=AX.getProperty(b),AU=AX.getProperty(w);if(k.opera){AW.blur();}if(AV&&!AX.getProperty(H)){g.call(this,B);if(AU){g.call(this,AD);}if(AY){g.call(this,T);}}else{R.call(this,B);if(AU){R.call(this,AD);}if(AY){R.call(this,T);}}if(this.hasFocus()&&k.opera){AW.focus();}},_onSubmenuBeforeHide:function(AU,AT){var AV=this.parent,AR;function AS(){AV._oAnchor.blur();AR.beforeHideEvent.unsubscribe(AS);}if(AV.hasFocus()){AR=AV.parent;AR.beforeHideEvent.subscribe(AS);}},configSubmenu:function(AY,AT,AW){var AV=AT[0],AU=this.cfg,AS=this.parent&&this.parent.lazyLoad,AX,AZ,AR;if(AV){if(AV instanceof AB){AX=AV;AX.parent=this;AX.lazyLoad=AS;}else{if(AQ.isObject(AV)&&AV.id&&!AV.nodeType){AZ=AV.id;AR=AV;AR.lazyload=AS;AR.parent=this;AX=new this.SUBMENU_TYPE(AZ,AR);AU.setProperty(w,AX,true);}else{AX=new this.SUBMENU_TYPE(AV,{lazyload:AS,parent:this});AU.setProperty(w,AX,true);}}if(AX){AX.cfg.setProperty(Y,true);g.call(this,P);if(AU.getProperty(n)===O){AU.setProperty(n,(O+AX.id));}this._oSubmenu=AX;if(k.opera){AX.beforeHideEvent.subscribe(this._onSubmenuBeforeHide);}}}else{R.call(this,P);if(this._oSubmenu){this._oSubmenu.destroy();}}if(AU.getProperty(H)){AU.refireEvent(H);}if(AU.getProperty(B)){AU.refireEvent(B);}},configOnClick:function(AT,AS,AR){var AU=AS[0];if(this._oOnclickAttributeValue&&(this._oOnclickAttributeValue!=AU)){this.clickEvent.unsubscribe(this._oOnclickAttributeValue.fn,this._oOnclickAttributeValue.obj);this._oOnclickAttributeValue=null;}if(!this._oOnclickAttributeValue&&AQ.isObject(AU)&&AQ.isFunction(AU.fn)){this.clickEvent.subscribe(AU.fn,((h in AU)?AU.obj:this),((AG in AU)?AU.scope:null));this._oOnclickAttributeValue=AU;}},configClassName:function(AU,AT,AS){var AR=AT[0];if(this._sClassName){x.removeClass(this.element,this._sClassName);}x.addClass(this.element,AR);this._sClassName=AR;},_dispatchClickEvent:function(){var AT=this,AS,AR;if(!AT.cfg.getProperty(H)){AS=x.getFirstChild(AT.element);if(k.ie){AS.fireEvent(q);}else{if((k.gecko&&k.gecko>=1.9)||k.opera||k.webkit){AR=document.createEvent("HTMLEvents");AR.initEvent(AA,true,true);}else{AR=document.createEvent("MouseEvents");AR.initMouseEvent(AA,true,true,window,0,0,0,0,0,false,false,false,false,0,null);}AS.dispatchEvent(AR);}}},_createKeyListener:function(AU,AT,AW){var AV=this,AS=AV.parent;var AR=new YAHOO.util.KeyListener(AS.element.ownerDocument,AW,{fn:AV._dispatchClickEvent,scope:AV,correctScope:true});if(AS.cfg.getProperty(V)){AR.enable();}AS.subscribe(D,AR.enable,null,AR);AS.subscribe(M,AR.disable,null,AR);AV._keyListener=AR;AS.unsubscribe(D,AV._createKeyListener,AW);},configKeyListener:function(AT,AS){var AV=AS[0],AU=this,AR=AU.parent;if(AU._keyData){AR.unsubscribe(D,AU._createKeyListener,AU._keyData);AU._keyData=null;}if(AU._keyListener){AR.unsubscribe(D,AU._keyListener.enable);AR.unsubscribe(M,AU._keyListener.disable);AU._keyListener.disable();AU._keyListener=null;}if(AV){AU._keyData=AV;AR.subscribe(D,AU._createKeyListener,AV,AU);}},initDefaultConfig:function(){var AR=this.cfg;AR.addProperty(o.key,{handler:this.configText,value:o.value,validator:o.validator,suppressEvent:o.suppressEvent});AR.addProperty(s.key,{handler:this.configHelpText,supercedes:s.supercedes,suppressEvent:s.suppressEvent});AR.addProperty(G.key,{handler:this.configURL,value:G.value,suppressEvent:G.suppressEvent});AR.addProperty(AO.key,{handler:this.configTarget,suppressEvent:AO.suppressEvent});AR.addProperty(AP.key,{handler:this.configEmphasis,value:AP.value,validator:AP.validator,suppressEvent:AP.suppressEvent,supercedes:AP.supercedes});AR.addProperty(d.key,{handler:this.configStrongEmphasis,value:d.value,validator:d.validator,suppressEvent:d.suppressEvent,supercedes:d.supercedes});AR.addProperty(l.key,{handler:this.configChecked,value:l.value,validator:l.validator,suppressEvent:l.suppressEvent,supercedes:l.supercedes});AR.addProperty(AM.key,{handler:this.configDisabled,value:AM.value,validator:AM.validator,suppressEvent:AM.suppressEvent});AR.addProperty(f.key,{handler:this.configSelected,value:f.value,validator:f.validator,suppressEvent:f.suppressEvent});AR.addProperty(F.key,{handler:this.configSubmenu,supercedes:F.supercedes,suppressEvent:F.suppressEvent});AR.addProperty(u.key,{handler:this.configOnClick,suppressEvent:u.suppressEvent});AR.addProperty(AC.key,{handler:this.configClassName,value:AC.value,validator:AC.validator,suppressEvent:AC.suppressEvent});AR.addProperty(z.key,{handler:this.configKeyListener,value:z.value,suppressEvent:z.suppressEvent});
 },getNextSibling:function(){var AR=function(AX){return(AX.nodeName.toLowerCase()==="ul");},AV=this.element,AU=x.getNextSibling(AV),AT,AS,AW;if(!AU){AT=AV.parentNode;AS=x.getNextSiblingBy(AT,AR);if(AS){AW=AS;}else{AW=x.getFirstChildBy(AT.parentNode,AR);}AU=x.getFirstChild(AW);}return YAHOO.widget.MenuManager.getMenuItem(AU.id);},getNextEnabledSibling:function(){var AR=this.getNextSibling();return(AR.cfg.getProperty(H)||AR.element.style.display==t)?AR.getNextEnabledSibling():AR;},getPreviousSibling:function(){var AR=function(AX){return(AX.nodeName.toLowerCase()==="ul");},AV=this.element,AU=x.getPreviousSibling(AV),AT,AS,AW;if(!AU){AT=AV.parentNode;AS=x.getPreviousSiblingBy(AT,AR);if(AS){AW=AS;}else{AW=x.getLastChildBy(AT.parentNode,AR);}AU=x.getLastChild(AW);}return YAHOO.widget.MenuManager.getMenuItem(AU.id);},getPreviousEnabledSibling:function(){var AR=this.getPreviousSibling();return(AR.cfg.getProperty(H)||AR.element.style.display==t)?AR.getPreviousEnabledSibling():AR;},focus:function(){var AU=this.parent,AT=this._oAnchor,AR=AU.activeItem;function AS(){try{if(!(k.ie&&!document.hasFocus())){if(AR){AR.blurEvent.fire();}AT.focus();this.focusEvent.fire();}}catch(AV){}}if(!this.cfg.getProperty(H)&&AU&&AU.cfg.getProperty(V)&&this.element.style.display!=t){AQ.later(0,this,AS);}},blur:function(){var AR=this.parent;if(!this.cfg.getProperty(H)&&AR&&AR.cfg.getProperty(V)){AQ.later(0,this,function(){try{this._oAnchor.blur();this.blurEvent.fire();}catch(AS){}},0);}},hasFocus:function(){return(YAHOO.widget.MenuManager.getFocusedMenuItem()==this);},destroy:function(){var AT=this.element,AS,AR,AV,AU;if(AT){AS=this.cfg.getProperty(w);if(AS){AS.destroy();}AR=AT.parentNode;if(AR){AR.removeChild(AT);this.destroyEvent.fire();}AU=p.length-1;do{AV=p[AU];this[AV[0]].unsubscribeAll();}while(AU--);this.cfg.configChangedEvent.unsubscribeAll();}},toString:function(){var AS=m,AR=this.id;if(AR){AS+=(E+AR);}return AS;}};AQ.augmentProto(c,YAHOO.util.EventProvider);})();(function(){var B="xy",C="mousedown",F="ContextMenu",J=" ";YAHOO.widget.ContextMenu=function(L,K){YAHOO.widget.ContextMenu.superclass.constructor.call(this,L,K);};var I=YAHOO.util.Event,E=YAHOO.env.ua,G=YAHOO.widget.ContextMenu,A={"TRIGGER_CONTEXT_MENU":"triggerContextMenu","CONTEXT_MENU":(E.opera?C:"contextmenu"),"CLICK":"click"},H={key:"trigger",suppressEvent:true};function D(L,K,M){this.cfg.setProperty(B,M);this.beforeShowEvent.unsubscribe(D,M);}YAHOO.lang.extend(G,YAHOO.widget.Menu,{_oTrigger:null,_bCancelled:false,contextEventTarget:null,triggerContextMenuEvent:null,init:function(L,K){G.superclass.init.call(this,L);this.beforeInitEvent.fire(G);if(K){this.cfg.applyConfig(K,true);}this.initEvent.fire(G);},initEvents:function(){G.superclass.initEvents.call(this);this.triggerContextMenuEvent=this.createEvent(A.TRIGGER_CONTEXT_MENU);this.triggerContextMenuEvent.signature=YAHOO.util.CustomEvent.LIST;},cancel:function(){this._bCancelled=true;},_removeEventHandlers:function(){var K=this._oTrigger;if(K){I.removeListener(K,A.CONTEXT_MENU,this._onTriggerContextMenu);if(E.opera){I.removeListener(K,A.CLICK,this._onTriggerClick);}}},_onTriggerClick:function(L,K){if(L.ctrlKey){I.stopEvent(L);}},_onTriggerContextMenu:function(M,K){var L;if(!(M.type==C&&!M.ctrlKey)){this.contextEventTarget=I.getTarget(M);this.triggerContextMenuEvent.fire(M);if(!this._bCancelled){I.stopEvent(M);YAHOO.widget.MenuManager.hideVisible();L=I.getXY(M);if(!YAHOO.util.Dom.inDocument(this.element)){this.beforeShowEvent.subscribe(D,L);}else{this.cfg.setProperty(B,L);}this.show();}this._bCancelled=false;}},toString:function(){var L=F,K=this.id;if(K){L+=(J+K);}return L;},initDefaultConfig:function(){G.superclass.initDefaultConfig.call(this);this.cfg.addProperty(H.key,{handler:this.configTrigger,suppressEvent:H.suppressEvent});},destroy:function(){this._removeEventHandlers();G.superclass.destroy.call(this);},configTrigger:function(L,K,N){var M=K[0];if(M){if(this._oTrigger){this._removeEventHandlers();}this._oTrigger=M;I.on(M,A.CONTEXT_MENU,this._onTriggerContextMenu,this,true);if(E.opera){I.on(M,A.CLICK,this._onTriggerClick,this,true);}}else{this._removeEventHandlers();}}});}());YAHOO.widget.ContextMenuItem=YAHOO.widget.MenuItem;(function(){var D=YAHOO.lang,N="static",M="dynamic,"+N,A="disabled",F="selected",B="autosubmenudisplay",G="submenu",C="visible",Q=" ",H="submenutoggleregion",P="MenuBar";YAHOO.widget.MenuBar=function(T,S){YAHOO.widget.MenuBar.superclass.constructor.call(this,T,S);};function O(T){var S=false;if(D.isString(T)){S=(M.indexOf((T.toLowerCase()))!=-1);}return S;}var R=YAHOO.util.Event,L=YAHOO.widget.MenuBar,K={key:"position",value:N,validator:O,supercedes:[C]},E={key:"submenualignment",value:["tl","bl"]},J={key:B,value:false,validator:D.isBoolean,suppressEvent:true},I={key:H,value:false,validator:D.isBoolean};D.extend(L,YAHOO.widget.Menu,{init:function(T,S){if(!this.ITEM_TYPE){this.ITEM_TYPE=YAHOO.widget.MenuBarItem;}L.superclass.init.call(this,T);this.beforeInitEvent.fire(L);if(S){this.cfg.applyConfig(S,true);}this.initEvent.fire(L);},CSS_CLASS_NAME:"yuimenubar",SUBMENU_TOGGLE_REGION_WIDTH:20,_onKeyDown:function(U,T,Y){var S=T[0],Z=T[1],W,X,V;if(Z&&!Z.cfg.getProperty(A)){X=Z.cfg;switch(S.keyCode){case 37:case 39:if(Z==this.activeItem&&!X.getProperty(F)){X.setProperty(F,true);}else{V=(S.keyCode==37)?Z.getPreviousEnabledSibling():Z.getNextEnabledSibling();if(V){this.clearActiveItem();V.cfg.setProperty(F,true);W=V.cfg.getProperty(G);if(W){W.show();W.setInitialFocus();}else{V.focus();}}}R.preventDefault(S);break;case 40:if(this.activeItem!=Z){this.clearActiveItem();X.setProperty(F,true);Z.focus();}W=X.getProperty(G);if(W){if(W.cfg.getProperty(C)){W.setInitialSelection();W.setInitialFocus();}else{W.show();W.setInitialFocus();}}R.preventDefault(S);break;}}if(S.keyCode==27&&this.activeItem){W=this.activeItem.cfg.getProperty(G);if(W&&W.cfg.getProperty(C)){W.hide();this.activeItem.focus();}else{this.activeItem.cfg.setProperty(F,false);this.activeItem.blur();}R.preventDefault(S);}},_onClick:function(e,Y,b){L.superclass._onClick.call(this,e,Y,b);
-var d=Y[1],T=true,S,f,U,W,Z,a,c,V;var X=function(){if(a.cfg.getProperty(C)){a.hide();}else{a.show();}};if(d&&!d.cfg.getProperty(A)){f=Y[0];U=R.getTarget(f);W=this.activeItem;Z=this.cfg;if(W&&W!=d){this.clearActiveItem();}d.cfg.setProperty(F,true);a=d.cfg.getProperty(G);if(a){S=d.element;c=YAHOO.util.Dom.getX(S);V=c+(S.offsetWidth-this.SUBMENU_TOGGLE_REGION_WIDTH);if(Z.getProperty(H)){if(R.getPageX(f)>V){X();R.preventDefault(f);T=false;}}else{X();}}}return T;},configSubmenuToggle:function(U,T){var S=T[0];if(S){this.cfg.setProperty(B,false);}},toString:function(){var T=P,S=this.id;if(S){T+=(Q+S);}return T;},initDefaultConfig:function(){L.superclass.initDefaultConfig.call(this);var S=this.cfg;S.addProperty(K.key,{handler:this.configPosition,value:K.value,validator:K.validator,supercedes:K.supercedes});S.addProperty(E.key,{value:E.value,suppressEvent:E.suppressEvent});S.addProperty(J.key,{value:J.value,validator:J.validator,suppressEvent:J.suppressEvent});S.addProperty(I.key,{value:I.value,validator:I.validator,handler:this.configSubmenuToggle});}});}());YAHOO.widget.MenuBarItem=function(B,A){YAHOO.widget.MenuBarItem.superclass.constructor.call(this,B,A);};YAHOO.lang.extend(YAHOO.widget.MenuBarItem,YAHOO.widget.MenuItem,{init:function(B,A){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=YAHOO.widget.Menu;}YAHOO.widget.MenuBarItem.superclass.init.call(this,B);var C=this.cfg;if(A){C.applyConfig(A,true);}C.fireQueue();},CSS_CLASS_NAME:"yuimenubaritem",CSS_LABEL_CLASS_NAME:"yuimenubaritemlabel",toString:function(){var A="MenuBarItem";if(this.cfg&&this.cfg.getProperty("text")){A+=(": "+this.cfg.getProperty("text"));}return A;}});YAHOO.register("menu",YAHOO.widget.Menu,{version:"2.8.1",build:"19"});
\ No newline at end of file
+var d=Y[1],T=true,S,f,U,W,Z,a,c,V;var X=function(){if(a.cfg.getProperty(C)){a.hide();}else{a.show();}};if(d&&!d.cfg.getProperty(A)){f=Y[0];U=R.getTarget(f);W=this.activeItem;Z=this.cfg;if(W&&W!=d){this.clearActiveItem();}d.cfg.setProperty(F,true);a=d.cfg.getProperty(G);if(a){S=d.element;c=YAHOO.util.Dom.getX(S);V=c+(S.offsetWidth-this.SUBMENU_TOGGLE_REGION_WIDTH);if(Z.getProperty(H)){if(R.getPageX(f)>V){X();R.preventDefault(f);T=false;}}else{X();}}}return T;},configSubmenuToggle:function(U,T){var S=T[0];if(S){this.cfg.setProperty(B,false);}},toString:function(){var T=P,S=this.id;if(S){T+=(Q+S);}return T;},initDefaultConfig:function(){L.superclass.initDefaultConfig.call(this);var S=this.cfg;S.addProperty(K.key,{handler:this.configPosition,value:K.value,validator:K.validator,supercedes:K.supercedes});S.addProperty(E.key,{value:E.value,suppressEvent:E.suppressEvent});S.addProperty(J.key,{value:J.value,validator:J.validator,suppressEvent:J.suppressEvent});S.addProperty(I.key,{value:I.value,validator:I.validator,handler:this.configSubmenuToggle});}});}());YAHOO.widget.MenuBarItem=function(B,A){YAHOO.widget.MenuBarItem.superclass.constructor.call(this,B,A);};YAHOO.lang.extend(YAHOO.widget.MenuBarItem,YAHOO.widget.MenuItem,{init:function(B,A){if(!this.SUBMENU_TYPE){this.SUBMENU_TYPE=YAHOO.widget.Menu;}YAHOO.widget.MenuBarItem.superclass.init.call(this,B);var C=this.cfg;if(A){C.applyConfig(A,true);}C.fireQueue();},CSS_CLASS_NAME:"yuimenubaritem",CSS_LABEL_CLASS_NAME:"yuimenubaritemlabel",toString:function(){var A="MenuBarItem";if(this.cfg&&this.cfg.getProperty("text")){A+=(": "+this.cfg.getProperty("text"));}return A;}});YAHOO.register("menu",YAHOO.widget.Menu,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/menu/menu.js b/build/menu/menu.js
index abb892e..e0c9f1b 100644
--- a/build/menu/menu.js
+++ b/build/menu/menu.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
 
@@ -9820,4 +9820,4 @@ toString: function() {
 }
     
 }); // END YAHOO.lang.extend
-YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.8.1", build: "19"});
+YAHOO.register("menu", YAHOO.widget.Menu, {version: "2.8.2r1", build: "7"});
diff --git a/build/paginator/assets/paginator-core.css b/build/paginator/assets/paginator-core.css
index 357a827..86609ea 100644
--- a/build/paginator/assets/paginator-core.css
+++ b/build/paginator/assets/paginator-core.css
@@ -2,5 +2,5 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
diff --git a/build/paginator/assets/skins/sam/paginator-skin.css b/build/paginator/assets/skins/sam/paginator-skin.css
index b64d17b..3503385 100644
--- a/build/paginator/assets/skins/sam/paginator-skin.css
+++ b/build/paginator/assets/skins/sam/paginator-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-pg-container {
     display: block;
diff --git a/build/paginator/assets/skins/sam/paginator.css b/build/paginator/assets/skins/sam/paginator.css
index 53c9542..ca1d99e 100644
--- a/build/paginator/assets/skins/sam/paginator.css
+++ b/build/paginator/assets/skins/sam/paginator.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-pg-container{display:block;margin:6px 0;white-space:nowrap;}.yui-skin-sam .yui-pg-first,.yui-skin-sam .yui-pg-previous,.yui-skin-sam .yui-pg-next,.yui-skin-sam .yui-pg-last,.yui-skin-sam .yui-pg-current,.yui-skin-sam .yui-pg-pages,.yui-skin-sam .yui-pg-page{display:inline-block;font-family:arial,helvetica,clean,sans-serif;padding:3px 6px;zoom:1;}.yui-skin-sam .yui-pg-pages{padding:0;}.yui-skin-sam .yui-pg-current{padding:3px 0;}.yui-skin-sam a.yui-pg-first:link,.yui-skin-sam a.yui-pg-first:visited,.yui-skin-sam a.yui-pg-first:active,.yui-skin-sam a.yui-pg-first:hover,.yui-skin-sam a.yui-pg-previous:link,.yui-skin-sam a.yui-pg-previous:visited,.yui-skin-sam a.yui-pg-previous:active,.yui-skin-sam a.yui-pg-previous:hover,.yui-skin-sam a.yui-pg-next:link,.yui-skin-sam a.yui-pg-next:visited,.yui-skin-sam a.yui-pg-next:active,.yui-skin-sam a.yui-pg-next:hover,.yui-skin-sam a.yui-pg-last:link,.yui-skin-sam a.yui-pg-last:visited,.yui-skin-sam a.yui-pg-last:active,.yui-skin-sam a.yui-pg-last:hover,.yui-skin-sam a.yui-pg-page:link,.yui-skin-sam a.yui-pg-page:visited,.yui-skin-sam a.yui-pg-page:active,.yui-skin-sam a.yui-pg-page:hover{color:#06c;text-decoration:underline;outline:0;}.yui-skin-sam span.yui-pg-first,.yui-skin-sam span.yui-pg-previous,.yui-skin-sam span.yui-pg-next,.yui-skin-sam span.yui-pg-last{color:#a6a6a6;}.yui-skin-sam .yui-pg-page{background-color:#fff;border:1px solid #CBCBCB;padding:2px 6px;text-decoration:none;}.yui-skin-sam .yui-pg-current-page{background-color:transparent;border:none;font-weight:bold;padding:3px 6px;}.yui-skin-sam .yui-pg-page{margin-left:1px;margin-right:1px;}.yui-skin-sam .yui-pg-first,.yui-skin-sam .yui-pg-previous{padding-left:0;}.yui-skin-sam .yui-pg-next,.yui-skin-sam .yui-pg-last{padding-right:0;}.yui-skin-sam .yui-pg-current,.yui-skin-sam .yui-pg-rpp-options{margin-left:1em;margin-right:1em;}
diff --git a/build/paginator/paginator-debug.js b/build/paginator/paginator-debug.js
index 5d5dc1a..ae40aae 100644
--- a/build/paginator/paginator-debug.js
+++ b/build/paginator/paginator-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 /**
@@ -2390,4 +2390,4 @@ Paginator.ui.RowsPerPageDropdown.prototype = {
 };
 
 })();
-YAHOO.register("paginator", YAHOO.widget.Paginator, {version: "2.8.1", build: "19"});
+YAHOO.register("paginator", YAHOO.widget.Paginator, {version: "2.8.2r1", build: "7"});
diff --git a/build/paginator/paginator-min.js b/build/paginator/paginator-min.js
index 6402369..8e98183 100644
--- a/build/paginator/paginator-min.js
+++ b/build/paginator/paginator-min.js
@@ -2,9 +2,9 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var D=YAHOO.util.Dom,F=YAHOO.lang,B=F.isObject,E=F.isFunction,C=F.isArray,A=F.isString;function G(K){var N=G.VALUE_UNLIMITED,L,H,I,J,M;K=B(K)?K:{};this.initConfig();this.initEvents();this.set("rowsPerPage",K.rowsPerPage,true);if(G.isNumeric(K.totalRecords)){this.set("totalRecords",K.totalRecords,true);}this.initUIComponents();for(L in K){if(K.hasOwnProperty(L)){this.set(L,K[L],true);}}H=this.get("initialPage");I=this.get("totalRecords");J=this.get("rowsPerPage");if(H>1&&J!==N){M=(H-1)*J;if(I===N||M<I){this.set("recordOffset",M,true);}}}F.augmentObject(G,{id:0,ID_BASE:"yui-pg",VALUE_UNLIMITED:-1,TEMPLATE_DEFAULT:"{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}",TEMPLATE_ROWS_PER_PAGE:"{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}",ui:{},isNumeric:function(H){return isFinite(+H);},toNumber:function(H){return isFinite(+H)?+H:null;}},true);G.prototype={_containers:[],_batch:false,_pageChanged:false,_state:null,initConfig:function(){var H=G.VALUE_UNLIMITED;this.setAttributeConfig("rowsPerPage",{value:0,validator:G.isNumeric,setter:G.toNumber});this.setAttributeConfig("containers",{value:null,validator:function(K){if(!C(K)){K=[K];}for(var J=0,I=K.length;J<I;++J){if(A(K[J])||(B(K[J])&&K[J].nodeType===1)){continue;}return false;}return true;},method:function(I){I=D.get(I);if(!C(I)){I=[I];}this._containers=I;}});this.setAttributeConfig("totalRecords",{value:0,validator:G.isNumeric,setter:G.toNumber});this.setAttributeConfig("recordOffset",{value:0,validator:function(J){var I=this.get("totalRecords");if(G.isNumeric(J)){J=+J;return I===H||I>J||(I===0&&J===0);}return false;},setter:G.toNumber});this.setAttributeConfig("initialPage",{value:1,validator:G.isNumeric,setter:G.toNumber});this.setAttributeConfig("template",{value:G.TEMPLATE_DEFAULT,validator:A});this.setAttributeConfig("containerClass",{value:"yui-pg-container",validator:A});this.setAttributeConfig("alwaysVisible",{value:true,validator:F.isBoolean});this.setAttributeConfig("updateOnChange",{value:false,validator:F.isBoolean});this.setAttributeConfig("id",{value:G.id++,readOnly:true});this.setAttributeConfig("rendered",{value:false,readOnly:true});},initUIComponents:function(){var J=G.ui,I,H;for(I in J){if(J.hasOwnProperty(I)){H=J[I];if(B(H)&&E(H.init)){H.init(this);}}}},initEvents:function(){this.createEvent("render");this.createEvent("rendered");this.createEvent("changeRequest");this.createEvent("pageChange");this.createEvent("beforeDestroy");this.createEvent("destroy");this._selfSubscribe();},_selfSubscribe:function(){this.subscribe("totalRecordsChange",this.updateVisibility,this,true);this.subscribe("alwaysVisibleChange",this.updateVisibility,this,true);this.subscribe("totalRecordsChange",this._handleStateChange,this,true);this.subscribe("recordOffsetChange",this._handleStateChange,this,true);this.subscribe("rowsPerPageChange",this._handleStateChange,this,true);this.subscribe("totalRecordsChange",this._syncRecordOffset,this,true);},_syncRecordOffset:function(K){var H=K.newValue,J,I;if(K.prevValue!==H){if(H!==G.VALUE_UNLIMITED){J=this.get("rowsPerPage");if(J&&this.get("recordOffset")>=H){I=this.getState({totalRecords:K.prevValue,recordOffset:this.get("recordOffset")});this.set("recordOffset",I.before.recordOffset);this._firePageChange(I);}}}},_handleStateChange:function(I){if(I.prevValue!==I.newValue){var J=this._state||{},H;J[I.type.replace(/Change$/,"")]=I.prevValue;H=this.getState(J);if(H.page!==H.before.page){if(this._batch){this._pageChanged=true;}else{this._firePageChange(H);}}}},_firePageChange:function(H){if(B(H)){var I=H.before;delete H.before;this.fireEvent("pageChange",{type:"pageChange",prevValue:H.page,newValue:I.page,prevState:H,newState:I});}},render:function(){if(this.get("rendered")){return this;}var K=this.get("template"),L=this.getState(),J=G.ID_BASE+this.get("id")+"-",I,H;for(I=0,H=this._containers.length;I<H;++I){this._renderTemplate(this._containers[I],K,J+I,true);}this.updateVisibility();if(this._containers.length){this.setAttributeConfig("rendered",{value:true});this.fireEvent("render",L);this.fireEvent("rendered",L);}return this;},_renderTemplate:function(I,M,L,K){var O=this.get("containerClass"),N,J,H;if(!I){return;}D.setStyle(I,"display","none");D.addClass(I,O);I.innerHTML=M.replace(/\{([a-z0-9_ \-]+)\}/gi,'<span class="yui-pg-ui yui-pg-ui-$1"></span>');N=D.getElementsByClassName("yui-pg-ui","span",I);for(J=0,H=N.length;J<H;++J){this.renderUIComponent(N[J],L);}if(!K){D.setStyle(I,"display","");}},renderUIComponent:function(H,M){var L=H.parentNode,K=/yui-pg-ui-(\w+)/.exec(H.className),J=K&&G.ui[K[1]],I;if(E(J)){I=new J(this);if(E(I.render)){L.replaceChild(I.render(M),H);}}},destroy:function(){this.fireEvent("beforeDestroy");this.fireEvent("destroy");this.setAttributeConfig("rendered",{value:false});this.unsubscribeAll();},updateVisibility:function(M){var I=this.get("alwaysVisible"),O,N,K,L,J,H;if(!M||M.type==="alwaysVisibleChange"||!I){O=this.get("totalRecords");N=true;K=this.get("rowsPerPage");L=this.get("rowsPerPageOptions");if(C(L)){for(J=0,H=L.length;J<H;++J){K=Math.min(K,L[J]);}}if(O!==G.VALUE_UNLIMITED&&O<=K){N=false;}N=N||I;for(J=0,H=this._containers.length;J<H;++J){D.setStyle(this._containers[J],"display",N?"":"none");}}},getContainerNodes:function(){return this._containers;},getTotalPages:function(){var H=this.get("totalRecords"),I=this.get("rowsPerPage");if(!I){return null;}if(H===G.VALUE_UNLIMITED){return G.VALUE_UNLIMITED;}return Math.ceil(H/I);},hasPage:function(I){if(!F.isNumber(I)||I<1){return false;}var H=this.getTotalPages();return(H===G.VALUE_UNLIMITED||H>=I);},getCurrentPage:function(){var H=this.get("rowsPerPage");if(!H||!this.get("totalRecords")){return 0;}return Math.floor(this.get("recordOffset")/H)+1;},hasNextPage:function(){var H=this.getCurrentPage(),I=this.getTotalPages();return H&&(I===G.VALUE_UNLIMITED||H<I);},getNextPage:function(){return this.hasNextPage()?this.getCurrentPage()+1:null;},hasPreviousPage:function(){return(this.getCurrentPage()>1);
 },getPreviousPage:function(){return(this.hasPreviousPage()?this.getCurrentPage()-1:1);},getPageRecords:function(K){if(!F.isNumber(K)){K=this.getCurrentPage();}var J=this.get("rowsPerPage"),I=this.get("totalRecords"),L,H;if(!K||!J){return null;}L=(K-1)*J;if(I!==G.VALUE_UNLIMITED){if(L>=I){return null;}H=Math.min(L+J,I)-1;}else{H=L+J-1;}return[L,H];},setPage:function(I,H){if(this.hasPage(I)&&I!==this.getCurrentPage()){if(this.get("updateOnChange")||H){this.set("recordOffset",(I-1)*this.get("rowsPerPage"));}else{this.fireEvent("changeRequest",this.getState({"page":I}));}}},getRowsPerPage:function(){return this.get("rowsPerPage");},setRowsPerPage:function(I,H){if(G.isNumeric(I)&&+I>0&&+I!==this.get("rowsPerPage")){if(this.get("updateOnChange")||H){this.set("rowsPerPage",I);}else{this.fireEvent("changeRequest",this.getState({"rowsPerPage":+I}));}}},getTotalRecords:function(){return this.get("totalRecords");},setTotalRecords:function(I,H){if(G.isNumeric(I)&&+I>=0&&+I!==this.get("totalRecords")){if(this.get("updateOnChange")||H){this.set("totalRecords",I);}else{this.fireEvent("changeRequest",this.getState({"totalRecords":+I}));}}},getStartIndex:function(){return this.get("recordOffset");},setStartIndex:function(I,H){if(G.isNumeric(I)&&+I>=0&&+I!==this.get("recordOffset")){if(this.get("updateOnChange")||H){this.set("recordOffset",I);}else{this.fireEvent("changeRequest",this.getState({"recordOffset":+I}));}}},getState:function(O){var Q=G.VALUE_UNLIMITED,L=Math,N=L.max,P=L.ceil,J,H,K;function I(S,M,R){if(S<=0||M===0){return 0;}if(M===Q||M>S){return S-(S%R);}return M-(M%R||R);}J={paginator:this,totalRecords:this.get("totalRecords"),rowsPerPage:this.get("rowsPerPage"),records:this.getPageRecords()};J.recordOffset=I(this.get("recordOffset"),J.totalRecords,J.rowsPerPage);J.page=P(J.recordOffset/J.rowsPerPage)+1;if(!O){return J;}H={paginator:this,before:J,rowsPerPage:O.rowsPerPage||J.rowsPerPage,totalRecords:(G.isNumeric(O.totalRecords)?N(O.totalRecords,Q):+J.totalRecords)};if(H.totalRecords===0){H.recordOffset=H.page=0;}else{K=G.isNumeric(O.page)?(O.page-1)*H.rowsPerPage:G.isNumeric(O.recordOffset)?+O.recordOffset:J.recordOffset;H.recordOffset=I(K,H.totalRecords,H.rowsPerPage);H.page=P(H.recordOffset/H.rowsPerPage)+1;}H.records=[H.recordOffset,H.recordOffset+H.rowsPerPage-1];if(H.totalRecords!==Q&&H.recordOffset<H.totalRecords&&H.records&&H.records[1]>H.totalRecords-1){H.records[1]=H.totalRecords-1;}return H;},setState:function(I){if(B(I)){this._state=this.getState({});I={page:I.page,rowsPerPage:I.rowsPerPage,totalRecords:I.totalRecords,recordOffset:I.recordOffset};if(I.page&&I.recordOffset===undefined){I.recordOffset=(I.page-1)*(I.rowsPerPage||this.get("rowsPerPage"));}this._batch=true;this._pageChanged=false;for(var H in I){if(I.hasOwnProperty(H)&&this._configs.hasOwnProperty(H)){this.set(H,I[H]);}}this._batch=false;if(this._pageChanged){this._pageChanged=false;this._firePageChange(this.getState(this._state));}}}};F.augmentProto(G,YAHOO.util.AttributeProvider);YAHOO.widget.Paginator=G;})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.CurrentPageReport=function(C){this.paginator=C;C.subscribe("recordOffsetChange",this.update,this,true);C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("totalRecordsChange",this.update,this,true);C.subscribe("pageReportTemplateChange",this.update,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("pageReportClassChange",this.update,this,true);};B.ui.CurrentPageReport.init=function(C){C.setAttributeConfig("pageReportClass",{value:"yui-pg-current",validator:A.isString});C.setAttributeConfig("pageReportTemplate",{value:"({currentPage} of {totalPages})",validator:A.isString});C.setAttributeConfig("pageReportValueGenerator",{value:function(F){var E=F.getCurrentPage(),D=F.getPageRecords();return{"currentPage":D?E:0,"totalPages":F.getTotalPages(),"startIndex":D?D[0]:0,"endIndex":D?D[1]:0,"startRecord":D?D[0]+1:0,"endRecord":D?D[1]+1:0,"totalRecords":F.get("totalRecords")};},validator:A.isFunction});};B.ui.CurrentPageReport.sprintf=function(D,C){return D.replace(/\{([\w\s\-]+)\}/g,function(E,F){return(F in C)?C[F]:"";});};B.ui.CurrentPageReport.prototype={span:null,render:function(C){this.span=document.createElement("span");this.span.id=C+"-page-report";this.span.className=this.paginator.get("pageReportClass");this.update();return this.span;},update:function(C){if(C&&C.prevValue===C.newValue){return;}this.span.innerHTML=B.ui.CurrentPageReport.sprintf(this.paginator.get("pageReportTemplate"),this.paginator.get("pageReportValueGenerator")(this.paginator));},destroy:function(){this.span.parentNode.removeChild(this.span);this.span=null;}};})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.PageLinks=function(C){this.paginator=C;C.subscribe("recordOffsetChange",this.update,this,true);C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("totalRecordsChange",this.update,this,true);C.subscribe("pageLinksChange",this.rebuild,this,true);C.subscribe("pageLinkClassChange",this.rebuild,this,true);C.subscribe("currentPageClassChange",this.rebuild,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("pageLinksContainerClassChange",this.rebuild,this,true);};B.ui.PageLinks.init=function(C){C.setAttributeConfig("pageLinkClass",{value:"yui-pg-page",validator:A.isString});C.setAttributeConfig("currentPageClass",{value:"yui-pg-current-page",validator:A.isString});C.setAttributeConfig("pageLinksContainerClass",{value:"yui-pg-pages",validator:A.isString});C.setAttributeConfig("pageLinks",{value:10,validator:B.isNumeric});C.setAttributeConfig("pageLabelBuilder",{value:function(D,E){return D;},validator:A.isFunction});};B.ui.PageLinks.calculateRange=function(E,F,D){var I=B.VALUE_UNLIMITED,H,C,G;if(!E||D===0||F===0||(F===I&&D===I)){return[0,-1];}if(F!==I){D=D===I?F:Math.min(D,F);}H=Math.max(1,Math.ceil(E-(D/2)));if(F===I){C=H+D-1;}else{C=Math.min(F,H+D-1);}G=D-(C-H+1);H=Math.max(1,H-G);return[H,C];};B.ui.PageLinks.prototype={current:0,container:null,render:function(C){var D=this.paginator;
 this.container=document.createElement("span");this.container.id=C+"-pages";this.container.className=D.get("pageLinksContainerClass");YAHOO.util.Event.on(this.container,"click",this.onClick,this,true);this.update({newValue:null,rebuild:true});return this.container;},update:function(J){if(J&&J.prevValue===J.newValue){return;}var E=this.paginator,I=E.getCurrentPage();if(this.current!==I||!I||J.rebuild){var L=E.get("pageLabelBuilder"),H=B.ui.PageLinks.calculateRange(I,E.getTotalPages(),E.get("pageLinks")),D=H[0],F=H[1],K="",C,G;C='<a href="#" class="'+E.get("pageLinkClass")+'" page="';for(G=D;G<=F;++G){if(G===I){K+='<span class="'+E.get("currentPageClass")+" "+E.get("pageLinkClass")+'">'+L(G,E)+"</span>";}else{K+=C+G+'">'+L(G,E)+"</a>";}}this.container.innerHTML=K;}},rebuild:function(C){C.rebuild=true;this.update(C);},destroy:function(){YAHOO.util.Event.purgeElement(this.container,true);this.container.parentNode.removeChild(this.container);this.container=null;},onClick:function(D){var C=YAHOO.util.Event.getTarget(D);if(C&&YAHOO.util.Dom.hasClass(C,this.paginator.get("pageLinkClass"))){YAHOO.util.Event.stopEvent(D);this.paginator.setPage(parseInt(C.getAttribute("page"),10));}}};})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.FirstPageLink=function(C){this.paginator=C;C.subscribe("recordOffsetChange",this.update,this,true);C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("totalRecordsChange",this.update,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("firstPageLinkLabelChange",this.update,this,true);C.subscribe("firstPageLinkClassChange",this.update,this,true);};B.ui.FirstPageLink.init=function(C){C.setAttributeConfig("firstPageLinkLabel",{value:"<< first",validator:A.isString});C.setAttributeConfig("firstPageLinkClass",{value:"yui-pg-first",validator:A.isString});};B.ui.FirstPageLink.prototype={current:null,link:null,span:null,render:function(D){var E=this.paginator,F=E.get("firstPageLinkClass"),C=E.get("firstPageLinkLabel");this.link=document.createElement("a");this.span=document.createElement("span");this.link.id=D+"-first-link";this.link.href="#";this.link.className=F;this.link.innerHTML=C;YAHOO.util.Event.on(this.link,"click",this.onClick,this,true);this.span.id=D+"-first-span";this.span.className=F;this.span.innerHTML=C;this.current=E.getCurrentPage()>1?this.link:this.span;return this.current;},update:function(D){if(D&&D.prevValue===D.newValue){return;}var C=this.current?this.current.parentNode:null;if(this.paginator.getCurrentPage()>1){if(C&&this.current===this.span){C.replaceChild(this.link,this.current);this.current=this.link;}}else{if(C&&this.current===this.link){C.replaceChild(this.span,this.current);this.current=this.span;}}},destroy:function(){YAHOO.util.Event.purgeElement(this.link);this.current.parentNode.removeChild(this.current);this.link=this.span=null;},onClick:function(C){YAHOO.util.Event.stopEvent(C);this.paginator.setPage(1);}};})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.LastPageLink=function(C){this.paginator=C;C.subscribe("recordOffsetChange",this.update,this,true);C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("totalRecordsChange",this.update,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("lastPageLinkLabelChange",this.update,this,true);C.subscribe("lastPageLinkClassChange",this.update,this,true);};B.ui.LastPageLink.init=function(C){C.setAttributeConfig("lastPageLinkLabel",{value:"last >>",validator:A.isString});C.setAttributeConfig("lastPageLinkClass",{value:"yui-pg-last",validator:A.isString});};B.ui.LastPageLink.prototype={current:null,link:null,span:null,na:null,render:function(D){var F=this.paginator,G=F.get("lastPageLinkClass"),C=F.get("lastPageLinkLabel"),E=F.getTotalPages();this.link=document.createElement("a");this.span=document.createElement("span");this.na=this.span.cloneNode(false);this.link.id=D+"-last-link";this.link.href="#";this.link.className=G;this.link.innerHTML=C;YAHOO.util.Event.on(this.link,"click",this.onClick,this,true);this.span.id=D+"-last-span";this.span.className=G;this.span.innerHTML=C;this.na.id=D+"-last-na";switch(E){case B.VALUE_UNLIMITED:this.current=this.na;break;case F.getCurrentPage():this.current=this.span;break;default:this.current=this.link;}return this.current;},update:function(D){if(D&&D.prevValue===D.newValue){return;}var C=this.current?this.current.parentNode:null,E=this.link;if(C){switch(this.paginator.getTotalPages()){case B.VALUE_UNLIMITED:E=this.na;break;case this.paginator.getCurrentPage():E=this.span;break;}if(this.current!==E){C.replaceChild(E,this.current);this.current=E;}}},destroy:function(){YAHOO.util.Event.purgeElement(this.link);this.current.parentNode.removeChild(this.current);this.link=this.span=null;},onClick:function(C){YAHOO.util.Event.stopEvent(C);this.paginator.setPage(this.paginator.getTotalPages());}};})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.NextPageLink=function(C){this.paginator=C;C.subscribe("recordOffsetChange",this.update,this,true);C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("totalRecordsChange",this.update,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("nextPageLinkLabelChange",this.update,this,true);C.subscribe("nextPageLinkClassChange",this.update,this,true);};B.ui.NextPageLink.init=function(C){C.setAttributeConfig("nextPageLinkLabel",{value:"next >",validator:A.isString});C.setAttributeConfig("nextPageLinkClass",{value:"yui-pg-next",validator:A.isString});};B.ui.NextPageLink.prototype={current:null,link:null,span:null,render:function(D){var F=this.paginator,G=F.get("nextPageLinkClass"),C=F.get("nextPageLinkLabel"),E=F.getTotalPages();this.link=document.createElement("a");this.span=document.createElement("span");this.link.id=D+"-next-link";this.link.href="#";this.link.className=G;this.link.innerHTML=C;YAHOO.util.Event.on(this.link,"click",this.onClick,this,true);this.span.id=D+"-next-span";this.span.className=G;
-this.span.innerHTML=C;this.current=F.getCurrentPage()===E?this.span:this.link;return this.current;},update:function(E){if(E&&E.prevValue===E.newValue){return;}var D=this.paginator.getTotalPages(),C=this.current?this.current.parentNode:null;if(this.paginator.getCurrentPage()!==D){if(C&&this.current===this.span){C.replaceChild(this.link,this.current);this.current=this.link;}}else{if(this.current===this.link){if(C){C.replaceChild(this.span,this.current);this.current=this.span;}}}},destroy:function(){YAHOO.util.Event.purgeElement(this.link);this.current.parentNode.removeChild(this.current);this.link=this.span=null;},onClick:function(C){YAHOO.util.Event.stopEvent(C);this.paginator.setPage(this.paginator.getNextPage());}};})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.PreviousPageLink=function(C){this.paginator=C;C.subscribe("recordOffsetChange",this.update,this,true);C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("totalRecordsChange",this.update,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("previousPageLinkLabelChange",this.update,this,true);C.subscribe("previousPageLinkClassChange",this.update,this,true);};B.ui.PreviousPageLink.init=function(C){C.setAttributeConfig("previousPageLinkLabel",{value:"< prev",validator:A.isString});C.setAttributeConfig("previousPageLinkClass",{value:"yui-pg-previous",validator:A.isString});};B.ui.PreviousPageLink.prototype={current:null,link:null,span:null,render:function(D){var E=this.paginator,F=E.get("previousPageLinkClass"),C=E.get("previousPageLinkLabel");this.link=document.createElement("a");this.span=document.createElement("span");this.link.id=D+"-prev-link";this.link.href="#";this.link.className=F;this.link.innerHTML=C;YAHOO.util.Event.on(this.link,"click",this.onClick,this,true);this.span.id=D+"-prev-span";this.span.className=F;this.span.innerHTML=C;this.current=E.getCurrentPage()>1?this.link:this.span;return this.current;},update:function(D){if(D&&D.prevValue===D.newValue){return;}var C=this.current?this.current.parentNode:null;if(this.paginator.getCurrentPage()>1){if(C&&this.current===this.span){C.replaceChild(this.link,this.current);this.current=this.link;}}else{if(C&&this.current===this.link){C.replaceChild(this.span,this.current);this.current=this.span;}}},destroy:function(){YAHOO.util.Event.purgeElement(this.link);this.current.parentNode.removeChild(this.current);this.link=this.span=null;},onClick:function(C){YAHOO.util.Event.stopEvent(C);this.paginator.setPage(this.paginator.getPreviousPage());}};})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.RowsPerPageDropdown=function(C){this.paginator=C;C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("rowsPerPageOptionsChange",this.rebuild,this,true);C.subscribe("totalRecordsChange",this._handleTotalRecordsChange,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("rowsPerPageDropdownClassChange",this.rebuild,this,true);};B.ui.RowsPerPageDropdown.init=function(C){C.setAttributeConfig("rowsPerPageOptions",{value:[],validator:A.isArray});C.setAttributeConfig("rowsPerPageDropdownClass",{value:"yui-pg-rpp-options",validator:A.isString});};B.ui.RowsPerPageDropdown.prototype={select:null,all:null,render:function(C){this.select=document.createElement("select");this.select.id=C+"-rpp";this.select.className=this.paginator.get("rowsPerPageDropdownClass");this.select.title="Rows per page";YAHOO.util.Event.on(this.select,"change",this.onChange,this,true);this.rebuild();return this.select;},rebuild:function(J){var C=this.paginator,E=this.select,K=C.get("rowsPerPageOptions"),D,I,F,G,H;this.all=null;for(G=0,H=K.length;G<H;++G){I=K[G];D=E.options[G]||E.appendChild(document.createElement("option"));F=A.isValue(I.value)?I.value:I;D.innerHTML=A.isValue(I.text)?I.text:I;if(A.isString(F)&&F.toLowerCase()==="all"){this.all=D;D.value=C.get("totalRecords");}else{D.value=F;}}while(E.options.length>K.length){E.removeChild(E.firstChild);}this.update();},update:function(G){if(G&&G.prevValue===G.newValue){return;}var F=this.paginator.get("rowsPerPage")+"",D=this.select.options,E,C;for(E=0,C=D.length;E<C;++E){if(D[E].value===F){D[E].selected=true;break;}}},onChange:function(C){this.paginator.setRowsPerPage(parseInt(this.select.options[this.select.selectedIndex].value,10));},_handleTotalRecordsChange:function(C){if(!this.all||(C&&C.prevValue===C.newValue)){return;}this.all.value=C.newValue;if(this.all.selected){this.paginator.set("rowsPerPage",C.newValue);}},destroy:function(){YAHOO.util.Event.purgeElement(this.select);this.select.parentNode.removeChild(this.select);this.select=null;}};})();YAHOO.register("paginator",YAHOO.widget.Paginator,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this.span.innerHTML=C;this.current=F.getCurrentPage()===E?this.span:this.link;return this.current;},update:function(E){if(E&&E.prevValue===E.newValue){return;}var D=this.paginator.getTotalPages(),C=this.current?this.current.parentNode:null;if(this.paginator.getCurrentPage()!==D){if(C&&this.current===this.span){C.replaceChild(this.link,this.current);this.current=this.link;}}else{if(this.current===this.link){if(C){C.replaceChild(this.span,this.current);this.current=this.span;}}}},destroy:function(){YAHOO.util.Event.purgeElement(this.link);this.current.parentNode.removeChild(this.current);this.link=this.span=null;},onClick:function(C){YAHOO.util.Event.stopEvent(C);this.paginator.setPage(this.paginator.getNextPage());}};})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.PreviousPageLink=function(C){this.paginator=C;C.subscribe("recordOffsetChange",this.update,this,true);C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("totalRecordsChange",this.update,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("previousPageLinkLabelChange",this.update,this,true);C.subscribe("previousPageLinkClassChange",this.update,this,true);};B.ui.PreviousPageLink.init=function(C){C.setAttributeConfig("previousPageLinkLabel",{value:"< prev",validator:A.isString});C.setAttributeConfig("previousPageLinkClass",{value:"yui-pg-previous",validator:A.isString});};B.ui.PreviousPageLink.prototype={current:null,link:null,span:null,render:function(D){var E=this.paginator,F=E.get("previousPageLinkClass"),C=E.get("previousPageLinkLabel");this.link=document.createElement("a");this.span=document.createElement("span");this.link.id=D+"-prev-link";this.link.href="#";this.link.className=F;this.link.innerHTML=C;YAHOO.util.Event.on(this.link,"click",this.onClick,this,true);this.span.id=D+"-prev-span";this.span.className=F;this.span.innerHTML=C;this.current=E.getCurrentPage()>1?this.link:this.span;return this.current;},update:function(D){if(D&&D.prevValue===D.newValue){return;}var C=this.current?this.current.parentNode:null;if(this.paginator.getCurrentPage()>1){if(C&&this.current===this.span){C.replaceChild(this.link,this.current);this.current=this.link;}}else{if(C&&this.current===this.link){C.replaceChild(this.span,this.current);this.current=this.span;}}},destroy:function(){YAHOO.util.Event.purgeElement(this.link);this.current.parentNode.removeChild(this.current);this.link=this.span=null;},onClick:function(C){YAHOO.util.Event.stopEvent(C);this.paginator.setPage(this.paginator.getPreviousPage());}};})();(function(){var B=YAHOO.widget.Paginator,A=YAHOO.lang;B.ui.RowsPerPageDropdown=function(C){this.paginator=C;C.subscribe("rowsPerPageChange",this.update,this,true);C.subscribe("rowsPerPageOptionsChange",this.rebuild,this,true);C.subscribe("totalRecordsChange",this._handleTotalRecordsChange,this,true);C.subscribe("destroy",this.destroy,this,true);C.subscribe("rowsPerPageDropdownClassChange",this.rebuild,this,true);};B.ui.RowsPerPageDropdown.init=function(C){C.setAttributeConfig("rowsPerPageOptions",{value:[],validator:A.isArray});C.setAttributeConfig("rowsPerPageDropdownClass",{value:"yui-pg-rpp-options",validator:A.isString});};B.ui.RowsPerPageDropdown.prototype={select:null,all:null,render:function(C){this.select=document.createElement("select");this.select.id=C+"-rpp";this.select.className=this.paginator.get("rowsPerPageDropdownClass");this.select.title="Rows per page";YAHOO.util.Event.on(this.select,"change",this.onChange,this,true);this.rebuild();return this.select;},rebuild:function(J){var C=this.paginator,E=this.select,K=C.get("rowsPerPageOptions"),D,I,F,G,H;this.all=null;for(G=0,H=K.length;G<H;++G){I=K[G];D=E.options[G]||E.appendChild(document.createElement("option"));F=A.isValue(I.value)?I.value:I;D.innerHTML=A.isValue(I.text)?I.text:I;if(A.isString(F)&&F.toLowerCase()==="all"){this.all=D;D.value=C.get("totalRecords");}else{D.value=F;}}while(E.options.length>K.length){E.removeChild(E.firstChild);}this.update();},update:function(G){if(G&&G.prevValue===G.newValue){return;}var F=this.paginator.get("rowsPerPage")+"",D=this.select.options,E,C;for(E=0,C=D.length;E<C;++E){if(D[E].value===F){D[E].selected=true;break;}}},onChange:function(C){this.paginator.setRowsPerPage(parseInt(this.select.options[this.select.selectedIndex].value,10));},_handleTotalRecordsChange:function(C){if(!this.all||(C&&C.prevValue===C.newValue)){return;}this.all.value=C.newValue;if(this.all.selected){this.paginator.set("rowsPerPage",C.newValue);}},destroy:function(){YAHOO.util.Event.purgeElement(this.select);this.select.parentNode.removeChild(this.select);this.select=null;}};})();YAHOO.register("paginator",YAHOO.widget.Paginator,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/paginator/paginator.js b/build/paginator/paginator.js
index 5d5dc1a..ae40aae 100644
--- a/build/paginator/paginator.js
+++ b/build/paginator/paginator.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
 /**
@@ -2390,4 +2390,4 @@ Paginator.ui.RowsPerPageDropdown.prototype = {
 };
 
 })();
-YAHOO.register("paginator", YAHOO.widget.Paginator, {version: "2.8.1", build: "19"});
+YAHOO.register("paginator", YAHOO.widget.Paginator, {version: "2.8.2r1", build: "7"});
diff --git a/build/profiler/profiler-debug.js b/build/profiler/profiler-debug.js
index 023fab7..5a61a32 100644
--- a/build/profiler/profiler-debug.js
+++ b/build/profiler/profiler-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("tool");
 
@@ -554,4 +554,4 @@ YAHOO.tool.Profiler = function(){
 
 }();  
 
-YAHOO.register("profiler", YAHOO.tool.Profiler, {version: "2.8.1", build: "19"});
+YAHOO.register("profiler", YAHOO.tool.Profiler, {version: "2.8.2r1", build: "7"});
diff --git a/build/profiler/profiler-min.js b/build/profiler/profiler-min.js
index 0335f88..467286a 100644
--- a/build/profiler/profiler-min.js
+++ b/build/profiler/profiler-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.namespace("tool");YAHOO.tool.Profiler=function(){var container={},report={},stopwatches={},WATCH_STARTED=0,WATCH_STOPPED=1,WATCH_PAUSED=2,lang=YAHOO.lang;function createReport(name){report[name]={calls:0,max:0,min:0,avg:0,points:[]};}function saveDataPoint(name,duration){var functionData=report[name];if(!functionData){functionData=createReport(name);}functionData.calls++;functionData.points.push(duration);if(functionData.calls>1){functionData.avg=((functionData.avg*(functionData.calls-1))+duration)/functionData.calls;functionData.min=Math.min(functionData.min,duration);functionData.max=Math.max(functionData.max,duration);}else{functionData.avg=duration;functionData.min=duration;functionData.max=duration;}}return{clear:function(name){if(lang.isString(name)){delete report[name];delete stopwatches[name];}else{report={};stopwatches={};}},getOriginal:function(name){return container[name];},instrument:function(name,method){var newMethod=function(){var start=new Date(),retval=method.apply(this,arguments),stop=new Date();saveDataPoint(name,stop-start);return retval;};lang.augmentObject(newMethod,method);newMethod.__yuiProfiled=true;newMethod.prototype=method.prototype;container[name]=method;container[name].__yuiFuncName=name;createReport(name);return newMethod;},pause:function(name){var now=new Date(),stopwatch=stopwatches[name];if(stopwatch&&stopwatch.state==WATCH_STARTED){stopwatch.total+=(now-stopwatch.start);stopwatch.start=0;stopwatch.state=WATCH_PAUSED;}},start:function(name){if(container[name]){throw new Error("Cannot use '"+name+"' for profiling through start(), name is already in use.");}else{if(!report[name]){createReport(name);}if(!stopwatches[name]){stopwatches[name]={state:WATCH_STOPPED,start:0,total:0};}if(stopwatches[name].state==WATCH_STOPPED){stopwatches[name].state=WATCH_STARTED;stopwatches[name].start=new Date();}}},stop:function(name){var now=new Date(),stopwatch=stopwatches[name];if(stopwatch){if(stopwatch.state==WATCH_STARTED){saveDataPoint(name,stopwatch.total+(now-stopwatch.start));}else{if(stopwatch.state==WATCH_PAUSED){saveDataPoint(name,stopwatch.total);}}stopwatch.start=0;stopwatch.total=0;stopwatch.state=WATCH_STOPPED;}},getAverage:function(name){return report[name].avg;},getCallCount:function(name){return report[name].calls;},getMax:function(name){return report[name].max;},getMin:function(name){return report[name].min;},getFunctionReport:function(name){return report[name];},getReport:function(name){return report[name];},getFullReport:function(filter){filter=filter||function(){return true;};if(lang.isFunction(filter)){var fullReport={};for(var name in report){if(filter(report[name])){fullReport[name]=report[name];}}return fullReport;}},registerConstructor:function(name,owner){this.registerFunction(name,owner,true);},registerFunction:function(name,owner,registerPrototype){var funcName=(name.indexOf(".")>-1?name.substring(name.lastIndexOf(".")+1):name),method,prototype;if(!lang.isObject(owner)){owner=eval(name.substring(0,name.lastIndexOf(".")));}method=owner[funcName];prototype=method.prototype;if(lang.isFunction(method)&&!method.__yuiProfiled){owner[funcName]=this.instrument(name,method);container[name].__yuiOwner=owner;container[name].__yuiFuncName=funcName;if(registerPrototype){this.registerObject(name+".prototype",prototype);}}},registerObject:function(name,object,recurse){object=(lang.isObject(object)?object:eval(name));container[name]=object;for(var prop in object){if(typeof object[prop]=="function"){if(prop!="constructor"&&prop!="superclass"){this.registerFunction(name+"."+prop,object);}}else{if(typeof object[prop]=="object"&&recurse){this.registerObject(name+"."+prop,object[prop],recurse);}}}},unregisterConstructor:function(name){if(lang.isFunction(container[name])){this.unregisterFunction(name,true);}},unregisterFunction:function(name,unregisterPrototype){if(lang.isFunction(container[name])){if(unregisterPrototype){this.unregisterObject(name+".prototype",container[name].prototype);}var owner=container[name].__yuiOwner,funcName=container[name].__yuiFuncName;delete container[name].__yuiOwner;delete container[name].__yuiFuncName;owner[funcName]=container[name];delete container[name];}},unregisterObject:function(name,recurse){if(lang.isObject(container[name])){var object=container[name];for(var prop in object){if(typeof object[prop]=="function"){this.unregisterFunction(name+"."+prop);}else{if(typeof object[prop]=="object"&&recurse){this.unregisterObject(name+"."+prop,recurse);}}}delete container[name];}}};}();YAHOO.register("profiler",YAHOO.tool.Profiler,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.namespace("tool");YAHOO.tool.Profiler=function(){var container={},report={},stopwatches={},WATCH_STARTED=0,WATCH_STOPPED=1,WATCH_PAUSED=2,lang=YAHOO.lang;function createReport(name){report[name]={calls:0,max:0,min:0,avg:0,points:[]};}function saveDataPoint(name,duration){var functionData=report[name];if(!functionData){functionData=createReport(name);}functionData.calls++;functionData.points.push(duration);if(functionData.calls>1){functionData.avg=((functionData.avg*(functionData.calls-1))+duration)/functionData.calls;functionData.min=Math.min(functionData.min,duration);functionData.max=Math.max(functionData.max,duration);}else{functionData.avg=duration;functionData.min=duration;functionData.max=duration;}}return{clear:function(name){if(lang.isString(name)){delete report[name];delete stopwatches[name];}else{report={};stopwatches={};}},getOriginal:function(name){return container[name];},instrument:function(name,method){var newMethod=function(){var start=new Date(),retval=method.apply(this,arguments),stop=new Date();saveDataPoint(name,stop-start);return retval;};lang.augmentObject(newMethod,method);newMethod.__yuiProfiled=true;newMethod.prototype=method.prototype;container[name]=method;container[name].__yuiFuncName=name;createReport(name);return newMethod;},pause:function(name){var now=new Date(),stopwatch=stopwatches[name];if(stopwatch&&stopwatch.state==WATCH_STARTED){stopwatch.total+=(now-stopwatch.start);stopwatch.start=0;stopwatch.state=WATCH_PAUSED;}},start:function(name){if(container[name]){throw new Error("Cannot use '"+name+"' for profiling through start(), name is already in use.");}else{if(!report[name]){createReport(name);}if(!stopwatches[name]){stopwatches[name]={state:WATCH_STOPPED,start:0,total:0};}if(stopwatches[name].state==WATCH_STOPPED){stopwatches[name].state=WATCH_STARTED;stopwatches[name].start=new Date();}}},stop:function(name){var now=new Date(),stopwatch=stopwatches[name];if(stopwatch){if(stopwatch.state==WATCH_STARTED){saveDataPoint(name,stopwatch.total+(now-stopwatch.start));}else{if(stopwatch.state==WATCH_PAUSED){saveDataPoint(name,stopwatch.total);}}stopwatch.start=0;stopwatch.total=0;stopwatch.state=WATCH_STOPPED;}},getAverage:function(name){return report[name].avg;},getCallCount:function(name){return report[name].calls;},getMax:function(name){return report[name].max;},getMin:function(name){return report[name].min;},getFunctionReport:function(name){return report[name];},getReport:function(name){return report[name];},getFullReport:function(filter){filter=filter||function(){return true;};if(lang.isFunction(filter)){var fullReport={};for(var name in report){if(filter(report[name])){fullReport[name]=report[name];}}return fullReport;}},registerConstructor:function(name,owner){this.registerFunction(name,owner,true);},registerFunction:function(name,owner,registerPrototype){var funcName=(name.indexOf(".")>-1?name.substring(name.lastIndexOf(".")+1):name),method,prototype;if(!lang.isObject(owner)){owner=eval(name.substring(0,name.lastIndexOf(".")));}method=owner[funcName];prototype=method.prototype;if(lang.isFunction(method)&&!method.__yuiProfiled){owner[funcName]=this.instrument(name,method);container[name].__yuiOwner=owner;container[name].__yuiFuncName=funcName;if(registerPrototype){this.registerObject(name+".prototype",prototype);}}},registerObject:function(name,object,recurse){object=(lang.isObject(object)?object:eval(name));container[name]=object;for(var prop in object){if(typeof object[prop]=="function"){if(prop!="constructor"&&prop!="superclass"){this.registerFunction(name+"."+prop,object);}}else{if(typeof object[prop]=="object"&&recurse){this.registerObject(name+"."+prop,object[prop],recurse);}}}},unregisterConstructor:function(name){if(lang.isFunction(container[name])){this.unregisterFunction(name,true);}},unregisterFunction:function(name,unregisterPrototype){if(lang.isFunction(container[name])){if(unregisterPrototype){this.unregisterObject(name+".prototype",container[name].prototype);}var owner=container[name].__yuiOwner,funcName=container[name].__yuiFuncName;delete container[name].__yuiOwner;delete container[name].__yuiFuncName;owner[funcName]=container[name];delete container[name];}},unregisterObject:function(name,recurse){if(lang.isObject(container[name])){var object=container[name];for(var prop in object){if(typeof object[prop]=="function"){this.unregisterFunction(name+"."+prop);}else{if(typeof object[prop]=="object"&&recurse){this.unregisterObject(name+"."+prop,recurse);}}}delete container[name];}}};}();YAHOO.register("profiler",YAHOO.tool.Profiler,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/profiler/profiler.js b/build/profiler/profiler.js
index 023fab7..5a61a32 100644
--- a/build/profiler/profiler.js
+++ b/build/profiler/profiler.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("tool");
 
@@ -554,4 +554,4 @@ YAHOO.tool.Profiler = function(){
 
 }();  
 
-YAHOO.register("profiler", YAHOO.tool.Profiler, {version: "2.8.1", build: "19"});
+YAHOO.register("profiler", YAHOO.tool.Profiler, {version: "2.8.2r1", build: "7"});
diff --git a/build/profilerviewer/assets/profilerviewer-core.css b/build/profilerviewer/assets/profilerviewer-core.css
index 357a827..86609ea 100644
--- a/build/profilerviewer/assets/profilerviewer-core.css
+++ b/build/profilerviewer/assets/profilerviewer-core.css
@@ -2,5 +2,5 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
diff --git a/build/profilerviewer/assets/skins/sam/profilerviewer-skin.css b/build/profilerviewer/assets/skins/sam/profilerviewer-skin.css
index 6de58ec..ca34e43 100644
--- a/build/profilerviewer/assets/skins/sam/profilerviewer-skin.css
+++ b/build/profilerviewer/assets/skins/sam/profilerviewer-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-pv {
 	background-color:#4a4a4a;
diff --git a/build/profilerviewer/assets/skins/sam/profilerviewer.css b/build/profilerviewer/assets/skins/sam/profilerviewer.css
index 2c9ea77..36eb86c 100644
--- a/build/profilerviewer/assets/skins/sam/profilerviewer.css
+++ b/build/profilerviewer/assets/skins/sam/profilerviewer.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-pv{background-color:#4a4a4a;font:arial;position:relative;width:99%;z-index:1000;margin-bottom:1em;overflow:hidden;}.yui-skin-sam .yui-pv .hd{background:url(header_background.png) repeat-x;min-height:30px;overflow:hidden;zoom:1;padding:2px 0;}.yui-skin-sam .yui-pv .hd h4{padding:8px 10px;margin:0;font:bold 14px arial;color:#fff;}.yui-skin-sam .yui-pv .hd a{background:#3f6bc3;font:bold 11px arial;color:#fff;padding:4px;margin:3px 10px 0 0;border:1px solid #3f567d;cursor:pointer;display:block;float:right;}.yui-skin-sam .yui-pv .hd span{display:none;}.yui-skin-sam .yui-pv .hd span.yui-pv-busy{height:18px;width:18px;background:url(wait.gif) no-repeat;overflow:hidden;display:block;float:right;margin:4px 10px 0 0;}.yui-skin-sam .yui-pv .hd:after,.yui-pv .bd:after,.yui-skin-sam .yui-pv-chartlegend dl:after{content:'.';visibility:hidden;clear:left;height:0;display:block;}.yui-skin-sam .yui-pv .bd{position:relative;zoom:1;overflow-x:auto;overflow-y:hidden;}.yui-skin-sam .yui-pv .yui-pv-table{padding:0 10px;margin:5px 0 10px 0;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-bd td{color:#eeee5c;font:12px arial;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd{background:#929292;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even{background:#58637a;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-even td.yui-dt-desc{background:#384970;}.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table tr.yui-dt-odd td.yui-dt-desc{background:#6F6E6E;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th{background-image:none;background:#2E2D2D;}.yui-skin-sam .yui-pv th.yui-dt-asc .yui-dt-liner{background:transparent url(asc.gif) no-repeat scroll right center;}.yui-skin-sam .yui-pv th.yui-dt-desc .yui-dt-liner{background:transparent url(desc.gif) no-repeat scroll right center;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th a{color:#fff;font:bold 12px arial;}.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-asc,.yui-skin-sam .yui-pv .yui-pv-table .yui-dt-hd th.yui-dt-desc{background:#333;}.yui-skin-sam .yui-pv-chartcontainer{padding:0 10px;}.yui-skin-sam .yui-pv-chart{height:250px;clear:right;margin:5px 0 0 0;color:#fff;}.yui-skin-sam .yui-pv-chartlegend div{float:right;margin:0 0 0 10px;_width:250px;}.yui-skin-sam .yui-pv-chartlegend dl{border:1px solid #999;padding:.2em 0 .2em .5em;zoom:1;margin:5px 0;}.yui-skin-sam .yui-pv-chartlegend dt{float:left;display:block;height:.7em;width:.7em;padding:0;}.yui-skin-sam .yui-pv-chartlegend dd{float:left;display:block;color:#fff;margin:0 1em 0 .5em;padding:0;font:11px arial;}.yui-skin-sam .yui-pv-minimized{height:35px;}.yui-skin-sam .yui-pv-minimized .bd{top:-3000px;}.yui-skin-sam .yui-pv-minimized .hd a.yui-pv-refresh{display:none;}
diff --git a/build/profilerviewer/profilerviewer-debug.js b/build/profilerviewer/profilerviewer-debug.js
index 5c58c99..fc42c83 100644
--- a/build/profilerviewer/profilerviewer-debug.js
+++ b/build/profilerviewer/profilerviewer-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 
@@ -1226,4 +1226,4 @@ version: 2.8.1
     };
 	
 })();
-YAHOO.register("profilerviewer", YAHOO.widget.ProfilerViewer, {version: "2.8.1", build: "19"});
+YAHOO.register("profilerviewer", YAHOO.widget.ProfilerViewer, {version: "2.8.2r1", build: "7"});
diff --git a/build/profilerviewer/profilerviewer-min.js b/build/profilerviewer/profilerviewer-min.js
index bede2c3..59fadb5 100644
--- a/build/profilerviewer/profilerviewer-min.js
+++ b/build/profilerviewer/profilerviewer-min.js
@@ -2,8 +2,8 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){YAHOO.widget.ProfilerViewer=function(H,G){G=G||{};if(arguments.length==1&&!YAHOO.lang.isString(H)&&!H.nodeName){G=H;H=G.element||null;}if(!H&&!G.element){H=this._createProfilerViewerElement();}YAHOO.widget.ProfilerViewer.superclass.constructor.call(this,H,G);this._init();};YAHOO.extend(YAHOO.widget.ProfilerViewer,YAHOO.util.Element);YAHOO.lang.augmentObject(YAHOO.widget.ProfilerViewer,{CLASS:"yui-pv",CLASS_DASHBOARD:"yui-pv-dashboard",CLASS_REFRESH:"yui-pv-refresh",CLASS_BUSY:"yui-pv-busy",CLASS_CHART_CONTAINER:"yui-pv-chartcontainer",CLASS_CHART:"yui-pv-chart",CLASS_CHART_LEGEND:"yui-pv-chartlegend",CLASS_TABLE:"yui-pv-table",STRINGS:{title:"YUI Profiler (beta)",buttons:{viewprofiler:"View Profiler Data",hideprofiler:"Hide Profiler Report",showchart:"Show Chart",hidechart:"Hide Chart",refreshdata:"Refresh Data"},colHeads:{fn:["Function/Method",null],calls:["Calls",40],avg:["Average",80],min:["Shortest",70],max:["Longest",70],total:["Total Time",70],pct:["Percent",70]},millisecondsAbbrev:"ms",initMessage:"initialiazing chart...",installFlashMessage:"Unable to load Flash content. The YUI Charts Control requires Flash Player 9.0.45 or higher. You can download the latest version of Flash Player from the <a href='http://www.adobe.com/go/getflashplayer'>Adobe Flash Player Download Center</a>."},timeAxisLabelFunction:function(H){var G=(H===Math.floor(H))?H:(Math.round(H*1000))/1000;return(G+" "+YAHOO.widget.ProfilerViewer.STRINGS.millisecondsAbbrev);},percentAxisLabelFunction:function(H){var G=(H===Math.floor(H))?H:(Math.round(H*100))/100;return(G+"%");}},true);var C=YAHOO.util.Dom;var A=YAHOO.util.Event;var B=YAHOO.tool.Profiler;var E=YAHOO.widget.ProfilerViewer;var D=E.prototype;D.refreshData=function(){this.fireEvent("dataRefreshEvent");};D.getHeadEl=function(){return(this._headEl)?C.get(this._headEl):false;};D.getBodyEl=function(){return(this._bodyEl)?C.get(this._bodyEl):false;};D.getChartEl=function(){return(this._chartEl)?C.get(this._chartEl):false;};D.getTableEl=function(){return(this._tableEl)?C.get(this._tableEl):false;};D.getDataTable=function(){return this._dataTable;};D.getChart=function(){return this._chart;};D._rendered=false;D._headEl=null;D._bodyEl=null;D._toggleVisibleEl=null;D._busyEl=null;D._busy=false;D._tableEl=null;D._dataTable=null;D._chartEl=null;D._chartLegendEl=null;D._chartElHeight=250;D._chart=null;D._chartInitialized=false;D._init=function(){this.createEvent("dataRefreshEvent");this.createEvent("renderEvent");this.on("dataRefreshEvent",this._refreshDataTable,this,true);this._initLauncherDOM();if(this.get("showChart")){this.on("sortedByChange",this._refreshChart);}};D._createProfilerViewerElement=function(){var G=document.createElement("div");document.body.insertBefore(G,document.body.firstChild);C.addClass(G,this.SKIN_CLASS);C.addClass(G,E.CLASS);return G;};D.toString=function(){return"ProfilerViewer "+(this.get("id")||this.get("tagName"));};D._toggleVisible=function(){var G=(this.get("visible"))?false:true;this.set("visible",G);};D._show=function(){if(!this._busy){this._setBusyState(true);if(!this._rendered){var G=new YAHOO.util.YUILoader();if(this.get("base")){G.base=this.get("base");}var H=["datatable"];if(this.get("showChart")){H.push("charts");}G.insert({require:H,onSuccess:function(){this._render();},scope:this});}else{var I=this.get("element");C.removeClass(I,"yui-pv-minimized");this._toggleVisibleEl.innerHTML=E.STRINGS.buttons.hideprofiler;C.addClass(I,"yui-pv-null");C.removeClass(I,"yui-pv-null");this.refreshData();}}};D._hide=function(){this._toggleVisibleEl.innerHTML=E.STRINGS.buttons.viewprofiler;C.addClass(this.get("element"),"yui-pv-minimized");};D._render=function(){C.removeClass(this.get("element"),"yui-pv-minimized");this._initViewerDOM();this._initDataTable();if(this.get("showChart")){this._initChartDOM();this._initChart();}this._rendered=true;this._toggleVisibleEl.innerHTML=E.STRINGS.buttons.hideprofiler;this.fireEvent("renderEvent");};D._initLauncherDOM=function(){var I=this.get("element");C.addClass(I,E.CLASS);C.addClass(I,"yui-pv-minimized");this._headEl=document.createElement("div");C.addClass(this._headEl,"hd");var H=E.STRINGS.buttons;var G=(this.get("visible"))?H.hideprofiler:H.viewprofiler;this._toggleVisibleEl=this._createButton(G,this._headEl);this._refreshEl=this._createButton(H.refreshdata,this._headEl);C.addClass(this._refreshEl,E.CLASS_REFRESH);this._busyEl=document.createElement("span");this._headEl.appendChild(this._busyEl);var J=document.createElement("h4");J.innerHTML=E.STRINGS.title;this._headEl.appendChild(J);I.appendChild(this._headEl);A.on(this._toggleVisibleEl,"click",this._toggleVisible,this,true);A.on(this._refreshEl,"click",function(){if(!this._busy){this._setBusyState(true);this.fireEvent("dataRefreshEvent");}},this,true);};D._initViewerDOM=function(){var G=this.get("element");this._bodyEl=document.createElement("div");C.addClass(this._bodyEl,"bd");this._tableEl=document.createElement("div");C.addClass(this._tableEl,E.CLASS_TABLE);this._bodyEl.appendChild(this._tableEl);G.appendChild(this._bodyEl);};D._initChartDOM=function(){this._chartContainer=document.createElement("div");C.addClass(this._chartContainer,E.CLASS_CHART_CONTAINER);var H=document.createElement("div");C.addClass(H,E.CLASS_CHART_LEGEND);var G=document.createElement("div");this._chartLegendEl=document.createElement("dl");this._chartLegendEl.innerHTML="<dd>"+E.STRINGS.initMessage+"</dd>";this._chartEl=document.createElement("div");C.addClass(this._chartEl,E.CLASS_CHART);var I=document.createElement("p");I.innerHTML=E.STRINGS.installFlashMessage;this._chartEl.appendChild(I);this._chartContainer.appendChild(H);H.appendChild(G);G.appendChild(this._chartLegendEl);this._chartContainer.appendChild(this._chartEl);this._bodyEl.insertBefore(this._chartContainer,this._tableEl);};D._createButton=function(I,J,H){var G=document.createElement("a");G.innerHTML=G.title=I;if(J){if(!H){J.appendChild(G);}else{J.insertBefore(G,J.firstChild);}}return G;};D._setBusyState=function(G){if(G){C.addClass(this._busyEl,E.CLASS_BUSY);
 this._busy=true;}else{C.removeClass(this._busyEl,E.CLASS_BUSY);this._busy=false;}};D._genSortFunction=function(H,G){var J=H;var I=G;return function(L,K){if(I==YAHOO.widget.DataTable.CLASS_ASC){return L[J]-K[J];}else{return((L[J]-K[J])*-1);}};};var F=function(G){var I=0;for(var H=0;H<G.length;I+=G[H++]){}return I;};D._getProfilerData=function(){var L=B.getFullReport();var N=[];var H=0;for(name in L){if(YAHOO.lang.hasOwnProperty(L,name)){var G=L[name];var I={};I.fn=name;I.points=G.points.slice();I.calls=G.calls;I.min=G.min;I.max=G.max;I.avg=G.avg;I.total=F(I.points);I.points=G.points;var P=this.get("filter");if((!P)||(P(I))){N.push(I);H+=I.total;}}}for(var M=0,K=N.length;M<K;M++){N[M].pct=(H)?(N[M].total*100)/H:0;}var O=this.get("sortedBy");var Q=O.key;var J=O.dir;N.sort(this._genSortFunction(Q,J));return N;};D._initDataTable=function(){var P=this;this._dataSource=new YAHOO.util.DataSource(function(){return P._getProfilerData.call(P);},{responseType:YAHOO.util.DataSource.TYPE_JSARRAY,maxCacheEntries:0});var H=this._dataSource;H.responseSchema={fields:["fn","avg","calls","max","min","total","pct","points"]};var O=function(S,R,T,U){var Q=(U===Math.floor(U))?U:(Math.round(U*1000))/1000;S.innerHTML=Q+" "+E.STRINGS.millisecondsAbbrev;};var N=function(S,R,T,U){var Q=(U===Math.floor(U))?U:(Math.round(U*100))/100;S.innerHTML=Q+"%";};var M=YAHOO.widget.DataTable.CLASS_ASC;var J=YAHOO.widget.DataTable.CLASS_DESC;var K=E.STRINGS.colHeads;var I=O;var L=[{key:"fn",sortable:true,label:K.fn[0],sortOptions:{defaultDir:M},resizeable:(YAHOO.util.DragDrop)?true:false,minWidth:K.fn[1]},{key:"calls",sortable:true,label:K.calls[0],sortOptions:{defaultDir:J},width:K.calls[1]},{key:"avg",sortable:true,label:K.avg[0],sortOptions:{defaultDir:J},formatter:I,width:K.avg[1]},{key:"min",sortable:true,label:K.min[0],sortOptions:{defaultDir:M},formatter:I,width:K.min[1]},{key:"max",sortable:true,label:K.max[0],sortOptions:{defaultDir:J},formatter:I,width:K.max[1]},{key:"total",sortable:true,label:K.total[0],sortOptions:{defaultDir:J},formatter:I,width:K.total[1]},{key:"pct",sortable:true,label:K.pct[0],sortOptions:{defaultDir:J},formatter:N,width:K.pct[1]}];this._dataTable=new YAHOO.widget.DataTable(this._tableEl,L,H,{scrollable:true,height:this.get("tableHeight"),initialRequest:null,sortedBy:{key:"total",dir:YAHOO.widget.DataTable.CLASS_DESC}});var G=this._dataTable;G.subscribe("sortedByChange",this._sortedByChange,this,true);G.subscribe("renderEvent",this._dataTableRenderHandler,this,true);G.subscribe("initEvent",this._dataTableRenderHandler,this,true);A.on(this._tableEl.getElementsByTagName("th"),"click",this._thClickHandler,this,true);};D._sortedByChange=function(G){if(G.newValue&&G.newValue.key){this.set("sortedBy",{key:G.newValue.key,dir:G.newValue.dir});}};D._dataTableRenderHandler=function(G){this._setBusyState(false);};D._thClickHandler=function(G){this._setBusyState(true);};D._refreshDataTable=function(G){var H=this._dataTable;H.getDataSource().sendRequest("",H.onDataReturnInitializeTable,H);};D._refreshChart=function(){switch(this.get("sortedBy").key){case"fn":this._chart.set("dataSource",this._chart.get("dataSource"));return;case"calls":this._chart.set("xAxis",this._chartAxisDefinitionPlain);break;case"pct":this._chart.set("xAxis",this._chartAxisDefinitionPercent);break;default:this._chart.set("xAxis",this._chartAxisDefinitionTime);break;}this._drawChartLegend();this._chart.set("series",this._getSeriesDef(this.get("sortedBy").key));};D._getChartData=function(){var H=this._dataTable.getRecordSet().getRecords(0,this.get("maxChartFunctions"));var G=[];for(var J=0,I=H.length;J<I;J++){G.push(H[J].getData());}return G;};D._getSeriesDef=function(K){var J=this.get("chartSeriesDefinitions")[K];var G=[];for(var I=0,H=J.group.length;I<H;I++){var L=this.get("chartSeriesDefinitions")[J.group[I]];G.push({displayName:L.displayName,xField:L.xField,style:{color:L.style.color,size:L.style.size}});}return G;};D._initChart=function(){this._sizeChartCanvas();YAHOO.widget.Chart.SWFURL=this.get("swfUrl");var G=this;var H=new YAHOO.util.DataSource(function(){return G._getChartData.call(G);},{responseType:YAHOO.util.DataSource.TYPE_JSARRAY,maxCacheEntries:0});H.responseSchema={fields:["fn","avg","calls","max","min","total","pct"]};H.subscribe("responseEvent",this._sizeChartCanvas,this,true);this._chartAxisDefinitionTime=new YAHOO.widget.NumericAxis();this._chartAxisDefinitionTime.labelFunction="YAHOO.widget.ProfilerViewer.timeAxisLabelFunction";this._chartAxisDefinitionPercent=new YAHOO.widget.NumericAxis();this._chartAxisDefinitionPercent.labelFunction="YAHOO.widget.ProfilerViewer.percentAxisLabelFunction";this._chartAxisDefinitionPlain=new YAHOO.widget.NumericAxis();this._chart=new YAHOO.widget.BarChart(this._chartEl,H,{yField:"fn",series:this._getSeriesDef(this.get("sortedBy").key),style:this.get("chartStyle"),xAxis:this._chartAxisDefinitionTime});this._drawChartLegend();this._chartInitialized=true;this._dataTable.unsubscribe("initEvent",this._initChart,this);this._dataTable.subscribe("initEvent",this._refreshChart,this,true);};D._drawChartLegend=function(){var M=this.get("chartSeriesDefinitions");var I=M[this.get("sortedBy").key];var H=this._chartLegendEl;H.innerHTML="";for(var K=0,J=I.group.length;K<J;K++){var N=M[I.group[K]];var L=document.createElement("dt");C.setStyle(L,"backgroundColor","#"+N.style.color);var G=document.createElement("dd");G.innerHTML=N.displayName;H.appendChild(L);H.appendChild(G);}};D._sizeChartCanvas=function(I){var G=(I)?I.response.length:this.get("maxChartFunctions");var H=(G*36)+34;if(H!=parseInt(this._chartElHeight,10)){this._chartElHeight=H;C.setStyle(this._chartEl,"height",H+"px");}};D.initAttributes=function(G){YAHOO.widget.ProfilerViewer.superclass.initAttributes.call(this,G);this.setAttributeConfig("base",{value:G.base});this.setAttributeConfig("tableHeight",{value:G.tableHeight||"15em",method:function(H){if(this._dataTable){this._dataTable.set("height",H);}}});this.setAttributeConfig("sortedBy",{value:G.sortedBy||{key:"total",dir:"yui-dt-desc"}});
-this.setAttributeConfig("filter",{value:G.filter||null,validator:YAHOO.lang.isFunction});this.setAttributeConfig("swfUrl",{value:G.swfUrl||"http://yui.yahooapis.com/2.5.0/build/charts/assets/charts.swf"});this.setAttributeConfig("maxChartFunctions",{value:G.maxChartFunctions||6,method:function(H){if(this._rendered){this._sizeChartCanvas();}},validator:YAHOO.lang.isNumber});this.setAttributeConfig("chartStyle",{value:G.chartStyle||{font:{name:"Arial",color:15658588,size:12},background:{color:"6e6e63"}},method:function(){if(this._rendered&&this.get("showChart")){this._refreshChart();}}});this.setAttributeConfig("chartSeriesDefinitions",{value:G.chartSeriesDefinitions||{total:{displayName:E.STRINGS.colHeads.total[0],xField:"total",style:{color:"4d95dd",size:20},group:["total"]},calls:{displayName:E.STRINGS.colHeads.calls[0],xField:"calls",style:{color:"edff9f",size:20},group:["calls"]},avg:{displayName:E.STRINGS.colHeads.avg[0],xField:"avg",style:{color:"209daf",size:9},group:["avg","min","max"]},min:{displayName:E.STRINGS.colHeads.min[0],xField:"min",style:{color:"b6ecf4",size:9},group:["avg","min","max"]},max:{displayName:E.STRINGS.colHeads.max[0],xField:"max",style:{color:"29c7de",size:9},group:["avg","min","max"]},pct:{displayName:E.STRINGS.colHeads.pct[0],xField:"pct",style:{color:"C96EDB",size:20},group:["pct"]}},method:function(){if(this._rendered&&this.get("showChart")){this._refreshChart();}}});this.setAttributeConfig("visible",{value:G.visible||false,validator:YAHOO.lang.isBoolean,method:function(H){if(H){this._show();}else{if(this._rendered){this._hide();}}}});this.setAttributeConfig("showChart",{value:G.showChart||true,validator:YAHOO.lang.isBoolean,writeOnce:true});YAHOO.widget.ProfilerViewer.superclass.initAttributes.call(this,G);};})();YAHOO.register("profilerviewer",YAHOO.widget.ProfilerViewer,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this.setAttributeConfig("filter",{value:G.filter||null,validator:YAHOO.lang.isFunction});this.setAttributeConfig("swfUrl",{value:G.swfUrl||"http://yui.yahooapis.com/2.5.0/build/charts/assets/charts.swf"});this.setAttributeConfig("maxChartFunctions",{value:G.maxChartFunctions||6,method:function(H){if(this._rendered){this._sizeChartCanvas();}},validator:YAHOO.lang.isNumber});this.setAttributeConfig("chartStyle",{value:G.chartStyle||{font:{name:"Arial",color:15658588,size:12},background:{color:"6e6e63"}},method:function(){if(this._rendered&&this.get("showChart")){this._refreshChart();}}});this.setAttributeConfig("chartSeriesDefinitions",{value:G.chartSeriesDefinitions||{total:{displayName:E.STRINGS.colHeads.total[0],xField:"total",style:{color:"4d95dd",size:20},group:["total"]},calls:{displayName:E.STRINGS.colHeads.calls[0],xField:"calls",style:{color:"edff9f",size:20},group:["calls"]},avg:{displayName:E.STRINGS.colHeads.avg[0],xField:"avg",style:{color:"209daf",size:9},group:["avg","min","max"]},min:{displayName:E.STRINGS.colHeads.min[0],xField:"min",style:{color:"b6ecf4",size:9},group:["avg","min","max"]},max:{displayName:E.STRINGS.colHeads.max[0],xField:"max",style:{color:"29c7de",size:9},group:["avg","min","max"]},pct:{displayName:E.STRINGS.colHeads.pct[0],xField:"pct",style:{color:"C96EDB",size:20},group:["pct"]}},method:function(){if(this._rendered&&this.get("showChart")){this._refreshChart();}}});this.setAttributeConfig("visible",{value:G.visible||false,validator:YAHOO.lang.isBoolean,method:function(H){if(H){this._show();}else{if(this._rendered){this._hide();}}}});this.setAttributeConfig("showChart",{value:G.showChart||true,validator:YAHOO.lang.isBoolean,writeOnce:true});YAHOO.widget.ProfilerViewer.superclass.initAttributes.call(this,G);};})();YAHOO.register("profilerviewer",YAHOO.widget.ProfilerViewer,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/profilerviewer/profilerviewer.js b/build/profilerviewer/profilerviewer.js
index eab5bf3..a2c7aab 100644
--- a/build/profilerviewer/profilerviewer.js
+++ b/build/profilerviewer/profilerviewer.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 
@@ -1189,4 +1189,4 @@ version: 2.8.1
     };
 	
 })();
-YAHOO.register("profilerviewer", YAHOO.widget.ProfilerViewer, {version: "2.8.1", build: "19"});
+YAHOO.register("profilerviewer", YAHOO.widget.ProfilerViewer, {version: "2.8.2r1", build: "7"});
diff --git a/build/progressbar/assets/progressbar-core.css b/build/progressbar/assets/progressbar-core.css
index 590429c..2a7c8af 100644
--- a/build/progressbar/assets/progressbar-core.css
+++ b/build/progressbar/assets/progressbar-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* several */
 
diff --git a/build/progressbar/assets/skins/sam/progressbar-skin.css b/build/progressbar/assets/skins/sam/progressbar-skin.css
index a5b5f30..92ab249 100644
--- a/build/progressbar/assets/skins/sam/progressbar-skin.css
+++ b/build/progressbar/assets/skins/sam/progressbar-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-pb-bar {
 	background-color:blue;
diff --git a/build/progressbar/assets/skins/sam/progressbar.css b/build/progressbar/assets/skins/sam/progressbar.css
index 5d2fe4d..427d6cb 100644
--- a/build/progressbar/assets/skins/sam/progressbar.css
+++ b/build/progressbar/assets/skins/sam/progressbar.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-pb-bar,.yui-pb-mask{width:100%;height:100%;}.yui-pb{position:relative;top:0;left:0;width:200px;height:20px;padding:0;border:none;margin:0;text-align:left;}.yui-pb-mask{position:absolute;top:0;left:0;z-index:2;}.yui-pb-mask div{width:50%;height:50%;background-repeat:no-repeat;padding:0;position:absolute;}.yui-pb-tl{background-position:top left;}.yui-pb-tr{background-position:top right;left:50%;}.yui-pb-bl{background-position:bottom left;top:50%;}.yui-pb-br{background-position:bottom right;left:50%;top:50%;}.yui-pb-bar{margin:0;position:absolute;left:0;top:0;z-index:1;}.yui-pb-ltr .yui-pb-bar{_position:static;}.yui-pb-rtl .yui-pb-bar{background-position:right;}.yui-pb-btt .yui-pb-bar{background-position:left bottom;}.yui-pb-bar{background-color:blue;}.yui-pb{border:thin solid #808080;}.yui-skin-sam .yui-pb{background-color:transparent;border:solid #808080;border-width:1px 0;}.yui-skin-sam .yui-pb-rtl,.yui-skin-sam .yui-pb-ltr{background-image:url(back-h.png);background-repeat:repeat-x;}.yui-skin-sam .yui-pb-ttb,.yui-skin-sam .yui-pb-btt{background-image:url(back-v.png);background-repeat:repeat-y;}.yui-skin-sam .yui-pb-bar{background-color:transparent;}.yui-skin-sam .yui-pb-ltr .yui-pb-bar,.yui-skin-sam .yui-pb-rtl .yui-pb-bar{background-image:url(bar-h.png);background-repeat:repeat-x;}.yui-skin-sam .yui-pb-ttb .yui-pb-bar,.yui-skin-sam .yui-pb-btt .yui-pb-bar{background-image:url(bar-v.png);background-repeat:repeat-y;}.yui-skin-sam .yui-pb-mask{border:solid #808080;border-width:0 1px;margin:0 -1px;}.yui-skin-sam .yui-pb-caption{color:#000;text-align:center;margin:0 auto;}.yui-skin-sam .yui-pb-range{color:#a6a6a6;}
diff --git a/build/progressbar/progressbar-debug.js b/build/progressbar/progressbar-debug.js
index f50a8cc..f510976 100644
--- a/build/progressbar/progressbar-debug.js
+++ b/build/progressbar/progressbar-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  *
@@ -688,4 +688,4 @@ version: 2.8.1
 				
 })();
 
-YAHOO.register("progressbar", YAHOO.widget.ProgressBar, {version: "2.8.1", build: "19"});
+YAHOO.register("progressbar", YAHOO.widget.ProgressBar, {version: "2.8.2r1", build: "7"});
diff --git a/build/progressbar/progressbar-min.js b/build/progressbar/progressbar-min.js
index d5ba6f7..a46831e 100644
--- a/build/progressbar/progressbar-min.js
+++ b/build/progressbar/progressbar-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var B=YAHOO.util.Dom,H=YAHOO.lang,X="yui-pb",Z=X+"-mask",W=X+"-bar",V=X+"-anim",M=X+"-tl",K=X+"-tr",J=X+"-bl",F=X+"-br",G="width",S="height",L="minValue",U="maxValue",I="value",A="anim",T="direction",D="ltr",P="rtl",d="ttb",O="btt",E="barEl",C="maskEl",R="ariaTextTemplate",Y="start",c="progress",Q="complete";var N=function(b){N.superclass.constructor.call(this,document.createElement("div"),b);this._init(b);};YAHOO.widget.ProgressBar=N;N.MARKUP=['<div class="',W,'"></div><div class="',Z,'"><div class="',M,'"></div><div class="',K,'"></div><div class="',J,'"></div><div class="',F,'"></div></div>'].join("");H.extend(N,YAHOO.util.Element,{_init:function(b){},initAttributes:function(f){N.superclass.initAttributes.call(this,f);this.set("innerHTML",N.MARKUP);this.addClass(X);var e,b=["id",G,S,"class","style"];while((e=b.pop())){if(e in f){this.set(e,f[e]);}}this.setAttributeConfig(E,{readOnly:true,value:this.getElementsByClassName(W)[0]});this.setAttributeConfig(C,{readOnly:true,value:this.getElementsByClassName(Z)[0]});this.setAttributeConfig(T,{value:D,validator:function(g){if(this._rendered){return false;}switch(g){case D:case P:case d:case O:return true;default:return false;}},method:function(g){this._barSizeFunction=this._barSizeFunctions[this.get(A)?1:0][g];}});this.setAttributeConfig(U,{value:100,validator:H.isNumber,method:function(g){this.get("element").setAttribute("aria-valuemax",g);if(this.get(I)>g){this.set(I,g);}}});this.setAttributeConfig(L,{value:0,validator:H.isNumber,method:function(g){this.get("element").setAttribute("aria-valuemin",g);if(this.get(I)<g){this.set(I,g);}}});this.setAttributeConfig(G,{getter:function(){return this.getStyle(G);},method:this._widthChange});this.setAttributeConfig(S,{getter:function(){return this.getStyle(S);},method:this._heightChange});this.setAttributeConfig(R,{value:"{value}"});this.setAttributeConfig(I,{value:0,validator:function(g){return H.isNumber(g)&&g>=this.get(L)&&g<=this.get(U);},method:this._valueChange});this.setAttributeConfig(A,{validator:function(g){return !!YAHOO.util.Anim;},setter:this._animSetter});},render:function(e,f){if(this._rendered){return;}this._rendered=true;var g=this.get(T);this.addClass(X);this.addClass(X+"-"+g);var b=this.get("element");b.tabIndex=0;b.setAttribute("role","progressbar");b.setAttribute("aria-valuemin",this.get(L));b.setAttribute("aria-valuemax",this.get(U));this.appendTo(e,f);this._barSizeFunction=this._barSizeFunctions[0][g];this.redraw();this._previousValue=this.get(I);this._fixEdges();if(this.get(A)){this._barSizeFunction=this._barSizeFunctions[1][g];}this.on("minValueChange",this.redraw);this.on("maxValueChange",this.redraw);return this;},redraw:function(){this._recalculateConstants();this._valueChange(this.get(I));},destroy:function(){this.set(A,false);this.unsubscribeAll();var b=this.get("element");if(b.parentNode){b.parentNode.removeChild(b);}},_previousValue:0,_barSpace:100,_barFactor:1,_rendered:false,_barSizeFunction:null,_heightChange:function(b){if(H.isNumber(b)){b+="px";}this.setStyle(S,b);this._fixEdges();this.redraw();},_widthChange:function(b){if(H.isNumber(b)){b+="px";}this.setStyle(G,b);this._fixEdges();this.redraw();},_fixEdges:function(){if(!this._rendered||YAHOO.env.ua.ie||YAHOO.env.ua.gecko){return;}var g=this.get(C),i=B.getElementsByClassName(M,undefined,g)[0],f=B.getElementsByClassName(K,undefined,g)[0],h=B.getElementsByClassName(J,undefined,g)[0],e=B.getElementsByClassName(F,undefined,g)[0],b=(parseInt(B.getStyle(g,S),10)-parseInt(B.getStyle(i,S),10))+"px";B.setStyle(h,S,b);B.setStyle(e,S,b);b=(parseInt(B.getStyle(g,G),10)-parseInt(B.getStyle(i,G),10))+"px";B.setStyle(f,G,b);B.setStyle(e,G,b);},_recalculateConstants:function(){var b=this.get(E);switch(this.get(T)){case D:case P:this._barSpace=parseInt(this.get(G),10)-(parseInt(B.getStyle(b,"marginLeft"),10)||0)-(parseInt(B.getStyle(b,"marginRight"),10)||0);break;case d:case O:this._barSpace=parseInt(this.get(S),10)-(parseInt(B.getStyle(b,"marginTop"),10)||0)-(parseInt(B.getStyle(b,"marginBottom"),10)||0);break;}this._barFactor=this._barSpace/(this.get(U)-(this.get(L)||0))||1;},_animSetter:function(g){var f,b=this.get(E);if(g){if(g instanceof YAHOO.util.Anim){f=g;}else{f=new YAHOO.util.Anim(b);}f.onTween.subscribe(this._animOnTween,this,true);f.onComplete.subscribe(this._animComplete,this,true);var h=f.setAttribute,e=this;switch(this.get(T)){case O:f.setAttribute=function(i,k,j){k=Math.round(k);h.call(this,i,k,j);B.setStyle(b,"top",(e._barSpace-k)+"px");};break;case P:f.setAttribute=function(i,k,j){k=Math.round(k);h.call(this,i,k,j);B.setStyle(b,"left",(e._barSpace-k)+"px");};break;}}else{f=this.get(A);if(f){f.onTween.unsubscribeAll();f.onComplete.unsubscribeAll();}f=null;}this._barSizeFunction=this._barSizeFunctions[f?1:0][this.get(T)];return f;},_animComplete:function(){var b=this.get(I);this._previousValue=b;this.fireEvent(c,b);this.fireEvent(Q,b);B.removeClass(this.get(E),V);},_animOnTween:function(b,e){var f=Math.floor(this._tweenFactor*e[0].currentFrame+this._previousValue);this.fireEvent(c,f);},_valueChange:function(g){var f=this.get(A),b=Math.floor((g-this.get(L))*this._barFactor),e=this.get(E);this._setAriaText(g);if(this._rendered){if(f){f.stop();if(f.isAnimated()){f._onComplete.fire();}}this.fireEvent(Y,this._previousValue);this._barSizeFunction(g,b,e,f);}},_setAriaText:function(e){var b=this.get("element"),f=H.substitute(this.get(R),{value:e,minValue:this.get(L),maxValue:this.get(U)});b.setAttribute("aria-valuenow",e);b.setAttribute("aria-valuetext",f);}});var a=[{},{}];N.prototype._barSizeFunctions=a;a[0][D]=function(g,b,e,f){B.setStyle(e,G,b+"px");this.fireEvent(c,g);this.fireEvent(Q,g);};a[0][P]=function(g,b,e,f){B.setStyle(e,G,b+"px");B.setStyle(e,"left",(this._barSpace-b)+"px");this.fireEvent(c,g);this.fireEvent(Q,g);};a[0][d]=function(g,b,e,f){B.setStyle(e,S,b+"px");this.fireEvent(c,g);this.fireEvent(Q,g);};a[0][O]=function(g,b,e,f){B.setStyle(e,S,b+"px");B.setStyle(e,"top",(this._barSpace-b)+"px");
-this.fireEvent(c,g);this.fireEvent(Q,g);};a[1][D]=function(g,b,e,f){B.addClass(e,V);this._tweenFactor=(g-this._previousValue)/f.totalFrames/f.duration;f.attributes={width:{to:b}};f.animate();};a[1][P]=a[1][D];a[1][d]=function(g,b,e,f){B.addClass(e,V);this._tweenFactor=(g-this._previousValue)/f.totalFrames/f.duration;f.attributes={height:{to:b}};f.animate();};a[1][O]=a[1][d];})();YAHOO.register("progressbar",YAHOO.widget.ProgressBar,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this.fireEvent(c,g);this.fireEvent(Q,g);};a[1][D]=function(g,b,e,f){B.addClass(e,V);this._tweenFactor=(g-this._previousValue)/f.totalFrames/f.duration;f.attributes={width:{to:b}};f.animate();};a[1][P]=a[1][D];a[1][d]=function(g,b,e,f){B.addClass(e,V);this._tweenFactor=(g-this._previousValue)/f.totalFrames/f.duration;f.attributes={height:{to:b}};f.animate();};a[1][O]=a[1][d];})();YAHOO.register("progressbar",YAHOO.widget.ProgressBar,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/progressbar/progressbar.js b/build/progressbar/progressbar.js
index 40c5290..9886779 100644
--- a/build/progressbar/progressbar.js
+++ b/build/progressbar/progressbar.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  *
@@ -674,4 +674,4 @@ version: 2.8.1
 				
 })();
 
-YAHOO.register("progressbar", YAHOO.widget.ProgressBar, {version: "2.8.1", build: "19"});
+YAHOO.register("progressbar", YAHOO.widget.ProgressBar, {version: "2.8.2r1", build: "7"});
diff --git a/build/reset-fonts-grids/reset-fonts-grids.css b/build/reset-fonts-grids/reset-fonts-grids.css
index 03c7d9d..70bf2a0 100644
--- a/build/reset-fonts-grids/reset-fonts-grids.css
+++ b/build/reset-fonts-grids/reset-fonts-grids.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea,button{font:99% arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}body{text-align:center;}#doc,#doc2,#doc3,#doc4,.yui-t1,.yui-t2,.yui-t3,.yui-t4,.yui-t5,.yui-t6,.yui-t7{margin:auto;text-align:left;width:57.69em;*width:56.25em;}#doc2{width:73.076em;*width:71.25em;}#doc3{margin:auto 10px;width:auto;}#doc4{width:74.923em;*width:73.05em;}.yui-b{position:relative;}.yui-b{_position:static;}#yui-main .yui-b{position:static;}#yui-main,.yui-g .yui-u .yui-g{width:100%;}.yui-t1 #yui-main,.yui-t2 #yui-main,.yui-t3 #yui-main{float:right;margin-left:-25em;}.yui-t4 #yui-main,.yui-t5 #yui-main,.yui-t6 #yui-main{float:left;margin-right:-25em;}.yui-t1 .yui-b{float:left;width:12.30769em;*width:12.00em;}.yui-t1 #yui-main .yui-b{margin-left:13.30769em;*margin-left:13.05em;}.yui-t2 .yui-b{float:left;width:13.8461em;*width:13.50em;}.yui-t2 #yui-main .yui-b{margin-left:14.8461em;*margin-left:14.55em;}.yui-t3 .yui-b{float:left;width:23.0769em;*width:22.50em;}.yui-t3 #yui-main .yui-b{margin-left:24.0769em;*margin-left:23.62em;}.yui-t4 .yui-b{float:right;width:13.8456em;*width:13.50em;}.yui-t4 #yui-main .yui-b{margin-right:14.8456em;*margin-right:14.55em;}.yui-t5 .yui-b{float:right;width:18.4615em;*width:18.00em;}.yui-t5 #yui-main .yui-b{margin-right:19.4615em;*margin-right:19.125em;}.yui-t6 .yui-b{float:right;width:23.0769em;*width:22.50em;}.yui-t6 #yui-main .yui-b{margin-right:24.0769em;*margin-right:23.62em;}.yui-t7 #yui-main .yui-b{display:block;margin:0 0 1em 0;}#yui-main .yui-b{float:none;width:auto;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf,.yui-gc .yui-u,.yui-gd .yui-g,.yui-g .yui-gc .yui-u,.yui-ge .yui-u,.yui-ge .yui-g,.yui-gf .yui-g,.yui-gf .yui-u{float:right;}.yui-g div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first,.yui-ge div.first,.yui-gf div.first,.yui-g .yui-gc div.first,.yui-g .yui-ge div.first,.yui-gc div.first div.first{float:left;}.yui-g .yui-u,.yui-g .yui-g,.yui-g .yui-gb,.yui-g .yui-gc,.yui-g .yui-gd,.yui-g .yui-ge,.yui-g .yui-gf{width:49.1%;}.yui-gb .yui-u,.yui-g .yui-gb .yui-u,.yui-gb .yui-g,.yui-gb .yui-gb,.yui-gb .yui-gc,.yui-gb .yui-gd,.yui-gb .yui-ge,.yui-gb .yui-gf,.yui-gc .yui-u,.yui-gc .yui-g,.yui-gd .yui-u{width:32%;margin-left:1.99%;}.yui-gb .yui-u{*margin-left:1.9%;*width:31.9%;}.yui-gc div.first,.yui-gd .yui-u{width:66%;}.yui-gd div.first{width:32%;}.yui-ge div.first,.yui-gf .yui-u{width:74.2%;}.yui-ge .yui-u,.yui-gf div.first{width:24%;}.yui-g .yui-gb div.first,.yui-gb div.first,.yui-gc div.first,.yui-gd div.first{margin-left:0;}.yui-g .yui-g .yui-u,.yui-gb .yui-g .yui-u,.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u,.yui-ge .yui-g .yui-u,.yui-gf .yui-g .yui-u{width:49%;*width:48.1%;*margin-left:0;}.yui-g .yui-g .yui-u{width:48.1%;}.yui-g .yui-gb div.first,.yui-gb .yui-gb div.first{*margin-right:0;*width:32%;_width:31.7%;}.yui-g .yui-gc div.first,.yui-gd .yui-g{width:66%;}.yui-gb .yui-g div.first{*margin-right:4%;_margin-right:1.3%;}.yui-gb .yui-gc div.first,.yui-gb .yui-gd div.first{*margin-right:0;}.yui-gb .yui-gb .yui-u,.yui-gb .yui-gc .yui-u{*margin-left:1.8%;_margin-left:4%;}.yui-g .yui-gb .yui-u{_margin-left:1.0%;}.yui-gb .yui-gd .yui-u{*width:66%;_width:61.2%;}.yui-gb .yui-gd div.first{*width:31%;_width:29.5%;}.yui-g .yui-gc .yui-u,.yui-gb .yui-gc .yui-u{width:32%;_float:right;margin-right:0;_margin-left:0;}.yui-gb .yui-gc div.first{width:66%;*float:left;*margin-left:0;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf .yui-u{margin:0;}.yui-gb .yui-gb .yui-u{_margin-left:.7%;}.yui-gb .yui-g div.first,.yui-gb .yui-gb div.first{*margin-left:0;}.yui-gc .yui-g .yui-u,.yui-gd .yui-g .yui-u{*width:48.1%;*margin-left:0;}.yui-gb .yui-gd div.first{width:32%;}.yui-g .yui-gd div.first{_width:29.9%;}.yui-ge .yui-g{width:24%;}.yui-gf .yui-g{width:74.2%;}.yui-gb .yui-ge div.yui-u,.yui-gb .yui-gf div.yui-u{float:right;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf div.first{float:left;}.yui-gb .yui-ge .yui-u,.yui-gb .yui-gf div.first{*width:24%;_width:20%;}.yui-gb .yui-ge div.first,.yui-gb .yui-gf .yui-u{*width:73.5%;_width:65.5%;}.yui-ge div.first .yui-gd .yui-u{width:65%;}.yui-ge div.first .yui-gd div.first{width:32%;}#hd:after,#bd:after,#ft:after,.yui-g:after,.yui-gb:after,.yui-gc:after,.yui-gd:after,.yui-ge:after,.yui-gf:after{content:".";display:block;height:0;clear:both;visibility:hidden;}#hd,#bd,#ft,.yui-g,.yui-gb,.yui-gc,.yui-gd,.yui-ge,.yui-gf{zoom:1;}
\ No newline at end of file
diff --git a/build/reset-fonts/reset-fonts.css b/build/reset-fonts/reset-fonts.css
index 7daacaf..dbeb795 100644
--- a/build/reset-fonts/reset-fonts.css
+++ b/build/reset-fonts/reset-fonts.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}body{font:13px/1.231 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}select,input,button,textarea,button{font:99% arial,helvetica,clean,sans-serif;}table{font-size:inherit;font:100%;}pre,code,kbd,samp,tt{font-family:monospace;*font-size:108%;line-height:100%;}
\ No newline at end of file
diff --git a/build/reset/reset-min.css b/build/reset/reset-min.css
index 0d1757b..edee770 100644
--- a/build/reset/reset-min.css
+++ b/build/reset/reset-min.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;}
\ No newline at end of file
diff --git a/build/reset/reset.css b/build/reset/reset.css
index 60d6a2a..256daea 100644
--- a/build/reset/reset.css
+++ b/build/reset/reset.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * YUI Reset
diff --git a/build/resize/assets/resize-core.css b/build/resize/assets/resize-core.css
index 21db256..c0d849b 100644
--- a/build/resize/assets/resize-core.css
+++ b/build/resize/assets/resize-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-resize {
     position: relative;
diff --git a/build/resize/assets/skins/sam/resize-skin.css b/build/resize/assets/skins/sam/resize-skin.css
index 8a937ec..049259d 100644
--- a/build/resize/assets/skins/sam/resize-skin.css
+++ b/build/resize/assets/skins/sam/resize-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* Give the handle a background color */
 .yui-skin-sam .yui-resize .yui-resize-handle {
diff --git a/build/resize/assets/skins/sam/resize.css b/build/resize/assets/skins/sam/resize.css
index b40410f..c6f8bbc 100644
--- a/build/resize/assets/skins/sam/resize.css
+++ b/build/resize/assets/skins/sam/resize.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-resize{position:relative;zoom:1;z-index:0;}.yui-resize-wrap{zoom:1;}.yui-draggable{cursor:move;}.yui-resize .yui-resize-handle{position:absolute;z-index:1;font-size:0;margin:0;padding:0;zoom:1;height:1px;width:1px;}.yui-resize .yui-resize-handle-br{height:5px;width:5px;bottom:0;right:0;cursor:se-resize;z-index:2;zoom:1;}.yui-resize .yui-resize-handle-bl{height:5px;width:5px;bottom:0;left:0;cursor:sw-resize;z-index:2;zoom:1;}.yui-resize .yui-resize-handle-tl{height:5px;width:5px;top:0;left:0;cursor:nw-resize;z-index:2;zoom:1;}.yui-resize .yui-resize-handle-tr{height:5px;width:5px;top:0;right:0;cursor:ne-resize;z-index:2;zoom:1;}.yui-resize .yui-resize-handle-r{width:5px;height:100%;top:0;right:0;cursor:e-resize;zoom:1;}.yui-resize .yui-resize-handle-l{height:100%;width:5px;top:0;left:0;cursor:w-resize;zoom:1;}.yui-resize .yui-resize-handle-b{width:100%;height:5px;bottom:0;right:0;cursor:s-resize;zoom:1;}.yui-resize .yui-resize-handle-t{width:100%;height:5px;top:0;right:0;cursor:n-resize;zoom:1;}.yui-resize-proxy{position:absolute;border:1px dashed #000;visibility:hidden;z-index:1000;}.yui-resize-hover .yui-resize-handle,.yui-resize-hidden .yui-resize-handle{opacity:0;filter:alpha(opacity=0);}.yui-resize-ghost{opacity:.5;filter:alpha(opacity=50);}.yui-resize-knob .yui-resize-handle{height:6px;width:6px;}.yui-resize-knob .yui-resize-handle-tr{right:-3px;top:-3px;}.yui-resize-knob .yui-resize-handle-tl{left:-3px;top:-3px;}.yui-resize-knob .yui-resize-handle-bl{left:-3px;bottom:-3px;}.yui-resize-knob .yui-resize-handle-br{right:-3px;bottom:-3px;}.yui-resize-knob .yui-resize-handle-t{left:45%;top:-3px;}.yui-resize-knob .yui-resize-handle-r{right:-3px;top:45%;}.yui-resize-knob .yui-resize-handle-l{left:-3px;top:45%;}.yui-resize-knob .yui-resize-handle-b{left:45%;bottom:-3px;}.yui-resize-status{position:absolute;top:-999px;left:-999px;padding:2px;font-size:80%;display:none;zoom:1;z-index:9999;}.yui-resize-status strong,.yui-resize-status em{font-weight:normal;font-style:normal;padding:1px;zoom:1;}.yui-skin-sam .yui-resize .yui-resize-handle{background-color:#F2F2F2;zoom:1;}.yui-skin-sam .yui-resize .yui-resize-handle-active{background-color:#7D98B8;zoom:1;}.yui-skin-sam .yui-resize .yui-resize-handle-l,.yui-skin-sam .yui-resize .yui-resize-handle-r,.yui-skin-sam .yui-resize .yui-resize-handle-l-active,.yui-skin-sam .yui-resize .yui-resize-handle-r-active{height:100%;zoom:1;}.yui-skin-sam .yui-resize-knob .yui-resize-handle{border:1px solid #808080;}.yui-skin-sam .yui-resize-hover .yui-resize-handle-active{opacity:1;filter:alpha(opacity=100);}.yui-skin-sam .yui-resize-proxy{border:1px dashed #426FD9;}.yui-skin-sam .yui-resize-status{border:1px solid #A6982B;border-top:1px solid #D4C237;background-color:#FFEE69;color:#000;}.yui-skin-sam .yui-resize-status strong,.yui-skin-sam .yui-resize-status em{float:left;display:block;clear:both;padding:1px;text-align:center;}.yui-skin-sam .yui-resize .yui-resize-handle-inner-r,.yui-skin-sam .yui-resize .yui-resize-handle-inner-l{background:transparent url(layout_sprite.png) no-repeat 0 -5px;height:16px;width:5px;position:absolute;top:45%;}.yui-skin-sam .yui-resize .yui-resize-handle-inner-t,.yui-skin-sam .yui-resize .yui-resize-handle-inner-b{background:transparent url(layout_sprite.png) no-repeat -20px 0;height:5px;width:16px;position:absolute;left:50%;}.yui-skin-sam .yui-resize .yui-resize-handle-br{background-image:url(layout_sprite.png);background-repeat:no-repeat;background-position:-22px -62px;}.yui-skin-sam .yui-resize .yui-resize-handle-tr{background-image:url(layout_sprite.png);background-repeat:no-repeat;background-position:-22px -42px;}.yui-skin-sam .yui-resize .yui-resize-handle-tl{background-image:url(layout_sprite.png);background-repeat:no-repeat;background-position:-22px -82px;}.yui-skin-sam .yui-resize .yui-resize-handle-bl{background-image:url(layout_sprite.png);background-repeat:no-repeat;background-position:-22px -23px;}.yui-skin-sam .yui-resize-knob .yui-resize-handle-t,.yui-skin-sam .yui-resize-knob .yui-resize-handle-r,.yui-skin-sam .yui-resize-knob .yui-resize-handle-b,.yui-skin-sam .yui-resize-knob .yui-resize-handle-l,.yui-skin-sam .yui-resize-knob .yui-resize-handle-tl,.yui-skin-sam .yui-resize-knob .yui-resize-handle-tr,.yui-skin-sam .yui-resize-knob .yui-resize-handle-bl,.yui-skin-sam .yui-resize-knob .yui-resize-handle-br,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-t,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-r,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-b,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-l,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-tl,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-tr,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-bl,.yui-skin-sam .yui-resize-knob .yui-resize-handle-inner-br{background-image:none;}.yui-skin-sam .yui-resize-knob .yui-resize-handle-l,.yui-skin-sam .yui-resize-knob .yui-resize-handle-r,.yui-skin-sam .yui-resize-knob .yui-resize-handle-l-active,.yui-skin-sam .yui-resize-knob .yui-resize-handle-r-active{height:6px;width:6px;}.yui-skin-sam .yui-resize-textarea .yui-resize-handle-r{right:-8px;}.yui-skin-sam .yui-resize-textarea .yui-resize-handle-b{bottom:-8px;}.yui-skin-sam .yui-resize-textarea .yui-resize-handle-br{right:-8px;bottom:-8px;}
diff --git a/build/resize/resize-debug.js b/build/resize/resize-debug.js
index 88a9a03..a7fe961 100644
--- a/build/resize/resize-debug.js
+++ b/build/resize/resize-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * @description <p>Makes an element resizable</p>
@@ -1746,4 +1746,4 @@ var D = YAHOO.util.Dom,
 
 })();
 
-YAHOO.register("resize", YAHOO.util.Resize, {version: "2.8.1", build: "19"});
+YAHOO.register("resize", YAHOO.util.Resize, {version: "2.8.2r1", build: "7"});
diff --git a/build/resize/resize-min.js b/build/resize/resize-min.js
index 1cf7bab..1d6994d 100644
--- a/build/resize/resize-min.js
+++ b/build/resize/resize-min.js
@@ -2,9 +2,9 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var E=YAHOO.util.Dom,A=YAHOO.util.Event,C=YAHOO.lang;var B=function(F,D){var G={element:F,attributes:D||{}};B.superclass.constructor.call(this,G.element,G.attributes);};B._instances={};B.getResizeById=function(D){if(B._instances[D]){return B._instances[D];}return false;};YAHOO.extend(B,YAHOO.util.Element,{CSS_RESIZE:"yui-resize",CSS_DRAG:"yui-draggable",CSS_HOVER:"yui-resize-hover",CSS_PROXY:"yui-resize-proxy",CSS_WRAP:"yui-resize-wrap",CSS_KNOB:"yui-resize-knob",CSS_HIDDEN:"yui-resize-hidden",CSS_HANDLE:"yui-resize-handle",CSS_STATUS:"yui-resize-status",CSS_GHOST:"yui-resize-ghost",CSS_RESIZING:"yui-resize-resizing",_resizeEvent:null,dd:null,browser:YAHOO.env.ua,_locked:null,_positioned:null,_dds:null,_wrap:null,_proxy:null,_handles:null,_currentHandle:null,_currentDD:null,_cache:null,_active:null,_createProxy:function(){if(this.get("proxy")){this._proxy=document.createElement("div");this._proxy.className=this.CSS_PROXY;this._proxy.style.height=this.get("element").clientHeight+"px";this._proxy.style.width=this.get("element").clientWidth+"px";this._wrap.parentNode.appendChild(this._proxy);}else{this.set("animate",false);}},_createWrap:function(){this._positioned=false;if(this.get("wrap")===false){switch(this.get("element").tagName.toLowerCase()){case"img":case"textarea":case"input":case"iframe":case"select":this.set("wrap",true);break;}}if(this.get("wrap")===true){this._wrap=document.createElement("div");this._wrap.id=this.get("element").id+"_wrap";this._wrap.className=this.CSS_WRAP;if(this.get("element").tagName.toLowerCase()=="textarea"){E.addClass(this._wrap,"yui-resize-textarea");}E.setStyle(this._wrap,"width",this.get("width")+"px");E.setStyle(this._wrap,"height",this.get("height")+"px");E.setStyle(this._wrap,"z-index",this.getStyle("z-index"));this.setStyle("z-index",0);var F=E.getStyle(this.get("element"),"position");E.setStyle(this._wrap,"position",((F=="static")?"relative":F));E.setStyle(this._wrap,"top",E.getStyle(this.get("element"),"top"));E.setStyle(this._wrap,"left",E.getStyle(this.get("element"),"left"));if(E.getStyle(this.get("element"),"position")=="absolute"){this._positioned=true;E.setStyle(this.get("element"),"position","relative");E.setStyle(this.get("element"),"top","0");E.setStyle(this.get("element"),"left","0");}var D=this.get("element").parentNode;D.replaceChild(this._wrap,this.get("element"));this._wrap.appendChild(this.get("element"));}else{this._wrap=this.get("element");if(E.getStyle(this._wrap,"position")=="absolute"){this._positioned=true;}}if(this.get("draggable")){this._setupDragDrop();}if(this.get("hover")){E.addClass(this._wrap,this.CSS_HOVER);}if(this.get("knobHandles")){E.addClass(this._wrap,this.CSS_KNOB);}if(this.get("hiddenHandles")){E.addClass(this._wrap,this.CSS_HIDDEN);}E.addClass(this._wrap,this.CSS_RESIZE);},_setupDragDrop:function(){E.addClass(this._wrap,this.CSS_DRAG);this.dd=new YAHOO.util.DD(this._wrap,this.get("id")+"-resize",{dragOnly:true,useShim:this.get("useShim")});this.dd.on("dragEvent",function(){this.fireEvent("dragEvent",arguments);},this,true);},_createHandles:function(){this._handles={};this._dds={};var G=this.get("handles");for(var F=0;F<G.length;F++){this._handles[G[F]]=document.createElement("div");this._handles[G[F]].id=E.generateId(this._handles[G[F]]);this._handles[G[F]].className=this.CSS_HANDLE+" "+this.CSS_HANDLE+"-"+G[F];var D=document.createElement("div");D.className=this.CSS_HANDLE+"-inner-"+G[F];this._handles[G[F]].appendChild(D);this._wrap.appendChild(this._handles[G[F]]);A.on(this._handles[G[F]],"mouseover",this._handleMouseOver,this,true);A.on(this._handles[G[F]],"mouseout",this._handleMouseOut,this,true);this._dds[G[F]]=new YAHOO.util.DragDrop(this._handles[G[F]],this.get("id")+"-handle-"+G,{useShim:this.get("useShim")});this._dds[G[F]].setPadding(15,15,15,15);this._dds[G[F]].on("startDragEvent",this._handleStartDrag,this._dds[G[F]],this);this._dds[G[F]].on("mouseDownEvent",this._handleMouseDown,this._dds[G[F]],this);}this._status=document.createElement("span");this._status.className=this.CSS_STATUS;document.body.insertBefore(this._status,document.body.firstChild);},_ieSelectFix:function(){return false;},_ieSelectBack:null,_setAutoRatio:function(D){if(this.get("autoRatio")){if(D&&D.shiftKey){this.set("ratio",true);}else{this.set("ratio",this._configs.ratio._initialConfig.value);}}},_handleMouseDown:function(D){if(this._locked){return false;}if(E.getStyle(this._wrap,"position")=="absolute"){this._positioned=true;}if(D){this._setAutoRatio(D);}if(this.browser.ie){this._ieSelectBack=document.body.onselectstart;document.body.onselectstart=this._ieSelectFix;}},_handleMouseOver:function(G){if(this._locked){return false;}E.removeClass(this._wrap,this.CSS_RESIZE);if(this.get("hover")){E.removeClass(this._wrap,this.CSS_HOVER);}var D=A.getTarget(G);if(!E.hasClass(D,this.CSS_HANDLE)){D=D.parentNode;}if(E.hasClass(D,this.CSS_HANDLE)&&!this._active){E.addClass(D,this.CSS_HANDLE+"-active");for(var F in this._handles){if(C.hasOwnProperty(this._handles,F)){if(this._handles[F]==D){E.addClass(D,this.CSS_HANDLE+"-"+F+"-active");break;}}}}E.addClass(this._wrap,this.CSS_RESIZE);},_handleMouseOut:function(G){E.removeClass(this._wrap,this.CSS_RESIZE);if(this.get("hover")&&!this._active){E.addClass(this._wrap,this.CSS_HOVER);}var D=A.getTarget(G);if(!E.hasClass(D,this.CSS_HANDLE)){D=D.parentNode;}if(E.hasClass(D,this.CSS_HANDLE)&&!this._active){E.removeClass(D,this.CSS_HANDLE+"-active");for(var F in this._handles){if(C.hasOwnProperty(this._handles,F)){if(this._handles[F]==D){E.removeClass(D,this.CSS_HANDLE+"-"+F+"-active");break;}}}}E.addClass(this._wrap,this.CSS_RESIZE);},_handleStartDrag:function(G,F){var D=F.getDragEl();if(E.hasClass(D,this.CSS_HANDLE)){if(E.getStyle(this._wrap,"position")=="absolute"){this._positioned=true;}this._active=true;this._currentDD=F;if(this._proxy){this._proxy.style.visibility="visible";this._proxy.style.zIndex="1000";this._proxy.style.height=this.get("element").clientHeight+"px";this._proxy.style.width=this.get("element").clientWidth+"px";
 }for(var H in this._handles){if(C.hasOwnProperty(this._handles,H)){if(this._handles[H]==D){this._currentHandle=H;var I="_handle_for_"+H;E.addClass(D,this.CSS_HANDLE+"-"+H+"-active");F.on("dragEvent",this[I],this,true);F.on("mouseUpEvent",this._handleMouseUp,this,true);break;}}}E.addClass(D,this.CSS_HANDLE+"-active");if(this.get("proxy")){var J=E.getXY(this.get("element"));E.setXY(this._proxy,J);if(this.get("ghost")){this.addClass(this.CSS_GHOST);}}E.addClass(this._wrap,this.CSS_RESIZING);this._setCache();this._updateStatus(this._cache.height,this._cache.width,this._cache.top,this._cache.left);this.fireEvent("startResize",{type:"startresize",target:this});}},_setCache:function(){this._cache.xy=E.getXY(this._wrap);E.setXY(this._wrap,this._cache.xy);this._cache.height=this.get("clientHeight");this._cache.width=this.get("clientWidth");this._cache.start.height=this._cache.height;this._cache.start.width=this._cache.width;this._cache.start.top=this._cache.xy[1];this._cache.start.left=this._cache.xy[0];this._cache.top=this._cache.xy[1];this._cache.left=this._cache.xy[0];this.set("height",this._cache.height,true);this.set("width",this._cache.width,true);},_handleMouseUp:function(F){this._active=false;var G="_handle_for_"+this._currentHandle;this._currentDD.unsubscribe("dragEvent",this[G],this,true);this._currentDD.unsubscribe("mouseUpEvent",this._handleMouseUp,this,true);if(this._proxy){this._proxy.style.visibility="hidden";this._proxy.style.zIndex="-1";if(this.get("setSize")){this.resize(F,this._cache.height,this._cache.width,this._cache.top,this._cache.left,true);}else{this.fireEvent("resize",{ev:"resize",target:this,height:this._cache.height,width:this._cache.width,top:this._cache.top,left:this._cache.left});}if(this.get("ghost")){this.removeClass(this.CSS_GHOST);}}if(this.get("hover")){E.addClass(this._wrap,this.CSS_HOVER);}if(this._status){E.setStyle(this._status,"display","none");}if(this.browser.ie){document.body.onselectstart=this._ieSelectBack;}if(this.browser.ie){E.removeClass(this._wrap,this.CSS_RESIZE);}for(var D in this._handles){if(C.hasOwnProperty(this._handles,D)){E.removeClass(this._handles[D],this.CSS_HANDLE+"-active");}}if(this.get("hover")&&!this._active){E.addClass(this._wrap,this.CSS_HOVER);}E.removeClass(this._wrap,this.CSS_RESIZING);E.removeClass(this._handles[this._currentHandle],this.CSS_HANDLE+"-"+this._currentHandle+"-active");E.removeClass(this._handles[this._currentHandle],this.CSS_HANDLE+"-active");if(this.browser.ie){E.addClass(this._wrap,this.CSS_RESIZE);}this._resizeEvent=null;this._currentHandle=null;if(!this.get("animate")){this.set("height",this._cache.height,true);this.set("width",this._cache.width,true);}this.fireEvent("endResize",{ev:"endResize",target:this,height:this._cache.height,width:this._cache.width,top:this._cache.top,left:this._cache.left});},_setRatio:function(K,N,Q,I){var O=K,G=N;if(this.get("ratio")){var P=this._cache.height,H=this._cache.width,F=parseInt(this.get("height"),10),L=parseInt(this.get("width"),10),M=this.get("maxHeight"),R=this.get("minHeight"),D=this.get("maxWidth"),J=this.get("minWidth");switch(this._currentHandle){case"l":K=F*(N/L);K=Math.min(Math.max(R,K),M);N=L*(K/F);Q=(this._cache.start.top-(-((F-K)/2)));I=(this._cache.start.left-(-((L-N))));break;case"r":K=F*(N/L);K=Math.min(Math.max(R,K),M);N=L*(K/F);Q=(this._cache.start.top-(-((F-K)/2)));break;case"t":N=L*(K/F);K=F*(N/L);I=(this._cache.start.left-(-((L-N)/2)));Q=(this._cache.start.top-(-((F-K))));break;case"b":N=L*(K/F);K=F*(N/L);I=(this._cache.start.left-(-((L-N)/2)));break;case"bl":K=F*(N/L);N=L*(K/F);I=(this._cache.start.left-(-((L-N))));break;case"br":K=F*(N/L);N=L*(K/F);break;case"tl":K=F*(N/L);N=L*(K/F);I=(this._cache.start.left-(-((L-N))));Q=(this._cache.start.top-(-((F-K))));break;case"tr":K=F*(N/L);N=L*(K/F);I=(this._cache.start.left);Q=(this._cache.start.top-(-((F-K))));break;}O=this._checkHeight(K);G=this._checkWidth(N);if((O!=K)||(G!=N)){Q=0;I=0;if(O!=K){G=this._cache.width;}if(G!=N){O=this._cache.height;}}}return[O,G,Q,I];},_updateStatus:function(K,G,J,F){if(this._resizeEvent&&(!C.isString(this._resizeEvent))){K=((K===0)?this._cache.start.height:K);G=((G===0)?this._cache.start.width:G);var I=parseInt(this.get("height"),10),D=parseInt(this.get("width"),10);if(isNaN(I)){I=parseInt(K,10);}if(isNaN(D)){D=parseInt(G,10);}var L=(parseInt(K,10)-I);var H=(parseInt(G,10)-D);this._cache.offsetHeight=L;this._cache.offsetWidth=H;if(this.get("status")){E.setStyle(this._status,"display","inline");this._status.innerHTML="<strong>"+parseInt(K,10)+" x "+parseInt(G,10)+"</strong><em>"+((L>0)?"+":"")+L+" x "+((H>0)?"+":"")+H+"</em>";E.setXY(this._status,[A.getPageX(this._resizeEvent)+12,A.getPageY(this._resizeEvent)+12]);}}},lock:function(D){this._locked=true;if(D&&this.dd){E.removeClass(this._wrap,"yui-draggable");this.dd.lock();}return this;},unlock:function(D){this._locked=false;if(D&&this.dd){E.addClass(this._wrap,"yui-draggable");this.dd.unlock();}return this;},isLocked:function(){return this._locked;},reset:function(){this.resize(null,this._cache.start.height,this._cache.start.width,this._cache.start.top,this._cache.start.left,true);return this;},resize:function(M,J,P,Q,H,F,K){if(this._locked){return false;}this._resizeEvent=M;var G=this._wrap,I=this.get("animate"),O=true;if(this._proxy&&!F){G=this._proxy;I=false;}this._setAutoRatio(M);if(this._positioned){if(this._proxy){Q=this._cache.top-Q;H=this._cache.left-H;}}var L=this._setRatio(J,P,Q,H);J=parseInt(L[0],10);P=parseInt(L[1],10);Q=parseInt(L[2],10);H=parseInt(L[3],10);if(Q==0){Q=E.getY(G);}if(H==0){H=E.getX(G);}if(this._positioned){if(this._proxy&&F){if(!I){G.style.top=this._proxy.style.top;G.style.left=this._proxy.style.left;}else{Q=this._proxy.style.top;H=this._proxy.style.left;}}else{if(!this.get("ratio")&&!this._proxy){Q=this._cache.top+-(Q);H=this._cache.left+-(H);}if(Q){if(this.get("minY")){if(Q<this.get("minY")){Q=this.get("minY");}}if(this.get("maxY")){if(Q>this.get("maxY")){Q=this.get("maxY");}}}if(H){if(this.get("minX")){if(H<this.get("minX")){H=this.get("minX");
 }}if(this.get("maxX")){if((H+P)>this.get("maxX")){H=(this.get("maxX")-P);}}}}}if(!K){var N=this.fireEvent("beforeResize",{ev:"beforeResize",target:this,height:J,width:P,top:Q,left:H});if(N===false){return false;}}this._updateStatus(J,P,Q,H);if(this._positioned){if(this._proxy&&F){}else{if(Q){E.setY(G,Q);this._cache.top=Q;}if(H){E.setX(G,H);this._cache.left=H;}}}if(J){if(!I){O=true;if(this._proxy&&F){if(!this.get("setSize")){O=false;}}if(O){G.style.height=J+"px";}if((this._proxy&&F)||!this._proxy){if(this._wrap!=this.get("element")){this.get("element").style.height=J+"px";}}}this._cache.height=J;}if(P){this._cache.width=P;if(!I){O=true;if(this._proxy&&F){if(!this.get("setSize")){O=false;}}if(O){G.style.width=P+"px";}if((this._proxy&&F)||!this._proxy){if(this._wrap!=this.get("element")){this.get("element").style.width=P+"px";}}}}if(I){if(YAHOO.util.Anim){var D=new YAHOO.util.Anim(G,{height:{to:this._cache.height},width:{to:this._cache.width}},this.get("animateDuration"),this.get("animateEasing"));if(this._positioned){if(Q){D.attributes.top={to:parseInt(Q,10)};}if(H){D.attributes.left={to:parseInt(H,10)};}}if(this._wrap!=this.get("element")){D.onTween.subscribe(function(){this.get("element").style.height=G.style.height;this.get("element").style.width=G.style.width;},this,true);}D.onComplete.subscribe(function(){this.set("height",J);this.set("width",P);this.fireEvent("resize",{ev:"resize",target:this,height:J,width:P,top:Q,left:H});},this,true);D.animate();}}else{if(this._proxy&&!F){this.fireEvent("proxyResize",{ev:"proxyresize",target:this,height:J,width:P,top:Q,left:H});}else{this.fireEvent("resize",{ev:"resize",target:this,height:J,width:P,top:Q,left:H});}}return this;},_handle_for_br:function(F){var G=this._setWidth(F.e);var D=this._setHeight(F.e);this.resize(F.e,D,G,0,0);},_handle_for_bl:function(G){var H=this._setWidth(G.e,true);var F=this._setHeight(G.e);var D=(H-this._cache.width);this.resize(G.e,F,H,0,D);},_handle_for_tl:function(G){var I=this._setWidth(G.e,true);var F=this._setHeight(G.e,true);var H=(F-this._cache.height);var D=(I-this._cache.width);this.resize(G.e,F,I,H,D);},_handle_for_tr:function(F){var H=this._setWidth(F.e);var D=this._setHeight(F.e,true);var G=(D-this._cache.height);this.resize(F.e,D,H,G,0);},_handle_for_r:function(D){this._dds.r.setYConstraint(0,0);var F=this._setWidth(D.e);this.resize(D.e,0,F,0,0);},_handle_for_l:function(F){this._dds.l.setYConstraint(0,0);var G=this._setWidth(F.e,true);var D=(G-this._cache.width);this.resize(F.e,0,G,0,D);},_handle_for_b:function(F){this._dds.b.setXConstraint(0,0);var D=this._setHeight(F.e);this.resize(F.e,D,0,0,0);},_handle_for_t:function(F){this._dds.t.setXConstraint(0,0);var D=this._setHeight(F.e,true);var G=(D-this._cache.height);this.resize(F.e,D,0,G,0);},_setWidth:function(H,J){var I=this._cache.xy[0],G=this._cache.width,D=A.getPageX(H),F=(D-I);if(J){F=(I-D)+parseInt(this.get("width"),10);}F=this._snapTick(F,this.get("xTicks"));F=this._checkWidth(F);return F;},_checkWidth:function(D){if(this.get("minWidth")){if(D<=this.get("minWidth")){D=this.get("minWidth");}}if(this.get("maxWidth")){if(D>=this.get("maxWidth")){D=this.get("maxWidth");}}return D;},_checkHeight:function(D){if(this.get("minHeight")){if(D<=this.get("minHeight")){D=this.get("minHeight");}}if(this.get("maxHeight")){if(D>=this.get("maxHeight")){D=this.get("maxHeight");}}return D;},_setHeight:function(G,I){var H=this._cache.xy[1],F=this._cache.height,J=A.getPageY(G),D=(J-H);if(I){D=(H-J)+parseInt(this.get("height"),10);}D=this._snapTick(D,this.get("yTicks"));D=this._checkHeight(D);return D;},_snapTick:function(G,F){if(!G||!F){return G;}var H=G;var D=G%F;if(D>0){if(D>(F/2)){H=G+(F-D);}else{H=G-D;}}return H;},init:function(H,F){this._locked=false;this._cache={xy:[],height:0,width:0,top:0,left:0,offsetHeight:0,offsetWidth:0,start:{height:0,width:0,top:0,left:0}};B.superclass.init.call(this,H,F);this.set("setSize",this.get("setSize"));if(F.height){this.set("height",parseInt(F.height,10));}else{var G=this.getStyle("height");if(G=="auto"){this.set("height",parseInt(this.get("element").offsetHeight,10));}}if(F.width){this.set("width",parseInt(F.width,10));}else{var D=this.getStyle("width");if(D=="auto"){this.set("width",parseInt(this.get("element").offsetWidth,10));}}var I=H;if(!C.isString(I)){I=E.generateId(I);}B._instances[I]=this;this._active=false;this._createWrap();this._createProxy();this._createHandles();},getProxyEl:function(){return this._proxy;},getWrapEl:function(){return this._wrap;},getStatusEl:function(){return this._status;},getActiveHandleEl:function(){return this._handles[this._currentHandle];},isActive:function(){return((this._active)?true:false);},initAttributes:function(D){B.superclass.initAttributes.call(this,D);this.setAttributeConfig("useShim",{value:((D.useShim===true)?true:false),validator:YAHOO.lang.isBoolean,method:function(F){for(var G in this._dds){if(C.hasOwnProperty(this._dds,G)){this._dds[G].useShim=F;}}if(this.dd){this.dd.useShim=F;}}});this.setAttributeConfig("setSize",{value:((D.setSize===false)?false:true),validator:YAHOO.lang.isBoolean});this.setAttributeConfig("wrap",{writeOnce:true,validator:YAHOO.lang.isBoolean,value:D.wrap||false});this.setAttributeConfig("handles",{writeOnce:true,value:D.handles||["r","b","br"],validator:function(F){if(C.isString(F)&&F.toLowerCase()=="all"){F=["t","b","r","l","bl","br","tl","tr"];}if(!C.isArray(F)){F=F.replace(/, /g,",");F=F.split(",");}this._configs.handles.value=F;}});this.setAttributeConfig("width",{value:D.width||parseInt(this.getStyle("width"),10),validator:YAHOO.lang.isNumber,method:function(F){F=parseInt(F,10);if(F>0){if(this.get("setSize")){this.setStyle("width",F+"px");}this._cache.width=F;this._configs.width.value=F;}}});this.setAttributeConfig("height",{value:D.height||parseInt(this.getStyle("height"),10),validator:YAHOO.lang.isNumber,method:function(F){F=parseInt(F,10);if(F>0){if(this.get("setSize")){this.setStyle("height",F+"px");}this._cache.height=F;this._configs.height.value=F;
-}}});this.setAttributeConfig("minWidth",{value:D.minWidth||15,validator:YAHOO.lang.isNumber});this.setAttributeConfig("minHeight",{value:D.minHeight||15,validator:YAHOO.lang.isNumber});this.setAttributeConfig("maxWidth",{value:D.maxWidth||10000,validator:YAHOO.lang.isNumber});this.setAttributeConfig("maxHeight",{value:D.maxHeight||10000,validator:YAHOO.lang.isNumber});this.setAttributeConfig("minY",{value:D.minY||false});this.setAttributeConfig("minX",{value:D.minX||false});this.setAttributeConfig("maxY",{value:D.maxY||false});this.setAttributeConfig("maxX",{value:D.maxX||false});this.setAttributeConfig("animate",{value:D.animate||false,validator:function(G){var F=true;if(!YAHOO.util.Anim){F=false;}return F;}});this.setAttributeConfig("animateEasing",{value:D.animateEasing||function(){var F=false;if(YAHOO.util.Easing&&YAHOO.util.Easing.easeOut){F=YAHOO.util.Easing.easeOut;}return F;}()});this.setAttributeConfig("animateDuration",{value:D.animateDuration||0.5});this.setAttributeConfig("proxy",{value:D.proxy||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("ratio",{value:D.ratio||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("ghost",{value:D.ghost||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("draggable",{value:D.draggable||false,validator:YAHOO.lang.isBoolean,method:function(F){if(F&&this._wrap){this._setupDragDrop();}else{if(this.dd){E.removeClass(this._wrap,this.CSS_DRAG);this.dd.unreg();}}}});this.setAttributeConfig("hover",{value:D.hover||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("hiddenHandles",{value:D.hiddenHandles||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("knobHandles",{value:D.knobHandles||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("xTicks",{value:D.xTicks||false});this.setAttributeConfig("yTicks",{value:D.yTicks||false});this.setAttributeConfig("status",{value:D.status||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("autoRatio",{value:D.autoRatio||false,validator:YAHOO.lang.isBoolean});},destroy:function(){for(var F in this._handles){if(C.hasOwnProperty(this._handles,F)){A.purgeElement(this._handles[F]);this._handles[F].parentNode.removeChild(this._handles[F]);}}if(this._proxy){this._proxy.parentNode.removeChild(this._proxy);}if(this._status){this._status.parentNode.removeChild(this._status);}if(this.dd){this.dd.unreg();E.removeClass(this._wrap,this.CSS_DRAG);}if(this._wrap!=this.get("element")){this.setStyle("position","");this.setStyle("top","");this.setStyle("left","");this._wrap.parentNode.replaceChild(this.get("element"),this._wrap);}this.removeClass(this.CSS_RESIZE);delete YAHOO.util.Resize._instances[this.get("id")];for(var D in this){if(C.hasOwnProperty(this,D)){this[D]=null;delete this[D];}}},toString:function(){if(this.get){return"Resize (#"+this.get("id")+")";}return"Resize Utility";}});YAHOO.util.Resize=B;})();YAHOO.register("resize",YAHOO.util.Resize,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}}});this.setAttributeConfig("minWidth",{value:D.minWidth||15,validator:YAHOO.lang.isNumber});this.setAttributeConfig("minHeight",{value:D.minHeight||15,validator:YAHOO.lang.isNumber});this.setAttributeConfig("maxWidth",{value:D.maxWidth||10000,validator:YAHOO.lang.isNumber});this.setAttributeConfig("maxHeight",{value:D.maxHeight||10000,validator:YAHOO.lang.isNumber});this.setAttributeConfig("minY",{value:D.minY||false});this.setAttributeConfig("minX",{value:D.minX||false});this.setAttributeConfig("maxY",{value:D.maxY||false});this.setAttributeConfig("maxX",{value:D.maxX||false});this.setAttributeConfig("animate",{value:D.animate||false,validator:function(G){var F=true;if(!YAHOO.util.Anim){F=false;}return F;}});this.setAttributeConfig("animateEasing",{value:D.animateEasing||function(){var F=false;if(YAHOO.util.Easing&&YAHOO.util.Easing.easeOut){F=YAHOO.util.Easing.easeOut;}return F;}()});this.setAttributeConfig("animateDuration",{value:D.animateDuration||0.5});this.setAttributeConfig("proxy",{value:D.proxy||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("ratio",{value:D.ratio||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("ghost",{value:D.ghost||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("draggable",{value:D.draggable||false,validator:YAHOO.lang.isBoolean,method:function(F){if(F&&this._wrap){this._setupDragDrop();}else{if(this.dd){E.removeClass(this._wrap,this.CSS_DRAG);this.dd.unreg();}}}});this.setAttributeConfig("hover",{value:D.hover||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("hiddenHandles",{value:D.hiddenHandles||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("knobHandles",{value:D.knobHandles||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("xTicks",{value:D.xTicks||false});this.setAttributeConfig("yTicks",{value:D.yTicks||false});this.setAttributeConfig("status",{value:D.status||false,validator:YAHOO.lang.isBoolean});this.setAttributeConfig("autoRatio",{value:D.autoRatio||false,validator:YAHOO.lang.isBoolean});},destroy:function(){for(var F in this._handles){if(C.hasOwnProperty(this._handles,F)){A.purgeElement(this._handles[F]);this._handles[F].parentNode.removeChild(this._handles[F]);}}if(this._proxy){this._proxy.parentNode.removeChild(this._proxy);}if(this._status){this._status.parentNode.removeChild(this._status);}if(this.dd){this.dd.unreg();E.removeClass(this._wrap,this.CSS_DRAG);}if(this._wrap!=this.get("element")){this.setStyle("position","");this.setStyle("top","");this.setStyle("left","");this._wrap.parentNode.replaceChild(this.get("element"),this._wrap);}this.removeClass(this.CSS_RESIZE);delete YAHOO.util.Resize._instances[this.get("id")];for(var D in this){if(C.hasOwnProperty(this,D)){this[D]=null;delete this[D];}}},toString:function(){if(this.get){return"Resize (#"+this.get("id")+")";}return"Resize Utility";}});YAHOO.util.Resize=B;})();YAHOO.register("resize",YAHOO.util.Resize,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/resize/resize.js b/build/resize/resize.js
index 05532ea..8b70d1b 100644
--- a/build/resize/resize.js
+++ b/build/resize/resize.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * @description <p>Makes an element resizable</p>
@@ -1686,4 +1686,4 @@ var D = YAHOO.util.Dom,
 
 })();
 
-YAHOO.register("resize", YAHOO.util.Resize, {version: "2.8.1", build: "19"});
+YAHOO.register("resize", YAHOO.util.Resize, {version: "2.8.2r1", build: "7"});
diff --git a/build/selector/selector-debug.js b/build/selector/selector-debug.js
index caacb24..744e05f 100644
--- a/build/selector/selector-debug.js
+++ b/build/selector/selector-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The selector module provides helper methods allowing CSS3 Selectors to be used with DOM elements.
@@ -648,4 +648,4 @@ if (YAHOO.env.ua.ie && YAHOO.env.ua.ie < 8) { // rewrite class for IE < 8
 }
 
 })();
-YAHOO.register("selector", YAHOO.util.Selector, {version: "2.8.1", build: "19"});
+YAHOO.register("selector", YAHOO.util.Selector, {version: "2.8.2r1", build: "7"});
diff --git a/build/selector/selector-min.js b/build/selector/selector-min.js
index a536469..579280f 100644
--- a/build/selector/selector-min.js
+++ b/build/selector/selector-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var A=YAHOO.util;A.Selector={_foundCache:[],_regexCache:{},_re:{nth:/^(?:([-]?\d*)(n){1}|(odd|even)$)*([-+]?\d*)$/,attr:/(\[.*\])/g,urls:/^(?:href|src)/},document:window.document,attrAliases:{},shorthand:{"\\#(-?[_a-z]+[-\\w]*)":"[id=$1]","\\.(-?[_a-z]+[-\\w]*)":"[class~=$1]"},operators:{"=":function(B,C){return B===C;},"!=":function(B,C){return B!==C;},"~=":function(B,D){var C=" ";return(C+B+C).indexOf((C+D+C))>-1;},"|=":function(B,C){return B===C||B.slice(0,C.length+1)===C+"-";},"^=":function(B,C){return B.indexOf(C)===0;},"$=":function(B,C){return B.slice(-C.length)===C;},"*=":function(B,C){return B.indexOf(C)>-1;},"":function(B,C){return B;}},pseudos:{"root":function(B){return B===B.ownerDocument.documentElement;},"nth-child":function(B,C){return A.Selector._getNth(B,C);},"nth-last-child":function(B,C){return A.Selector._getNth(B,C,null,true);},"nth-of-type":function(B,C){return A.Selector._getNth(B,C,B.tagName);},"nth-last-of-type":function(B,C){return A.Selector._getNth(B,C,B.tagName,true);},"first-child":function(B){return A.Selector._getChildren(B.parentNode)[0]===B;},"last-child":function(C){var B=A.Selector._getChildren(C.parentNode);return B[B.length-1]===C;},"first-of-type":function(B,C){return A.Selector._getChildren(B.parentNode,B.tagName)[0];},"last-of-type":function(C,D){var B=A.Selector._getChildren(C.parentNode,C.tagName);return B[B.length-1];},"only-child":function(C){var B=A.Selector._getChildren(C.parentNode);return B.length===1&&B[0]===C;},"only-of-type":function(B){return A.Selector._getChildren(B.parentNode,B.tagName).length===1;},"empty":function(B){return B.childNodes.length===0;},"not":function(B,C){return !A.Selector.test(B,C);},"contains":function(B,D){var C=B.innerText||B.textContent||"";return C.indexOf(D)>-1;},"checked":function(B){return B.checked===true;}},test:function(F,D){F=A.Selector.document.getElementById(F)||F;if(!F){return false;}var C=D?D.split(","):[];if(C.length){for(var E=0,B=C.length;E<B;++E){if(A.Selector._test(F,C[E])){return true;}}return false;}return A.Selector._test(F,D);},_test:function(D,G,F,E){F=F||A.Selector._tokenize(G).pop()||{};if(!D.tagName||(F.tag!=="*"&&D.tagName!==F.tag)||(E&&D._found)){return false;}if(F.attributes.length){var B,H,C=A.Selector._re.urls;if(!D.attributes||!D.attributes.length){return false;}for(var I=0,K;K=F.attributes[I++];){H=(C.test(K[0]))?2:0;B=D.getAttribute(K[0],H);if(B===null||B===undefined){return false;}if(A.Selector.operators[K[1]]&&!A.Selector.operators[K[1]](B,K[2])){return false;}}}if(F.pseudos.length){for(var I=0,J=F.pseudos.length;I<J;++I){if(A.Selector.pseudos[F.pseudos[I][0]]&&!A.Selector.pseudos[F.pseudos[I][0]](D,F.pseudos[I][1])){return false;}}}return(F.previous&&F.previous.combinator!==",")?A.Selector._combinators[F.previous.combinator](D,F):true;},filter:function(E,D){E=E||[];var G,C=[],H=A.Selector._tokenize(D);if(!E.item){for(var F=0,B=E.length;F<B;++F){if(!E[F].tagName){G=A.Selector.document.getElementById(E[F]);if(G){E[F]=G;}else{}}}}C=A.Selector._filter(E,A.Selector._tokenize(D)[0]);return C;},_filter:function(E,G,H,D){var C=H?null:[],I=A.Selector._foundCache;for(var F=0,B=E.length;F<B;F++){if(!A.Selector._test(E[F],"",G,D)){continue;}if(H){return E[F];}if(D){if(E[F]._found){continue;}E[F]._found=true;I[I.length]=E[F];}C[C.length]=E[F];}return C;},query:function(C,D,E){var B=A.Selector._query(C,D,E);return B;},_query:function(H,M,N,F){var P=(N)?null:[],E;if(!H){return P;}var D=H.split(",");if(D.length>1){var O;for(var I=0,J=D.length;I<J;++I){O=A.Selector._query(D[I],M,N,true);P=N?O:P.concat(O);}A.Selector._clearFoundCache();return P;}if(M&&!M.nodeName){M=A.Selector.document.getElementById(M);if(!M){return P;}}M=M||A.Selector.document;if(M.nodeName!=="#document"){A.Dom.generateId(M);H=M.tagName+"#"+M.id+" "+H;E=M;M=M.ownerDocument;}var L=A.Selector._tokenize(H);var K=L[A.Selector._getIdTokenIndex(L)],B=[],C,G=L.pop()||{};if(K){C=A.Selector._getId(K.attributes);}if(C){E=E||A.Selector.document.getElementById(C);if(E&&(M.nodeName==="#document"||A.Dom.isAncestor(M,E))){if(A.Selector._test(E,null,K)){if(K===G){B=[E];}else{if(K.combinator===" "||K.combinator===">"){M=E;}}}}else{return P;}}if(M&&!B.length){B=M.getElementsByTagName(G.tag);}if(B.length){P=A.Selector._filter(B,G,N,F);}return P;},_clearFoundCache:function(){var E=A.Selector._foundCache;for(var C=0,B=E.length;C<B;++C){try{delete E[C]._found;}catch(D){E[C].removeAttribute("_found");}}E=[];},_getRegExp:function(D,B){var C=A.Selector._regexCache;B=B||"";if(!C[D+B]){C[D+B]=new RegExp(D,B);}return C[D+B];},_getChildren:function(){if(document.documentElement.children&&document.documentElement.children.tags){return function(C,B){return(B)?C.children.tags(B):C.children||[];};}else{return function(F,C){var E=[],G=F.childNodes;for(var D=0,B=G.length;D<B;++D){if(G[D].tagName){if(!C||G[D].tagName===C){E.push(G[D]);}}}return E;};}}(),_combinators:{" ":function(C,B){while((C=C.parentNode)){if(A.Selector._test(C,"",B.previous)){return true;}}return false;},">":function(C,B){return A.Selector._test(C.parentNode,null,B.previous);},"+":function(D,C){var B=D.previousSibling;while(B&&B.nodeType!==1){B=B.previousSibling;}if(B&&A.Selector._test(B,null,C.previous)){return true;}return false;},"~":function(D,C){var B=D.previousSibling;while(B){if(B.nodeType===1&&A.Selector._test(B,null,C.previous)){return true;}B=B.previousSibling;}return false;}},_getNth:function(C,L,N,G){A.Selector._re.nth.test(L);var K=parseInt(RegExp.$1,10),B=RegExp.$2,H=RegExp.$3,I=parseInt(RegExp.$4,10)||0,M=[],E;var J=A.Selector._getChildren(C.parentNode,N);if(H){K=2;E="+";B="n";I=(H==="odd")?1:0;}else{if(isNaN(K)){K=(B)?1:0;}}if(K===0){if(G){I=J.length-I+1;}if(J[I-1]===C){return true;}else{return false;}}else{if(K<0){G=!!G;K=Math.abs(K);}}if(!G){for(var D=I-1,F=J.length;D<F;D+=K){if(D>=0&&J[D]===C){return true;}}}else{for(var D=J.length-I,F=J.length;D>=0;D-=K){if(D<F&&J[D]===C){return true;}}}return false;},_getId:function(C){for(var D=0,B=C.length;D<B;++D){if(C[D][0]=="id"&&C[D][1]==="="){return C[D][2];
-}}},_getIdTokenIndex:function(D){for(var C=0,B=D.length;C<B;++C){if(A.Selector._getId(D[C].attributes)){return C;}}return -1;},_patterns:{tag:/^((?:-?[_a-z]+[\w-]*)|\*)/i,attributes:/^\[([a-z]+\w*)+([~\|\^\$\*!=]=?)?['"]?([^\]]*?)['"]?\]/i,pseudos:/^:([-\w]+)(?:\(['"]?(.+)['"]?\))*/i,combinator:/^\s*([>+~]|\s)\s*/},_tokenize:function(B){var D={},H=[],I,G=false,F=A.Selector._patterns,C;B=A.Selector._replaceShorthand(B);do{G=false;for(var E in F){if(YAHOO.lang.hasOwnProperty(F,E)){if(E!="tag"&&E!="combinator"){D[E]=D[E]||[];}if((C=F[E].exec(B))){G=true;if(E!="tag"&&E!="combinator"){if(E==="attributes"&&C[1]==="id"){D.id=C[3];}D[E].push(C.slice(1));}else{D[E]=C[1];}B=B.replace(C[0],"");if(E==="combinator"||!B.length){D.attributes=A.Selector._fixAttributes(D.attributes);D.pseudos=D.pseudos||[];D.tag=D.tag?D.tag.toUpperCase():"*";H.push(D);D={previous:D};}}}}}while(G);return H;},_fixAttributes:function(C){var D=A.Selector.attrAliases;C=C||[];for(var E=0,B=C.length;E<B;++E){if(D[C[E][0]]){C[E][0]=D[C[E][0]];}if(!C[E][1]){C[E][1]="";}}return C;},_replaceShorthand:function(C){var D=A.Selector.shorthand;var E=C.match(A.Selector._re.attr);if(E){C=C.replace(A.Selector._re.attr,"REPLACED_ATTRIBUTE");}for(var G in D){if(YAHOO.lang.hasOwnProperty(D,G)){C=C.replace(A.Selector._getRegExp(G,"gi"),D[G]);}}if(E){for(var F=0,B=E.length;F<B;++F){C=C.replace("REPLACED_ATTRIBUTE",E[F]);}}return C;}};if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<8){A.Selector.attrAliases["class"]="className";A.Selector.attrAliases["for"]="htmlFor";}})();YAHOO.register("selector",YAHOO.util.Selector,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}}},_getIdTokenIndex:function(D){for(var C=0,B=D.length;C<B;++C){if(A.Selector._getId(D[C].attributes)){return C;}}return -1;},_patterns:{tag:/^((?:-?[_a-z]+[\w-]*)|\*)/i,attributes:/^\[([a-z]+\w*)+([~\|\^\$\*!=]=?)?['"]?([^\]]*?)['"]?\]/i,pseudos:/^:([-\w]+)(?:\(['"]?(.+)['"]?\))*/i,combinator:/^\s*([>+~]|\s)\s*/},_tokenize:function(B){var D={},H=[],I,G=false,F=A.Selector._patterns,C;B=A.Selector._replaceShorthand(B);do{G=false;for(var E in F){if(YAHOO.lang.hasOwnProperty(F,E)){if(E!="tag"&&E!="combinator"){D[E]=D[E]||[];}if((C=F[E].exec(B))){G=true;if(E!="tag"&&E!="combinator"){if(E==="attributes"&&C[1]==="id"){D.id=C[3];}D[E].push(C.slice(1));}else{D[E]=C[1];}B=B.replace(C[0],"");if(E==="combinator"||!B.length){D.attributes=A.Selector._fixAttributes(D.attributes);D.pseudos=D.pseudos||[];D.tag=D.tag?D.tag.toUpperCase():"*";H.push(D);D={previous:D};}}}}}while(G);return H;},_fixAttributes:function(C){var D=A.Selector.attrAliases;C=C||[];for(var E=0,B=C.length;E<B;++E){if(D[C[E][0]]){C[E][0]=D[C[E][0]];}if(!C[E][1]){C[E][1]="";}}return C;},_replaceShorthand:function(C){var D=A.Selector.shorthand;var E=C.match(A.Selector._re.attr);if(E){C=C.replace(A.Selector._re.attr,"REPLACED_ATTRIBUTE");}for(var G in D){if(YAHOO.lang.hasOwnProperty(D,G)){C=C.replace(A.Selector._getRegExp(G,"gi"),D[G]);}}if(E){for(var F=0,B=E.length;F<B;++F){C=C.replace("REPLACED_ATTRIBUTE",E[F]);}}return C;}};if(YAHOO.env.ua.ie&&YAHOO.env.ua.ie<8){A.Selector.attrAliases["class"]="className";A.Selector.attrAliases["for"]="htmlFor";}})();YAHOO.register("selector",YAHOO.util.Selector,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/selector/selector.js b/build/selector/selector.js
index bacd0ff..65e49b6 100644
--- a/build/selector/selector.js
+++ b/build/selector/selector.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The selector module provides helper methods allowing CSS3 Selectors to be used with DOM elements.
@@ -641,4 +641,4 @@ if (YAHOO.env.ua.ie && YAHOO.env.ua.ie < 8) { // rewrite class for IE < 8
 }
 
 })();
-YAHOO.register("selector", YAHOO.util.Selector, {version: "2.8.1", build: "19"});
+YAHOO.register("selector", YAHOO.util.Selector, {version: "2.8.2r1", build: "7"});
diff --git a/build/slider/assets/skins/sam/slider-skin.css b/build/slider/assets/skins/sam/slider-skin.css
index 9b29836..323c68a 100644
--- a/build/slider/assets/skins/sam/slider-skin.css
+++ b/build/slider/assets/skins/sam/slider-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-h-slider {
     background: url(bg-h.gif) no-repeat 5px 0;
diff --git a/build/slider/assets/skins/sam/slider.css b/build/slider/assets/skins/sam/slider.css
index ba41bf4..895f1c6 100644
--- a/build/slider/assets/skins/sam/slider.css
+++ b/build/slider/assets/skins/sam/slider.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-h-slider,.yui-v-slider,.yui-region-slider{position:relative;}.yui-h-slider .yui-slider-thumb,.yui-v-slider .yui-slider-thumb,.yui-region-slider .yui-slider-thumb{position:absolute;cursor:default;}.yui-skin-sam .yui-h-slider{background:url(bg-h.gif) no-repeat 5px 0;height:28px;width:228px;}.yui-skin-sam .yui-h-slider .yui-slider-thumb{top:4px;}.yui-skin-sam .yui-v-slider{background:url(bg-v.gif) no-repeat 12px 0;height:228px;width:48px;}.yui-skin-sam .yui-region-slider{height:228px;width:228px;}
diff --git a/build/slider/assets/slider-core.css b/build/slider/assets/slider-core.css
index b83a95d..b0890fd 100644
--- a/build/slider/assets/slider-core.css
+++ b/build/slider/assets/slider-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-h-slider,
 .yui-v-slider,
diff --git a/build/slider/assets/slider-skin.css b/build/slider/assets/slider-skin.css
index 8b03f4d..a51a783 100644
--- a/build/slider/assets/slider-skin.css
+++ b/build/slider/assets/slider-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-skin-sam .yui-h-slider {
     background: url(bg-h.gif) no-repeat 5px 0;
diff --git a/build/slider/slider-debug.js b/build/slider/slider-debug.js
index 4f8485a..b80d8e0 100644
--- a/build/slider/slider-debug.js
+++ b/build/slider/slider-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Slider component is a UI control that enables the user to adjust 
@@ -2111,4 +2111,4 @@ YW.Slider.getVertDualSlider =
 YAHOO.widget.DualSlider = DualSlider;
 
 })();
-YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.8.1", build: "19"});
+YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.8.2r1", build: "7"});
diff --git a/build/slider/slider-min.js b/build/slider/slider-min.js
index f4b5038..95b57a7 100644
--- a/build/slider/slider-min.js
+++ b/build/slider/slider-min.js
@@ -2,8 +2,8 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var B=YAHOO.util.Dom.getXY,A=YAHOO.util.Event,D=Array.prototype.slice;function C(G,E,F,H){C.ANIM_AVAIL=(!YAHOO.lang.isUndefined(YAHOO.util.Anim));if(G){this.init(G,E,true);this.initSlider(H);this.initThumb(F);}}YAHOO.lang.augmentObject(C,{getHorizSlider:function(F,G,I,H,E){return new C(F,F,new YAHOO.widget.SliderThumb(G,F,I,H,0,0,E),"horiz");},getVertSlider:function(G,H,E,I,F){return new C(G,G,new YAHOO.widget.SliderThumb(H,G,0,0,E,I,F),"vert");},getSliderRegion:function(G,H,J,I,E,K,F){return new C(G,G,new YAHOO.widget.SliderThumb(H,G,J,I,E,K,F),"region");},SOURCE_UI_EVENT:1,SOURCE_SET_VALUE:2,SOURCE_KEY_EVENT:3,ANIM_AVAIL:false},true);YAHOO.extend(C,YAHOO.util.DragDrop,{_mouseDown:false,dragOnly:true,initSlider:function(E){this.type=E;this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);this.isTarget=false;this.animate=C.ANIM_AVAIL;this.backgroundEnabled=true;this.tickPause=40;this.enableKeys=true;this.keyIncrement=20;this.moveComplete=true;this.animationDuration=0.2;this.SOURCE_UI_EVENT=1;this.SOURCE_SET_VALUE=2;this.valueChangeSource=0;this._silent=false;this.lastOffset=[0,0];},initThumb:function(F){var E=this;this.thumb=F;F.cacheBetweenDrags=true;if(F._isHoriz&&F.xTicks&&F.xTicks.length){this.tickPause=Math.round(360/F.xTicks.length);}else{if(F.yTicks&&F.yTicks.length){this.tickPause=Math.round(360/F.yTicks.length);}}F.onAvailable=function(){return E.setStartSliderState();};F.onMouseDown=function(){E._mouseDown=true;return E.focus();};F.startDrag=function(){E._slideStart();};F.onDrag=function(){E.fireEvents(true);};F.onMouseUp=function(){E.thumbMouseUp();};},onAvailable:function(){this._bindKeyEvents();},_bindKeyEvents:function(){A.on(this.id,"keydown",this.handleKeyDown,this,true);A.on(this.id,"keypress",this.handleKeyPress,this,true);},handleKeyPress:function(F){if(this.enableKeys){var E=A.getCharCode(F);switch(E){case 37:case 38:case 39:case 40:case 36:case 35:A.preventDefault(F);break;default:}}},handleKeyDown:function(J){if(this.enableKeys){var G=A.getCharCode(J),F=this.thumb,H=this.getXValue(),E=this.getYValue(),I=true;switch(G){case 37:H-=this.keyIncrement;break;case 38:E-=this.keyIncrement;break;case 39:H+=this.keyIncrement;break;case 40:E+=this.keyIncrement;break;case 36:H=F.leftConstraint;E=F.topConstraint;break;case 35:H=F.rightConstraint;E=F.bottomConstraint;break;default:I=false;}if(I){if(F._isRegion){this._setRegionValue(C.SOURCE_KEY_EVENT,H,E,true);}else{this._setValue(C.SOURCE_KEY_EVENT,(F._isHoriz?H:E),true);}A.stopEvent(J);}}},setStartSliderState:function(){this.setThumbCenterPoint();this.baselinePos=B(this.getEl());this.thumb.startOffset=this.thumb.getOffsetFromParent(this.baselinePos);if(this.thumb._isRegion){if(this.deferredSetRegionValue){this._setRegionValue.apply(this,this.deferredSetRegionValue);this.deferredSetRegionValue=null;}else{this.setRegionValue(0,0,true,true,true);}}else{if(this.deferredSetValue){this._setValue.apply(this,this.deferredSetValue);this.deferredSetValue=null;}else{this.setValue(0,true,true,true);}}},setThumbCenterPoint:function(){var E=this.thumb.getEl();if(E){this.thumbCenterPoint={x:parseInt(E.offsetWidth/2,10),y:parseInt(E.offsetHeight/2,10)};}},lock:function(){this.thumb.lock();this.locked=true;},unlock:function(){this.thumb.unlock();this.locked=false;},thumbMouseUp:function(){this._mouseDown=false;if(!this.isLocked()){this.endMove();}},onMouseUp:function(){this._mouseDown=false;if(this.backgroundEnabled&&!this.isLocked()){this.endMove();}},getThumb:function(){return this.thumb;},focus:function(){this.valueChangeSource=C.SOURCE_UI_EVENT;var E=this.getEl();if(E.focus){try{E.focus();}catch(F){}}this.verifyOffset();return !this.isLocked();},onChange:function(E,F){},onSlideStart:function(){},onSlideEnd:function(){},getValue:function(){return this.thumb.getValue();},getXValue:function(){return this.thumb.getXValue();},getYValue:function(){return this.thumb.getYValue();},setValue:function(){var E=D.call(arguments);E.unshift(C.SOURCE_SET_VALUE);return this._setValue.apply(this,E);},_setValue:function(I,L,G,H,E){var F=this.thumb,K,J;if(!F.available){this.deferredSetValue=arguments;return false;}if(this.isLocked()&&!H){return false;}if(isNaN(L)){return false;}if(F._isRegion){return false;}this._silent=E;this.valueChangeSource=I||C.SOURCE_SET_VALUE;F.lastOffset=[L,L];this.verifyOffset();this._slideStart();if(F._isHoriz){K=F.initPageX+L+this.thumbCenterPoint.x;this.moveThumb(K,F.initPageY,G);}else{J=F.initPageY+L+this.thumbCenterPoint.y;this.moveThumb(F.initPageX,J,G);}return true;},setRegionValue:function(){var E=D.call(arguments);E.unshift(C.SOURCE_SET_VALUE);return this._setRegionValue.apply(this,E);},_setRegionValue:function(F,J,H,I,G,K){var L=this.thumb,E,M;if(!L.available){this.deferredSetRegionValue=arguments;return false;}if(this.isLocked()&&!G){return false;}if(isNaN(J)){return false;}if(!L._isRegion){return false;}this._silent=K;this.valueChangeSource=F||C.SOURCE_SET_VALUE;L.lastOffset=[J,H];this.verifyOffset();this._slideStart();E=L.initPageX+J+this.thumbCenterPoint.x;M=L.initPageY+H+this.thumbCenterPoint.y;this.moveThumb(E,M,I);return true;},verifyOffset:function(){var F=B(this.getEl()),E=this.thumb;if(!this.thumbCenterPoint||!this.thumbCenterPoint.x){this.setThumbCenterPoint();}if(F){if(F[0]!=this.baselinePos[0]||F[1]!=this.baselinePos[1]){this.setInitPosition();this.baselinePos=F;E.initPageX=this.initPageX+E.startOffset[0];E.initPageY=this.initPageY+E.startOffset[1];E.deltaSetXY=null;this.resetThumbConstraints();return false;}}return true;},moveThumb:function(K,J,I,G){var L=this.thumb,M=this,F,E,H;if(!L.available){return;}L.setDelta(this.thumbCenterPoint.x,this.thumbCenterPoint.y);E=L.getTargetCoord(K,J);F=[Math.round(E.x),Math.round(E.y)];if(this.animate&&L._graduated&&!I){this.lock();this.curCoord=B(this.thumb.getEl());this.curCoord=[Math.round(this.curCoord[0]),Math.round(this.curCoord[1])];setTimeout(function(){M.moveOneTick(F);},this.tickPause);}else{if(this.animate&&C.ANIM_AVAIL&&!I){this.lock();
 H=new YAHOO.util.Motion(L.id,{points:{to:F}},this.animationDuration,YAHOO.util.Easing.easeOut);H.onComplete.subscribe(function(){M.unlock();if(!M._mouseDown){M.endMove();}});H.animate();}else{L.setDragElPos(K,J);if(!G&&!this._mouseDown){this.endMove();}}}},_slideStart:function(){if(!this._sliding){if(!this._silent){this.onSlideStart();this.fireEvent("slideStart");}this._sliding=true;this.moveComplete=false;}},_slideEnd:function(){if(this._sliding){var E=this._silent;this._sliding=false;this.moveComplete=true;this._silent=false;if(!E){this.onSlideEnd();this.fireEvent("slideEnd");}}},moveOneTick:function(F){var H=this.thumb,G=this,I=null,E,J;if(H._isRegion){I=this._getNextX(this.curCoord,F);E=(I!==null)?I[0]:this.curCoord[0];I=this._getNextY(this.curCoord,F);J=(I!==null)?I[1]:this.curCoord[1];I=E!==this.curCoord[0]||J!==this.curCoord[1]?[E,J]:null;}else{if(H._isHoriz){I=this._getNextX(this.curCoord,F);}else{I=this._getNextY(this.curCoord,F);}}if(I){this.curCoord=I;this.thumb.alignElWithMouse(H.getEl(),I[0]+this.thumbCenterPoint.x,I[1]+this.thumbCenterPoint.y);if(!(I[0]==F[0]&&I[1]==F[1])){setTimeout(function(){G.moveOneTick(F);},this.tickPause);}else{this.unlock();if(!this._mouseDown){this.endMove();}}}else{this.unlock();if(!this._mouseDown){this.endMove();}}},_getNextX:function(E,F){var H=this.thumb,J,G=[],I=null;if(E[0]>F[0]){J=H.tickSize-this.thumbCenterPoint.x;G=H.getTargetCoord(E[0]-J,E[1]);I=[G.x,G.y];}else{if(E[0]<F[0]){J=H.tickSize+this.thumbCenterPoint.x;G=H.getTargetCoord(E[0]+J,E[1]);I=[G.x,G.y];}else{}}return I;},_getNextY:function(E,F){var H=this.thumb,J,G=[],I=null;if(E[1]>F[1]){J=H.tickSize-this.thumbCenterPoint.y;G=H.getTargetCoord(E[0],E[1]-J);I=[G.x,G.y];}else{if(E[1]<F[1]){J=H.tickSize+this.thumbCenterPoint.y;G=H.getTargetCoord(E[0],E[1]+J);I=[G.x,G.y];}else{}}return I;},b4MouseDown:function(E){if(!this.backgroundEnabled){return false;}this.thumb.autoOffset();this.baselinePos=[];},onMouseDown:function(F){if(!this.backgroundEnabled||this.isLocked()){return false;}this._mouseDown=true;var E=A.getPageX(F),G=A.getPageY(F);this.focus();this._slideStart();this.moveThumb(E,G);},onDrag:function(F){if(this.backgroundEnabled&&!this.isLocked()){var E=A.getPageX(F),G=A.getPageY(F);this.moveThumb(E,G,true,true);this.fireEvents();}},endMove:function(){this.unlock();this.fireEvents();this._slideEnd();},resetThumbConstraints:function(){var E=this.thumb;E.setXConstraint(E.leftConstraint,E.rightConstraint,E.xTickSize);E.setYConstraint(E.topConstraint,E.bottomConstraint,E.xTickSize);},fireEvents:function(G){var F=this.thumb,I,H,E;if(!G){F.cachePosition();}if(!this.isLocked()){if(F._isRegion){I=F.getXValue();H=F.getYValue();if(I!=this.previousX||H!=this.previousY){if(!this._silent){this.onChange(I,H);this.fireEvent("change",{x:I,y:H});}}this.previousX=I;this.previousY=H;}else{E=F.getValue();if(E!=this.previousVal){if(!this._silent){this.onChange(E);this.fireEvent("change",E);}}this.previousVal=E;}}},toString:function(){return("Slider ("+this.type+") "+this.id);}});YAHOO.lang.augmentProto(C,YAHOO.util.EventProvider);YAHOO.widget.Slider=C;})();YAHOO.widget.SliderThumb=function(G,B,E,D,A,F,C){if(G){YAHOO.widget.SliderThumb.superclass.constructor.call(this,G,B);this.parentElId=B;}this.isTarget=false;this.tickSize=C;this.maintainOffset=true;this.initSlider(E,D,A,F,C);this.scroll=false;};YAHOO.extend(YAHOO.widget.SliderThumb,YAHOO.util.DD,{startOffset:null,dragOnly:true,_isHoriz:false,_prevVal:0,_graduated:false,getOffsetFromParent0:function(C){var A=YAHOO.util.Dom.getXY(this.getEl()),B=C||YAHOO.util.Dom.getXY(this.parentElId);return[(A[0]-B[0]),(A[1]-B[1])];},getOffsetFromParent:function(H){var A=this.getEl(),E,I,F,B,K,D,C,J,G;if(!this.deltaOffset){I=YAHOO.util.Dom.getXY(A);F=H||YAHOO.util.Dom.getXY(this.parentElId);E=[(I[0]-F[0]),(I[1]-F[1])];B=parseInt(YAHOO.util.Dom.getStyle(A,"left"),10);K=parseInt(YAHOO.util.Dom.getStyle(A,"top"),10);D=B-E[0];C=K-E[1];if(isNaN(D)||isNaN(C)){}else{this.deltaOffset=[D,C];}}else{J=parseInt(YAHOO.util.Dom.getStyle(A,"left"),10);G=parseInt(YAHOO.util.Dom.getStyle(A,"top"),10);E=[J+this.deltaOffset[0],G+this.deltaOffset[1]];}return E;},initSlider:function(D,C,A,E,B){this.initLeft=D;this.initRight=C;this.initUp=A;this.initDown=E;this.setXConstraint(D,C,B);this.setYConstraint(A,E,B);if(B&&B>1){this._graduated=true;}this._isHoriz=(D||C);this._isVert=(A||E);this._isRegion=(this._isHoriz&&this._isVert);},clearTicks:function(){YAHOO.widget.SliderThumb.superclass.clearTicks.call(this);this.tickSize=0;this._graduated=false;},getValue:function(){return(this._isHoriz)?this.getXValue():this.getYValue();},getXValue:function(){if(!this.available){return 0;}var A=this.getOffsetFromParent();if(YAHOO.lang.isNumber(A[0])){this.lastOffset=A;return(A[0]-this.startOffset[0]);}else{return(this.lastOffset[0]-this.startOffset[0]);}},getYValue:function(){if(!this.available){return 0;}var A=this.getOffsetFromParent();if(YAHOO.lang.isNumber(A[1])){this.lastOffset=A;return(A[1]-this.startOffset[1]);}else{return(this.lastOffset[1]-this.startOffset[1]);}},toString:function(){return"SliderThumb "+this.id;},onChange:function(A,B){}});(function(){var A=YAHOO.util.Event,B=YAHOO.widget;function C(I,F,H,D){var G=this,J={min:false,max:false},E,K;this.minSlider=I;this.maxSlider=F;this.activeSlider=I;this.isHoriz=I.thumb._isHoriz;E=this.minSlider.thumb.onMouseDown;K=this.maxSlider.thumb.onMouseDown;this.minSlider.thumb.onMouseDown=function(){G.activeSlider=G.minSlider;E.apply(this,arguments);};this.maxSlider.thumb.onMouseDown=function(){G.activeSlider=G.maxSlider;K.apply(this,arguments);};this.minSlider.thumb.onAvailable=function(){I.setStartSliderState();J.min=true;if(J.max){G.fireEvent("ready",G);}};this.maxSlider.thumb.onAvailable=function(){F.setStartSliderState();J.max=true;if(J.min){G.fireEvent("ready",G);}};I.onMouseDown=F.onMouseDown=function(L){return this.backgroundEnabled&&G._handleMouseDown(L);};I.onDrag=F.onDrag=function(L){G._handleDrag(L);};I.onMouseUp=F.onMouseUp=function(L){G._handleMouseUp(L);
-};I._bindKeyEvents=function(){G._bindKeyEvents(this);};F._bindKeyEvents=function(){};I.subscribe("change",this._handleMinChange,I,this);I.subscribe("slideStart",this._handleSlideStart,I,this);I.subscribe("slideEnd",this._handleSlideEnd,I,this);F.subscribe("change",this._handleMaxChange,F,this);F.subscribe("slideStart",this._handleSlideStart,F,this);F.subscribe("slideEnd",this._handleSlideEnd,F,this);this.createEvent("ready",this);this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);D=YAHOO.lang.isArray(D)?D:[0,H];D[0]=Math.min(Math.max(parseInt(D[0],10)|0,0),H);D[1]=Math.max(Math.min(parseInt(D[1],10)|0,H),0);if(D[0]>D[1]){D.splice(0,2,D[1],D[0]);}this.minVal=D[0];this.maxVal=D[1];this.minSlider.setValue(this.minVal,true,true,true);this.maxSlider.setValue(this.maxVal,true,true,true);}C.prototype={minVal:-1,maxVal:-1,minRange:0,_handleSlideStart:function(E,D){this.fireEvent("slideStart",D);},_handleSlideEnd:function(E,D){this.fireEvent("slideEnd",D);},_handleDrag:function(D){B.Slider.prototype.onDrag.call(this.activeSlider,D);},_handleMinChange:function(){this.activeSlider=this.minSlider;this.updateValue();},_handleMaxChange:function(){this.activeSlider=this.maxSlider;this.updateValue();},_bindKeyEvents:function(D){A.on(D.id,"keydown",this._handleKeyDown,this,true);A.on(D.id,"keypress",this._handleKeyPress,this,true);},_handleKeyDown:function(D){this.activeSlider.handleKeyDown.apply(this.activeSlider,arguments);},_handleKeyPress:function(D){this.activeSlider.handleKeyPress.apply(this.activeSlider,arguments);},setValues:function(H,K,I,E,J){var F=this.minSlider,M=this.maxSlider,D=F.thumb,L=M.thumb,N=this,G={min:false,max:false};if(D._isHoriz){D.setXConstraint(D.leftConstraint,L.rightConstraint,D.tickSize);L.setXConstraint(D.leftConstraint,L.rightConstraint,L.tickSize);}else{D.setYConstraint(D.topConstraint,L.bottomConstraint,D.tickSize);L.setYConstraint(D.topConstraint,L.bottomConstraint,L.tickSize);}this._oneTimeCallback(F,"slideEnd",function(){G.min=true;if(G.max){N.updateValue(J);setTimeout(function(){N._cleanEvent(F,"slideEnd");N._cleanEvent(M,"slideEnd");},0);}});this._oneTimeCallback(M,"slideEnd",function(){G.max=true;if(G.min){N.updateValue(J);setTimeout(function(){N._cleanEvent(F,"slideEnd");N._cleanEvent(M,"slideEnd");},0);}});F.setValue(H,I,E,false);M.setValue(K,I,E,false);},setMinValue:function(F,H,I,E){var G=this.minSlider,D=this;this.activeSlider=G;D=this;this._oneTimeCallback(G,"slideEnd",function(){D.updateValue(E);setTimeout(function(){D._cleanEvent(G,"slideEnd");},0);});G.setValue(F,H,I);},setMaxValue:function(D,H,I,F){var G=this.maxSlider,E=this;this.activeSlider=G;this._oneTimeCallback(G,"slideEnd",function(){E.updateValue(F);setTimeout(function(){E._cleanEvent(G,"slideEnd");},0);});G.setValue(D,H,I);},updateValue:function(J){var E=this.minSlider.getValue(),K=this.maxSlider.getValue(),F=false,D,M,H,I,L,G;if(E!=this.minVal||K!=this.maxVal){F=true;D=this.minSlider.thumb;M=this.maxSlider.thumb;H=this.isHoriz?"x":"y";G=this.minSlider.thumbCenterPoint[H]+this.maxSlider.thumbCenterPoint[H];I=Math.max(K-G-this.minRange,0);L=Math.min(-E-G-this.minRange,0);if(this.isHoriz){I=Math.min(I,M.rightConstraint);D.setXConstraint(D.leftConstraint,I,D.tickSize);M.setXConstraint(L,M.rightConstraint,M.tickSize);}else{I=Math.min(I,M.bottomConstraint);D.setYConstraint(D.leftConstraint,I,D.tickSize);M.setYConstraint(L,M.bottomConstraint,M.tickSize);}}this.minVal=E;this.maxVal=K;if(F&&!J){this.fireEvent("change",this);}},selectActiveSlider:function(H){var E=this.minSlider,D=this.maxSlider,J=E.isLocked()||!E.backgroundEnabled,G=D.isLocked()||!E.backgroundEnabled,F=YAHOO.util.Event,I;if(J||G){this.activeSlider=J?D:E;}else{if(this.isHoriz){I=F.getPageX(H)-E.thumb.initPageX-E.thumbCenterPoint.x;}else{I=F.getPageY(H)-E.thumb.initPageY-E.thumbCenterPoint.y;}this.activeSlider=I*2>D.getValue()+E.getValue()?D:E;}},_handleMouseDown:function(D){if(!D._handled&&!this.minSlider._sliding&&!this.maxSlider._sliding){D._handled=true;this.selectActiveSlider(D);return B.Slider.prototype.onMouseDown.call(this.activeSlider,D);}else{return false;}},_handleMouseUp:function(D){B.Slider.prototype.onMouseUp.apply(this.activeSlider,arguments);},_oneTimeCallback:function(G,D,F){var E=function(){G.unsubscribe(D,E);F.apply({},arguments);};G.subscribe(D,E);},_cleanEvent:function(K,E){var J,I,D,G,H,F;if(K.__yui_events&&K.events[E]){for(I=K.__yui_events.length;I>=0;--I){if(K.__yui_events[I].type===E){J=K.__yui_events[I];break;}}if(J){H=J.subscribers;F=[];G=0;for(I=0,D=H.length;I<D;++I){if(H[I]){F[G++]=H[I];}}J.subscribers=F;}}}};YAHOO.lang.augmentProto(C,YAHOO.util.EventProvider);B.Slider.getHorizDualSlider=function(H,J,K,G,F,D){var I=new B.SliderThumb(J,H,0,G,0,0,F),E=new B.SliderThumb(K,H,0,G,0,0,F);return new C(new B.Slider(H,H,I,"horiz"),new B.Slider(H,H,E,"horiz"),G,D);};B.Slider.getVertDualSlider=function(H,J,K,G,F,D){var I=new B.SliderThumb(J,H,0,0,0,G,F),E=new B.SliderThumb(K,H,0,0,0,G,F);return new B.DualSlider(new B.Slider(H,H,I,"vert"),new B.Slider(H,H,E,"vert"),G,D);};YAHOO.widget.DualSlider=C;})();YAHOO.register("slider",YAHOO.widget.Slider,{version:"2.8.1",build:"19"});
\ No newline at end of file
+};I._bindKeyEvents=function(){G._bindKeyEvents(this);};F._bindKeyEvents=function(){};I.subscribe("change",this._handleMinChange,I,this);I.subscribe("slideStart",this._handleSlideStart,I,this);I.subscribe("slideEnd",this._handleSlideEnd,I,this);F.subscribe("change",this._handleMaxChange,F,this);F.subscribe("slideStart",this._handleSlideStart,F,this);F.subscribe("slideEnd",this._handleSlideEnd,F,this);this.createEvent("ready",this);this.createEvent("change",this);this.createEvent("slideStart",this);this.createEvent("slideEnd",this);D=YAHOO.lang.isArray(D)?D:[0,H];D[0]=Math.min(Math.max(parseInt(D[0],10)|0,0),H);D[1]=Math.max(Math.min(parseInt(D[1],10)|0,H),0);if(D[0]>D[1]){D.splice(0,2,D[1],D[0]);}this.minVal=D[0];this.maxVal=D[1];this.minSlider.setValue(this.minVal,true,true,true);this.maxSlider.setValue(this.maxVal,true,true,true);}C.prototype={minVal:-1,maxVal:-1,minRange:0,_handleSlideStart:function(E,D){this.fireEvent("slideStart",D);},_handleSlideEnd:function(E,D){this.fireEvent("slideEnd",D);},_handleDrag:function(D){B.Slider.prototype.onDrag.call(this.activeSlider,D);},_handleMinChange:function(){this.activeSlider=this.minSlider;this.updateValue();},_handleMaxChange:function(){this.activeSlider=this.maxSlider;this.updateValue();},_bindKeyEvents:function(D){A.on(D.id,"keydown",this._handleKeyDown,this,true);A.on(D.id,"keypress",this._handleKeyPress,this,true);},_handleKeyDown:function(D){this.activeSlider.handleKeyDown.apply(this.activeSlider,arguments);},_handleKeyPress:function(D){this.activeSlider.handleKeyPress.apply(this.activeSlider,arguments);},setValues:function(H,K,I,E,J){var F=this.minSlider,M=this.maxSlider,D=F.thumb,L=M.thumb,N=this,G={min:false,max:false};if(D._isHoriz){D.setXConstraint(D.leftConstraint,L.rightConstraint,D.tickSize);L.setXConstraint(D.leftConstraint,L.rightConstraint,L.tickSize);}else{D.setYConstraint(D.topConstraint,L.bottomConstraint,D.tickSize);L.setYConstraint(D.topConstraint,L.bottomConstraint,L.tickSize);}this._oneTimeCallback(F,"slideEnd",function(){G.min=true;if(G.max){N.updateValue(J);setTimeout(function(){N._cleanEvent(F,"slideEnd");N._cleanEvent(M,"slideEnd");},0);}});this._oneTimeCallback(M,"slideEnd",function(){G.max=true;if(G.min){N.updateValue(J);setTimeout(function(){N._cleanEvent(F,"slideEnd");N._cleanEvent(M,"slideEnd");},0);}});F.setValue(H,I,E,false);M.setValue(K,I,E,false);},setMinValue:function(F,H,I,E){var G=this.minSlider,D=this;this.activeSlider=G;D=this;this._oneTimeCallback(G,"slideEnd",function(){D.updateValue(E);setTimeout(function(){D._cleanEvent(G,"slideEnd");},0);});G.setValue(F,H,I);},setMaxValue:function(D,H,I,F){var G=this.maxSlider,E=this;this.activeSlider=G;this._oneTimeCallback(G,"slideEnd",function(){E.updateValue(F);setTimeout(function(){E._cleanEvent(G,"slideEnd");},0);});G.setValue(D,H,I);},updateValue:function(J){var E=this.minSlider.getValue(),K=this.maxSlider.getValue(),F=false,D,M,H,I,L,G;if(E!=this.minVal||K!=this.maxVal){F=true;D=this.minSlider.thumb;M=this.maxSlider.thumb;H=this.isHoriz?"x":"y";G=this.minSlider.thumbCenterPoint[H]+this.maxSlider.thumbCenterPoint[H];I=Math.max(K-G-this.minRange,0);L=Math.min(-E-G-this.minRange,0);if(this.isHoriz){I=Math.min(I,M.rightConstraint);D.setXConstraint(D.leftConstraint,I,D.tickSize);M.setXConstraint(L,M.rightConstraint,M.tickSize);}else{I=Math.min(I,M.bottomConstraint);D.setYConstraint(D.leftConstraint,I,D.tickSize);M.setYConstraint(L,M.bottomConstraint,M.tickSize);}}this.minVal=E;this.maxVal=K;if(F&&!J){this.fireEvent("change",this);}},selectActiveSlider:function(H){var E=this.minSlider,D=this.maxSlider,J=E.isLocked()||!E.backgroundEnabled,G=D.isLocked()||!E.backgroundEnabled,F=YAHOO.util.Event,I;if(J||G){this.activeSlider=J?D:E;}else{if(this.isHoriz){I=F.getPageX(H)-E.thumb.initPageX-E.thumbCenterPoint.x;}else{I=F.getPageY(H)-E.thumb.initPageY-E.thumbCenterPoint.y;}this.activeSlider=I*2>D.getValue()+E.getValue()?D:E;}},_handleMouseDown:function(D){if(!D._handled&&!this.minSlider._sliding&&!this.maxSlider._sliding){D._handled=true;this.selectActiveSlider(D);return B.Slider.prototype.onMouseDown.call(this.activeSlider,D);}else{return false;}},_handleMouseUp:function(D){B.Slider.prototype.onMouseUp.apply(this.activeSlider,arguments);},_oneTimeCallback:function(G,D,F){var E=function(){G.unsubscribe(D,E);F.apply({},arguments);};G.subscribe(D,E);},_cleanEvent:function(K,E){var J,I,D,G,H,F;if(K.__yui_events&&K.events[E]){for(I=K.__yui_events.length;I>=0;--I){if(K.__yui_events[I].type===E){J=K.__yui_events[I];break;}}if(J){H=J.subscribers;F=[];G=0;for(I=0,D=H.length;I<D;++I){if(H[I]){F[G++]=H[I];}}J.subscribers=F;}}}};YAHOO.lang.augmentProto(C,YAHOO.util.EventProvider);B.Slider.getHorizDualSlider=function(H,J,K,G,F,D){var I=new B.SliderThumb(J,H,0,G,0,0,F),E=new B.SliderThumb(K,H,0,G,0,0,F);return new C(new B.Slider(H,H,I,"horiz"),new B.Slider(H,H,E,"horiz"),G,D);};B.Slider.getVertDualSlider=function(H,J,K,G,F,D){var I=new B.SliderThumb(J,H,0,0,0,G,F),E=new B.SliderThumb(K,H,0,0,0,G,F);return new B.DualSlider(new B.Slider(H,H,I,"vert"),new B.Slider(H,H,E,"vert"),G,D);};YAHOO.widget.DualSlider=C;})();YAHOO.register("slider",YAHOO.widget.Slider,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/slider/slider.js b/build/slider/slider.js
index 78e03ff..35f98ea 100644
--- a/build/slider/slider.js
+++ b/build/slider/slider.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Slider component is a UI control that enables the user to adjust 
@@ -2065,4 +2065,4 @@ YW.Slider.getVertDualSlider =
 YAHOO.widget.DualSlider = DualSlider;
 
 })();
-YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.8.1", build: "19"});
+YAHOO.register("slider", YAHOO.widget.Slider, {version: "2.8.2r1", build: "7"});
diff --git a/build/storage/storage-debug.js b/build/storage/storage-debug.js
index add05c2..833c091 100644
--- a/build/storage/storage-debug.js
+++ b/build/storage/storage-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Storage module manages client-side data storage.
@@ -480,7 +480,7 @@ var Y = YAHOO.util,
 		}
 	};
 
-	YAHOO.register("StorageManager", Y.SWFStore, {version: "2.8.1", build: "19"});
+	YAHOO.register("StorageManager", Y.SWFStore, {version: "2.8.2r1", build: "7"});
 }());
 (function() {
 
@@ -1182,4 +1182,4 @@ var Y = YAHOO.util,
     };
     Y.StorageManager.register(Y.StorageEngineSWF);
 }());
-YAHOO.register("storage", YAHOO.util.Storage, {version: "2.8.1", build: "19"});
+YAHOO.register("storage", YAHOO.util.Storage, {version: "2.8.2r1", build: "7"});
diff --git a/build/storage/storage-min.js b/build/storage/storage-min.js
index c598db5..08b477a 100644
--- a/build/storage/storage-min.js
+++ b/build/storage/storage-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-(function(){var D=YAHOO,B=D.util,A=D.lang,C;if(!B.Storage){C=function(E){D.log("Exception in YAHOO.util.Storage.?? - must be extended by a storage engine".replace("??",E).replace("??",this.getName?this.getName():"Unknown"),"error");};B.Storage=function(E,G,F){var H=this;D.env._id_counter+=1;H._cfg=A.isObject(F)?F:{};H._location=E;H._name=G;H.isReady=false;H.createEvent(H.CE_READY,{scope:H});H.createEvent(H.CE_CHANGE,{scope:H});H.subscribe(H.CE_READY,function(){H.isReady=true;});};B.Storage.prototype={CE_READY:"YUIStorageReady",CE_CHANGE:"YUIStorageChange",DELIMITER:"__",_cfg:"",_name:"",_location:"",length:0,isReady:false,clear:function(){this._clear();this.length=0;},getItem:function(E){D.log("Fetching item at  "+E);var F=this._getItem(E);return A.isValue(F)?this._getValue(F):null;},getName:function(){return this._name;},hasKey:function(E){return A.isString(E)&&this._hasKey(E);},key:function(E){D.log("Fetching key at "+E);if(A.isNumber(E)&&-1<E&&this.length>E){var F=this._key(E);if(F){return F;}}throw ("INDEX_SIZE_ERR - Storage.setItem - The provided index ("+E+") is not available");},removeItem:function(F){D.log("removing "+F);if(this.hasKey(F)){var E=this._getItem(F);if(!E){E=null;}this._removeItem(F);this.fireEvent(this.CE_CHANGE,new B.StorageEvent(this,F,E,null,B.StorageEvent.TYPE_REMOVE_ITEM));}else{}},setItem:function(G,H){D.log("SETTING "+H+" to "+G);if(A.isString(G)){var F=this.hasKey(G)?B.StorageEvent.TYPE_UPDATE_ITEM:B.StorageEvent.TYPE_ADD_ITEM,E=this._getItem(G);if(!E){E=null;}if(this._setItem(G,this._createValue(H))){this.fireEvent(this.CE_CHANGE,new B.StorageEvent(this,G,E,H,F));}else{throw ("QUOTA_EXCEEDED_ERROR - Storage.setItem - The choosen storage method ("+this.getName()+") has exceeded capacity");}}else{}},_clear:function(){C("_clear");return"";},_createValue:function(F){var E=(A.isNull(F)||A.isUndefined(F))?(""+F):typeof F;return"string"===E?F:E+this.DELIMITER+F;},_getItem:function(E){C("_getItem");return"";},_getValue:function(F){var E=F?F.split(this.DELIMITER):[];if(1==E.length){return F;}switch(E[0]){case"boolean":return"true"===E[1];case"number":return parseFloat(E[1]);case"null":return null;default:return E[1];}},_key:function(E){C("_key");return"";},_hasKey:function(E){return null!==this._getItem(E);},_removeItem:function(E){C("_removeItem");return"";},_setItem:function(E,F){C("_setItem");return"";}};A.augmentProto(B.Storage,B.EventProvider);}}());(function(){var H=YAHOO.util,B=YAHOO.lang,E={},G=[],F={},C=function(I){return(I&&I.isAvailable())?I:null;},A=function(J,I,K){var L=E[J+I.ENGINE_NAME];if(!L){L=new I(J,K);E[J+I.ENGINE_NAME]=L;}return L;},D=function(I){switch(I){case H.StorageManager.LOCATION_LOCAL:case H.StorageManager.LOCATION_SESSION:return I;default:return H.StorageManager.LOCATION_SESSION;}};H.StorageManager={LOCATION_SESSION:"sessionStorage",LOCATION_LOCAL:"localStorage",get:function(O,J,M){var K=B.isObject(M)?M:{},I=C(F[O]);if(!I&&!K.force){var N,L;if(K.order){L=K.order.length;for(N=0;N<L&&!I;N+=1){I=C(K.order[N]);}}if(!I){L=G.length;for(N=0;N<L&&!I;N+=1){I=C(G[N]);}}}if(I){return A(D(J),I,K.engine);}throw ("YAHOO.util.StorageManager.get - No engine available, please include an engine before calling this function.");},getByteSize:function(I){return encodeURIComponent(""+I).length;},register:function(I){if(B.isFunction(I)&&B.isFunction(I.isAvailable)&&B.isString(I.ENGINE_NAME)){F[I.ENGINE_NAME]=I;G.push(I);return true;}return false;}};YAHOO.register("StorageManager",H.SWFStore,{version:"2.8.1",build:"19"});}());(function(){YAHOO.util.StorageEvent=function(D,B,A,E,C){this.key=B;this.oldValue=A;this.newValue=E;this.url=window.location.href;this.window=window;this.storageArea=D;this.type=C;};YAHOO.lang.augmentObject(YAHOO.util.StorageEvent,{TYPE_ADD_ITEM:"addItem",TYPE_REMOVE_ITEM:"removeItem",TYPE_UPDATE_ITEM:"updateItem"});YAHOO.util.StorageEvent.prototype={key:null,newValue:null,oldValue:null,source:null,storageArea:null,type:null,url:null};}());(function(){var B=YAHOO.util,A=YAHOO.lang;B.StorageEngineKeyed=function(){B.StorageEngineKeyed.superclass.constructor.apply(this,arguments);this._keys=[];this._keyMap={};};A.extend(B.StorageEngineKeyed,B.Storage,{_keys:null,_keyMap:null,_addKey:function(C){this._keyMap[C]=this.length;this._keys.push(C);this.length=this._keys.length;},_indexOfKey:function(D){var C=this._keyMap[D];return undefined===C?-1:C;},_removeKey:function(E){var D=this._indexOfKey(E),F=this._keys.slice(D+1);delete this._keyMap[E];for(var C in this._keyMap){if(D<this._keyMap[C]){this._keyMap[C]-=1;}}this._keys.length=D;this._keys=this._keys.concat(F);this.length=this._keys.length;}});}());(function(){var D=YAHOO.util,B=YAHOO.lang,A=function(E){if(E.begin){E.begin();}},C=function(E){if(E.commit){E.commit();}};D.StorageEngineHTML5=function(E,F){var G=this;D.StorageEngineHTML5.superclass.constructor.call(G,E,D.StorageEngineHTML5.ENGINE_NAME,F);G._engine=window[E];G.length=G._engine.length;B.later(250,G,function(){G.fireEvent(G.CE_READY);});};YAHOO.lang.extend(D.StorageEngineHTML5,D.Storage,{_engine:null,_clear:function(){var G=this;if(G._engine.clear){G._engine.clear();}else{for(var F=G.length,E;0<=F;F-=1){E=G._key(F);G._removeItem(E);}}},_getItem:function(E){var F=this._engine.getItem(E);return B.isObject(F)?F.value:F;},_key:function(E){return this._engine.key(E);},_removeItem:function(E){var F=this;A(F._engine);F._engine.removeItem(E);C(F._engine);F.length=F._engine.length;},_setItem:function(E,F){var H=this;try{A(H._engine);H._engine.setItem(E,F);C(H._engine);H.length=H._engine.length;return true;}catch(G){return false;}}},true);D.StorageEngineHTML5.ENGINE_NAME="html5";D.StorageEngineHTML5.isAvailable=function(){return window.localStorage;};D.StorageManager.register(D.StorageEngineHTML5);}());(function(){var G=YAHOO.util,B=YAHOO.lang,D=9948,C="YUIStorageEngine",F=null,E=encodeURIComponent,A=decodeURIComponent;G.StorageEngineGears=function(I,L){var O=this;G.StorageEngineGears.superclass.constructor.call(O,I,G.StorageEngineGears.ENGINE_NAME,L);
-if(!F){F=google.gears.factory.create(G.StorageEngineGears.GEARS);F.open(window.location.host+"-"+G.StorageEngineGears.DATABASE);F.execute("CREATE TABLE IF NOT EXISTS "+C+" (key TEXT, location TEXT, value TEXT)");}var K=G.StorageManager.LOCATION_SESSION===O._location,H=G.Cookie.get("sessionKey"+G.StorageEngineGears.ENGINE_NAME);if(!H){F.execute("BEGIN");F.execute("DELETE FROM "+C+' WHERE location="'+E(G.StorageManager.LOCATION_SESSION)+'"');F.execute("COMMIT");}var J=F.execute("SELECT key FROM "+C+' WHERE location="'+E(O._location)+'"'),N={};try{while(J.isValidRow()){var M=A(J.field(0));if(!N[M]){N[M]=true;O._addKey(M);}J.next();}}finally{J.close();}if(K){G.Cookie.set("sessionKey"+G.StorageEngineGears.ENGINE_NAME,true);}O.length=O._keys.length;B.later(250,O,function(){O.fireEvent(O.CE_READY);});};B.extend(G.StorageEngineGears,G.StorageEngineKeyed,{_clear:function(){F.execute("BEGIN");F.execute("DELETE FROM "+C+' WHERE location="'+E(this._location)+'"');F.execute("COMMIT");this._keys=[];this.length=0;},_getItem:function(J){var I=F.execute("SELECT value FROM "+C+' WHERE key="'+E(J)+'" AND location="'+E(this._location)+'"'),K="";try{while(I.isValidRow()){var H=I.field(0);K+=I.field(0);I.next();}}finally{I.close();}return K?A(K):null;},_key:function(H){return this._keys[H];},_removeItem:function(H){F.execute("BEGIN");F.execute("DELETE FROM "+C+' WHERE key="'+E(H)+'" AND location="'+E(this._location)+'"');F.execute("COMMIT");this._removeKey(H);},_setItem:function(P,M){if(!this.hasKey(P)){this._addKey(P);}var H=E(P),Q=E(this._location),R=E(M),K=[],O=D-(H+Q).length;if(O<R.length){for(var N=0,L=R.length;N<L;N+=O){K.push(R.substr(N,O));}}else{K.push(R);}F.execute("BEGIN");F.execute("DELETE FROM "+C+' WHERE key="'+E(P)+'" AND location="'+E(this._location)+'"');for(var J=0,I=K.length;J<I;J+=1){F.execute("INSERT INTO "+C+' VALUES ("'+H+'", "'+Q+'", "'+K[J]+'")');}F.execute("COMMIT");return true;}});G.Event.on("unload",function(){if(F){F.close();}});G.StorageEngineGears.ENGINE_NAME="gears";G.StorageEngineGears.GEARS="beta.database";G.StorageEngineGears.DATABASE="yui.database";G.StorageEngineGears.isAvailable=function(){if(window.google&&window.google.gears){try{google.gears.factory.create(G.StorageEngineGears.GEARS);return true;}catch(H){}}return false;};G.StorageManager.register(G.StorageEngineGears);}());(function(){var G=YAHOO.util,B=YAHOO.lang,H=G.Dom,C=215,E=138,F=null,D=function(J,I){return J._location+J.DELIMITER+I;},A=function(J){if(!F){if(!B.isString(J.swfURL)){J.swfURL=G.StorageEngineSWF.SWFURL;}if(!J.containerID){var K=document.getElementsByTagName("body")[0],I=K.appendChild(document.createElement("div"));J.containerID=H.generateId(I);}if(!J.attributes){J.attributes={};}if(!J.attributes.flashVars){J.attributes.flashVars={};}J.attributes.flashVars.useCompression="true";J.attributes.version=9.115;F=new YAHOO.widget.SWF(J.containerID,J.swfURL,J.attributes);}};G.StorageEngineSWF=function(I,J){var K=this;G.StorageEngineSWF.superclass.constructor.call(K,I,G.StorageEngineSWF.ENGINE_NAME,J);A(K._cfg);F.unsubscribe("contentReady");F.addListener("contentReady",function(){K._swf=F._swf;F.initialized=true;var N=G.StorageManager.LOCATION_SESSION===K._location,M=G.Cookie.get("sessionKey"+G.StorageEngineSWF.ENGINE_NAME);for(var P=F.callSWF("getLength",[])-1;0<=P;P-=1){var O=F.callSWF("getNameAt",[P]),L=-1<O.indexOf(G.StorageManager.LOCATION_SESSION+K.DELIMITER);if(N&&!M){F.callSWF("removeItem",[O]);}else{if(N===L){K._addKey(O);}}}if(N){G.Cookie.set("sessionKey"+G.StorageEngineSWF.ENGINE_NAME,true);}K.length=K._keys.length;K.fireEvent(K.CE_READY);});if(F.initialized){F.fireEvent("contentReady");}};B.extend(G.StorageEngineSWF,G.StorageEngineKeyed,{_swf:null,_clear:function(){for(var J=this._keys.length-1;0<=J;J-=1){var I=this._keys[J];F.callSWF("removeItem",[I]);}this._keys=[];this.length=0;},_getItem:function(I){var J=D(this,I);return F.callSWF("getValueOf",[J]);},_key:function(I){return(this._keys[I]||"").replace(/^.*?__/,"");},_removeItem:function(I){var J=D(this,I);F.callSWF("removeItem",[J]);this._removeKey(J);},_setItem:function(I,K){var J=D(this,I),L;if(F.callSWF("getValueOf",[J])){this._removeItem(I);}this._addKey(J);if(F.callSWF("setItem",[J,K])){return true;}else{L=H.get(F._id);if(C>H.getStyle(L,"width").replace(/\D+/g,"")){H.setStyle(L,"width",C+"px");}if(E>H.getStyle(L,"height").replace(/\D+/g,"")){H.setStyle(L,"height",E+"px");}return F.callSWF("displaySettings",[]);}}});G.StorageEngineSWF.SWFURL="swfstore.swf";G.StorageEngineSWF.ENGINE_NAME="swf";G.StorageEngineSWF.isAvailable=function(){return(6<=YAHOO.env.ua.flash&&YAHOO.widget.SWF);};G.StorageManager.register(G.StorageEngineSWF);}());YAHOO.register("storage",YAHOO.util.Storage,{version:"2.8.1",build:"19"});
\ No newline at end of file
+(function(){var D=YAHOO,B=D.util,A=D.lang,C;if(!B.Storage){C=function(E){D.log("Exception in YAHOO.util.Storage.?? - must be extended by a storage engine".replace("??",E).replace("??",this.getName?this.getName():"Unknown"),"error");};B.Storage=function(E,G,F){var H=this;D.env._id_counter+=1;H._cfg=A.isObject(F)?F:{};H._location=E;H._name=G;H.isReady=false;H.createEvent(H.CE_READY,{scope:H});H.createEvent(H.CE_CHANGE,{scope:H});H.subscribe(H.CE_READY,function(){H.isReady=true;});};B.Storage.prototype={CE_READY:"YUIStorageReady",CE_CHANGE:"YUIStorageChange",DELIMITER:"__",_cfg:"",_name:"",_location:"",length:0,isReady:false,clear:function(){this._clear();this.length=0;},getItem:function(E){D.log("Fetching item at  "+E);var F=this._getItem(E);return A.isValue(F)?this._getValue(F):null;},getName:function(){return this._name;},hasKey:function(E){return A.isString(E)&&this._hasKey(E);},key:function(E){D.log("Fetching key at "+E);if(A.isNumber(E)&&-1<E&&this.length>E){var F=this._key(E);if(F){return F;}}throw ("INDEX_SIZE_ERR - Storage.setItem - The provided index ("+E+") is not available");},removeItem:function(F){D.log("removing "+F);if(this.hasKey(F)){var E=this._getItem(F);if(!E){E=null;}this._removeItem(F);this.fireEvent(this.CE_CHANGE,new B.StorageEvent(this,F,E,null,B.StorageEvent.TYPE_REMOVE_ITEM));}else{}},setItem:function(G,H){D.log("SETTING "+H+" to "+G);if(A.isString(G)){var F=this.hasKey(G)?B.StorageEvent.TYPE_UPDATE_ITEM:B.StorageEvent.TYPE_ADD_ITEM,E=this._getItem(G);if(!E){E=null;}if(this._setItem(G,this._createValue(H))){this.fireEvent(this.CE_CHANGE,new B.StorageEvent(this,G,E,H,F));}else{throw ("QUOTA_EXCEEDED_ERROR - Storage.setItem - The choosen storage method ("+this.getName()+") has exceeded capacity");}}else{}},_clear:function(){C("_clear");return"";},_createValue:function(F){var E=(A.isNull(F)||A.isUndefined(F))?(""+F):typeof F;return"string"===E?F:E+this.DELIMITER+F;},_getItem:function(E){C("_getItem");return"";},_getValue:function(F){var E=F?F.split(this.DELIMITER):[];if(1==E.length){return F;}switch(E[0]){case"boolean":return"true"===E[1];case"number":return parseFloat(E[1]);case"null":return null;default:return E[1];}},_key:function(E){C("_key");return"";},_hasKey:function(E){return null!==this._getItem(E);},_removeItem:function(E){C("_removeItem");return"";},_setItem:function(E,F){C("_setItem");return"";}};A.augmentProto(B.Storage,B.EventProvider);}}());(function(){var H=YAHOO.util,B=YAHOO.lang,E={},G=[],F={},C=function(I){return(I&&I.isAvailable())?I:null;},A=function(J,I,K){var L=E[J+I.ENGINE_NAME];if(!L){L=new I(J,K);E[J+I.ENGINE_NAME]=L;}return L;},D=function(I){switch(I){case H.StorageManager.LOCATION_LOCAL:case H.StorageManager.LOCATION_SESSION:return I;default:return H.StorageManager.LOCATION_SESSION;}};H.StorageManager={LOCATION_SESSION:"sessionStorage",LOCATION_LOCAL:"localStorage",get:function(O,J,M){var K=B.isObject(M)?M:{},I=C(F[O]);if(!I&&!K.force){var N,L;if(K.order){L=K.order.length;for(N=0;N<L&&!I;N+=1){I=C(K.order[N]);}}if(!I){L=G.length;for(N=0;N<L&&!I;N+=1){I=C(G[N]);}}}if(I){return A(D(J),I,K.engine);}throw ("YAHOO.util.StorageManager.get - No engine available, please include an engine before calling this function.");},getByteSize:function(I){return encodeURIComponent(""+I).length;},register:function(I){if(B.isFunction(I)&&B.isFunction(I.isAvailable)&&B.isString(I.ENGINE_NAME)){F[I.ENGINE_NAME]=I;G.push(I);return true;}return false;}};YAHOO.register("StorageManager",H.SWFStore,{version:"2.8.2r1",build:"7"});}());(function(){YAHOO.util.StorageEvent=function(D,B,A,E,C){this.key=B;this.oldValue=A;this.newValue=E;this.url=window.location.href;this.window=window;this.storageArea=D;this.type=C;};YAHOO.lang.augmentObject(YAHOO.util.StorageEvent,{TYPE_ADD_ITEM:"addItem",TYPE_REMOVE_ITEM:"removeItem",TYPE_UPDATE_ITEM:"updateItem"});YAHOO.util.StorageEvent.prototype={key:null,newValue:null,oldValue:null,source:null,storageArea:null,type:null,url:null};}());(function(){var B=YAHOO.util,A=YAHOO.lang;B.StorageEngineKeyed=function(){B.StorageEngineKeyed.superclass.constructor.apply(this,arguments);this._keys=[];this._keyMap={};};A.extend(B.StorageEngineKeyed,B.Storage,{_keys:null,_keyMap:null,_addKey:function(C){this._keyMap[C]=this.length;this._keys.push(C);this.length=this._keys.length;},_indexOfKey:function(D){var C=this._keyMap[D];return undefined===C?-1:C;},_removeKey:function(E){var D=this._indexOfKey(E),F=this._keys.slice(D+1);delete this._keyMap[E];for(var C in this._keyMap){if(D<this._keyMap[C]){this._keyMap[C]-=1;}}this._keys.length=D;this._keys=this._keys.concat(F);this.length=this._keys.length;}});}());(function(){var D=YAHOO.util,B=YAHOO.lang,A=function(E){if(E.begin){E.begin();}},C=function(E){if(E.commit){E.commit();}};D.StorageEngineHTML5=function(E,F){var G=this;D.StorageEngineHTML5.superclass.constructor.call(G,E,D.StorageEngineHTML5.ENGINE_NAME,F);G._engine=window[E];G.length=G._engine.length;B.later(250,G,function(){G.fireEvent(G.CE_READY);});};YAHOO.lang.extend(D.StorageEngineHTML5,D.Storage,{_engine:null,_clear:function(){var G=this;if(G._engine.clear){G._engine.clear();}else{for(var F=G.length,E;0<=F;F-=1){E=G._key(F);G._removeItem(E);}}},_getItem:function(E){var F=this._engine.getItem(E);return B.isObject(F)?F.value:F;},_key:function(E){return this._engine.key(E);},_removeItem:function(E){var F=this;A(F._engine);F._engine.removeItem(E);C(F._engine);F.length=F._engine.length;},_setItem:function(E,F){var H=this;try{A(H._engine);H._engine.setItem(E,F);C(H._engine);H.length=H._engine.length;return true;}catch(G){return false;}}},true);D.StorageEngineHTML5.ENGINE_NAME="html5";D.StorageEngineHTML5.isAvailable=function(){return window.localStorage;};D.StorageManager.register(D.StorageEngineHTML5);}());(function(){var G=YAHOO.util,B=YAHOO.lang,D=9948,C="YUIStorageEngine",F=null,E=encodeURIComponent,A=decodeURIComponent;G.StorageEngineGears=function(I,L){var O=this;G.StorageEngineGears.superclass.constructor.call(O,I,G.StorageEngineGears.ENGINE_NAME,L);
+if(!F){F=google.gears.factory.create(G.StorageEngineGears.GEARS);F.open(window.location.host+"-"+G.StorageEngineGears.DATABASE);F.execute("CREATE TABLE IF NOT EXISTS "+C+" (key TEXT, location TEXT, value TEXT)");}var K=G.StorageManager.LOCATION_SESSION===O._location,H=G.Cookie.get("sessionKey"+G.StorageEngineGears.ENGINE_NAME);if(!H){F.execute("BEGIN");F.execute("DELETE FROM "+C+' WHERE location="'+E(G.StorageManager.LOCATION_SESSION)+'"');F.execute("COMMIT");}var J=F.execute("SELECT key FROM "+C+' WHERE location="'+E(O._location)+'"'),N={};try{while(J.isValidRow()){var M=A(J.field(0));if(!N[M]){N[M]=true;O._addKey(M);}J.next();}}finally{J.close();}if(K){G.Cookie.set("sessionKey"+G.StorageEngineGears.ENGINE_NAME,true);}O.length=O._keys.length;B.later(250,O,function(){O.fireEvent(O.CE_READY);});};B.extend(G.StorageEngineGears,G.StorageEngineKeyed,{_clear:function(){F.execute("BEGIN");F.execute("DELETE FROM "+C+' WHERE location="'+E(this._location)+'"');F.execute("COMMIT");this._keys=[];this.length=0;},_getItem:function(J){var I=F.execute("SELECT value FROM "+C+' WHERE key="'+E(J)+'" AND location="'+E(this._location)+'"'),K="";try{while(I.isValidRow()){var H=I.field(0);K+=I.field(0);I.next();}}finally{I.close();}return K?A(K):null;},_key:function(H){return this._keys[H];},_removeItem:function(H){F.execute("BEGIN");F.execute("DELETE FROM "+C+' WHERE key="'+E(H)+'" AND location="'+E(this._location)+'"');F.execute("COMMIT");this._removeKey(H);},_setItem:function(P,M){if(!this.hasKey(P)){this._addKey(P);}var H=E(P),Q=E(this._location),R=E(M),K=[],O=D-(H+Q).length;if(O<R.length){for(var N=0,L=R.length;N<L;N+=O){K.push(R.substr(N,O));}}else{K.push(R);}F.execute("BEGIN");F.execute("DELETE FROM "+C+' WHERE key="'+E(P)+'" AND location="'+E(this._location)+'"');for(var J=0,I=K.length;J<I;J+=1){F.execute("INSERT INTO "+C+' VALUES ("'+H+'", "'+Q+'", "'+K[J]+'")');}F.execute("COMMIT");return true;}});G.Event.on("unload",function(){if(F){F.close();}});G.StorageEngineGears.ENGINE_NAME="gears";G.StorageEngineGears.GEARS="beta.database";G.StorageEngineGears.DATABASE="yui.database";G.StorageEngineGears.isAvailable=function(){if(window.google&&window.google.gears){try{google.gears.factory.create(G.StorageEngineGears.GEARS);return true;}catch(H){}}return false;};G.StorageManager.register(G.StorageEngineGears);}());(function(){var G=YAHOO.util,B=YAHOO.lang,H=G.Dom,C=215,E=138,F=null,D=function(J,I){return J._location+J.DELIMITER+I;},A=function(J){if(!F){if(!B.isString(J.swfURL)){J.swfURL=G.StorageEngineSWF.SWFURL;}if(!J.containerID){var K=document.getElementsByTagName("body")[0],I=K.appendChild(document.createElement("div"));J.containerID=H.generateId(I);}if(!J.attributes){J.attributes={};}if(!J.attributes.flashVars){J.attributes.flashVars={};}J.attributes.flashVars.useCompression="true";J.attributes.version=9.115;F=new YAHOO.widget.SWF(J.containerID,J.swfURL,J.attributes);}};G.StorageEngineSWF=function(I,J){var K=this;G.StorageEngineSWF.superclass.constructor.call(K,I,G.StorageEngineSWF.ENGINE_NAME,J);A(K._cfg);F.unsubscribe("contentReady");F.addListener("contentReady",function(){K._swf=F._swf;F.initialized=true;var N=G.StorageManager.LOCATION_SESSION===K._location,M=G.Cookie.get("sessionKey"+G.StorageEngineSWF.ENGINE_NAME);for(var P=F.callSWF("getLength",[])-1;0<=P;P-=1){var O=F.callSWF("getNameAt",[P]),L=-1<O.indexOf(G.StorageManager.LOCATION_SESSION+K.DELIMITER);if(N&&!M){F.callSWF("removeItem",[O]);}else{if(N===L){K._addKey(O);}}}if(N){G.Cookie.set("sessionKey"+G.StorageEngineSWF.ENGINE_NAME,true);}K.length=K._keys.length;K.fireEvent(K.CE_READY);});if(F.initialized){F.fireEvent("contentReady");}};B.extend(G.StorageEngineSWF,G.StorageEngineKeyed,{_swf:null,_clear:function(){for(var J=this._keys.length-1;0<=J;J-=1){var I=this._keys[J];F.callSWF("removeItem",[I]);}this._keys=[];this.length=0;},_getItem:function(I){var J=D(this,I);return F.callSWF("getValueOf",[J]);},_key:function(I){return(this._keys[I]||"").replace(/^.*?__/,"");},_removeItem:function(I){var J=D(this,I);F.callSWF("removeItem",[J]);this._removeKey(J);},_setItem:function(I,K){var J=D(this,I),L;if(F.callSWF("getValueOf",[J])){this._removeItem(I);}this._addKey(J);if(F.callSWF("setItem",[J,K])){return true;}else{L=H.get(F._id);if(C>H.getStyle(L,"width").replace(/\D+/g,"")){H.setStyle(L,"width",C+"px");}if(E>H.getStyle(L,"height").replace(/\D+/g,"")){H.setStyle(L,"height",E+"px");}return F.callSWF("displaySettings",[]);}}});G.StorageEngineSWF.SWFURL="swfstore.swf";G.StorageEngineSWF.ENGINE_NAME="swf";G.StorageEngineSWF.isAvailable=function(){return(6<=YAHOO.env.ua.flash&&YAHOO.widget.SWF);};G.StorageManager.register(G.StorageEngineSWF);}());YAHOO.register("storage",YAHOO.util.Storage,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/storage/storage.js b/build/storage/storage.js
index c378d48..6ba5b79 100644
--- a/build/storage/storage.js
+++ b/build/storage/storage.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The Storage module manages client-side data storage.
@@ -480,7 +480,7 @@ var Y = YAHOO.util,
 		}
 	};
 
-	YAHOO.register("StorageManager", Y.SWFStore, {version: "2.8.1", build: "19"});
+	YAHOO.register("StorageManager", Y.SWFStore, {version: "2.8.2r1", build: "7"});
 }());
 (function() {
 
@@ -1180,4 +1180,4 @@ var Y = YAHOO.util,
     };
     Y.StorageManager.register(Y.StorageEngineSWF);
 }());
-YAHOO.register("storage", YAHOO.util.Storage, {version: "2.8.1", build: "19"});
+YAHOO.register("storage", YAHOO.util.Storage, {version: "2.8.2r1", build: "7"});
diff --git a/build/stylesheet/stylesheet-debug.js b/build/stylesheet/stylesheet-debug.js
index e6a0b12..ee2042b 100644
--- a/build/stylesheet/stylesheet-debug.js
+++ b/build/stylesheet/stylesheet-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The StyleSheet component is a utility for managing css rules at the
@@ -645,4 +645,4 @@ NOTES
  * IE6-8 addRule('.foo','',n) throws an error.  Must supply *some* cssText
 */
 
-YAHOO.register("stylesheet", YAHOO.util.StyleSheet, {version: "2.8.1", build: "19"});
+YAHOO.register("stylesheet", YAHOO.util.StyleSheet, {version: "2.8.2r1", build: "7"});
diff --git a/build/stylesheet/stylesheet-min.js b/build/stylesheet/stylesheet-min.js
index 0cf6083..5e538fb 100644
--- a/build/stylesheet/stylesheet-min.js
+++ b/build/stylesheet/stylesheet-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-(function(){var I=document,B=I.createElement("p"),D=B.style,C=YAHOO.lang,L={},H={},E=0,J=("cssFloat" in D)?"cssFloat":"styleFloat",F,A,K;A=("opacity" in D)?function(M){M.opacity="";}:function(M){M.filter="";};D.border="1px solid red";D.border="";K=D.borderLeft?function(M,O){var N;if(O!==J&&O.toLowerCase().indexOf("float")!=-1){O=J;}if(typeof M[O]==="string"){switch(O){case"opacity":case"filter":A(M);break;case"font":M.font=M.fontStyle=M.fontVariant=M.fontWeight=M.fontSize=M.lineHeight=M.fontFamily="";break;default:for(N in M){if(N.indexOf(O)===0){M[N]="";}}}}}:function(M,N){if(N!==J&&N.toLowerCase().indexOf("float")!=-1){N=J;}if(C.isString(M[N])){if(N==="opacity"){A(M);}else{M[N]="";}}};function G(T,O){var W,R,V,U={},N,X,Q,S,M,P;if(!(this instanceof G)){return new G(T,O);}R=T&&(T.nodeName?T:I.getElementById(T));if(T&&H[T]){return H[T];}else{if(R&&R.yuiSSID&&H[R.yuiSSID]){return H[R.yuiSSID];}}if(!R||!/^(?:style|link)$/i.test(R.nodeName)){R=I.createElement("style");R.type="text/css";}if(C.isString(T)){if(T.indexOf("{")!=-1){if(R.styleSheet){R.styleSheet.cssText=T;}else{R.appendChild(I.createTextNode(T));}}else{if(!O){O=T;}}}if(!R.parentNode||R.parentNode.nodeName.toLowerCase()!=="head"){W=(R.ownerDocument||I).getElementsByTagName("head")[0];W.appendChild(R);}V=R.sheet||R.styleSheet;N=V&&("cssRules" in V)?"cssRules":"rules";Q=("deleteRule" in V)?function(Y){V.deleteRule(Y);}:function(Y){V.removeRule(Y);};X=("insertRule" in V)?function(a,Z,Y){V.insertRule(a+" {"+Z+"}",Y);}:function(a,Z,Y){V.addRule(a,Z,Y);};for(S=V[N].length-1;S>=0;--S){M=V[N][S];P=M.selectorText;if(U[P]){U[P].style.cssText+=";"+M.style.cssText;Q(S);}else{U[P]=M;}}R.yuiSSID="yui-stylesheet-"+(E++);G.register(R.yuiSSID,this);if(O){G.register(O,this);}C.augmentObject(this,{getId:function(){return R.yuiSSID;},node:R,enable:function(){V.disabled=false;return this;},disable:function(){V.disabled=true;return this;},isEnabled:function(){return !V.disabled;},set:function(b,a){var d=U[b],c=b.split(/\s*,\s*/),Z,Y;if(c.length>1){for(Z=c.length-1;Z>=0;--Z){this.set(c[Z],a);}return this;}if(!G.isValidSelector(b)){return this;}if(d){d.style.cssText=G.toCssText(a,d.style.cssText);}else{Y=V[N].length;a=G.toCssText(a);if(a){X(b,a,Y);U[b]=V[N][Y];}}return this;},unset:function(b,a){var d=U[b],c=b.split(/\s*,\s*/),Y=!a,e,Z;if(c.length>1){for(Z=c.length-1;Z>=0;--Z){this.unset(c[Z],a);}return this;}if(d){if(!Y){if(!C.isArray(a)){a=[a];}D.cssText=d.style.cssText;for(Z=a.length-1;Z>=0;--Z){K(D,a[Z]);}if(D.cssText){d.style.cssText=D.cssText;}else{Y=true;}}if(Y){e=V[N];for(Z=e.length-1;Z>=0;--Z){if(e[Z]===d){delete U[b];Q(Z);break;}}}}return this;},getCssText:function(Z){var a,Y;if(C.isString(Z)){a=U[Z.split(/\s*,\s*/)[0]];return a?a.style.cssText:null;}else{Y=[];for(Z in U){if(U.hasOwnProperty(Z)){a=U[Z];Y.push(a.selectorText+" {"+a.style.cssText+"}");}}return Y.join("\n");}}},true);}F=function(M,O){var N=M.styleFloat||M.cssFloat||M["float"],Q;D.cssText=O||"";if(C.isString(M)){D.cssText+=";"+M;}else{if(N&&!M[J]){M=C.merge(M);delete M.styleFloat;delete M.cssFloat;delete M["float"];M[J]=N;}for(Q in M){if(M.hasOwnProperty(Q)){try{D[Q]=C.trim(M[Q]);}catch(P){}}}}return D.cssText;};C.augmentObject(G,{toCssText:(("opacity" in D)?F:function(M,N){if(C.isObject(M)&&"opacity" in M){M=C.merge(M,{filter:"alpha(opacity="+(M.opacity*100)+")"});delete M.opacity;}return F(M,N);}),register:function(M,N){return !!(M&&N instanceof G&&!H[M]&&(H[M]=N));},isValidSelector:function(N){var M=false;if(N&&C.isString(N)){if(!L.hasOwnProperty(N)){L[N]=!/\S/.test(N.replace(/\s+|\s*[+~>]\s*/g," ").replace(/([^ ])\[.*?\]/g,"$1").replace(/([^ ])::?[a-z][a-z\-]+[a-z](?:\(.*?\))?/ig,"$1").replace(/(?:^| )[a-z0-6]+/ig," ").replace(/\\./g,"").replace(/[.#]\w[\w\-]*/g,""));}M=L[N];}return M;}},true);YAHOO.util.StyleSheet=G;})();YAHOO.register("stylesheet",YAHOO.util.StyleSheet,{version:"2.8.1",build:"19"});
\ No newline at end of file
+(function(){var I=document,B=I.createElement("p"),D=B.style,C=YAHOO.lang,L={},H={},E=0,J=("cssFloat" in D)?"cssFloat":"styleFloat",F,A,K;A=("opacity" in D)?function(M){M.opacity="";}:function(M){M.filter="";};D.border="1px solid red";D.border="";K=D.borderLeft?function(M,O){var N;if(O!==J&&O.toLowerCase().indexOf("float")!=-1){O=J;}if(typeof M[O]==="string"){switch(O){case"opacity":case"filter":A(M);break;case"font":M.font=M.fontStyle=M.fontVariant=M.fontWeight=M.fontSize=M.lineHeight=M.fontFamily="";break;default:for(N in M){if(N.indexOf(O)===0){M[N]="";}}}}}:function(M,N){if(N!==J&&N.toLowerCase().indexOf("float")!=-1){N=J;}if(C.isString(M[N])){if(N==="opacity"){A(M);}else{M[N]="";}}};function G(T,O){var W,R,V,U={},N,X,Q,S,M,P;if(!(this instanceof G)){return new G(T,O);}R=T&&(T.nodeName?T:I.getElementById(T));if(T&&H[T]){return H[T];}else{if(R&&R.yuiSSID&&H[R.yuiSSID]){return H[R.yuiSSID];}}if(!R||!/^(?:style|link)$/i.test(R.nodeName)){R=I.createElement("style");R.type="text/css";}if(C.isString(T)){if(T.indexOf("{")!=-1){if(R.styleSheet){R.styleSheet.cssText=T;}else{R.appendChild(I.createTextNode(T));}}else{if(!O){O=T;}}}if(!R.parentNode||R.parentNode.nodeName.toLowerCase()!=="head"){W=(R.ownerDocument||I).getElementsByTagName("head")[0];W.appendChild(R);}V=R.sheet||R.styleSheet;N=V&&("cssRules" in V)?"cssRules":"rules";Q=("deleteRule" in V)?function(Y){V.deleteRule(Y);}:function(Y){V.removeRule(Y);};X=("insertRule" in V)?function(a,Z,Y){V.insertRule(a+" {"+Z+"}",Y);}:function(a,Z,Y){V.addRule(a,Z,Y);};for(S=V[N].length-1;S>=0;--S){M=V[N][S];P=M.selectorText;if(U[P]){U[P].style.cssText+=";"+M.style.cssText;Q(S);}else{U[P]=M;}}R.yuiSSID="yui-stylesheet-"+(E++);G.register(R.yuiSSID,this);if(O){G.register(O,this);}C.augmentObject(this,{getId:function(){return R.yuiSSID;},node:R,enable:function(){V.disabled=false;return this;},disable:function(){V.disabled=true;return this;},isEnabled:function(){return !V.disabled;},set:function(b,a){var d=U[b],c=b.split(/\s*,\s*/),Z,Y;if(c.length>1){for(Z=c.length-1;Z>=0;--Z){this.set(c[Z],a);}return this;}if(!G.isValidSelector(b)){return this;}if(d){d.style.cssText=G.toCssText(a,d.style.cssText);}else{Y=V[N].length;a=G.toCssText(a);if(a){X(b,a,Y);U[b]=V[N][Y];}}return this;},unset:function(b,a){var d=U[b],c=b.split(/\s*,\s*/),Y=!a,e,Z;if(c.length>1){for(Z=c.length-1;Z>=0;--Z){this.unset(c[Z],a);}return this;}if(d){if(!Y){if(!C.isArray(a)){a=[a];}D.cssText=d.style.cssText;for(Z=a.length-1;Z>=0;--Z){K(D,a[Z]);}if(D.cssText){d.style.cssText=D.cssText;}else{Y=true;}}if(Y){e=V[N];for(Z=e.length-1;Z>=0;--Z){if(e[Z]===d){delete U[b];Q(Z);break;}}}}return this;},getCssText:function(Z){var a,Y;if(C.isString(Z)){a=U[Z.split(/\s*,\s*/)[0]];return a?a.style.cssText:null;}else{Y=[];for(Z in U){if(U.hasOwnProperty(Z)){a=U[Z];Y.push(a.selectorText+" {"+a.style.cssText+"}");}}return Y.join("\n");}}},true);}F=function(M,O){var N=M.styleFloat||M.cssFloat||M["float"],Q;D.cssText=O||"";if(C.isString(M)){D.cssText+=";"+M;}else{if(N&&!M[J]){M=C.merge(M);delete M.styleFloat;delete M.cssFloat;delete M["float"];M[J]=N;}for(Q in M){if(M.hasOwnProperty(Q)){try{D[Q]=C.trim(M[Q]);}catch(P){}}}}return D.cssText;};C.augmentObject(G,{toCssText:(("opacity" in D)?F:function(M,N){if(C.isObject(M)&&"opacity" in M){M=C.merge(M,{filter:"alpha(opacity="+(M.opacity*100)+")"});delete M.opacity;}return F(M,N);}),register:function(M,N){return !!(M&&N instanceof G&&!H[M]&&(H[M]=N));},isValidSelector:function(N){var M=false;if(N&&C.isString(N)){if(!L.hasOwnProperty(N)){L[N]=!/\S/.test(N.replace(/\s+|\s*[+~>]\s*/g," ").replace(/([^ ])\[.*?\]/g,"$1").replace(/([^ ])::?[a-z][a-z\-]+[a-z](?:\(.*?\))?/ig,"$1").replace(/(?:^| )[a-z0-6]+/ig," ").replace(/\\./g,"").replace(/[.#]\w[\w\-]*/g,""));}M=L[N];}return M;}},true);YAHOO.util.StyleSheet=G;})();YAHOO.register("stylesheet",YAHOO.util.StyleSheet,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/stylesheet/stylesheet.js b/build/stylesheet/stylesheet.js
index 042ef2f..29a5c80 100644
--- a/build/stylesheet/stylesheet.js
+++ b/build/stylesheet/stylesheet.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The StyleSheet component is a utility for managing css rules at the
@@ -642,4 +642,4 @@ NOTES
  * IE6-8 addRule('.foo','',n) throws an error.  Must supply *some* cssText
 */
 
-YAHOO.register("stylesheet", YAHOO.util.StyleSheet, {version: "2.8.1", build: "19"});
+YAHOO.register("stylesheet", YAHOO.util.StyleSheet, {version: "2.8.2r1", build: "7"});
diff --git a/build/swf/swf-debug.js b/build/swf/swf-debug.js
index 63cb11d..ff27152 100644
--- a/build/swf/swf-debug.js
+++ b/build/swf/swf-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("widget");
 
@@ -266,4 +266,4 @@ YAHOO.extend(YAHOO.widget.SWF, YAHOO.util.Element, {
 
 	
 })();
-YAHOO.register("swf", YAHOO.widget.SWF, {version: "2.8.1", build: "19"});
+YAHOO.register("swf", YAHOO.widget.SWF, {version: "2.8.2r1", build: "7"});
diff --git a/build/swf/swf-min.js b/build/swf/swf-min.js
index 870de0b..e551e36 100644
--- a/build/swf/swf-min.js
+++ b/build/swf/swf-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.namespace("widget");(function(){var M=0;var L=YAHOO.env.ua;var P="ShockwaveFlash";if(L.gecko||L.webkit||L.opera){if((mF=navigator.mimeTypes["application/x-shockwave-flash"])){if((eP=mF.enabledPlugin)){var F=[];F=eP.description.replace(/\s[rd]/g,".").replace(/[A-Za-z\s]+/g,"").split(".");M=F[0]+".";switch((F[2].toString()).length){case 1:M+="00";break;case 2:M+="0";break;}M+=F[2];M=parseFloat(M);}}}else{if(L.ie){try{var Q=new ActiveXObject(P+"."+P+".6");Q.AllowScriptAccess="always";}catch(K){if(Q!=null){M=6;}}if(M==0){try{var B=new ActiveXObject(P+"."+P);var F=[];F=B.GetVariable("$version").replace(/[A-Za-z\s]+/g,"").split(",");M=F[0]+".";switch((F[2].toString()).length){case 1:M+="00";break;case 2:M+="0";break;}M+=F[2];M=parseFloat(M);}catch(K){}}}}L.flash=M;YAHOO.util.SWFDetect={getFlashVersion:function(){return M;},isFlashVersionAtLeast:function(R){return M>=R;}};var H=YAHOO.util.Dom,O=YAHOO.util.Event,I=YAHOO.util.SWFDetect,J=YAHOO.lang,G="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",E="application/x-shockwave-flash",D="10.22",A="http://fpdownload.macromedia.com/pub/flashplayer/update/current/swf/autoUpdater.swf?"+Math.random(),C="YAHOO.widget.SWF.eventHandler",N={align:"",allowNetworking:"",allowScriptAccess:"",base:"",bgcolor:"",menu:"",name:"",quality:"",salign:"",scale:"",tabindex:"",wmode:""};YAHOO.widget.SWF=function(R,i,c){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._id=H.generateId(null,"yuiswf");if(c.host){this._host=c.host;}var e=this._id;var U=H.get(R);var S=(c["version"]||D);var b=I.isFlashVersionAtLeast(S);var a=(L.flash>=8);var V=a&&!b&&c["useExpressInstall"];var Z=(V)?A:i;var Y="<object ";var f,X;var g="YUISwfId="+e+"&YUIBridgeCallback="+C;YAHOO.widget.SWF._instances[e]=this;if(U&&(b||V)&&Z){Y+='id="'+e+'" ';if(L.ie){Y+='classid="'+G+'" ';}else{Y+='type="'+E+'" data="'+Z+'" ';}f="100%";X="100%";Y+='width="'+f+'" height="'+X+'">';if(L.ie){Y+='<param name="movie" value="'+Z+'"/>';}for(var T in c.fixedAttributes){if(N.hasOwnProperty(T)){Y+='<param name="'+T+'" value="'+c.fixedAttributes[T]+'"/>';}}for(var d in c.flashVars){var W=c.flashVars[d];if(J.isString(W)){g+="&"+d+"="+encodeURIComponent(W);}}if(g){Y+='<param name="flashVars" value="'+g+'"/>';}Y+="</object>";U.innerHTML=Y;}YAHOO.widget.SWF.superclass.constructor.call(this,H.get(e));this._swf=H.get(e);};YAHOO.widget.SWF._instances=YAHOO.widget.SWF._instances||{};YAHOO.widget.SWF.eventHandler=function(R,S){YAHOO.widget.SWF._instances[R]._eventHandler(S);};YAHOO.extend(YAHOO.widget.SWF,YAHOO.util.Element,{_eventHandler:function(R){if(R.type=="swfReady"){this.createEvent("swfReady",{fireOnce:true});this.fireEvent("swfReady",R);}else{if(R.type=="log"){}else{if(this._host&&this._host.fireEvent){this._host.fireEvent(R.type,R);}else{this.fireEvent(R.type,R);}}}},callSWF:function(S,R){if(!R){R=[];}if(this._swf[S]){return(this._swf[S].apply(this._swf,R));}else{return null;}},toString:function(){return"SWF "+this._id;}});})();YAHOO.register("swf",YAHOO.widget.SWF,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.namespace("widget");(function(){var M=0;var L=YAHOO.env.ua;var P="ShockwaveFlash";if(L.gecko||L.webkit||L.opera){if((mF=navigator.mimeTypes["application/x-shockwave-flash"])){if((eP=mF.enabledPlugin)){var F=[];F=eP.description.replace(/\s[rd]/g,".").replace(/[A-Za-z\s]+/g,"").split(".");M=F[0]+".";switch((F[2].toString()).length){case 1:M+="00";break;case 2:M+="0";break;}M+=F[2];M=parseFloat(M);}}}else{if(L.ie){try{var Q=new ActiveXObject(P+"."+P+".6");Q.AllowScriptAccess="always";}catch(K){if(Q!=null){M=6;}}if(M==0){try{var B=new ActiveXObject(P+"."+P);var F=[];F=B.GetVariable("$version").replace(/[A-Za-z\s]+/g,"").split(",");M=F[0]+".";switch((F[2].toString()).length){case 1:M+="00";break;case 2:M+="0";break;}M+=F[2];M=parseFloat(M);}catch(K){}}}}L.flash=M;YAHOO.util.SWFDetect={getFlashVersion:function(){return M;},isFlashVersionAtLeast:function(R){return M>=R;}};var H=YAHOO.util.Dom,O=YAHOO.util.Event,I=YAHOO.util.SWFDetect,J=YAHOO.lang,G="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000",E="application/x-shockwave-flash",D="10.22",A="http://fpdownload.macromedia.com/pub/flashplayer/update/current/swf/autoUpdater.swf?"+Math.random(),C="YAHOO.widget.SWF.eventHandler",N={align:"",allowNetworking:"",allowScriptAccess:"",base:"",bgcolor:"",menu:"",name:"",quality:"",salign:"",scale:"",tabindex:"",wmode:""};YAHOO.widget.SWF=function(R,i,c){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._id=H.generateId(null,"yuiswf");if(c.host){this._host=c.host;}var e=this._id;var U=H.get(R);var S=(c["version"]||D);var b=I.isFlashVersionAtLeast(S);var a=(L.flash>=8);var V=a&&!b&&c["useExpressInstall"];var Z=(V)?A:i;var Y="<object ";var f,X;var g="YUISwfId="+e+"&YUIBridgeCallback="+C;YAHOO.widget.SWF._instances[e]=this;if(U&&(b||V)&&Z){Y+='id="'+e+'" ';if(L.ie){Y+='classid="'+G+'" ';}else{Y+='type="'+E+'" data="'+Z+'" ';}f="100%";X="100%";Y+='width="'+f+'" height="'+X+'">';if(L.ie){Y+='<param name="movie" value="'+Z+'"/>';}for(var T in c.fixedAttributes){if(N.hasOwnProperty(T)){Y+='<param name="'+T+'" value="'+c.fixedAttributes[T]+'"/>';}}for(var d in c.flashVars){var W=c.flashVars[d];if(J.isString(W)){g+="&"+d+"="+encodeURIComponent(W);}}if(g){Y+='<param name="flashVars" value="'+g+'"/>';}Y+="</object>";U.innerHTML=Y;}YAHOO.widget.SWF.superclass.constructor.call(this,H.get(e));this._swf=H.get(e);};YAHOO.widget.SWF._instances=YAHOO.widget.SWF._instances||{};YAHOO.widget.SWF.eventHandler=function(R,S){YAHOO.widget.SWF._instances[R]._eventHandler(S);};YAHOO.extend(YAHOO.widget.SWF,YAHOO.util.Element,{_eventHandler:function(R){if(R.type=="swfReady"){this.createEvent("swfReady",{fireOnce:true});this.fireEvent("swfReady",R);}else{if(R.type=="log"){}else{if(this._host&&this._host.fireEvent){this._host.fireEvent(R.type,R);}else{this.fireEvent(R.type,R);}}}},callSWF:function(S,R){if(!R){R=[];}if(this._swf[S]){return(this._swf[S].apply(this._swf,R));}else{return null;}},toString:function(){return"SWF "+this._id;}});})();YAHOO.register("swf",YAHOO.widget.SWF,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/swf/swf.js b/build/swf/swf.js
index bcb70e7..c504253 100644
--- a/build/swf/swf.js
+++ b/build/swf/swf.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("widget");
 
@@ -265,4 +265,4 @@ YAHOO.extend(YAHOO.widget.SWF, YAHOO.util.Element, {
 
 	
 })();
-YAHOO.register("swf", YAHOO.widget.SWF, {version: "2.8.1", build: "19"});
+YAHOO.register("swf", YAHOO.widget.SWF, {version: "2.8.2r1", build: "7"});
diff --git a/build/swfdetect/swfdetect-debug.js b/build/swfdetect/swfdetect-debug.js
index d55a09c..401006f 100644
--- a/build/swfdetect/swfdetect-debug.js
+++ b/build/swfdetect/swfdetect-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Utility for Flash version detection
@@ -90,4 +90,4 @@ YAHOO.util.SWFDetect = {
 		}	
 	};
 })();
-YAHOO.register("swfdetect", YAHOO.util.SWFDetect, {version: "2.8.1", build: "19"});
+YAHOO.register("swfdetect", YAHOO.util.SWFDetect, {version: "2.8.2r1", build: "7"});
diff --git a/build/swfdetect/swfdetect-min.js b/build/swfdetect/swfdetect-min.js
index b76b7e5..3f75024 100644
--- a/build/swfdetect/swfdetect-min.js
+++ b/build/swfdetect/swfdetect-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.namespace("util");(function(){var A=0;var B=YAHOO.env.ua;var C="ShockwaveFlash";if(B.gecko||B.webkit||B.opera){if((mF=navigator.mimeTypes["application/x-shockwave-flash"])){if((eP=mF.enabledPlugin)){var G=[];G=eP.description.replace(/\s[rd]/g,".").replace(/[A-Za-z\s]+/g,"").split(".");A=G[0]+".";switch((G[2].toString()).length){case 1:A+="00";break;case 2:A+="0";break;}A+=G[2];A=parseFloat(A);}}}else{if(B.ie){try{var D=new ActiveXObject(C+"."+C+".6");D.AllowScriptAccess="always";}catch(F){if(D!=null){A=6;}}if(A==0){try{var E=new ActiveXObject(C+"."+C);var G=[];G=E.GetVariable("$version").replace(/[A-Za-z\s]+/g,"").split(",");A=G[0]+".";switch((G[2].toString()).length){case 1:A+="00";break;case 2:A+="0";break;}A+=G[2];A=parseFloat(A);}catch(F){}}}}B.flash=A;YAHOO.util.SWFDetect={getFlashVersion:function(){return A;},isFlashVersionAtLeast:function(H){return A>=H;}};})();YAHOO.register("swfdetect",YAHOO.util.SWFDetect,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.namespace("util");(function(){var A=0;var B=YAHOO.env.ua;var C="ShockwaveFlash";if(B.gecko||B.webkit||B.opera){if((mF=navigator.mimeTypes["application/x-shockwave-flash"])){if((eP=mF.enabledPlugin)){var G=[];G=eP.description.replace(/\s[rd]/g,".").replace(/[A-Za-z\s]+/g,"").split(".");A=G[0]+".";switch((G[2].toString()).length){case 1:A+="00";break;case 2:A+="0";break;}A+=G[2];A=parseFloat(A);}}}else{if(B.ie){try{var D=new ActiveXObject(C+"."+C+".6");D.AllowScriptAccess="always";}catch(F){if(D!=null){A=6;}}if(A==0){try{var E=new ActiveXObject(C+"."+C);var G=[];G=E.GetVariable("$version").replace(/[A-Za-z\s]+/g,"").split(",");A=G[0]+".";switch((G[2].toString()).length){case 1:A+="00";break;case 2:A+="0";break;}A+=G[2];A=parseFloat(A);}catch(F){}}}}B.flash=A;YAHOO.util.SWFDetect={getFlashVersion:function(){return A;},isFlashVersionAtLeast:function(H){return A>=H;}};})();YAHOO.register("swfdetect",YAHOO.util.SWFDetect,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/swfdetect/swfdetect.js b/build/swfdetect/swfdetect.js
index d55a09c..401006f 100644
--- a/build/swfdetect/swfdetect.js
+++ b/build/swfdetect/swfdetect.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Utility for Flash version detection
@@ -90,4 +90,4 @@ YAHOO.util.SWFDetect = {
 		}	
 	};
 })();
-YAHOO.register("swfdetect", YAHOO.util.SWFDetect, {version: "2.8.1", build: "19"});
+YAHOO.register("swfdetect", YAHOO.util.SWFDetect, {version: "2.8.2r1", build: "7"});
diff --git a/build/swfstore/swf.js b/build/swfstore/swf.js
index 7a9eafd..32398d2 100644
--- a/build/swfstore/swf.js
+++ b/build/swfstore/swf.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("widget");
 
@@ -235,4 +235,4 @@ YAHOO.extend(YAHOO.widget.SWF, YAHOO.util.Element, {
 
 	
 })();
-YAHOO.register("swf", YAHOO.widget.SWF, {version: "2.8.1", build: "19"});
+YAHOO.register("swf", YAHOO.widget.SWF, {version: "2.8.2r1", build: "7"});
diff --git a/build/swfstore/swfstore-debug.js b/build/swfstore/swfstore-debug.js
index 78239c8..ea83c15 100644
--- a/build/swfstore/swfstore-debug.js
+++ b/build/swfstore/swfstore-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides a swf based storage implementation
@@ -466,5 +466,5 @@ YAHOO.extend(YAHOO.util.SWFStore, YAHOO.util.AttributeProvider,
 
 YAHOO.util.SWFStore.SWFURL = "swfstore.swf";
 
-YAHOO.register("swfstore", YAHOO.util.SWFStore, {version: "2.8.1", build: "19"});
-YAHOO.register("swfstore", YAHOO.util.SWFStore, {version: "2.8.1", build: "19"});
+YAHOO.register("swfstore", YAHOO.util.SWFStore, {version: "2.8.2r1", build: "7"});
+YAHOO.register("swfstore", YAHOO.util.SWFStore, {version: "2.8.2r1", build: "7"});
diff --git a/build/swfstore/swfstore-min.js b/build/swfstore/swfstore-min.js
index 749730f..e964217 100644
--- a/build/swfstore/swfstore-min.js
+++ b/build/swfstore/swfstore-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-YAHOO.util.SWFStore=function(A,C,D){var B;var E;C=C.toString();D=D.toString();if(YAHOO.env.ua.ie){B="ie";}else{if(YAHOO.env.ua.gecko){B="gecko";}else{if(YAHOO.env.ua.webkit){B="webkit";}else{if(YAHOO.env.ua.caja){B="caja";}else{if(YAHOO.env.ua.opera){B="opera";}else{B="other";}}}}}if(YAHOO.util.Cookie.get("swfstore")==null||YAHOO.util.Cookie.get("swfstore")=="null"||YAHOO.util.Cookie.get("swfstore")==""){E=Math.round(Math.random()*Math.PI*100000);YAHOO.util.Cookie.set("swfstore",E);}else{E=YAHOO.util.Cookie.get("swfstore");}var F={version:9.115,useExpressInstall:false,fixedAttributes:{allowScriptAccess:"always",allowNetworking:"all",scale:"noScale"},flashVars:{shareData:C,browser:E,useCompression:D}};this.embeddedSWF=new YAHOO.widget.SWF(A,YAHOO.util.SWFStore.SWFURL,F);this.createEvent("error");this.createEvent("quotaExceededError");this.createEvent("securityError");this.createEvent("save");this.createEvent("clear");this.createEvent("pending");this.createEvent("openingDialog");this.createEvent("inadequateDimensions");};YAHOO.extend(YAHOO.util.SWFStore,YAHOO.util.AttributeProvider,{on:function(A,B){this.embeddedSWF.addListener(A,B);},addListener:function(A,B){this.embeddedSWF.addListener(A,B);},toString:function(){return"SWFStore "+this._id;},getShareData:function(){return this.embeddedSWF.callSWF("getShareData");},setShareData:function(A){this.embeddedSWF.callSWF("setShareData",[A]);},hasAdequateDimensions:function(){return this.embeddedSWF.callSWF("hasAdequateDimensions");},getUseCompression:function(){return this.embeddedSWF.callSWF("getUseCompression");},setUseCompression:function(A){this.embeddedSWF.callSWF("setUseCompression",[A]);},setItem:function(A,B){return this.embeddedSWF.callSWF("setItem",[A,B]);},getValueAt:function(A){return this.embeddedSWF.callSWF("getValueAt",[A]);},getNameAt:function(A){return this.embeddedSWF.callSWF("getNameAt",[A]);},getValueOf:function(A){return this.embeddedSWF.callSWF("getValueOf",[A]);},getTypeOf:function(A){return this.embeddedSWF.callSWF("getTypeOf",[A]);},getTypeAt:function(A){return this.embeddedSWF.callSWF("getTypeAt",[A]);},getItems:function(){return this.embeddedSWF.callSWF("getItems",[]);},removeItem:function(A){return this.embeddedSWF.callSWF("removeItem",[A]);},removeItemAt:function(A){return this.embeddedSWF.callSWF("removeItemAt",[A]);},getLength:function(){return this.embeddedSWF.callSWF("getLength",[]);},clear:function(){return this.embeddedSWF.callSWF("clear",[]);},calculateCurrentSize:function(){return this.embeddedSWF.callSWF("calculateCurrentSize",[]);},getModificationDate:function(){return this.embeddedSWF.callSWF("getModificationDate",[]);},setSize:function(B){var A=this.embeddedSWF.callSWF("setSize",[B]);return A;},displaySettings:function(){this.embeddedSWF.callSWF("displaySettings",[]);}});YAHOO.util.SWFStore.SWFURL="swfstore.swf";YAHOO.register("swfstore",YAHOO.util.SWFStore,{version:"2.8.1",build:"19"});YAHOO.register("swfstore",YAHOO.util.SWFStore,{version:"2.8.1",build:"19"});
\ No newline at end of file
+YAHOO.util.SWFStore=function(A,C,D){var B;var E;C=C.toString();D=D.toString();if(YAHOO.env.ua.ie){B="ie";}else{if(YAHOO.env.ua.gecko){B="gecko";}else{if(YAHOO.env.ua.webkit){B="webkit";}else{if(YAHOO.env.ua.caja){B="caja";}else{if(YAHOO.env.ua.opera){B="opera";}else{B="other";}}}}}if(YAHOO.util.Cookie.get("swfstore")==null||YAHOO.util.Cookie.get("swfstore")=="null"||YAHOO.util.Cookie.get("swfstore")==""){E=Math.round(Math.random()*Math.PI*100000);YAHOO.util.Cookie.set("swfstore",E);}else{E=YAHOO.util.Cookie.get("swfstore");}var F={version:9.115,useExpressInstall:false,fixedAttributes:{allowScriptAccess:"always",allowNetworking:"all",scale:"noScale"},flashVars:{shareData:C,browser:E,useCompression:D}};this.embeddedSWF=new YAHOO.widget.SWF(A,YAHOO.util.SWFStore.SWFURL,F);this.createEvent("error");this.createEvent("quotaExceededError");this.createEvent("securityError");this.createEvent("save");this.createEvent("clear");this.createEvent("pending");this.createEvent("openingDialog");this.createEvent("inadequateDimensions");};YAHOO.extend(YAHOO.util.SWFStore,YAHOO.util.AttributeProvider,{on:function(A,B){this.embeddedSWF.addListener(A,B);},addListener:function(A,B){this.embeddedSWF.addListener(A,B);},toString:function(){return"SWFStore "+this._id;},getShareData:function(){return this.embeddedSWF.callSWF("getShareData");},setShareData:function(A){this.embeddedSWF.callSWF("setShareData",[A]);},hasAdequateDimensions:function(){return this.embeddedSWF.callSWF("hasAdequateDimensions");},getUseCompression:function(){return this.embeddedSWF.callSWF("getUseCompression");},setUseCompression:function(A){this.embeddedSWF.callSWF("setUseCompression",[A]);},setItem:function(A,B){return this.embeddedSWF.callSWF("setItem",[A,B]);},getValueAt:function(A){return this.embeddedSWF.callSWF("getValueAt",[A]);},getNameAt:function(A){return this.embeddedSWF.callSWF("getNameAt",[A]);},getValueOf:function(A){return this.embeddedSWF.callSWF("getValueOf",[A]);},getTypeOf:function(A){return this.embeddedSWF.callSWF("getTypeOf",[A]);},getTypeAt:function(A){return this.embeddedSWF.callSWF("getTypeAt",[A]);},getItems:function(){return this.embeddedSWF.callSWF("getItems",[]);},removeItem:function(A){return this.embeddedSWF.callSWF("removeItem",[A]);},removeItemAt:function(A){return this.embeddedSWF.callSWF("removeItemAt",[A]);},getLength:function(){return this.embeddedSWF.callSWF("getLength",[]);},clear:function(){return this.embeddedSWF.callSWF("clear",[]);},calculateCurrentSize:function(){return this.embeddedSWF.callSWF("calculateCurrentSize",[]);},getModificationDate:function(){return this.embeddedSWF.callSWF("getModificationDate",[]);},setSize:function(B){var A=this.embeddedSWF.callSWF("setSize",[B]);return A;},displaySettings:function(){this.embeddedSWF.callSWF("displaySettings",[]);}});YAHOO.util.SWFStore.SWFURL="swfstore.swf";YAHOO.register("swfstore",YAHOO.util.SWFStore,{version:"2.8.2r1",build:"7"});YAHOO.register("swfstore",YAHOO.util.SWFStore,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/swfstore/swfstore.js b/build/swfstore/swfstore.js
index f746524..af20f47 100644
--- a/build/swfstore/swfstore.js
+++ b/build/swfstore/swfstore.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * Provides a swf based storage implementation
@@ -449,5 +449,5 @@ YAHOO.extend(YAHOO.util.SWFStore, YAHOO.util.AttributeProvider,
 
 YAHOO.util.SWFStore.SWFURL = "swfstore.swf";
 
-YAHOO.register("swfstore", YAHOO.util.SWFStore, {version: "2.8.1", build: "19"});
-YAHOO.register("swfstore", YAHOO.util.SWFStore, {version: "2.8.1", build: "19"});
+YAHOO.register("swfstore", YAHOO.util.SWFStore, {version: "2.8.2r1", build: "7"});
+YAHOO.register("swfstore", YAHOO.util.SWFStore, {version: "2.8.2r1", build: "7"});
diff --git a/build/tabview/assets/border_tabs.css b/build/tabview/assets/border_tabs.css
index bb4f816..e81e795 100644
--- a/build/tabview/assets/border_tabs.css
+++ b/build/tabview/assets/border_tabs.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-navset .yui-nav li a, .yui-navset .yui-content {
     border:1px solid #000;  /* label and content borders */
diff --git a/build/tabview/assets/skin-sam.css b/build/tabview/assets/skin-sam.css
index b4fb090..68804d1 100644
--- a/build/tabview/assets/skin-sam.css
+++ b/build/tabview/assets/skin-sam.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-navset .yui-nav li {
     margin-right:0.16em; /* space between tabs */
diff --git a/build/tabview/assets/skins/sam/tabview-skin.css b/build/tabview/assets/skins/sam/tabview-skin.css
index 8d933f2..a176ed0 100644
--- a/build/tabview/assets/skins/sam/tabview-skin.css
+++ b/build/tabview/assets/skins/sam/tabview-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* .yui-navset defaults to .yui-navset-top */
 .yui-skin-sam .yui-navset .yui-nav,
diff --git a/build/tabview/assets/skins/sam/tabview.css b/build/tabview/assets/skins/sam/tabview.css
index 686748d..7f53b9b 100644
--- a/build/tabview/assets/skins/sam/tabview.css
+++ b/build/tabview/assets/skins/sam/tabview.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-navset .yui-nav li,.yui-navset .yui-navset-top .yui-nav li,.yui-navset .yui-navset-bottom .yui-nav li{margin:0 .5em 0 0;}.yui-navset-left .yui-nav li,.yui-navset-right .yui-nav li{margin:0 0 .5em;}.yui-navset .yui-content .yui-hidden{border:0;height:0;width:0;padding:0;position:absolute;left:-999999px;overflow:hidden;visibility:hidden;}.yui-navset .yui-navset-left .yui-nav,.yui-navset .yui-navset-right .yui-nav,.yui-navset-left .yui-nav,.yui-navset-right .yui-nav{width:6em;}.yui-navset-top .yui-nav,.yui-navset-bottom .yui-nav{width:auto;}.yui-navset .yui-navset-left,.yui-navset-left{padding:0 0 0 6em;}.yui-navset-right{padding:0 6em 0 0;}.yui-navset-top,.yui-navset-bottom{padding:auto;}.yui-nav,.yui-nav li{margin:0;padding:0;list-style:none;}.yui-navset li em{font-style:normal;}.yui-navset{position:relative;zoom:1;}.yui-navset .yui-content,.yui-navset .yui-content div{zoom:1;}.yui-navset .yui-content:after{content:'';display:block;clear:both;}.yui-navset .yui-nav li,.yui-navset .yui-navset-top .yui-nav li,.yui-navset .yui-navset-bottom .yui-nav li{display:inline-block;display:-moz-inline-stack;*display:inline;vertical-align:bottom;cursor:pointer;zoom:1;}.yui-navset-left .yui-nav li,.yui-navset-right .yui-nav li{display:block;}.yui-navset .yui-nav a{position:relative;}.yui-navset .yui-nav li a,.yui-navset-top .yui-nav li a,.yui-navset-bottom .yui-nav li a{display:block;display:inline-block;vertical-align:bottom;zoom:1;}.yui-navset-left .yui-nav li a,.yui-navset-right .yui-nav li a{display:block;}.yui-navset-bottom .yui-nav li a{vertical-align:text-top;}.yui-navset .yui-nav li a em,.yui-navset-top .yui-nav li a em,.yui-navset-bottom .yui-nav li a em{display:block;}.yui-navset .yui-navset-left .yui-nav,.yui-navset .yui-navset-right .yui-nav,.yui-navset-left .yui-nav,.yui-navset-right .yui-nav{position:absolute;z-index:1;}.yui-navset-top .yui-nav,.yui-navset-bottom .yui-nav{position:static;}.yui-navset .yui-navset-left .yui-nav,.yui-navset-left .yui-nav{left:0;right:auto;}.yui-navset .yui-navset-right .yui-nav,.yui-navset-right .yui-nav{right:0;left:auto;}.yui-skin-sam .yui-navset .yui-nav,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav{border:solid #2647a0;border-width:0 0 5px;zoom:1;}.yui-skin-sam .yui-navset .yui-nav li,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav li{margin:0 .16em 0 0;padding:1px 0 0;zoom:1;}.yui-skin-sam .yui-navset .yui-nav .selected,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav .selected{margin:0 .16em -1px 0;}.yui-skin-sam .yui-navset .yui-nav a,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav a{background:#d8d8d8 url(../../../../assets/skins/sam/sprite.png) repeat-x;border:solid #a3a3a3;border-width:0 1px;color:#000;position:relative;text-decoration:none;}.yui-skin-sam .yui-navset .yui-nav a em,.yui-skin-sam .yui-navset .yui-navset-top .yui-nav a em{border:solid #a3a3a3;border-width:1px 0 0;cursor:hand;padding:.25em .75em;left:0;right:0;bottom:0;top:-1px;position:relative;}.yui-skin-sam .yui-navset .yui-nav .selected a,.yui-skin-sam .yui-navset .yui-nav .selected a:focus,.yui-skin-sam .yui-navset .yui-nav .selected a:hover{background:#2647a0 url(../../../../assets/skins/sam/sprite.png) repeat-x left -1400px;color:#fff;}.yui-skin-sam .yui-navset .yui-nav a:hover,.yui-skin-sam .yui-navset .yui-nav a:focus{background:#bfdaff url(../../../../assets/skins/sam/sprite.png) repeat-x left -1300px;outline:0;}.yui-skin-sam .yui-navset .yui-nav .selected a em{padding:.35em .75em;}.yui-skin-sam .yui-navset .yui-nav .selected a,.yui-skin-sam .yui-navset .yui-nav .selected a em{border-color:#243356;}.yui-skin-sam .yui-navset .yui-content{background:#edf5ff;}.yui-skin-sam .yui-navset .yui-content,.yui-skin-sam .yui-navset .yui-navset-top .yui-content{border:1px solid #808080;border-top-color:#243356;padding:.25em .5em;}.yui-skin-sam .yui-navset-left .yui-nav,.yui-skin-sam .yui-navset .yui-navset-left .yui-nav,.yui-skin-sam .yui-navset .yui-navset-right .yui-nav,.yui-skin-sam .yui-navset-right .yui-nav{border-width:0 5px 0 0;Xposition:absolute;top:0;bottom:0;}.yui-skin-sam .yui-navset .yui-navset-right .yui-nav,.yui-skin-sam .yui-navset-right .yui-nav{border-width:0 0 0 5px;}.yui-skin-sam .yui-navset-left .yui-nav li,.yui-skin-sam .yui-navset .yui-navset-left .yui-nav li,.yui-skin-sam .yui-navset-right .yui-nav li{margin:0 0 .16em;padding:0 0 0 1px;}.yui-skin-sam .yui-navset-right .yui-nav li{padding:0 1px 0 0;}.yui-skin-sam .yui-navset-left .yui-nav .selected,.yui-skin-sam .yui-navset .yui-navset-left .yui-nav .selected{margin:0 -1px .16em 0;}.yui-skin-sam .yui-navset-right .yui-nav .selected{margin:0 0 .16em -1px;}.yui-skin-sam .yui-navset-left .yui-nav a,.yui-skin-sam .yui-navset-right .yui-nav a{border-width:1px 0;}.yui-skin-sam .yui-navset-left .yui-nav a em,.yui-skin-sam .yui-navset .yui-navset-left .yui-nav a em,.yui-skin-sam .yui-navset-right .yui-nav a em{border-width:0 0 0 1px;padding:.2em .75em;top:auto;left:-1px;}.yui-skin-sam .yui-navset-right .yui-nav a em{border-width:0 1px 0 0;left:auto;right:-1px;}.yui-skin-sam .yui-navset-left .yui-nav a,.yui-skin-sam .yui-navset-left .yui-nav .selected a,.yui-skin-sam .yui-navset-left .yui-nav a:hover,.yui-skin-sam .yui-navset-right .yui-nav a,.yui-skin-sam .yui-navset-right .yui-nav .selected a,.yui-skin-sam .yui-navset-right .yui-nav a:hover,.yui-skin-sam .yui-navset-bottom .yui-nav a,.yui-skin-sam .yui-navset-bottom .yui-nav .selected a,.yui-skin-sam .yui-navset-bottom .yui-nav a:hover{background-image:none;}.yui-skin-sam .yui-navset-left .yui-content{border:1px solid #808080;border-left-color:#243356;}.yui-skin-sam .yui-navset-bottom .yui-nav,.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav{border-width:5px 0 0;}.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav .selected,.yui-skin-sam .yui-navset-bottom .yui-nav .selected{margin:-1px .16em 0 0;}.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav li,.yui-skin-sam .yui-navset-bottom .yui-nav li{padding:0 0 1px 0;vertical-align:top;}.yui-skin-sam .yui-navset .yui-navset-bottom .yui-nav a em,.yui-skin-sam .yui-navset-bottom .yui-nav a em{border-width:0 0 1px;top:auto;bottom:-1px;}
 .yui-skin-sam .yui-navset-bottom .yui-content,.yui-skin-sam .yui-navset .yui-navset-bottom .yui-content{border:1px solid #808080;border-bottom-color:#243356;}
diff --git a/build/tabview/assets/tabview-core.css b/build/tabview/assets/tabview-core.css
index c9e0208..5f3564c 100644
--- a/build/tabview/assets/tabview-core.css
+++ b/build/tabview/assets/tabview-core.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* default space between tabs */
 .yui-navset .yui-nav li,
diff --git a/build/tabview/assets/tabview.css b/build/tabview/assets/tabview.css
index ef4c575..a15b4a9 100644
--- a/build/tabview/assets/tabview.css
+++ b/build/tabview/assets/tabview.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /* default space between tabs */
 .yui-navset .yui-nav li {
diff --git a/build/tabview/tabview-debug.js b/build/tabview/tabview-debug.js
index 449f195..4590ff2 100644
--- a/build/tabview/tabview-debug.js
+++ b/build/tabview/tabview-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 
@@ -992,4 +992,4 @@ version: 2.8.1
     YAHOO.widget.Tab = Tab;
 })();
 
-YAHOO.register("tabview", YAHOO.widget.TabView, {version: "2.8.1", build: "19"});
+YAHOO.register("tabview", YAHOO.widget.TabView, {version: "2.8.2r1", build: "7"});
diff --git a/build/tabview/tabview-min.js b/build/tabview/tabview-min.js
index 167c32d..84f2623 100644
--- a/build/tabview/tabview-min.js
+++ b/build/tabview/tabview-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var B=YAHOO.util,C=B.Dom,H=B.Event,F=window.document,J="active",D="activeIndex",E="activeTab",A="contentEl",G="element",I=function(L,K){K=K||{};if(arguments.length==1&&!YAHOO.lang.isString(L)&&!L.nodeName){K=L;L=K.element||null;}if(!L&&!K.element){L=this._createTabViewElement(K);}I.superclass.constructor.call(this,L,K);};YAHOO.extend(I,B.Element,{CLASSNAME:"yui-navset",TAB_PARENT_CLASSNAME:"yui-nav",CONTENT_PARENT_CLASSNAME:"yui-content",_tabParent:null,_contentParent:null,addTab:function(P,L){var N=this.get("tabs"),Q=this.getTab(L),R=this._tabParent,K=this._contentParent,M=P.get(G),O=P.get(A);if(!N){this._queue[this._queue.length]=["addTab",arguments];return false;}L=(L===undefined)?N.length:L;N.splice(L,0,P);if(Q){R.insertBefore(M,Q.get(G));}else{R.appendChild(M);}if(O&&!C.isAncestor(K,O)){K.appendChild(O);}if(!P.get(J)){P.set("contentVisible",false,true);}else{this.set(E,P,true);this.set("activeIndex",L,true);}this._initTabEvents(P);},_initTabEvents:function(K){K.addListener(K.get("activationEvent"),K._onActivate,this,K);K.addListener(K.get("activationEventChange"),K._onActivationEventChange,this,K);},_removeTabEvents:function(K){K.removeListener(K.get("activationEvent"),K._onActivate,this,K);K.removeListener("activationEventChange",K._onActivationEventChange,this,K);},DOMEventHandler:function(P){var Q=H.getTarget(P),S=this._tabParent,R=this.get("tabs"),M,L,K;if(C.isAncestor(S,Q)){for(var N=0,O=R.length;N<O;N++){L=R[N].get(G);K=R[N].get(A);if(Q==L||C.isAncestor(L,Q)){M=R[N];break;}}if(M){M.fireEvent(P.type,P);}}},getTab:function(K){return this.get("tabs")[K];},getTabIndex:function(O){var L=null,N=this.get("tabs");for(var M=0,K=N.length;M<K;++M){if(O==N[M]){L=M;break;}}return L;},removeTab:function(M){var L=this.get("tabs").length,K=this.getTabIndex(M);if(M===this.get(E)){if(L>1){if(K+1===L){this.set(D,K-1);}else{this.set(D,K+1);}}else{this.set(E,null);}}this._removeTabEvents(M);this._tabParent.removeChild(M.get(G));this._contentParent.removeChild(M.get(A));this._configs.tabs.value.splice(K,1);M.fireEvent("remove",{type:"remove",tabview:this});},toString:function(){var K=this.get("id")||this.get("tagName");return"TabView "+K;},contentTransition:function(L,K){if(L){L.set("contentVisible",true);}if(K){K.set("contentVisible",false);}},initAttributes:function(K){I.superclass.initAttributes.call(this,K);if(!K.orientation){K.orientation="top";}var M=this.get(G);if(!C.hasClass(M,this.CLASSNAME)){C.addClass(M,this.CLASSNAME);}this.setAttributeConfig("tabs",{value:[],readOnly:true});this._tabParent=this.getElementsByClassName(this.TAB_PARENT_CLASSNAME,"ul")[0]||this._createTabParent();this._contentParent=this.getElementsByClassName(this.CONTENT_PARENT_CLASSNAME,"div")[0]||this._createContentParent();this.setAttributeConfig("orientation",{value:K.orientation,method:function(N){var O=this.get("orientation");this.addClass("yui-navset-"+N);if(O!=N){this.removeClass("yui-navset-"+O);}if(N==="bottom"){this.appendChild(this._tabParent);}}});this.setAttributeConfig(D,{value:K.activeIndex,validator:function(O){var N=true;if(O&&this.getTab(O).get("disabled")){N=false;}return N;}});this.setAttributeConfig(E,{value:K.activeTab,method:function(O){var N=this.get(E);if(O){O.set(J,true);}if(N&&N!==O){N.set(J,false);}if(N&&O!==N){this.contentTransition(O,N);}else{if(O){O.set("contentVisible",true);}}},validator:function(O){var N=true;if(O&&O.get("disabled")){N=false;}return N;}});this.on("activeTabChange",this._onActiveTabChange);this.on("activeIndexChange",this._onActiveIndexChange);if(this._tabParent){this._initTabs();}this.DOM_EVENTS.submit=false;this.DOM_EVENTS.focus=false;this.DOM_EVENTS.blur=false;for(var L in this.DOM_EVENTS){if(YAHOO.lang.hasOwnProperty(this.DOM_EVENTS,L)){this.addListener.call(this,L,this.DOMEventHandler);}}},deselectTab:function(K){if(this.getTab(K)===this.get("activeTab")){this.set("activeTab",null);}},selectTab:function(K){this.set("activeTab",this.getTab(K));},_onActiveTabChange:function(M){var K=this.get(D),L=this.getTabIndex(M.newValue);if(K!==L){if(!(this.set(D,L))){this.set(E,M.prevValue);}}},_onActiveIndexChange:function(K){if(K.newValue!==this.getTabIndex(this.get(E))){if(!(this.set(E,this.getTab(K.newValue)))){this.set(D,K.prevValue);}}},_initTabs:function(){var P=C.getChildren(this._tabParent),N=C.getChildren(this._contentParent),M=this.get(D),Q,L,R;for(var O=0,K=P.length;O<K;++O){L={};if(N[O]){L.contentEl=N[O];}Q=new YAHOO.widget.Tab(P[O],L);this.addTab(Q);if(Q.hasClass(Q.ACTIVE_CLASSNAME)){R=Q;}}if(M){this.set(E,this.getTab(M));}else{this._configs.activeTab.value=R;this._configs.activeIndex.value=this.getTabIndex(R);}},_createTabViewElement:function(K){var L=F.createElement("div");if(this.CLASSNAME){L.className=this.CLASSNAME;}return L;},_createTabParent:function(K){var L=F.createElement("ul");if(this.TAB_PARENT_CLASSNAME){L.className=this.TAB_PARENT_CLASSNAME;}this.get(G).appendChild(L);return L;},_createContentParent:function(K){var L=F.createElement("div");if(this.CONTENT_PARENT_CLASSNAME){L.className=this.CONTENT_PARENT_CLASSNAME;}this.get(G).appendChild(L);return L;}});YAHOO.widget.TabView=I;})();(function(){var D=YAHOO.util,I=D.Dom,L=YAHOO.lang,M="activeTab",J="label",G="labelEl",Q="content",C="contentEl",O="element",P="cacheData",B="dataSrc",H="dataLoaded",A="dataTimeout",N="loadMethod",F="postData",K="disabled",E=function(S,R){R=R||{};if(arguments.length==1&&!L.isString(S)&&!S.nodeName){R=S;S=R.element;}if(!S&&!R.element){S=this._createTabElement(R);}this.loadHandler={success:function(T){this.set(Q,T.responseText);},failure:function(T){}};E.superclass.constructor.call(this,S,R);this.DOM_EVENTS={};};YAHOO.extend(E,YAHOO.util.Element,{LABEL_TAGNAME:"em",ACTIVE_CLASSNAME:"selected",HIDDEN_CLASSNAME:"yui-hidden",ACTIVE_TITLE:"active",DISABLED_CLASSNAME:K,LOADING_CLASSNAME:"loading",dataConnection:null,loadHandler:null,_loading:false,toString:function(){var R=this.get(O),S=R.id||R.tagName;return"Tab "+S;},initAttributes:function(R){R=R||{};E.superclass.initAttributes.call(this,R);
-this.setAttributeConfig("activationEvent",{value:R.activationEvent||"click"});this.setAttributeConfig(G,{value:R[G]||this._getLabelEl(),method:function(S){S=I.get(S);var T=this.get(G);if(T){if(T==S){return false;}T.parentNode.replaceChild(S,T);this.set(J,S.innerHTML);}}});this.setAttributeConfig(J,{value:R.label||this._getLabel(),method:function(T){var S=this.get(G);if(!S){this.set(G,this._createLabelEl());}S.innerHTML=T;}});this.setAttributeConfig(C,{value:R[C]||document.createElement("div"),method:function(S){S=I.get(S);var T=this.get(C);if(T){if(T===S){return false;}if(!this.get("selected")){I.addClass(S,this.HIDDEN_CLASSNAME);}T.parentNode.replaceChild(S,T);this.set(Q,S.innerHTML);}}});this.setAttributeConfig(Q,{value:R[Q],method:function(S){this.get(C).innerHTML=S;}});this.setAttributeConfig(B,{value:R.dataSrc});this.setAttributeConfig(P,{value:R.cacheData||false,validator:L.isBoolean});this.setAttributeConfig(N,{value:R.loadMethod||"GET",validator:L.isString});this.setAttributeConfig(H,{value:false,validator:L.isBoolean,writeOnce:true});this.setAttributeConfig(A,{value:R.dataTimeout||null,validator:L.isNumber});this.setAttributeConfig(F,{value:R.postData||null});this.setAttributeConfig("active",{value:R.active||this.hasClass(this.ACTIVE_CLASSNAME),method:function(S){if(S===true){this.addClass(this.ACTIVE_CLASSNAME);this.set("title",this.ACTIVE_TITLE);}else{this.removeClass(this.ACTIVE_CLASSNAME);this.set("title","");}},validator:function(S){return L.isBoolean(S)&&!this.get(K);}});this.setAttributeConfig(K,{value:R.disabled||this.hasClass(this.DISABLED_CLASSNAME),method:function(S){if(S===true){I.addClass(this.get(O),this.DISABLED_CLASSNAME);}else{I.removeClass(this.get(O),this.DISABLED_CLASSNAME);}},validator:L.isBoolean});this.setAttributeConfig("href",{value:R.href||this.getElementsByTagName("a")[0].getAttribute("href",2)||"#",method:function(S){this.getElementsByTagName("a")[0].href=S;},validator:L.isString});this.setAttributeConfig("contentVisible",{value:R.contentVisible,method:function(S){if(S){I.removeClass(this.get(C),this.HIDDEN_CLASSNAME);if(this.get(B)){if(!this._loading&&!(this.get(H)&&this.get(P))){this._dataConnect();}}}else{I.addClass(this.get(C),this.HIDDEN_CLASSNAME);}},validator:L.isBoolean});},_dataConnect:function(){if(!D.Connect){return false;}I.addClass(this.get(C).parentNode,this.LOADING_CLASSNAME);this._loading=true;this.dataConnection=D.Connect.asyncRequest(this.get(N),this.get(B),{success:function(R){this.loadHandler.success.call(this,R);this.set(H,true);this.dataConnection=null;I.removeClass(this.get(C).parentNode,this.LOADING_CLASSNAME);this._loading=false;},failure:function(R){this.loadHandler.failure.call(this,R);this.dataConnection=null;I.removeClass(this.get(C).parentNode,this.LOADING_CLASSNAME);this._loading=false;},scope:this,timeout:this.get(A)},this.get(F));},_createTabElement:function(R){var V=document.createElement("li"),S=document.createElement("a"),U=R.label||null,T=R.labelEl||null;S.href=R.href||"#";V.appendChild(S);if(T){if(!U){U=this._getLabel();}}else{T=this._createLabelEl();}S.appendChild(T);return V;},_getLabelEl:function(){return this.getElementsByTagName(this.LABEL_TAGNAME)[0];},_createLabelEl:function(){var R=document.createElement(this.LABEL_TAGNAME);return R;},_getLabel:function(){var R=this.get(G);if(!R){return undefined;}return R.innerHTML;},_onActivate:function(U,T){var S=this,R=false;D.Event.preventDefault(U);if(S===T.get(M)){R=true;}T.set(M,S,R);},_onActivationEventChange:function(S){var R=this;if(S.prevValue!=S.newValue){R.removeListener(S.prevValue,R._onActivate);R.addListener(S.newValue,R._onActivate,this,R);}}});YAHOO.widget.Tab=E;})();YAHOO.register("tabview",YAHOO.widget.TabView,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this.setAttributeConfig("activationEvent",{value:R.activationEvent||"click"});this.setAttributeConfig(G,{value:R[G]||this._getLabelEl(),method:function(S){S=I.get(S);var T=this.get(G);if(T){if(T==S){return false;}T.parentNode.replaceChild(S,T);this.set(J,S.innerHTML);}}});this.setAttributeConfig(J,{value:R.label||this._getLabel(),method:function(T){var S=this.get(G);if(!S){this.set(G,this._createLabelEl());}S.innerHTML=T;}});this.setAttributeConfig(C,{value:R[C]||document.createElement("div"),method:function(S){S=I.get(S);var T=this.get(C);if(T){if(T===S){return false;}if(!this.get("selected")){I.addClass(S,this.HIDDEN_CLASSNAME);}T.parentNode.replaceChild(S,T);this.set(Q,S.innerHTML);}}});this.setAttributeConfig(Q,{value:R[Q],method:function(S){this.get(C).innerHTML=S;}});this.setAttributeConfig(B,{value:R.dataSrc});this.setAttributeConfig(P,{value:R.cacheData||false,validator:L.isBoolean});this.setAttributeConfig(N,{value:R.loadMethod||"GET",validator:L.isString});this.setAttributeConfig(H,{value:false,validator:L.isBoolean,writeOnce:true});this.setAttributeConfig(A,{value:R.dataTimeout||null,validator:L.isNumber});this.setAttributeConfig(F,{value:R.postData||null});this.setAttributeConfig("active",{value:R.active||this.hasClass(this.ACTIVE_CLASSNAME),method:function(S){if(S===true){this.addClass(this.ACTIVE_CLASSNAME);this.set("title",this.ACTIVE_TITLE);}else{this.removeClass(this.ACTIVE_CLASSNAME);this.set("title","");}},validator:function(S){return L.isBoolean(S)&&!this.get(K);}});this.setAttributeConfig(K,{value:R.disabled||this.hasClass(this.DISABLED_CLASSNAME),method:function(S){if(S===true){I.addClass(this.get(O),this.DISABLED_CLASSNAME);}else{I.removeClass(this.get(O),this.DISABLED_CLASSNAME);}},validator:L.isBoolean});this.setAttributeConfig("href",{value:R.href||this.getElementsByTagName("a")[0].getAttribute("href",2)||"#",method:function(S){this.getElementsByTagName("a")[0].href=S;},validator:L.isString});this.setAttributeConfig("contentVisible",{value:R.contentVisible,method:function(S){if(S){I.removeClass(this.get(C),this.HIDDEN_CLASSNAME);if(this.get(B)){if(!this._loading&&!(this.get(H)&&this.get(P))){this._dataConnect();}}}else{I.addClass(this.get(C),this.HIDDEN_CLASSNAME);}},validator:L.isBoolean});},_dataConnect:function(){if(!D.Connect){return false;}I.addClass(this.get(C).parentNode,this.LOADING_CLASSNAME);this._loading=true;this.dataConnection=D.Connect.asyncRequest(this.get(N),this.get(B),{success:function(R){this.loadHandler.success.call(this,R);this.set(H,true);this.dataConnection=null;I.removeClass(this.get(C).parentNode,this.LOADING_CLASSNAME);this._loading=false;},failure:function(R){this.loadHandler.failure.call(this,R);this.dataConnection=null;I.removeClass(this.get(C).parentNode,this.LOADING_CLASSNAME);this._loading=false;},scope:this,timeout:this.get(A)},this.get(F));},_createTabElement:function(R){var V=document.createElement("li"),S=document.createElement("a"),U=R.label||null,T=R.labelEl||null;S.href=R.href||"#";V.appendChild(S);if(T){if(!U){U=this._getLabel();}}else{T=this._createLabelEl();}S.appendChild(T);return V;},_getLabelEl:function(){return this.getElementsByTagName(this.LABEL_TAGNAME)[0];},_createLabelEl:function(){var R=document.createElement(this.LABEL_TAGNAME);return R;},_getLabel:function(){var R=this.get(G);if(!R){return undefined;}return R.innerHTML;},_onActivate:function(U,T){var S=this,R=false;D.Event.preventDefault(U);if(S===T.get(M)){R=true;}T.set(M,S,R);},_onActivationEventChange:function(S){var R=this;if(S.prevValue!=S.newValue){R.removeListener(S.prevValue,R._onActivate);R.addListener(S.newValue,R._onActivate,this,R);}}});YAHOO.widget.Tab=E;})();YAHOO.register("tabview",YAHOO.widget.TabView,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/tabview/tabview.js b/build/tabview/tabview.js
index c0a2123..b81989c 100644
--- a/build/tabview/tabview.js
+++ b/build/tabview/tabview.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function() {
 
@@ -984,4 +984,4 @@ version: 2.8.1
     YAHOO.widget.Tab = Tab;
 })();
 
-YAHOO.register("tabview", YAHOO.widget.TabView, {version: "2.8.1", build: "19"});
+YAHOO.register("tabview", YAHOO.widget.TabView, {version: "2.8.2r1", build: "7"});
diff --git a/build/treeview/assets/skins/sam/treeview-skin.css b/build/treeview/assets/skins/sam/treeview-skin.css
index ce038ae..35d1458 100644
--- a/build/treeview/assets/skins/sam/treeview-skin.css
+++ b/build/treeview/assets/skins/sam/treeview-skin.css
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /*
 Copyright (c) 2008, Yahoo! Inc. All rights reserved.
diff --git a/build/treeview/assets/skins/sam/treeview.css b/build/treeview/assets/skins/sam/treeview.css
index e0c0c1f..804afb5 100644
--- a/build/treeview/assets/skins/sam/treeview.css
+++ b/build/treeview/assets/skins/sam/treeview.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 table.ygtvtable{margin-bottom:0;border:none;border-collapse:collapse;}td.ygtvcell{border:none;padding:0;}a.ygtvspacer{text-decoration:none;outline-style:none;display:block;}.ygtvtn{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -5600px no-repeat;cursor:pointer;}.ygtvtm{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -4000px no-repeat;}.ygtvtmh,.ygtvtmhh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -4800px no-repeat;}.ygtvtp{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -6400px no-repeat;}.ygtvtph,.ygtvtphh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -7200px no-repeat;}.ygtvln{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -1600px no-repeat;cursor:pointer;}.ygtvlm{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 0 no-repeat;}.ygtvlmh,.ygtvlmhh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -800px no-repeat;}.ygtvlp{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -2400px no-repeat;}.ygtvlph,.ygtvlphh{width:18px;height:22px;cursor:pointer;background:url(treeview-sprite.gif) 0 -3200px no-repeat;cursor:pointer;}.ygtvloading{width:18px;height:22px;background:url(treeview-loading.gif) 0 0 no-repeat;}.ygtvdepthcell{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8000px no-repeat;}.ygtvblankdepthcell{width:18px;height:22px;}* html .ygtvchildren{height:2%;}.ygtvlabel,.ygtvlabel:link,.ygtvlabel:visited,.ygtvlabel:hover{margin-left:2px;text-decoration:none;background-color:white;cursor:pointer;}.ygtvcontent{cursor:default;}.ygtvspacer{height:22px;width:18px;}.ygtvfocus{background-color:#c0e0e0;border:none;}.ygtvfocus .ygtvlabel,.ygtvfocus .ygtvlabel:link,.ygtvfocus .ygtvlabel:visited,.ygtvfocus .ygtvlabel:hover{background-color:#c0e0e0;}.ygtvfocus a{outline-style:none;}.ygtvok{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8800px no-repeat;}.ygtvok:hover{background:url(treeview-sprite.gif) 0 -8844px no-repeat;}.ygtvcancel{width:18px;height:22px;background:url(treeview-sprite.gif) 0 -8822px no-repeat;}.ygtvcancel:hover{background:url(treeview-sprite.gif) 0 -8866px no-repeat;}.ygtv-label-editor{background-color:#f2f2f2;border:1px solid silver;position:absolute;display:none;overflow:hidden;margin:auto;z-index:9000;}.ygtv-edit-TextNode{width:190px;}.ygtv-edit-TextNode .ygtvcancel,.ygtv-edit-TextNode .ygtvok{border:none;}.ygtv-edit-TextNode .ygtv-button-container{float:right;}.ygtv-edit-TextNode .ygtv-input input{width:140px;}.ygtv-edit-DateNode .ygtvcancel{border:none;}.ygtv-edit-DateNode .ygtvok{display:none;}.ygtv-edit-DateNode .ygtv-button-container{text-align:right;margin:auto;}.ygtv-highlight .ygtv-highlight1,.ygtv-highlight .ygtv-highlight1 .ygtvlabel{background-color:blue;color:white;}.ygtv-highlight .ygtv-highlight2,.ygtv-highlight .ygtv-highlight2 .ygtvlabel{background-color:silver;}.ygtv-highlight .ygtv-highlight0 .ygtvfocus .ygtvlabel,.ygtv-highlight .ygtv-highlight1 .ygtvfocus .ygtvlabel,.ygtv-highlight .ygtv-highlight2 .ygtvfocus .ygtvlabel{background-color:#c0e0e0;}.ygtv-highlight .ygtvcontent{padding-right:1em;}.ygtv-checkbox .ygtv-highlight0 .ygtvcontent{padding-left:1em;background:url(check0.gif) no-repeat;}.ygtv-checkbox .ygtv-highlight0 .ygtvfocus.ygtvcontent,.ygtv-checkbox .ygtv-highlight1 .ygtvfocus.ygtvcontent,.ygtv-checkbox .ygtv-highlight2 .ygtvfocus.ygtvcontent{background-color:#c0e0e0;}.ygtv-checkbox .ygtv-highlight1 .ygtvcontent{padding-left:1em;background:url(check1.gif) no-repeat;}.ygtv-checkbox .ygtv-highlight2 .ygtvcontent{padding-left:1em;background:url(check2.gif) no-repeat;}
diff --git a/build/treeview/assets/treeview-core.css b/build/treeview/assets/treeview-core.css
index 357a827..86609ea 100644
--- a/build/treeview/assets/treeview-core.css
+++ b/build/treeview/assets/treeview-core.css
@@ -2,5 +2,5 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
diff --git a/build/treeview/treeview-debug.js b/build/treeview/treeview-debug.js
index f56f543..9f23998 100644
--- a/build/treeview/treeview-debug.js
+++ b/build/treeview/treeview-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
     var Dom = YAHOO.util.Dom,
@@ -4055,4 +4055,4 @@ YAHOO.widget.TVFadeOut.prototype = {
     }
 };
 
-YAHOO.register("treeview", YAHOO.widget.TreeView, {version: "2.8.1", build: "19"});
+YAHOO.register("treeview", YAHOO.widget.TreeView, {version: "2.8.2r1", build: "7"});
diff --git a/build/treeview/treeview-min.js b/build/treeview/treeview-min.js
index 1806c17..96d4fa7 100644
--- a/build/treeview/treeview-min.js
+++ b/build/treeview/treeview-min.js
@@ -2,11 +2,11 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function(){var D=YAHOO.util.Dom,B=YAHOO.util.Event,F=YAHOO.lang,E=YAHOO.widget;YAHOO.widget.TreeView=function(H,G){if(H){this.init(H);}if(G){this.buildTreeFromObject(G);}else{if(F.trim(this._el.innerHTML)){this.buildTreeFromMarkup(H);}}};var C=E.TreeView;C.prototype={id:null,_el:null,_nodes:null,locked:false,_expandAnim:null,_collapseAnim:null,_animCount:0,maxAnim:2,_hasDblClickSubscriber:false,_dblClickTimer:null,currentFocus:null,singleNodeHighlight:false,_currentlyHighlighted:null,setExpandAnim:function(G){this._expandAnim=(E.TVAnim.isValid(G))?G:null;},setCollapseAnim:function(G){this._collapseAnim=(E.TVAnim.isValid(G))?G:null;},animateExpand:function(I,J){if(this._expandAnim&&this._animCount<this.maxAnim){var G=this;var H=E.TVAnim.getAnim(this._expandAnim,I,function(){G.expandComplete(J);});if(H){++this._animCount;this.fireEvent("animStart",{"node":J,"type":"expand"});H.animate();}return true;}return false;},animateCollapse:function(I,J){if(this._collapseAnim&&this._animCount<this.maxAnim){var G=this;var H=E.TVAnim.getAnim(this._collapseAnim,I,function(){G.collapseComplete(J);});if(H){++this._animCount;this.fireEvent("animStart",{"node":J,"type":"collapse"});H.animate();}return true;}return false;},expandComplete:function(G){--this._animCount;this.fireEvent("animComplete",{"node":G,"type":"expand"});},collapseComplete:function(G){--this._animCount;this.fireEvent("animComplete",{"node":G,"type":"collapse"});},init:function(I){this._el=D.get(I);this.id=D.generateId(this._el,"yui-tv-auto-id-");this.createEvent("animStart",this);this.createEvent("animComplete",this);this.createEvent("collapse",this);this.createEvent("collapseComplete",this);this.createEvent("expand",this);this.createEvent("expandComplete",this);this.createEvent("enterKeyPressed",this);this.createEvent("clickEvent",this);this.createEvent("focusChanged",this);var G=this;this.createEvent("dblClickEvent",{scope:this,onSubscribeCallback:function(){G._hasDblClickSubscriber=true;}});this.createEvent("labelClick",this);this.createEvent("highlightEvent",this);this._nodes=[];C.trees[this.id]=this;this.root=new E.RootNode(this);var H=E.LogWriter;if(this._initEditor){this._initEditor();}},buildTreeFromObject:function(G){var H=function(P,M){var L,Q,K,J,O,I,N;for(L=0;L<M.length;L++){Q=M[L];if(F.isString(Q)){K=new E.TextNode(Q,P);}else{if(F.isObject(Q)){J=Q.children;delete Q.children;O=Q.type||"text";delete Q.type;switch(F.isString(O)&&O.toLowerCase()){case"text":K=new E.TextNode(Q,P);break;case"menu":K=new E.MenuNode(Q,P);break;case"html":K=new E.HTMLNode(Q,P);break;default:if(F.isString(O)){I=E[O];}else{I=O;}if(F.isObject(I)){for(N=I;N&&N!==E.Node;N=N.superclass.constructor){}if(N){K=new I(Q,P);}else{}}else{}}if(J){H(K,J);}}else{}}}};if(!F.isArray(G)){G=[G];}H(this.root,G);},buildTreeFromMarkup:function(I){var H=function(J){var N,Q,M=[],L={},K,O;for(N=D.getFirstChild(J);N;N=D.getNextSibling(N)){switch(N.tagName.toUpperCase()){case"LI":K="";L={expanded:D.hasClass(N,"expanded"),title:N.title||N.alt||null,className:F.trim(N.className.replace(/\bexpanded\b/,""))||null};Q=N.firstChild;if(Q.nodeType==3){K=F.trim(Q.nodeValue.replace(/[\n\t\r]*/g,""));if(K){L.type="text";L.label=K;}else{Q=D.getNextSibling(Q);}}if(!K){if(Q.tagName.toUpperCase()=="A"){L.type="text";L.label=Q.innerHTML;L.href=Q.href;L.target=Q.target;L.title=Q.title||Q.alt||L.title;}else{L.type="html";var P=document.createElement("div");P.appendChild(Q.cloneNode(true));L.html=P.innerHTML;L.hasIcon=true;}}Q=D.getNextSibling(Q);switch(Q&&Q.tagName.toUpperCase()){case"UL":case"OL":L.children=H(Q);break;}if(YAHOO.lang.JSON){O=N.getAttribute("yuiConfig");if(O){O=YAHOO.lang.JSON.parse(O);L=YAHOO.lang.merge(L,O);}}M.push(L);break;case"UL":case"OL":L={type:"text",label:"",children:H(Q)};M.push(L);break;}}return M;};var G=D.getChildrenBy(D.get(I),function(K){var J=K.tagName.toUpperCase();return J=="UL"||J=="OL";});if(G.length){this.buildTreeFromObject(H(G[0]));}else{}},_getEventTargetTdEl:function(H){var I=B.getTarget(H);while(I&&!(I.tagName.toUpperCase()=="TD"&&D.hasClass(I.parentNode,"ygtvrow"))){I=D.getAncestorByTagName(I,"td");}if(F.isNull(I)){return null;}if(/\bygtv(blank)?depthcell/.test(I.className)){return null;}if(I.id){var G=I.id.match(/\bygtv([^\d]*)(.*)/);if(G&&G[2]&&this._nodes[G[2]]){return I;}}return null;},_onClickEvent:function(J){var H=this,L=this._getEventTargetTdEl(J),I,K,G=function(M){I.focus();if(M||!I.href){I.toggle();try{B.preventDefault(J);}catch(N){}}};if(!L){return;}I=this.getNodeByElement(L);if(!I){return;}K=B.getTarget(J);if(D.hasClass(K,I.labelStyle)||D.getAncestorByClassName(K,I.labelStyle)){this.fireEvent("labelClick",I);}if(/\bygtv[tl][mp]h?h?/.test(L.className)){G(true);}else{if(this._dblClickTimer){window.clearTimeout(this._dblClickTimer);this._dblClickTimer=null;}else{if(this._hasDblClickSubscriber){this._dblClickTimer=window.setTimeout(function(){H._dblClickTimer=null;if(H.fireEvent("clickEvent",{event:J,node:I})!==false){G();}},200);}else{if(H.fireEvent("clickEvent",{event:J,node:I})!==false){G();}}}}},_onDblClickEvent:function(G){if(!this._hasDblClickSubscriber){return;}var H=this._getEventTargetTdEl(G);if(!H){return;}if(!(/\bygtv[tl][mp]h?h?/.test(H.className))){this.fireEvent("dblClickEvent",{event:G,node:this.getNodeByElement(H)});if(this._dblClickTimer){window.clearTimeout(this._dblClickTimer);this._dblClickTimer=null;}}},_onMouseOverEvent:function(G){var H;if((H=this._getEventTargetTdEl(G))&&(H=this.getNodeByElement(H))&&(H=H.getToggleEl())){H.className=H.className.replace(/\bygtv([lt])([mp])\b/gi,"ygtv$1$2h");}},_onMouseOutEvent:function(G){var H;if((H=this._getEventTargetTdEl(G))&&(H=this.getNodeByElement(H))&&(H=H.getToggleEl())){H.className=H.className.replace(/\bygtv([lt])([mp])h\b/gi,"ygtv$1$2");}},_onKeyDownEvent:function(L){var N=B.getTarget(L),K=this.getNodeByElement(N),J=K,G=YAHOO.util.KeyListener.KEY;switch(L.keyCode){case G.UP:do{if(J.previousSibling){J=J.previousSibling;}else{J=J.parent;}}while(J&&!J._canHaveFocus());if(J){J.focus();
 }B.preventDefault(L);break;case G.DOWN:do{if(J.nextSibling){J=J.nextSibling;}else{J.expand();J=(J.children.length||null)&&J.children[0];}}while(J&&!J._canHaveFocus);if(J){J.focus();}B.preventDefault(L);break;case G.LEFT:do{if(J.parent){J=J.parent;}else{J=J.previousSibling;}}while(J&&!J._canHaveFocus());if(J){J.focus();}B.preventDefault(L);break;case G.RIGHT:var I=this,M,H=function(O){I.unsubscribe("expandComplete",H);M(O);};M=function(O){do{if(O.isDynamic()&&!O.childrenRendered){I.subscribe("expandComplete",H);O.expand();O=null;break;}else{O.expand();if(O.children.length){O=O.children[0];}else{O=O.nextSibling;}}}while(O&&!O._canHaveFocus());if(O){O.focus();}};M(J);B.preventDefault(L);break;case G.ENTER:if(K.href){if(K.target){window.open(K.href,K.target);}else{window.location(K.href);}}else{K.toggle();}this.fireEvent("enterKeyPressed",K);B.preventDefault(L);break;case G.HOME:J=this.getRoot();if(J.children.length){J=J.children[0];}if(J._canHaveFocus()){J.focus();}B.preventDefault(L);break;case G.END:J=J.parent.children;J=J[J.length-1];if(J._canHaveFocus()){J.focus();}B.preventDefault(L);break;case 107:if(L.shiftKey){K.parent.expandAll();}else{K.expand();}break;case 109:if(L.shiftKey){K.parent.collapseAll();}else{K.collapse();}break;default:break;}},render:function(){var G=this.root.getHtml(),H=this.getEl();H.innerHTML=G;if(!this._hasEvents){B.on(H,"click",this._onClickEvent,this,true);B.on(H,"dblclick",this._onDblClickEvent,this,true);B.on(H,"mouseover",this._onMouseOverEvent,this,true);B.on(H,"mouseout",this._onMouseOutEvent,this,true);B.on(H,"keydown",this._onKeyDownEvent,this,true);}this._hasEvents=true;},getEl:function(){if(!this._el){this._el=D.get(this.id);}return this._el;},regNode:function(G){this._nodes[G.index]=G;},getRoot:function(){return this.root;},setDynamicLoad:function(G,H){this.root.setDynamicLoad(G,H);},expandAll:function(){if(!this.locked){this.root.expandAll();}},collapseAll:function(){if(!this.locked){this.root.collapseAll();}},getNodeByIndex:function(H){var G=this._nodes[H];return(G)?G:null;},getNodeByProperty:function(I,H){for(var G in this._nodes){if(this._nodes.hasOwnProperty(G)){var J=this._nodes[G];if((I in J&&J[I]==H)||(J.data&&H==J.data[I])){return J;}}}return null;},getNodesByProperty:function(J,I){var G=[];for(var H in this._nodes){if(this._nodes.hasOwnProperty(H)){var K=this._nodes[H];if((J in K&&K[J]==I)||(K.data&&I==K.data[J])){G.push(K);}}}return(G.length)?G:null;},getNodesBy:function(I){var G=[];for(var H in this._nodes){if(this._nodes.hasOwnProperty(H)){var J=this._nodes[H];if(I(J)){G.push(J);}}}return(G.length)?G:null;},getNodeByElement:function(I){var J=I,G,H=/ygtv([^\d]*)(.*)/;do{if(J&&J.id){G=J.id.match(H);if(G&&G[2]){return this.getNodeByIndex(G[2]);}}J=J.parentNode;if(!J||!J.tagName){break;}}while(J.id!==this.id&&J.tagName.toLowerCase()!=="body");return null;},getHighlightedNode:function(){return this._currentlyHighlighted;},removeNode:function(H,G){if(H.isRoot()){return false;}var I=H.parent;if(I.parent){I=I.parent;}this._deleteNode(H);if(G&&I&&I.childrenRendered){I.refresh();}return true;},_removeChildren_animComplete:function(G){this.unsubscribe(this._removeChildren_animComplete);this.removeChildren(G.node);},removeChildren:function(G){if(G.expanded){if(this._collapseAnim){this.subscribe("animComplete",this._removeChildren_animComplete,this,true);E.Node.prototype.collapse.call(G);return;}G.collapse();}while(G.children.length){this._deleteNode(G.children[0]);}if(G.isRoot()){E.Node.prototype.expand.call(G);}G.childrenRendered=false;G.dynamicLoadComplete=false;G.updateIcon();},_deleteNode:function(G){this.removeChildren(G);this.popNode(G);},popNode:function(J){var K=J.parent;var H=[];for(var I=0,G=K.children.length;I<G;++I){if(K.children[I]!=J){H[H.length]=K.children[I];}}K.children=H;K.childrenRendered=false;if(J.previousSibling){J.previousSibling.nextSibling=J.nextSibling;}if(J.nextSibling){J.nextSibling.previousSibling=J.previousSibling;}if(this.currentFocus==J){this.currentFocus=null;}if(this._currentlyHighlighted==J){this._currentlyHighlighted=null;}J.parent=null;J.previousSibling=null;J.nextSibling=null;J.tree=null;delete this._nodes[J.index];},destroy:function(){if(this._destroyEditor){this._destroyEditor();}var H=this.getEl();B.removeListener(H,"click");B.removeListener(H,"dblclick");B.removeListener(H,"mouseover");B.removeListener(H,"mouseout");B.removeListener(H,"keydown");for(var G=0;G<this._nodes.length;G++){var I=this._nodes[G];if(I&&I.destroy){I.destroy();}}H.innerHTML="";this._hasEvents=false;},toString:function(){return"TreeView "+this.id;},getNodeCount:function(){return this.getRoot().getNodeCount();},getTreeDefinition:function(){return this.getRoot().getNodeDefinition();},onExpand:function(G){},onCollapse:function(G){},setNodesProperty:function(G,I,H){this.root.setNodesProperty(G,I);if(H){this.root.refresh();}},onEventToggleHighlight:function(H){var G;if("node" in H&&H.node instanceof E.Node){G=H.node;}else{if(H instanceof E.Node){G=H;}else{return false;}}G.toggleHighlight();return false;}};var A=C.prototype;A.draw=A.render;YAHOO.augment(C,YAHOO.util.EventProvider);C.nodeCount=0;C.trees=[];C.getTree=function(H){var G=C.trees[H];return(G)?G:null;};C.getNode=function(H,I){var G=C.getTree(H);return(G)?G.getNodeByIndex(I):null;};C.FOCUS_CLASS_NAME="ygtvfocus";})();(function(){var B=YAHOO.util.Dom,C=YAHOO.lang,A=YAHOO.util.Event;YAHOO.widget.Node=function(F,E,D){if(F){this.init(F,E,D);}};YAHOO.widget.Node.prototype={index:0,children:null,tree:null,data:null,parent:null,depth:-1,expanded:false,multiExpand:true,renderHidden:false,childrenRendered:false,dynamicLoadComplete:false,previousSibling:null,nextSibling:null,_dynLoad:false,dataLoader:null,isLoading:false,hasIcon:true,iconMode:0,nowrap:false,isLeaf:false,contentStyle:"",contentElId:null,enableHighlight:true,highlightState:0,propagateHighlightUp:false,propagateHighlightDown:false,className:null,_type:"Node",init:function(G,F,D){this.data={};this.children=[];this.index=YAHOO.widget.TreeView.nodeCount;
 ++YAHOO.widget.TreeView.nodeCount;this.contentElId="ygtvcontentel"+this.index;if(C.isObject(G)){for(var E in G){if(G.hasOwnProperty(E)){if(E.charAt(0)!="_"&&!C.isUndefined(this[E])&&!C.isFunction(this[E])){this[E]=G[E];}else{this.data[E]=G[E];}}}}if(!C.isUndefined(D)){this.expanded=D;}this.createEvent("parentChange",this);if(F){F.appendChild(this);}},applyParent:function(E){if(!E){return false;}this.tree=E.tree;this.parent=E;this.depth=E.depth+1;this.tree.regNode(this);E.childrenRendered=false;for(var F=0,D=this.children.length;F<D;++F){this.children[F].applyParent(this);}this.fireEvent("parentChange");return true;},appendChild:function(E){if(this.hasChildren()){var D=this.children[this.children.length-1];D.nextSibling=E;E.previousSibling=D;}this.children[this.children.length]=E;E.applyParent(this);if(this.childrenRendered&&this.expanded){this.getChildrenEl().style.display="";}return E;},appendTo:function(D){return D.appendChild(this);},insertBefore:function(D){var F=D.parent;if(F){if(this.tree){this.tree.popNode(this);}var E=D.isChildOf(F);F.children.splice(E,0,this);if(D.previousSibling){D.previousSibling.nextSibling=this;}this.previousSibling=D.previousSibling;this.nextSibling=D;D.previousSibling=this;this.applyParent(F);}return this;},insertAfter:function(D){var F=D.parent;if(F){if(this.tree){this.tree.popNode(this);}var E=D.isChildOf(F);if(!D.nextSibling){this.nextSibling=null;return this.appendTo(F);}F.children.splice(E+1,0,this);D.nextSibling.previousSibling=this;this.previousSibling=D;this.nextSibling=D.nextSibling;D.nextSibling=this;this.applyParent(F);}return this;},isChildOf:function(E){if(E&&E.children){for(var F=0,D=E.children.length;F<D;++F){if(E.children[F]===this){return F;}}}return -1;},getSiblings:function(){var D=this.parent.children.slice(0);for(var E=0;E<D.length&&D[E]!=this;E++){}D.splice(E,1);if(D.length){return D;}return null;},showChildren:function(){if(!this.tree.animateExpand(this.getChildrenEl(),this)){if(this.hasChildren()){this.getChildrenEl().style.display="";}}},hideChildren:function(){if(!this.tree.animateCollapse(this.getChildrenEl(),this)){this.getChildrenEl().style.display="none";}},getElId:function(){return"ygtv"+this.index;},getChildrenElId:function(){return"ygtvc"+this.index;},getToggleElId:function(){return"ygtvt"+this.index;},getEl:function(){return B.get(this.getElId());},getChildrenEl:function(){return B.get(this.getChildrenElId());},getToggleEl:function(){return B.get(this.getToggleElId());},getContentEl:function(){return B.get(this.contentElId);},collapse:function(){if(!this.expanded){return;}var D=this.tree.onCollapse(this);if(false===D){return;}D=this.tree.fireEvent("collapse",this);if(false===D){return;}if(!this.getEl()){this.expanded=false;}else{this.hideChildren();this.expanded=false;this.updateIcon();}D=this.tree.fireEvent("collapseComplete",this);},expand:function(F){if(this.isLoading||(this.expanded&&!F)){return;}var D=true;if(!F){D=this.tree.onExpand(this);if(false===D){return;}D=this.tree.fireEvent("expand",this);}if(false===D){return;}if(!this.getEl()){this.expanded=true;return;}if(!this.childrenRendered){this.getChildrenEl().innerHTML=this.renderChildren();}else{}this.expanded=true;this.updateIcon();if(this.isLoading){this.expanded=false;return;}if(!this.multiExpand){var G=this.getSiblings();for(var E=0;G&&E<G.length;++E){if(G[E]!=this&&G[E].expanded){G[E].collapse();}}}this.showChildren();D=this.tree.fireEvent("expandComplete",this);},updateIcon:function(){if(this.hasIcon){var D=this.getToggleEl();if(D){D.className=D.className.replace(/\bygtv(([tl][pmn]h?)|(loading))\b/gi,this.getStyle());}}},getStyle:function(){if(this.isLoading){return"ygtvloading";}else{var E=(this.nextSibling)?"t":"l";var D="n";if(this.hasChildren(true)||(this.isDynamic()&&!this.getIconMode())){D=(this.expanded)?"m":"p";}return"ygtv"+E+D;}},getHoverStyle:function(){var D=this.getStyle();if(this.hasChildren(true)&&!this.isLoading){D+="h";}return D;},expandAll:function(){var D=this.children.length;for(var E=0;E<D;++E){var F=this.children[E];if(F.isDynamic()){break;}else{if(!F.multiExpand){break;}else{F.expand();F.expandAll();}}}},collapseAll:function(){for(var D=0;D<this.children.length;++D){this.children[D].collapse();this.children[D].collapseAll();}},setDynamicLoad:function(D,E){if(D){this.dataLoader=D;this._dynLoad=true;}else{this.dataLoader=null;this._dynLoad=false;}if(E){this.iconMode=E;}},isRoot:function(){return(this==this.tree.root);},isDynamic:function(){if(this.isLeaf){return false;}else{return(!this.isRoot()&&(this._dynLoad||this.tree.root._dynLoad));}},getIconMode:function(){return(this.iconMode||this.tree.root.iconMode);},hasChildren:function(D){if(this.isLeaf){return false;}else{return(this.children.length>0||(D&&this.isDynamic()&&!this.dynamicLoadComplete));}},toggle:function(){if(!this.tree.locked&&(this.hasChildren(true)||this.isDynamic())){if(this.expanded){this.collapse();}else{this.expand();}}},getHtml:function(){this.childrenRendered=false;return['<div class="ygtvitem" id="',this.getElId(),'">',this.getNodeHtml(),this.getChildrenHtml(),"</div>"].join("");},getChildrenHtml:function(){var D=[];D[D.length]='<div class="ygtvchildren" id="'+this.getChildrenElId()+'"';if(!this.expanded||!this.hasChildren()){D[D.length]=' style="display:none;"';}D[D.length]=">";if((this.hasChildren(true)&&this.expanded)||(this.renderHidden&&!this.isDynamic())){D[D.length]=this.renderChildren();}D[D.length]="</div>";return D.join("");},renderChildren:function(){var D=this;if(this.isDynamic()&&!this.dynamicLoadComplete){this.isLoading=true;this.tree.locked=true;if(this.dataLoader){setTimeout(function(){D.dataLoader(D,function(){D.loadComplete();});},10);}else{if(this.tree.root.dataLoader){setTimeout(function(){D.tree.root.dataLoader(D,function(){D.loadComplete();});},10);}else{return"Error: data loader not found or not specified.";}}return"";}else{return this.completeRender();}},completeRender:function(){var E=[];for(var D=0;D<this.children.length;++D){E[E.length]=this.children[D].getHtml();
 }this.childrenRendered=true;return E.join("");},loadComplete:function(){this.getChildrenEl().innerHTML=this.completeRender();if(this.propagateHighlightDown){if(this.highlightState===1&&!this.tree.singleNodeHighlight){for(var D=0;D<this.children.length;D++){this.children[D].highlight(true);}}else{if(this.highlightState===0||this.tree.singleNodeHighlight){for(D=0;D<this.children.length;D++){this.children[D].unhighlight(true);}}}}this.dynamicLoadComplete=true;this.isLoading=false;this.expand(true);this.tree.locked=false;},getAncestor:function(E){if(E>=this.depth||E<0){return null;}var D=this.parent;while(D.depth>E){D=D.parent;}return D;},getDepthStyle:function(D){return(this.getAncestor(D).nextSibling)?"ygtvdepthcell":"ygtvblankdepthcell";},getNodeHtml:function(){var E=[];E[E.length]='<table id="ygtvtableel'+this.index+'" border="0" cellpadding="0" cellspacing="0" class="ygtvtable ygtvdepth'+this.depth;if(this.enableHighlight){E[E.length]=" ygtv-highlight"+this.highlightState;}if(this.className){E[E.length]=" "+this.className;}E[E.length]='"><tr class="ygtvrow">';for(var D=0;D<this.depth;++D){E[E.length]='<td class="ygtvcell '+this.getDepthStyle(D)+'"><div class="ygtvspacer"></div></td>';}if(this.hasIcon){E[E.length]='<td id="'+this.getToggleElId();E[E.length]='" class="ygtvcell ';E[E.length]=this.getStyle();E[E.length]='"><a href="#" class="ygtvspacer"> </a></td>';}E[E.length]='<td id="'+this.contentElId;E[E.length]='" class="ygtvcell ';E[E.length]=this.contentStyle+' ygtvcontent" ';E[E.length]=(this.nowrap)?' nowrap="nowrap" ':"";E[E.length]=" >";E[E.length]=this.getContentHtml();E[E.length]="</td></tr></table>";return E.join("");},getContentHtml:function(){return"";},refresh:function(){this.getChildrenEl().innerHTML=this.completeRender();if(this.hasIcon){var D=this.getToggleEl();if(D){D.className=D.className.replace(/\bygtv[lt][nmp]h*\b/gi,this.getStyle());}}},toString:function(){return this._type+" ("+this.index+")";},_focusHighlightedItems:[],_focusedItem:null,_canHaveFocus:function(){return this.getEl().getElementsByTagName("a").length>0;},_removeFocus:function(){if(this._focusedItem){A.removeListener(this._focusedItem,"blur");this._focusedItem=null;}var D;while((D=this._focusHighlightedItems.shift())){B.removeClass(D,YAHOO.widget.TreeView.FOCUS_CLASS_NAME);}},focus:function(){var F=false,D=this;if(this.tree.currentFocus){this.tree.currentFocus._removeFocus();}var E=function(G){if(G.parent){E(G.parent);G.parent.expand();}};E(this);B.getElementsBy(function(G){return(/ygtv(([tl][pmn]h?)|(content))/).test(G.className);},"td",D.getEl().firstChild,function(H){B.addClass(H,YAHOO.widget.TreeView.FOCUS_CLASS_NAME);if(!F){var G=H.getElementsByTagName("a");if(G.length){G=G[0];G.focus();D._focusedItem=G;A.on(G,"blur",function(){D.tree.fireEvent("focusChanged",{oldNode:D.tree.currentFocus,newNode:null});D.tree.currentFocus=null;D._removeFocus();});F=true;}}D._focusHighlightedItems.push(H);});if(F){this.tree.fireEvent("focusChanged",{oldNode:this.tree.currentFocus,newNode:this});this.tree.currentFocus=this;}else{this.tree.fireEvent("focusChanged",{oldNode:D.tree.currentFocus,newNode:null});this.tree.currentFocus=null;this._removeFocus();}return F;},getNodeCount:function(){for(var D=0,E=0;D<this.children.length;D++){E+=this.children[D].getNodeCount();}return E+1;},getNodeDefinition:function(){if(this.isDynamic()){return false;}var G,D=C.merge(this.data),F=[];if(this.expanded){D.expanded=this.expanded;}if(!this.multiExpand){D.multiExpand=this.multiExpand;}if(!this.renderHidden){D.renderHidden=this.renderHidden;}if(!this.hasIcon){D.hasIcon=this.hasIcon;}if(this.nowrap){D.nowrap=this.nowrap;}if(this.className){D.className=this.className;}if(this.editable){D.editable=this.editable;}if(this.enableHighlight){D.enableHighlight=this.enableHighlight;}if(this.highlightState){D.highlightState=this.highlightState;}if(this.propagateHighlightUp){D.propagateHighlightUp=this.propagateHighlightUp;}if(this.propagateHighlightDown){D.propagateHighlightDown=this.propagateHighlightDown;}D.type=this._type;for(var E=0;E<this.children.length;E++){G=this.children[E].getNodeDefinition();if(G===false){return false;}F.push(G);}if(F.length){D.children=F;}return D;},getToggleLink:function(){return"return false;";},setNodesProperty:function(D,G,F){if(D.charAt(0)!="_"&&!C.isUndefined(this[D])&&!C.isFunction(this[D])){this[D]=G;}else{this.data[D]=G;}for(var E=0;E<this.children.length;E++){this.children[E].setNodesProperty(D,G);}if(F){this.refresh();}},toggleHighlight:function(){if(this.enableHighlight){if(this.highlightState==1){this.unhighlight();}else{this.highlight();}}},highlight:function(E){if(this.enableHighlight){if(this.tree.singleNodeHighlight){if(this.tree._currentlyHighlighted){this.tree._currentlyHighlighted.unhighlight(E);}this.tree._currentlyHighlighted=this;}this.highlightState=1;this._setHighlightClassName();if(!this.tree.singleNodeHighlight){if(this.propagateHighlightDown){for(var D=0;D<this.children.length;D++){this.children[D].highlight(true);}}if(this.propagateHighlightUp){if(this.parent){this.parent._childrenHighlighted();}}}if(!E){this.tree.fireEvent("highlightEvent",this);}}},unhighlight:function(E){if(this.enableHighlight){this.tree._currentlyHighlighted=null;this.highlightState=0;this._setHighlightClassName();if(!this.tree.singleNodeHighlight){if(this.propagateHighlightDown){for(var D=0;D<this.children.length;D++){this.children[D].unhighlight(true);}}if(this.propagateHighlightUp){if(this.parent){this.parent._childrenHighlighted();}}}if(!E){this.tree.fireEvent("highlightEvent",this);}}},_childrenHighlighted:function(){var F=false,E=false;if(this.enableHighlight){for(var D=0;D<this.children.length;D++){switch(this.children[D].highlightState){case 0:E=true;break;case 1:F=true;break;case 2:F=E=true;break;}}if(F&&E){this.highlightState=2;}else{if(F){this.highlightState=1;}else{this.highlightState=0;}}this._setHighlightClassName();if(this.propagateHighlightUp){if(this.parent){this.parent._childrenHighlighted();
 }}}},_setHighlightClassName:function(){var D=B.get("ygtvtableel"+this.index);if(D){D.className=D.className.replace(/\bygtv-highlight\d\b/gi,"ygtv-highlight"+this.highlightState);}}};YAHOO.augment(YAHOO.widget.Node,YAHOO.util.EventProvider);})();YAHOO.widget.RootNode=function(A){this.init(null,null,true);this.tree=A;};YAHOO.extend(YAHOO.widget.RootNode,YAHOO.widget.Node,{_type:"RootNode",getNodeHtml:function(){return"";},toString:function(){return this._type;},loadComplete:function(){this.tree.draw();},getNodeCount:function(){for(var A=0,B=0;A<this.children.length;A++){B+=this.children[A].getNodeCount();}return B;},getNodeDefinition:function(){for(var C,A=[],B=0;B<this.children.length;B++){C=this.children[B].getNodeDefinition();if(C===false){return false;}A.push(C);}return A;},collapse:function(){},expand:function(){},getSiblings:function(){return null;},focus:function(){}});(function(){var B=YAHOO.util.Dom,C=YAHOO.lang,A=YAHOO.util.Event;YAHOO.widget.TextNode=function(F,E,D){if(F){if(C.isString(F)){F={label:F};}this.init(F,E,D);this.setUpLabel(F);}};YAHOO.extend(YAHOO.widget.TextNode,YAHOO.widget.Node,{labelStyle:"ygtvlabel",labelElId:null,label:null,title:null,href:null,target:"_self",_type:"TextNode",setUpLabel:function(D){if(C.isString(D)){D={label:D};}else{if(D.style){this.labelStyle=D.style;}}this.label=D.label;this.labelElId="ygtvlabelel"+this.index;},getLabelEl:function(){return B.get(this.labelElId);},getContentHtml:function(){var D=[];D[D.length]=this.href?"<a":"<span";D[D.length]=' id="'+this.labelElId+'"';D[D.length]=' class="'+this.labelStyle+'"';if(this.href){D[D.length]=' href="'+this.href+'"';D[D.length]=' target="'+this.target+'"';}if(this.title){D[D.length]=' title="'+this.title+'"';}D[D.length]=" >";D[D.length]=this.label;D[D.length]=this.href?"</a>":"</span>";return D.join("");},getNodeDefinition:function(){var D=YAHOO.widget.TextNode.superclass.getNodeDefinition.call(this);if(D===false){return false;}D.label=this.label;if(this.labelStyle!="ygtvlabel"){D.style=this.labelStyle;}if(this.title){D.title=this.title;}if(this.href){D.href=this.href;}if(this.target!="_self"){D.target=this.target;}return D;},toString:function(){return YAHOO.widget.TextNode.superclass.toString.call(this)+": "+this.label;},onLabelClick:function(){return false;},refresh:function(){YAHOO.widget.TextNode.superclass.refresh.call(this);var D=this.getLabelEl();D.innerHTML=this.label;if(D.tagName.toUpperCase()=="A"){D.href=this.href;D.target=this.target;}}});})();YAHOO.widget.MenuNode=function(C,B,A){YAHOO.widget.MenuNode.superclass.constructor.call(this,C,B,A);this.multiExpand=false;};YAHOO.extend(YAHOO.widget.MenuNode,YAHOO.widget.TextNode,{_type:"MenuNode"});(function(){var B=YAHOO.util.Dom,C=YAHOO.lang,A=YAHOO.util.Event;YAHOO.widget.HTMLNode=function(G,F,E,D){if(G){this.init(G,F,E);this.initContent(G,D);}};YAHOO.extend(YAHOO.widget.HTMLNode,YAHOO.widget.Node,{contentStyle:"ygtvhtml",html:null,_type:"HTMLNode",initContent:function(E,D){this.setHtml(E);this.contentElId="ygtvcontentel"+this.index;if(!C.isUndefined(D)){this.hasIcon=D;}},setHtml:function(E){this.html=(typeof E==="string")?E:E.html;var D=this.getContentEl();if(D){D.innerHTML=this.html;}},getContentHtml:function(){return this.html;},getNodeDefinition:function(){var D=YAHOO.widget.HTMLNode.superclass.getNodeDefinition.call(this);if(D===false){return false;}D.html=this.html;return D;}});})();(function(){var B=YAHOO.util.Dom,C=YAHOO.lang,A=YAHOO.util.Event,D=YAHOO.widget.Calendar;YAHOO.widget.DateNode=function(G,F,E){YAHOO.widget.DateNode.superclass.constructor.call(this,G,F,E);};YAHOO.extend(YAHOO.widget.DateNode,YAHOO.widget.TextNode,{_type:"DateNode",calendarConfig:null,fillEditorContainer:function(G){var H,F=G.inputContainer;if(C.isUndefined(D)){B.replaceClass(G.editorPanel,"ygtv-edit-DateNode","ygtv-edit-TextNode");YAHOO.widget.DateNode.superclass.fillEditorContainer.call(this,G);return;}if(G.nodeType!=this._type){G.nodeType=this._type;G.saveOnEnter=false;G.node.destroyEditorContents(G);G.inputObject=H=new D(F.appendChild(document.createElement("div")));if(this.calendarConfig){H.cfg.applyConfig(this.calendarConfig,true);H.cfg.fireQueue();}H.selectEvent.subscribe(function(){this.tree._closeEditor(true);},this,true);}else{H=G.inputObject;}G.oldValue=this.label;H.cfg.setProperty("selected",this.label,false);var I=H.cfg.getProperty("DATE_FIELD_DELIMITER");var E=this.label.split(I);H.cfg.setProperty("pagedate",E[H.cfg.getProperty("MDY_MONTH_POSITION")-1]+I+E[H.cfg.getProperty("MDY_YEAR_POSITION")-1]);H.cfg.fireQueue();H.render();H.oDomContainer.focus();},getEditorValue:function(F){if(C.isUndefined(D)){return F.inputElement.value;}else{var H=F.inputObject,G=H.getSelectedDates()[0],E=[];E[H.cfg.getProperty("MDY_DAY_POSITION")-1]=G.getDate();E[H.cfg.getProperty("MDY_MONTH_POSITION")-1]=G.getMonth()+1;E[H.cfg.getProperty("MDY_YEAR_POSITION")-1]=G.getFullYear();return E.join(H.cfg.getProperty("DATE_FIELD_DELIMITER"));}},displayEditedValue:function(G,E){var F=E.node;F.label=G;F.getLabelEl().innerHTML=G;},getNodeDefinition:function(){var E=YAHOO.widget.DateNode.superclass.getNodeDefinition.call(this);if(E===false){return false;}if(this.calendarConfig){E.calendarConfig=this.calendarConfig;}return E;}});})();(function(){var E=YAHOO.util.Dom,F=YAHOO.lang,B=YAHOO.util.Event,D=YAHOO.widget.TreeView,C=D.prototype;D.editorData={active:false,whoHasIt:null,nodeType:null,editorPanel:null,inputContainer:null,buttonsContainer:null,node:null,saveOnEnter:true,oldValue:undefined};C.validator=null;C._initEditor=function(){this.createEvent("editorSaveEvent",this);this.createEvent("editorCancelEvent",this);};C._nodeEditing=function(M){if(M.fillEditorContainer&&M.editable){var I,K,L,J,H=D.editorData;H.active=true;H.whoHasIt=this;if(!H.nodeType){H.editorPanel=I=document.body.appendChild(document.createElement("div"));E.addClass(I,"ygtv-label-editor");L=H.buttonsContainer=I.appendChild(document.createElement("div"));E.addClass(L,"ygtv-button-container");J=L.appendChild(document.createElement("button"));
-E.addClass(J,"ygtvok");J.innerHTML=" ";J=L.appendChild(document.createElement("button"));E.addClass(J,"ygtvcancel");J.innerHTML=" ";B.on(L,"click",function(O){var P=B.getTarget(O);var N=D.editorData.node;if(E.hasClass(P,"ygtvok")){B.stopEvent(O);this._closeEditor(true);}if(E.hasClass(P,"ygtvcancel")){B.stopEvent(O);this._closeEditor(false);}},this,true);H.inputContainer=I.appendChild(document.createElement("div"));E.addClass(H.inputContainer,"ygtv-input");B.on(I,"keydown",function(P){var O=D.editorData,N=YAHOO.util.KeyListener.KEY;switch(P.keyCode){case N.ENTER:B.stopEvent(P);if(O.saveOnEnter){this._closeEditor(true);}break;case N.ESCAPE:B.stopEvent(P);this._closeEditor(false);break;}},this,true);}else{I=H.editorPanel;}H.node=M;if(H.nodeType){E.removeClass(I,"ygtv-edit-"+H.nodeType);}E.addClass(I," ygtv-edit-"+M._type);K=E.getXY(M.getContentEl());E.setStyle(I,"left",K[0]+"px");E.setStyle(I,"top",K[1]+"px");E.setStyle(I,"display","block");I.focus();M.fillEditorContainer(H);return true;}};C.onEventEditNode=function(H){if(H instanceof YAHOO.widget.Node){H.editNode();}else{if(H.node instanceof YAHOO.widget.Node){H.node.editNode();}}};C._closeEditor=function(J){var H=D.editorData,I=H.node,K=true;if(J){K=H.node.saveEditorValue(H)!==false;}else{this.fireEvent("editorCancelEvent",I);}if(K){E.setStyle(H.editorPanel,"display","none");H.active=false;I.focus();}};C._destroyEditor=function(){var H=D.editorData;if(H&&H.nodeType&&(!H.active||H.whoHasIt===this)){B.removeListener(H.editorPanel,"keydown");B.removeListener(H.buttonContainer,"click");H.node.destroyEditorContents(H);document.body.removeChild(H.editorPanel);H.nodeType=H.editorPanel=H.inputContainer=H.buttonsContainer=H.whoHasIt=H.node=null;H.active=false;}};var G=YAHOO.widget.Node.prototype;G.editable=false;G.editNode=function(){this.tree._nodeEditing(this);};G.fillEditorContainer=null;G.destroyEditorContents=function(H){B.purgeElement(H.inputContainer,true);H.inputContainer.innerHTML="";};G.saveEditorValue=function(H){var J=H.node,K,I=J.tree.validator;K=this.getEditorValue(H);if(F.isFunction(I)){K=I(K,H.oldValue,J);if(F.isUndefined(K)){return false;}}if(this.tree.fireEvent("editorSaveEvent",{newValue:K,oldValue:H.oldValue,node:J})!==false){this.displayEditedValue(K,H);}};G.getEditorValue=function(H){};G.displayEditedValue=function(I,H){};var A=YAHOO.widget.TextNode.prototype;A.fillEditorContainer=function(I){var H;if(I.nodeType!=this._type){I.nodeType=this._type;I.saveOnEnter=true;I.node.destroyEditorContents(I);I.inputElement=H=I.inputContainer.appendChild(document.createElement("input"));}else{H=I.inputElement;}I.oldValue=this.label;H.value=this.label;H.focus();H.select();};A.getEditorValue=function(H){return H.inputElement.value;};A.displayEditedValue=function(J,H){var I=H.node;I.label=J;I.getLabelEl().innerHTML=J;};A.destroyEditorContents=function(H){H.inputContainer.innerHTML="";};})();YAHOO.widget.TVAnim=function(){return{FADE_IN:"TVFadeIn",FADE_OUT:"TVFadeOut",getAnim:function(B,A,C){if(YAHOO.widget[B]){return new YAHOO.widget[B](A,C);}else{return null;}},isValid:function(A){return(YAHOO.widget[A]);}};}();YAHOO.widget.TVFadeIn=function(A,B){this.el=A;this.callback=B;};YAHOO.widget.TVFadeIn.prototype={animate:function(){var D=this;var C=this.el.style;C.opacity=0.1;C.filter="alpha(opacity=10)";C.display="";var B=0.4;var A=new YAHOO.util.Anim(this.el,{opacity:{from:0.1,to:1,unit:""}},B);A.onComplete.subscribe(function(){D.onComplete();});A.animate();},onComplete:function(){this.callback();},toString:function(){return"TVFadeIn";}};YAHOO.widget.TVFadeOut=function(A,B){this.el=A;this.callback=B;};YAHOO.widget.TVFadeOut.prototype={animate:function(){var C=this;var B=0.4;var A=new YAHOO.util.Anim(this.el,{opacity:{from:1,to:0.1,unit:""}},B);A.onComplete.subscribe(function(){C.onComplete();});A.animate();},onComplete:function(){var A=this.el.style;A.display="none";A.opacity=1;A.filter="alpha(opacity=100)";this.callback();},toString:function(){return"TVFadeOut";}};YAHOO.register("treeview",YAHOO.widget.TreeView,{version:"2.8.1",build:"19"});
\ No newline at end of file
+E.addClass(J,"ygtvok");J.innerHTML=" ";J=L.appendChild(document.createElement("button"));E.addClass(J,"ygtvcancel");J.innerHTML=" ";B.on(L,"click",function(O){var P=B.getTarget(O);var N=D.editorData.node;if(E.hasClass(P,"ygtvok")){B.stopEvent(O);this._closeEditor(true);}if(E.hasClass(P,"ygtvcancel")){B.stopEvent(O);this._closeEditor(false);}},this,true);H.inputContainer=I.appendChild(document.createElement("div"));E.addClass(H.inputContainer,"ygtv-input");B.on(I,"keydown",function(P){var O=D.editorData,N=YAHOO.util.KeyListener.KEY;switch(P.keyCode){case N.ENTER:B.stopEvent(P);if(O.saveOnEnter){this._closeEditor(true);}break;case N.ESCAPE:B.stopEvent(P);this._closeEditor(false);break;}},this,true);}else{I=H.editorPanel;}H.node=M;if(H.nodeType){E.removeClass(I,"ygtv-edit-"+H.nodeType);}E.addClass(I," ygtv-edit-"+M._type);K=E.getXY(M.getContentEl());E.setStyle(I,"left",K[0]+"px");E.setStyle(I,"top",K[1]+"px");E.setStyle(I,"display","block");I.focus();M.fillEditorContainer(H);return true;}};C.onEventEditNode=function(H){if(H instanceof YAHOO.widget.Node){H.editNode();}else{if(H.node instanceof YAHOO.widget.Node){H.node.editNode();}}};C._closeEditor=function(J){var H=D.editorData,I=H.node,K=true;if(J){K=H.node.saveEditorValue(H)!==false;}else{this.fireEvent("editorCancelEvent",I);}if(K){E.setStyle(H.editorPanel,"display","none");H.active=false;I.focus();}};C._destroyEditor=function(){var H=D.editorData;if(H&&H.nodeType&&(!H.active||H.whoHasIt===this)){B.removeListener(H.editorPanel,"keydown");B.removeListener(H.buttonContainer,"click");H.node.destroyEditorContents(H);document.body.removeChild(H.editorPanel);H.nodeType=H.editorPanel=H.inputContainer=H.buttonsContainer=H.whoHasIt=H.node=null;H.active=false;}};var G=YAHOO.widget.Node.prototype;G.editable=false;G.editNode=function(){this.tree._nodeEditing(this);};G.fillEditorContainer=null;G.destroyEditorContents=function(H){B.purgeElement(H.inputContainer,true);H.inputContainer.innerHTML="";};G.saveEditorValue=function(H){var J=H.node,K,I=J.tree.validator;K=this.getEditorValue(H);if(F.isFunction(I)){K=I(K,H.oldValue,J);if(F.isUndefined(K)){return false;}}if(this.tree.fireEvent("editorSaveEvent",{newValue:K,oldValue:H.oldValue,node:J})!==false){this.displayEditedValue(K,H);}};G.getEditorValue=function(H){};G.displayEditedValue=function(I,H){};var A=YAHOO.widget.TextNode.prototype;A.fillEditorContainer=function(I){var H;if(I.nodeType!=this._type){I.nodeType=this._type;I.saveOnEnter=true;I.node.destroyEditorContents(I);I.inputElement=H=I.inputContainer.appendChild(document.createElement("input"));}else{H=I.inputElement;}I.oldValue=this.label;H.value=this.label;H.focus();H.select();};A.getEditorValue=function(H){return H.inputElement.value;};A.displayEditedValue=function(J,H){var I=H.node;I.label=J;I.getLabelEl().innerHTML=J;};A.destroyEditorContents=function(H){H.inputContainer.innerHTML="";};})();YAHOO.widget.TVAnim=function(){return{FADE_IN:"TVFadeIn",FADE_OUT:"TVFadeOut",getAnim:function(B,A,C){if(YAHOO.widget[B]){return new YAHOO.widget[B](A,C);}else{return null;}},isValid:function(A){return(YAHOO.widget[A]);}};}();YAHOO.widget.TVFadeIn=function(A,B){this.el=A;this.callback=B;};YAHOO.widget.TVFadeIn.prototype={animate:function(){var D=this;var C=this.el.style;C.opacity=0.1;C.filter="alpha(opacity=10)";C.display="";var B=0.4;var A=new YAHOO.util.Anim(this.el,{opacity:{from:0.1,to:1,unit:""}},B);A.onComplete.subscribe(function(){D.onComplete();});A.animate();},onComplete:function(){this.callback();},toString:function(){return"TVFadeIn";}};YAHOO.widget.TVFadeOut=function(A,B){this.el=A;this.callback=B;};YAHOO.widget.TVFadeOut.prototype={animate:function(){var C=this;var B=0.4;var A=new YAHOO.util.Anim(this.el,{opacity:{from:1,to:0.1,unit:""}},B);A.onComplete.subscribe(function(){C.onComplete();});A.animate();},onComplete:function(){var A=this.el.style;A.display="none";A.opacity=1;A.filter="alpha(opacity=100)";this.callback();},toString:function(){return"TVFadeOut";}};YAHOO.register("treeview",YAHOO.widget.TreeView,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/treeview/treeview.js b/build/treeview/treeview.js
index e08ee92..ea8e27b 100644
--- a/build/treeview/treeview.js
+++ b/build/treeview/treeview.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 (function () {
     var Dom = YAHOO.util.Dom,
@@ -3986,4 +3986,4 @@ YAHOO.widget.TVFadeOut.prototype = {
     }
 };
 
-YAHOO.register("treeview", YAHOO.widget.TreeView, {version: "2.8.1", build: "19"});
+YAHOO.register("treeview", YAHOO.widget.TreeView, {version: "2.8.2r1", build: "7"});
diff --git a/build/uploader/uploader-debug.js b/build/uploader/uploader-debug.js
index 958457b..aafc1f8 100644
--- a/build/uploader/uploader-debug.js
+++ b/build/uploader/uploader-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /*extern ActiveXObject, __flash_unloadHandler, __flash_savedUnloadHandler */
 /*!
@@ -1069,4 +1069,4 @@ YAHOO.extend(YAHOO.widget.Uploader, YAHOO.widget.FlashAdapter,
 		this._swf.disable();
 	}
 });
-YAHOO.register("uploader", YAHOO.widget.Uploader, {version: "2.8.1", build: "19"});
+YAHOO.register("uploader", YAHOO.widget.Uploader, {version: "2.8.2r1", build: "7"});
diff --git a/build/uploader/uploader-min.js b/build/uploader/uploader-min.js
index 32ea6e6..24bcc36 100644
--- a/build/uploader/uploader-min.js
+++ b/build/uploader/uploader-min.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /*
  * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
@@ -12,4 +12,4 @@ version: 2.8.1
  * @namespace YAHOO
  */
 YAHOO.namespace("deconcept");YAHOO.deconcept=YAHOO.deconcept||{};if(typeof YAHOO.deconcept.util=="undefined"||!YAHOO.deconcept.util){YAHOO.deconcept.util={};}if(typeof YAHOO.deconcept.SWFObjectUtil=="undefined"||!YAHOO.deconcept.SWFObjectUtil){YAHOO.deconcept.SWFObjectUtil={};}YAHOO.deconcept.SWFObject=function(E,C,K,F,H,J,L,G,A,D){if(!document.getElementById){return;}this.DETECT_KEY=D?D:"detectflash";this.skipDetect=YAHOO.deconcept.util.getRequestParameter(this.DETECT_KEY);this.params={};this.variables={};this.attributes=[];if(E){this.setAttribute("swf",E);}if(C){this.setAttribute("id",C);}if(K){this.setAttribute("width",K);}if(F){this.setAttribute("height",F);}if(H){this.setAttribute("version",new YAHOO.deconcept.PlayerVersion(H.toString().split(".")));}this.installedVer=YAHOO.deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){YAHOO.deconcept.SWFObject.doPrepUnload=true;}if(J){this.addParam("bgcolor",J);}var B=L?L:"high";this.addParam("quality",B);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var I=(G)?G:window.location;this.setAttribute("xiRedirectUrl",I);this.setAttribute("redirectUrl","");if(A){this.setAttribute("redirectUrl",A);}};YAHOO.deconcept.SWFObject.prototype={useExpressInstall:function(A){this.xiSWFPath=!A?"expressinstall.swf":A;this.setAttribute("useExpressInstall",true);},setAttribute:function(A,B){this.attributes[A]=B;},getAttribute:function(A){return this.attributes[A];},addParam:function(A,B){this.params[A]=B;},getParams:function(){return this.params;},addVariable:function(A,B){this.variables[A]=B;},getVariable:function(A){return this.variables[A];},getVariables:function(){return this.variables;},getVariablePairs:function(){var A=[];var B;var C=this.getVariables();for(B in C){if(C.hasOwnProperty(B)){A[A.length]=B+"="+C[B];}}return A;},getSWFHTML:function(){var D="";var C={};var A="";var B="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}D='<embed type="application/x-shockwave-flash" src="'+this.getAttribute("swf")+'" width="'+this.getAttribute("width")+'" height="'+this.getAttribute("height")+'" style="'+this.getAttribute("style")+'"';D+=' id="'+this.getAttribute("id")+'" name="'+this.getAttribute("id")+'" ';C=this.getParams();for(A in C){if(C.hasOwnProperty(A)){D+=[A]+'="'+C[A]+'" ';}}B=this.getVariablePairs().join("&");if(B.length>0){D+='flashvars="'+B+'"';}D+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}D='<object id="'+this.getAttribute("id")+'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+this.getAttribute("width")+'" height="'+this.getAttribute("height")+'" style="'+this.getAttribute("style")+'">';D+='<param name="movie" value="'+this.getAttribute("swf")+'" />';C=this.getParams();for(A in C){if(C.hasOwnProperty(A)){D+='<param name="'+A+'" value="'+C[A]+'" />';}}B=this.getVariablePairs().join("&");if(B.length>0){D+='<param name="flashvars" value="'+B+'" />';}D+="</object>";}return D;},write:function(A){if(this.getAttribute("useExpressInstall")){var B=new YAHOO.deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(B)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var C=(typeof A=="string")?document.getElementById(A):A;C.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!==""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};YAHOO.deconcept.SWFObjectUtil.getPlayerVersion=function(){var D=null;var C=new YAHOO.deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var A=navigator.plugins["Shockwave Flash"];if(A&&A.description){C=new YAHOO.deconcept.PlayerVersion(A.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var B=3;while(D){try{B++;D=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+B);C=new YAHOO.deconcept.PlayerVersion([B,0,0]);}catch(E){D=null;}}}else{try{D=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(E){try{D=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");C=new YAHOO.deconcept.PlayerVersion([6,0,21]);D.AllowScriptAccess="always";}catch(E){if(C.major==6){return C;}}try{D=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(E){}}if(D!==null){C=new YAHOO.deconcept.PlayerVersion(D.GetVariable("$version").split(" ")[1].split(","));}}}return C;};YAHOO.deconcept.PlayerVersion=function(A){this.major=A[0]!==null?parseInt(A[0],0):0;this.minor=A[1]!==null?parseInt(A[1],0):0;this.rev=A[2]!==null?parseInt(A[2],0):0;};YAHOO.deconcept.PlayerVersion.prototype.versionIsValid=function(A){if(this.major<A.major){return false;}if(this.major>A.major){return true;}if(this.minor<A.minor){return false;}if(this.minor>A.minor){return true;}if(this.rev<A.rev){return false;}return true;};YAHOO.deconcept.util={getRequestParameter:function(D){var C=document.location.search||document.location.hash;if(D===null){return C;}if(C){var B=C.substring(1).split("&");for(var A=0;A<B.length;A++){if(B[A].substring(0,B[A].indexOf("="))==D){return B[A].substring((B[A].indexOf("=")+1));}}}return"";
-}};YAHOO.deconcept.SWFObjectUtil.cleanupSWFs=function(){var C=document.getElementsByTagName("OBJECT");for(var B=C.length-1;B>=0;B--){C[B].style.display="none";for(var A in C[B]){if(typeof C[B][A]=="function"){C[B][A]=function(){};}}}};if(YAHOO.deconcept.SWFObject.doPrepUnload){if(!YAHOO.deconcept.unloadSet){YAHOO.deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",YAHOO.deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",YAHOO.deconcept.SWFObjectUtil.prepUnload);YAHOO.deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(A){return document.all[A];};}YAHOO.widget.FlashAdapter=function(E,A,B,C){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};B=B||{};this._id=B.id=B.id||YAHOO.util.Dom.generateId(null,"yuigen");B.version=B.version||"9.0.45";B.backgroundColor=B.backgroundColor||"#ffffff";this._attributes=B;this._swfURL=E;this._containerID=A;this._embedSWF(this._swfURL,this._containerID,B.id,B.version,B.backgroundColor,B.expressInstall,B.wmode,C);try{this.createEvent("contentReady");}catch(D){}};YAHOO.widget.FlashAdapter.owners=YAHOO.widget.FlashAdapter.owners||{};YAHOO.extend(YAHOO.widget.FlashAdapter,YAHOO.util.AttributeProvider,{_swfURL:null,_containerID:null,_swf:null,_id:null,_initialized:false,_attributes:null,toString:function(){return"FlashAdapter "+this._id;},destroy:function(){if(this._swf){var B=YAHOO.util.Dom.get(this._containerID);B.removeChild(this._swf);}var A=this._id;for(var C in this){if(YAHOO.lang.hasOwnProperty(this,C)){this[C]=null;}}},_embedSWF:function(J,I,E,C,F,G,B,H){var D=new YAHOO.deconcept.SWFObject(J,E,"100%","100%",C,F);if(G){D.useExpressInstall(G);}D.addParam("allowScriptAccess","always");if(B){D.addParam("wmode",B);}D.addParam("menu","false");D.addVariable("allowedDomain",document.location.hostname);D.addVariable("YUISwfId",E);D.addVariable("YUIBridgeCallback","YAHOO.widget.FlashAdapter.eventHandler");if(H){D.addVariable("buttonSkin",H);}var A=YAHOO.util.Dom.get(I);var K=D.write(A);if(K){this._swf=YAHOO.util.Dom.get(E);YAHOO.widget.FlashAdapter.owners[E]=this;}else{}},_eventHandler:function(B){var A=B.type;switch(A){case"swfReady":this._loadHandler();return;case"log":return;}this.fireEvent(A,B);},_loadHandler:function(){this._initialized=false;this._initAttributes(this._attributes);this.setAttributes(this._attributes,true);this._initialized=true;this.fireEvent("contentReady");},set:function(A,B){this._attributes[A]=B;YAHOO.widget.FlashAdapter.superclass.set.call(this,A,B);},_initAttributes:function(A){this.getAttributeConfig("altText",{method:this._getAltText});this.setAttributeConfig("altText",{method:this._setAltText});this.getAttributeConfig("swfURL",{method:this._getSWFURL});},_getSWFURL:function(){return this._swfURL;},_getAltText:function(){return this._swf.getAltText();},_setAltText:function(A){return this._swf.setAltText(A);}});YAHOO.widget.FlashAdapter.eventHandler=function(A,B){if(!YAHOO.widget.FlashAdapter.owners[A]){setTimeout(function(){YAHOO.widget.FlashAdapter.eventHandler(A,B);},0);}else{YAHOO.widget.FlashAdapter.owners[A]._eventHandler(B);}};YAHOO.widget.FlashAdapter.proxyFunctionCount=0;YAHOO.widget.FlashAdapter.createProxyFunction=function(B){var A=YAHOO.widget.FlashAdapter.proxyFunctionCount;YAHOO.widget.FlashAdapter["proxyFunction"+A]=function(){return B.apply(null,arguments);};YAHOO.widget.FlashAdapter.proxyFunctionCount++;return"YAHOO.widget.FlashAdapter.proxyFunction"+A.toString();};YAHOO.widget.FlashAdapter.removeProxyFunction=function(A){if(!A||A.indexOf("YAHOO.widget.FlashAdapter.proxyFunction")<0){return;}A=A.substr(26);YAHOO.widget.FlashAdapter[A]=null;};YAHOO.widget.Uploader=function(A,B,D){var C="window";if(!(B)||(B&&D)){C="transparent";}YAHOO.widget.Uploader.superclass.constructor.call(this,YAHOO.widget.Uploader.SWFURL,A,{wmode:C},B);this.createEvent("mouseDown");this.createEvent("mouseUp");this.createEvent("rollOver");this.createEvent("rollOut");this.createEvent("click");this.createEvent("fileSelect");this.createEvent("uploadStart");this.createEvent("uploadProgress");this.createEvent("uploadCancel");this.createEvent("uploadComplete");this.createEvent("uploadCompleteData");this.createEvent("uploadError");};YAHOO.widget.Uploader.SWFURL="assets/uploader.swf";YAHOO.extend(YAHOO.widget.Uploader,YAHOO.widget.FlashAdapter,{upload:function(A,B,E,C,D){this._swf.upload(A,B,E,C,D);},uploadThese:function(B,A,E,C,D){this._swf.uploadThese(B,A,E,C,D);},uploadAll:function(A,D,B,C){this._swf.uploadAll(A,D,B,C);},cancel:function(A){this._swf.cancel(A);},clearFileList:function(){this._swf.clearFileList();},removeFile:function(A){this._swf.removeFile(A);},setAllowLogging:function(A){this._swf.setAllowLogging(A);},setSimUploadLimit:function(A){this._swf.setSimUploadLimit(A);},setAllowMultipleFiles:function(A){this._swf.setAllowMultipleFiles(A);},setFileFilters:function(A){this._swf.setFileFilters(A);},enable:function(){this._swf.enable();},disable:function(){this._swf.disable();}});YAHOO.register("uploader",YAHOO.widget.Uploader,{version:"2.8.1",build:"19"});
\ No newline at end of file
+}};YAHOO.deconcept.SWFObjectUtil.cleanupSWFs=function(){var C=document.getElementsByTagName("OBJECT");for(var B=C.length-1;B>=0;B--){C[B].style.display="none";for(var A in C[B]){if(typeof C[B][A]=="function"){C[B][A]=function(){};}}}};if(YAHOO.deconcept.SWFObject.doPrepUnload){if(!YAHOO.deconcept.unloadSet){YAHOO.deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",YAHOO.deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",YAHOO.deconcept.SWFObjectUtil.prepUnload);YAHOO.deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(A){return document.all[A];};}YAHOO.widget.FlashAdapter=function(E,A,B,C){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};B=B||{};this._id=B.id=B.id||YAHOO.util.Dom.generateId(null,"yuigen");B.version=B.version||"9.0.45";B.backgroundColor=B.backgroundColor||"#ffffff";this._attributes=B;this._swfURL=E;this._containerID=A;this._embedSWF(this._swfURL,this._containerID,B.id,B.version,B.backgroundColor,B.expressInstall,B.wmode,C);try{this.createEvent("contentReady");}catch(D){}};YAHOO.widget.FlashAdapter.owners=YAHOO.widget.FlashAdapter.owners||{};YAHOO.extend(YAHOO.widget.FlashAdapter,YAHOO.util.AttributeProvider,{_swfURL:null,_containerID:null,_swf:null,_id:null,_initialized:false,_attributes:null,toString:function(){return"FlashAdapter "+this._id;},destroy:function(){if(this._swf){var B=YAHOO.util.Dom.get(this._containerID);B.removeChild(this._swf);}var A=this._id;for(var C in this){if(YAHOO.lang.hasOwnProperty(this,C)){this[C]=null;}}},_embedSWF:function(J,I,E,C,F,G,B,H){var D=new YAHOO.deconcept.SWFObject(J,E,"100%","100%",C,F);if(G){D.useExpressInstall(G);}D.addParam("allowScriptAccess","always");if(B){D.addParam("wmode",B);}D.addParam("menu","false");D.addVariable("allowedDomain",document.location.hostname);D.addVariable("YUISwfId",E);D.addVariable("YUIBridgeCallback","YAHOO.widget.FlashAdapter.eventHandler");if(H){D.addVariable("buttonSkin",H);}var A=YAHOO.util.Dom.get(I);var K=D.write(A);if(K){this._swf=YAHOO.util.Dom.get(E);YAHOO.widget.FlashAdapter.owners[E]=this;}else{}},_eventHandler:function(B){var A=B.type;switch(A){case"swfReady":this._loadHandler();return;case"log":return;}this.fireEvent(A,B);},_loadHandler:function(){this._initialized=false;this._initAttributes(this._attributes);this.setAttributes(this._attributes,true);this._initialized=true;this.fireEvent("contentReady");},set:function(A,B){this._attributes[A]=B;YAHOO.widget.FlashAdapter.superclass.set.call(this,A,B);},_initAttributes:function(A){this.getAttributeConfig("altText",{method:this._getAltText});this.setAttributeConfig("altText",{method:this._setAltText});this.getAttributeConfig("swfURL",{method:this._getSWFURL});},_getSWFURL:function(){return this._swfURL;},_getAltText:function(){return this._swf.getAltText();},_setAltText:function(A){return this._swf.setAltText(A);}});YAHOO.widget.FlashAdapter.eventHandler=function(A,B){if(!YAHOO.widget.FlashAdapter.owners[A]){setTimeout(function(){YAHOO.widget.FlashAdapter.eventHandler(A,B);},0);}else{YAHOO.widget.FlashAdapter.owners[A]._eventHandler(B);}};YAHOO.widget.FlashAdapter.proxyFunctionCount=0;YAHOO.widget.FlashAdapter.createProxyFunction=function(B){var A=YAHOO.widget.FlashAdapter.proxyFunctionCount;YAHOO.widget.FlashAdapter["proxyFunction"+A]=function(){return B.apply(null,arguments);};YAHOO.widget.FlashAdapter.proxyFunctionCount++;return"YAHOO.widget.FlashAdapter.proxyFunction"+A.toString();};YAHOO.widget.FlashAdapter.removeProxyFunction=function(A){if(!A||A.indexOf("YAHOO.widget.FlashAdapter.proxyFunction")<0){return;}A=A.substr(26);YAHOO.widget.FlashAdapter[A]=null;};YAHOO.widget.Uploader=function(A,B,D){var C="window";if(!(B)||(B&&D)){C="transparent";}YAHOO.widget.Uploader.superclass.constructor.call(this,YAHOO.widget.Uploader.SWFURL,A,{wmode:C},B);this.createEvent("mouseDown");this.createEvent("mouseUp");this.createEvent("rollOver");this.createEvent("rollOut");this.createEvent("click");this.createEvent("fileSelect");this.createEvent("uploadStart");this.createEvent("uploadProgress");this.createEvent("uploadCancel");this.createEvent("uploadComplete");this.createEvent("uploadCompleteData");this.createEvent("uploadError");};YAHOO.widget.Uploader.SWFURL="assets/uploader.swf";YAHOO.extend(YAHOO.widget.Uploader,YAHOO.widget.FlashAdapter,{upload:function(A,B,E,C,D){this._swf.upload(A,B,E,C,D);},uploadThese:function(B,A,E,C,D){this._swf.uploadThese(B,A,E,C,D);},uploadAll:function(A,D,B,C){this._swf.uploadAll(A,D,B,C);},cancel:function(A){this._swf.cancel(A);},clearFileList:function(){this._swf.clearFileList();},removeFile:function(A){this._swf.removeFile(A);},setAllowLogging:function(A){this._swf.setAllowLogging(A);},setSimUploadLimit:function(A){this._swf.setSimUploadLimit(A);},setAllowMultipleFiles:function(A){this._swf.setAllowMultipleFiles(A);},setFileFilters:function(A){this._swf.setFileFilters(A);},enable:function(){this._swf.enable();},disable:function(){this._swf.disable();}});YAHOO.register("uploader",YAHOO.widget.Uploader,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/uploader/uploader.js b/build/uploader/uploader.js
index 8831d97..f698e90 100644
--- a/build/uploader/uploader.js
+++ b/build/uploader/uploader.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /*extern ActiveXObject, __flash_unloadHandler, __flash_savedUnloadHandler */
 /*!
@@ -1066,4 +1066,4 @@ YAHOO.extend(YAHOO.widget.Uploader, YAHOO.widget.FlashAdapter,
 		this._swf.disable();
 	}
 });
-YAHOO.register("uploader", YAHOO.widget.Uploader, {version: "2.8.1", build: "19"});
+YAHOO.register("uploader", YAHOO.widget.Uploader, {version: "2.8.2r1", build: "7"});
diff --git a/build/utilities/utilities.js b/build/utilities/utilities.js
index 3134514..1f2b4f8 100644
--- a/build/utilities/utilities.js
+++ b/build/utilities/utilities.js
@@ -2,21 +2,21 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.1",build:"19"});
-YAHOO.util.Get=function(){var M={},L=0,R=0,E=false,N=YAHOO.env.ua,S=YAHOO.lang;var J=function(W,T,X){var U=X||window,Y=U.document,Z=Y.createElement(W);for(var V in T){if(T[V]&&YAHOO.lang.hasOwnProperty(T,V)){Z.setAttribute(V,T[V]);}}return Z;};var I=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/css",rel:"stylesheet",href:U};if(T){S.augmentObject(W,T);}return J("link",W,V);};var P=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/javascript",src:U};if(T){S.augmentObject(W,T);}return J("script",W,V);};var A=function(T,U){return{tId:T.tId,win:T.win,data:T.data,nodes:T.nodes,msg:U,purge:function(){D(this.tId);}};};var B=function(T,W){var U=M[W],V=(S.isString(T))?U.win.document.getElementById(T):T;if(!V){Q(W,"target node not found: "+T);}return V;};var Q=function(W,V){var T=M[W];if(T.onFailure){var U=T.scope||T.win;T.onFailure.call(U,A(T,V));}};var C=function(W){var T=M[W];T.finished=true;if(T.aborted){var V="transaction "+W+" was aborted";Q(W,V);return;}if(T.onSuccess){var U=T.scope||T.win;T.onSuccess.call(U,A(T));}};var O=function(V){var T=M[V];if(T.onTimeout){var U=T.scope||T;T.onTimeout.call(U,A(T));}};var G=function(V,Z){var U=M[V];if(U.timer){U.timer.cancel();}if(U.aborted){var X="transaction "+V+" was aborted";Q(V,X);return;}if(Z){U.url.shift();if(U.varName){U.varName.shift();}}else{U.url=(S.isString(U.url))?[U.url]:U.url;if(U.varName){U.varName=(S.isString(U.varName))?[U.varName]:U.varName;}}var c=U.win,b=c.document,a=b.getElementsByTagName("head")[0],W;if(U.url.length===0){if(U.type==="script"&&N.webkit&&N.webkit<420&&!U.finalpass&&!U.varName){var Y=P(null,U.win,U.attributes);Y.innerHTML='YAHOO.util.Get._finalize("'+V+'");';U.nodes.push(Y);a.appendChild(Y);}else{C(V);}return;}var T=U.url[0];if(!T){U.url.shift();return G(V);}if(U.timeout){U.timer=S.later(U.timeout,U,O,V);}if(U.type==="script"){W=P(T,c,U.attributes);}else{W=I(T,c,U.attributes);}F(U.type,W,V,T,c,U.url.length);U.nodes.push(W);if(U.insertBefore){var e=B(U.insertBefore,V);if(e){e.parentNode.insertBefore(W,e);}}else{a.appendChild(W);}if((N.webkit||N.gecko)&&U.type==="css"){G(V,T);}};var K=function(){if(E){return;}E=true;for(var T in M){var U=M[T];if(U.autopurge&&U.finished){D(U.tId);delete M[T];}}E=false;};var D=function(Z){if(M[Z]){var T=M[Z],U=T.nodes,X=U.length,c=T.win.document,a=c.getElementsByTagName("head")[0],V,Y,W,b;if(T.insertBefore){V=B(T.insertBefore,Z);if(V){a=V.parentNode;}}for(Y=0;Y<X;Y=Y+1){W=U[Y];if(W.clearAttributes){W.clearAttributes();}else{for(b in W){delete W[b];}}a.removeChild(W);}T.nodes=[];}};var H=function(U,T,V){var X="q"+(L++);V=V||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[X]=S.merge(V,{tId:X,type:U,url:T,finished:false,aborted:false,nodes:[]});var W=M[X];W.win=W.win||window;W.scope=W.scope||W.win;W.autopurge=("autopurge" in W)?W.autopurge:(U==="script")?true:false;if(V.charset){W.attributes=W.attributes||{};W.attributes.charset=V.charset;}S.later(0,W,G,X);return{tId:X};};var F=function(c,X,W,U,Y,Z,b){var a=b||G;if(N.ie){X.onreadystatechange=function(){var d=this.readyState;if("loaded"===d||"complete"===d){X.onreadystatechange=null;a(W,U);}};}else{if(N.webkit){if(c==="script"){if(N.webkit>=420){X.addEventListener("load",function(){a(W,U);});}else{var T=M[W];if(T.varName){var V=YAHOO.util.Get.POLL_FREQ;T.maxattempts=YAHOO.util.Get.TIMEOUT/V;T.attempts=0;T._cache=T.varName[0].split(".");T.timer=S.later(V,T,function(j){var f=this._cache,e=f.length,d=this.win,g;for(g=0;g<e;g=g+1){d=d[f[g]];if(!d){this.attempts++;if(this.attempts++>this.maxattempts){var h="Over retry limit, giving up";T.timer.cancel();Q(W,h);}else{}return;}}T.timer.cancel();a(W,U);},null,true);}else{S.later(YAHOO.util.Get.POLL_FREQ,null,a,[W,U]);}}}}else{X.onload=function(){a(W,U);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(T){S.later(0,null,C,T);},abort:function(U){var V=(S.isString(U))?U:U.tId;var T=M[V];if(T){T.aborted=true;}},script:function(T,U){return H("script",T,U);},css:function(T,U){return H("css",T,U);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.8.1",build:"19"});(function(){var Y=YAHOO,util=Y.util,lang=Y.lang,env=Y.env,PROV="_provides",SUPER="_supersedes",REQ="expanded",AFTER="_after";var YUI={dupsAllowed:{"yahoo":true,"get":true},info:{"root":"2.8.1/build/","base":"http://yui.yahooapis.com/2.8.1/build/","comboBase":"http://yui.yahooapis.com/combo?","skin":{"defaultSkin":"sam","base":"assets/skins/","path":"skin.css","after":["reset","fonts","grids","base"],"rollup":3},dupsAllowed:["yahoo","get"],"moduleInfo":{"animation":{"type":"js","path":"animation/animation-min.js","requires":["dom","event"]},"autocomplete":{"type":"js","path":"autocomplete/autocomplete-min.js","requires":["dom","event","datasource"],"optional":["connection","animation"],"skinnable":true},"base":{"type":"css","path":"base/base-min.css","after":["reset","fonts","grids"]},"button":{"type":"js","path":"button/button-min.js","requires":["element"],"optional":["menu"],"skinnable":true},"calendar":{"type":"js","path":"calendar/calendar-min.js","requires":["event","dom"],supersedes:["datemeth"],"skinnable":true},"carousel":{"type":"js","path":"carousel/carousel-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"charts":{"type":"js","path":"charts/charts-min.js","requires":["element","json","datasource","swf"]},"colorpicker":{"type":"js","path":"colorpicker/colorpicker-min.js","requires":["slider","element"],"optional":["animation"],"skinnable":true},"connection":{"type":"js","path":"connection/connection-min.js","requires":["event"],"supersedes":["connectioncore"]},"connectioncore":{"type":"js","path":"connection/connection_core-min.js","requires":["event"],"pkg":"connection"},"container":{"type":"js","path":"container/container-min.js","requires":["dom","event"],"optional":["dragdrop","animation","connection"],"supersedes":["containercore"],"skinnable":true},"containercore":{"type":"js","path":"container/container_core-min.js","requires":["dom","event"],"pkg":"container"},"cookie":{"type":"js","path":"cookie/cookie-min.js","requires":["yahoo"]},"datasource":{"type":"js","path":"datasource/datasource-min.js","requires":["event"],"optional":["connection"]},"datatable":{"type":"js","path":"datatable/datatable-min.js","requires":["element","datasource"],"optional":["calendar","dragdrop","paginator"],"skinnable":true},datemath:{"type":"js","path":"datemath/datemath-min.js","requires":["yahoo"]},"dom":{"type":"js","path":"dom/dom-min.js","requires":["yahoo"]},"dragdrop":{"type":"js","path":"dragdrop/dragdrop-min.js","requires":["dom","event"]},"editor":{"type":"js","path":"editor/editor-min.js","requires":["menu","element","button"],"optional":["animation","dragdrop"],"supersedes":["simpleeditor"],"skinnable":true},"element":{"type":"js","path":"element/element-min.js","requires":["dom","event"],"optional":["event-mouseenter","event-delegate"]},"element-delegate":{"type":"js","path":"element-delegate/element-delegate-min.js","requires":["element"]},"event":{"type":"js","path":"event/event-min.js","requires":["yahoo"]},"event-simulate":{"type":"js","path":"event-simulate/event-simulate-min.js","requires":["event"]},"event-delegate":{"type":"js","path":"event-delegate/event-delegate-min.js","requires":["event"],"optional":["selector"]},"event-mouseenter":{"type":"js","path":"event-mouseenter/event-mouseenter-min.js","requires":["dom","event"]},"fonts":{"type":"css","path":"fonts/fonts-min.css"},"get":{"type":"js","path":"get/get-min.js","requires":["yahoo"]},"grids":{"type":"css","path":"grids/grids-min.css","requires":["fonts"],"optional":["reset"]},"history":{"type":"js","path":"history/history-min.js","requires":["event"]},"imagecropper":{"type":"js","path":"imagecropper/imagecropper-min.js","requires":["dragdrop","element","resize"],"skinnable":true},"imageloader":{"type":"js","path":"imageloader/imageloader-min.js","requires":["event","dom"]},"json":{"type":"js","path":"json/json-min.js","requires":["yahoo"]},"layout":{"type":"js","path":"layout/layout-min.js","requires":["element"],"optional":["animation","dragdrop","resize","selector"],"skinnable":true},"logger":{"type":"js","path":"logger/logger-min.js","requires":["event","dom"],"optional":["dragdrop"],"skinnable":true},"menu":{"type":"js","path":"menu/menu-min.js","requires":["containercore"],"skinnable":true},"paginator":{"type":"js","path":"paginator/paginator-min.js","requires":["element"],"skinnable":true},"profiler":{"type":"js","path":"profiler/profiler-min.js","requires":["yahoo"]},"profilerviewer":{"type":"js","path":"profilerviewer/profilerviewer-min.js","requires":["profiler","yuiloader","element"],"skinnable":true},"progressbar":{"type":"js","path":"progressbar/progressbar-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"reset":{"type":"css","path":"reset/reset-min.css"},"reset-fonts-grids":{"type":"css","path":"reset-fonts-grids/reset-fonts-grids.css","supersedes":["reset","fonts","grids","reset-fonts"],"rollup":4},"reset-fonts":{"type":"css","path":"reset-fonts/reset-fonts.css","supersedes":["reset","fonts"],"rollup":2},"resize":{"type":"js","path":"resize/resize-min.js","requires":["dragdrop","element"],"optional":["animation"],"skinnable":true},"selector":{"type":"js","path":"selector/selector-min.js","requires":["yahoo","dom"]},"simpleeditor":{"type":"js","path":"editor/simpleeditor-min.js","requires":["element"],"optional":["containercore","menu","button","animation","dragdrop"],"skinnable":true,"pkg":"editor"},"slider":{"type":"js","path":"slider/slider-min.js","requires":["dragdrop"],"optional":["animation"],"skinnable":true},"storage":{"type":"js","path":"storage/storage-min.js","requires":["yahoo","event","cookie"],"optional":["swfstore"]},"stylesheet":{"type":"js","path":"stylesheet/stylesheet-min.js","requires":["yahoo"]},"swf":{"type":"js","path":"swf/swf-min.js","requires":["element"],"supersedes":["swfdetect"]},"swfdetect":{"type":"js","path":"swfdetect/swfdetect-min.js","requires":["yahoo"]},"swfstore":{"type":"js","path":"swfstore/swfstore-min.js","requires":["element","cookie","swf"]},"tabview":{"type":"js","path":"tabview/tabview-min.js","requires":["element"],"optional":["connection"],"skinnable":true},"treeview":{"type":"js","path":"treeview/treeview-min.js","requires":["event","dom"],"optional":["json","animation","calendar"],"skinnable":true},"uploader":{"type":"js","path":"uploader/uploader-min.js","requires":["element"]},"utilities":{"type":"js","path":"utilities/utilities.js","supersedes":["yahoo","event","dragdrop","animation","dom","connection","element","yahoo-dom-event","get","yuiloader","yuiloader-dom-event"],"rollup":8},"yahoo":{"type":"js","path":"yahoo/yahoo-min.js"},"yahoo-dom-event":{"type":"js","path":"yahoo-dom-event/yahoo-dom-event.js","supersedes":["yahoo","event","dom"],"rollup":3},"yuiloader":{"type":"js","path":"yuiloader/yuiloader-min.js","supersedes":["yahoo","get"]},"yuiloader-dom-event":{"type":"js","path":"yuiloader-dom-event/yuiloader-dom-event.js","supersedes":["yahoo","dom","event","get","yuiloader","yahoo-dom-event"],"rollup":5},"yuitest":{"type":"js","path":"yuitest/yuitest-min.js","requires":["logger"],"optional":["event-simulate"],"skinnable":true}}},ObjectUtil:{appendArray:function(o,a){if(a){for(var i=0;
+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.2r1",build:"7"});
+YAHOO.util.Get=function(){var M={},L=0,R=0,E=false,N=YAHOO.env.ua,S=YAHOO.lang;var J=function(W,T,X){var U=X||window,Y=U.document,Z=Y.createElement(W);for(var V in T){if(T[V]&&YAHOO.lang.hasOwnProperty(T,V)){Z.setAttribute(V,T[V]);}}return Z;};var I=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/css",rel:"stylesheet",href:U};if(T){S.augmentObject(W,T);}return J("link",W,V);};var P=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/javascript",src:U};if(T){S.augmentObject(W,T);}return J("script",W,V);};var A=function(T,U){return{tId:T.tId,win:T.win,data:T.data,nodes:T.nodes,msg:U,purge:function(){D(this.tId);}};};var B=function(T,W){var U=M[W],V=(S.isString(T))?U.win.document.getElementById(T):T;if(!V){Q(W,"target node not found: "+T);}return V;};var Q=function(W,V){var T=M[W];if(T.onFailure){var U=T.scope||T.win;T.onFailure.call(U,A(T,V));}};var C=function(W){var T=M[W];T.finished=true;if(T.aborted){var V="transaction "+W+" was aborted";Q(W,V);return;}if(T.onSuccess){var U=T.scope||T.win;T.onSuccess.call(U,A(T));}};var O=function(V){var T=M[V];if(T.onTimeout){var U=T.scope||T;T.onTimeout.call(U,A(T));}};var G=function(V,Z){var U=M[V];if(U.timer){U.timer.cancel();}if(U.aborted){var X="transaction "+V+" was aborted";Q(V,X);return;}if(Z){U.url.shift();if(U.varName){U.varName.shift();}}else{U.url=(S.isString(U.url))?[U.url]:U.url;if(U.varName){U.varName=(S.isString(U.varName))?[U.varName]:U.varName;}}var c=U.win,b=c.document,a=b.getElementsByTagName("head")[0],W;if(U.url.length===0){if(U.type==="script"&&N.webkit&&N.webkit<420&&!U.finalpass&&!U.varName){var Y=P(null,U.win,U.attributes);Y.innerHTML='YAHOO.util.Get._finalize("'+V+'");';U.nodes.push(Y);a.appendChild(Y);}else{C(V);}return;}var T=U.url[0];if(!T){U.url.shift();return G(V);}if(U.timeout){U.timer=S.later(U.timeout,U,O,V);}if(U.type==="script"){W=P(T,c,U.attributes);}else{W=I(T,c,U.attributes);}F(U.type,W,V,T,c,U.url.length);U.nodes.push(W);if(U.insertBefore){var e=B(U.insertBefore,V);if(e){e.parentNode.insertBefore(W,e);}}else{a.appendChild(W);}if((N.webkit||N.gecko)&&U.type==="css"){G(V,T);}};var K=function(){if(E){return;}E=true;for(var T in M){var U=M[T];if(U.autopurge&&U.finished){D(U.tId);delete M[T];}}E=false;};var D=function(Z){if(M[Z]){var T=M[Z],U=T.nodes,X=U.length,c=T.win.document,a=c.getElementsByTagName("head")[0],V,Y,W,b;if(T.insertBefore){V=B(T.insertBefore,Z);if(V){a=V.parentNode;}}for(Y=0;Y<X;Y=Y+1){W=U[Y];if(W.clearAttributes){W.clearAttributes();}else{for(b in W){delete W[b];}}a.removeChild(W);}T.nodes=[];}};var H=function(U,T,V){var X="q"+(L++);V=V||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[X]=S.merge(V,{tId:X,type:U,url:T,finished:false,aborted:false,nodes:[]});var W=M[X];W.win=W.win||window;W.scope=W.scope||W.win;W.autopurge=("autopurge" in W)?W.autopurge:(U==="script")?true:false;if(V.charset){W.attributes=W.attributes||{};W.attributes.charset=V.charset;}S.later(0,W,G,X);return{tId:X};};var F=function(c,X,W,U,Y,Z,b){var a=b||G;if(N.ie){X.onreadystatechange=function(){var d=this.readyState;if("loaded"===d||"complete"===d){X.onreadystatechange=null;a(W,U);}};}else{if(N.webkit){if(c==="script"){if(N.webkit>=420){X.addEventListener("load",function(){a(W,U);});}else{var T=M[W];if(T.varName){var V=YAHOO.util.Get.POLL_FREQ;T.maxattempts=YAHOO.util.Get.TIMEOUT/V;T.attempts=0;T._cache=T.varName[0].split(".");T.timer=S.later(V,T,function(j){var f=this._cache,e=f.length,d=this.win,g;for(g=0;g<e;g=g+1){d=d[f[g]];if(!d){this.attempts++;if(this.attempts++>this.maxattempts){var h="Over retry limit, giving up";T.timer.cancel();Q(W,h);}else{}return;}}T.timer.cancel();a(W,U);},null,true);}else{S.later(YAHOO.util.Get.POLL_FREQ,null,a,[W,U]);}}}}else{X.onload=function(){a(W,U);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(T){S.later(0,null,C,T);},abort:function(U){var V=(S.isString(U))?U:U.tId;var T=M[V];if(T){T.aborted=true;}},script:function(T,U){return H("script",T,U);},css:function(T,U){return H("css",T,U);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.8.2r1",build:"7"});(function(){var Y=YAHOO,util=Y.util,lang=Y.lang,env=Y.env,PROV="_provides",SUPER="_supersedes",REQ="expanded",AFTER="_after";var YUI={dupsAllowed:{"yahoo":true,"get":true},info:{"root":"2.8.2r1/build/","base":"http://yui.yahooapis.com/2.8.2r1/build/","comboBase":"http://yui.yahooapis.com/combo?","skin":{"defaultSkin":"sam","base":"assets/skins/","path":"skin.css","after":["reset","fonts","grids","base"],"rollup":3},dupsAllowed:["yahoo","get"],"moduleInfo":{"animation":{"type":"js","path":"animation/animation-min.js","requires":["dom","event"]},"autocomplete":{"type":"js","path":"autocomplete/autocomplete-min.js","requires":["dom","event","datasource"],"optional":["connection","animation"],"skinnable":true},"base":{"type":"css","path":"base/base-min.css","after":["reset","fonts","grids"]},"button":{"type":"js","path":"button/button-min.js","requires":["element"],"optional":["menu"],"skinnable":true},"calendar":{"type":"js","path":"calendar/calendar-min.js","requires":["event","dom"],supersedes:["datemeth"],"skinnable":true},"carousel":{"type":"js","path":"carousel/carousel-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"charts":{"type":"js","path":"charts/charts-min.js","requires":["element","json","datasource","swf"]},"colorpicker":{"type":"js","path":"colorpicker/colorpicker-min.js","requires":["slider","element"],"optional":["animation"],"skinnable":true},"connection":{"type":"js","path":"connection/connection-min.js","requires":["event"],"supersedes":["connectioncore"]},"connectioncore":{"type":"js","path":"connection/connection_core-min.js","requires":["event"],"pkg":"connection"},"container":{"type":"js","path":"container/container-min.js","requires":["dom","event"],"optional":["dragdrop","animation","connection"],"supersedes":["containercore"],"skinnable":true},"containercore":{"type":"js","path":"container/container_core-min.js","requires":["dom","event"],"pkg":"container"},"cookie":{"type":"js","path":"cookie/cookie-min.js","requires":["yahoo"]},"datasource":{"type":"js","path":"datasource/datasource-min.js","requires":["event"],"optional":["connection"]},"datatable":{"type":"js","path":"datatable/datatable-min.js","requires":["element","datasource"],"optional":["calendar","dragdrop","paginator"],"skinnable":true},datemath:{"type":"js","path":"datemath/datemath-min.js","requires":["yahoo"]},"dom":{"type":"js","path":"dom/dom-min.js","requires":["yahoo"]},"dragdrop":{"type":"js","path":"dragdrop/dragdrop-min.js","requires":["dom","event"]},"editor":{"type":"js","path":"editor/editor-min.js","requires":["menu","element","button"],"optional":["animation","dragdrop"],"supersedes":["simpleeditor"],"skinnable":true},"element":{"type":"js","path":"element/element-min.js","requires":["dom","event"],"optional":["event-mouseenter","event-delegate"]},"element-delegate":{"type":"js","path":"element-delegate/element-delegate-min.js","requires":["element"]},"event":{"type":"js","path":"event/event-min.js","requires":["yahoo"]},"event-simulate":{"type":"js","path":"event-simulate/event-simulate-min.js","requires":["event"]},"event-delegate":{"type":"js","path":"event-delegate/event-delegate-min.js","requires":["event"],"optional":["selector"]},"event-mouseenter":{"type":"js","path":"event-mouseenter/event-mouseenter-min.js","requires":["dom","event"]},"fonts":{"type":"css","path":"fonts/fonts-min.css"},"get":{"type":"js","path":"get/get-min.js","requires":["yahoo"]},"grids":{"type":"css","path":"grids/grids-min.css","requires":["fonts"],"optional":["reset"]},"history":{"type":"js","path":"history/history-min.js","requires":["event"]},"imagecropper":{"type":"js","path":"imagecropper/imagecropper-min.js","requires":["dragdrop","element","resize"],"skinnable":true},"imageloader":{"type":"js","path":"imageloader/imageloader-min.js","requires":["event","dom"]},"json":{"type":"js","path":"json/json-min.js","requires":["yahoo"]},"layout":{"type":"js","path":"layout/layout-min.js","requires":["element"],"optional":["animation","dragdrop","resize","selector"],"skinnable":true},"logger":{"type":"js","path":"logger/logger-min.js","requires":["event","dom"],"optional":["dragdrop"],"skinnable":true},"menu":{"type":"js","path":"menu/menu-min.js","requires":["containercore"],"skinnable":true},"paginator":{"type":"js","path":"paginator/paginator-min.js","requires":["element"],"skinnable":true},"profiler":{"type":"js","path":"profiler/profiler-min.js","requires":["yahoo"]},"profilerviewer":{"type":"js","path":"profilerviewer/profilerviewer-min.js","requires":["profiler","yuiloader","element"],"skinnable":true},"progressbar":{"type":"js","path":"progressbar/progressbar-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"reset":{"type":"css","path":"reset/reset-min.css"},"reset-fonts-grids":{"type":"css","path":"reset-fonts-grids/reset-fonts-grids.css","supersedes":["reset","fonts","grids","reset-fonts"],"rollup":4},"reset-fonts":{"type":"css","path":"reset-fonts/reset-fonts.css","supersedes":["reset","fonts"],"rollup":2},"resize":{"type":"js","path":"resize/resize-min.js","requires":["dragdrop","element"],"optional":["animation"],"skinnable":true},"selector":{"type":"js","path":"selector/selector-min.js","requires":["yahoo","dom"]},"simpleeditor":{"type":"js","path":"editor/simpleeditor-min.js","requires":["element"],"optional":["containercore","menu","button","animation","dragdrop"],"skinnable":true,"pkg":"editor"},"slider":{"type":"js","path":"slider/slider-min.js","requires":["dragdrop"],"optional":["animation"],"skinnable":true},"storage":{"type":"js","path":"storage/storage-min.js","requires":["yahoo","event","cookie"],"optional":["swfstore"]},"stylesheet":{"type":"js","path":"stylesheet/stylesheet-min.js","requires":["yahoo"]},"swf":{"type":"js","path":"swf/swf-min.js","requires":["element"],"supersedes":["swfdetect"]},"swfdetect":{"type":"js","path":"swfdetect/swfdetect-min.js","requires":["yahoo"]},"swfstore":{"type":"js","path":"swfstore/swfstore-min.js","requires":["element","cookie","swf"]},"tabview":{"type":"js","path":"tabview/tabview-min.js","requires":["element"],"optional":["connection"],"skinnable":true},"treeview":{"type":"js","path":"treeview/treeview-min.js","requires":["event","dom"],"optional":["json","animation","calendar"],"skinnable":true},"uploader":{"type":"js","path":"uploader/uploader-min.js","requires":["element"]},"utilities":{"type":"js","path":"utilities/utilities.js","supersedes":["yahoo","event","dragdrop","animation","dom","connection","element","yahoo-dom-event","get","yuiloader","yuiloader-dom-event"],"rollup":8},"yahoo":{"type":"js","path":"yahoo/yahoo-min.js"},"yahoo-dom-event":{"type":"js","path":"yahoo-dom-event/yahoo-dom-event.js","supersedes":["yahoo","event","dom"],"rollup":3},"yuiloader":{"type":"js","path":"yuiloader/yuiloader-min.js","supersedes":["yahoo","get"]},"yuiloader-dom-event":{"type":"js","path":"yuiloader-dom-event/yuiloader-dom-event.js","supersedes":["yahoo","dom","event","get","yuiloader","yahoo-dom-event"],"rollup":5},"yuitest":{"type":"js","path":"yuitest/yuitest-min.js","requires":["logger"],"optional":["event-simulate"],"skinnable":true}}},ObjectUtil:{appendArray:function(o,a){if(a){for(var i=0;
 i<a.length;i=i+1){o[a[i]]=true;}}},keys:function(o,ordered){var a=[],i;for(i in o){if(lang.hasOwnProperty(o,i)){a.push(i);}}return a;}},ArrayUtil:{appendArray:function(a1,a2){Array.prototype.push.apply(a1,a2);},indexOf:function(a,val){for(var i=0;i<a.length;i=i+1){if(a[i]===val){return i;}}return -1;},toObject:function(a){var o={};for(var i=0;i<a.length;i=i+1){o[a[i]]=true;}return o;},uniq:function(a){return YUI.ObjectUtil.keys(YUI.ArrayUtil.toObject(a));}}};YAHOO.util.YUILoader=function(o){this._internalCallback=null;this._useYahooListener=false;this.onSuccess=null;this.onFailure=Y.log;this.onProgress=null;this.onTimeout=null;this.scope=this;this.data=null;this.insertBefore=null;this.charset=null;this.varName=null;this.base=YUI.info.base;this.comboBase=YUI.info.comboBase;this.combine=false;this.root=YUI.info.root;this.timeout=0;this.ignore=null;this.force=null;this.allowRollup=true;this.filter=null;this.required={};this.moduleInfo=lang.merge(YUI.info.moduleInfo);this.rollups=null;this.loadOptional=false;this.sorted=[];this.loaded={};this.dirty=true;this.inserted={};var self=this;env.listeners.push(function(m){if(self._useYahooListener){self.loadNext(m.name);}});this.skin=lang.merge(YUI.info.skin);this._config(o);};Y.util.YUILoader.prototype={FILTERS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},SKIN_PREFIX:"skin-",_config:function(o){if(o){for(var i in o){if(lang.hasOwnProperty(o,i)){if(i=="require"){this.require(o[i]);}else{this[i]=o[i];}}}}var f=this.filter;if(lang.isString(f)){f=f.toUpperCase();if(f==="DEBUG"){this.require("logger");}if(!Y.widget.LogWriter){Y.widget.LogWriter=function(){return Y;};}this.filter=this.FILTERS[f];}},addModule:function(o){if(!o||!o.name||!o.type||(!o.path&&!o.fullpath)){return false;}o.ext=("ext" in o)?o.ext:true;o.requires=o.requires||[];this.moduleInfo[o.name]=o;this.dirty=true;return true;},require:function(what){var a=(typeof what==="string")?arguments:what;this.dirty=true;YUI.ObjectUtil.appendArray(this.required,a);},_addSkin:function(skin,mod){var name=this.formatSkin(skin),info=this.moduleInfo,sinf=this.skin,ext=info[mod]&&info[mod].ext;if(!info[name]){this.addModule({"name":name,"type":"css","path":sinf.base+skin+"/"+sinf.path,"after":sinf.after,"rollup":sinf.rollup,"ext":ext});}if(mod){name=this.formatSkin(skin,mod);if(!info[name]){var mdef=info[mod],pkg=mdef.pkg||mod;this.addModule({"name":name,"type":"css","after":sinf.after,"path":pkg+"/"+sinf.base+skin+"/"+mod+".css","ext":ext});}}return name;},getRequires:function(mod){if(!mod){return[];}if(!this.dirty&&mod.expanded){return mod.expanded;}mod.requires=mod.requires||[];var i,d=[],r=mod.requires,o=mod.optional,info=this.moduleInfo,m;for(i=0;i<r.length;i=i+1){d.push(r[i]);m=info[r[i]];YUI.ArrayUtil.appendArray(d,this.getRequires(m));}if(o&&this.loadOptional){for(i=0;i<o.length;i=i+1){d.push(o[i]);YUI.ArrayUtil.appendArray(d,this.getRequires(info[o[i]]));}}mod.expanded=YUI.ArrayUtil.uniq(d);return mod.expanded;},getProvides:function(name,notMe){var addMe=!(notMe),ckey=(addMe)?PROV:SUPER,m=this.moduleInfo[name],o={};if(!m){return o;}if(m[ckey]){return m[ckey];}var s=m.supersedes,done={},me=this;var add=function(mm){if(!done[mm]){done[mm]=true;lang.augmentObject(o,me.getProvides(mm));}};if(s){for(var i=0;i<s.length;i=i+1){add(s[i]);}}m[SUPER]=o;m[PROV]=lang.merge(o);m[PROV][name]=true;return m[ckey];},calculate:function(o){if(o||this.dirty){this._config(o);this._setup();this._explode();if(this.allowRollup){this._rollup();}this._reduce();this._sort();this.dirty=false;}},_setup:function(){var info=this.moduleInfo,name,i,j;for(name in info){if(lang.hasOwnProperty(info,name)){var m=info[name];if(m&&m.skinnable){var o=this.skin.overrides,smod;if(o&&o[name]){for(i=0;i<o[name].length;i=i+1){smod=this._addSkin(o[name][i],name);}}else{smod=this._addSkin(this.skin.defaultSkin,name);}m.requires.push(smod);}}}var l=lang.merge(this.inserted);if(!this._sandbox){l=lang.merge(l,env.modules);}if(this.ignore){YUI.ObjectUtil.appendArray(l,this.ignore);}if(this.force){for(i=0;i<this.force.length;i=i+1){if(this.force[i] in l){delete l[this.force[i]];}}}for(j in l){if(lang.hasOwnProperty(l,j)){lang.augmentObject(l,this.getProvides(j));}}this.loaded=l;},_explode:function(){var r=this.required,i,mod;for(i in r){if(lang.hasOwnProperty(r,i)){mod=this.moduleInfo[i];if(mod){var req=this.getRequires(mod);if(req){YUI.ObjectUtil.appendArray(r,req);}}}}},_skin:function(){},formatSkin:function(skin,mod){var s=this.SKIN_PREFIX+skin;if(mod){s=s+"-"+mod;}return s;},parseSkin:function(mod){if(mod.indexOf(this.SKIN_PREFIX)===0){var a=mod.split("-");return{skin:a[1],module:a[2]};}return null;},_rollup:function(){var i,j,m,s,rollups={},r=this.required,roll,info=this.moduleInfo;if(this.dirty||!this.rollups){for(i in info){if(lang.hasOwnProperty(info,i)){m=info[i];if(m&&m.rollup){rollups[i]=m;}}}this.rollups=rollups;}for(;;){var rolled=false;for(i in rollups){if(!r[i]&&!this.loaded[i]){m=info[i];s=m.supersedes;roll=false;if(!m.rollup){continue;}var skin=(m.ext)?false:this.parseSkin(i),c=0;if(skin){for(j in r){if(lang.hasOwnProperty(r,j)){if(i!==j&&this.parseSkin(j)){c++;roll=(c>=m.rollup);if(roll){break;}}}}}else{for(j=0;j<s.length;j=j+1){if(this.loaded[s[j]]&&(!YUI.dupsAllowed[s[j]])){roll=false;break;}else{if(r[s[j]]){c++;roll=(c>=m.rollup);if(roll){break;}}}}}if(roll){r[i]=true;rolled=true;this.getRequires(m);}}}if(!rolled){break;}}},_reduce:function(){var i,j,s,m,r=this.required;for(i in r){if(i in this.loaded){delete r[i];}else{var skinDef=this.parseSkin(i);if(skinDef){if(!skinDef.module){var skin_pre=this.SKIN_PREFIX+skinDef.skin;for(j in r){if(lang.hasOwnProperty(r,j)){m=this.moduleInfo[j];var ext=m&&m.ext;if(!ext&&j!==i&&j.indexOf(skin_pre)>-1){delete r[j];}}}}}else{m=this.moduleInfo[i];s=m&&m.supersedes;if(s){for(j=0;j<s.length;j=j+1){if(s[j] in r){delete r[s[j]];}}}}}}},_onFailure:function(msg){YAHOO.log("Failure","info","loader");var f=this.onFailure;if(f){f.call(this.scope,{msg:"failure: "+msg,data:this.data,success:false});
-}},_onTimeout:function(){YAHOO.log("Timeout","info","loader");var f=this.onTimeout;if(f){f.call(this.scope,{msg:"timeout",data:this.data,success:false});}},_sort:function(){var s=[],info=this.moduleInfo,loaded=this.loaded,checkOptional=!this.loadOptional,me=this;var requires=function(aa,bb){var mm=info[aa];if(loaded[bb]||!mm){return false;}var ii,rr=mm.expanded,after=mm.after,other=info[bb],optional=mm.optional;if(rr&&YUI.ArrayUtil.indexOf(rr,bb)>-1){return true;}if(after&&YUI.ArrayUtil.indexOf(after,bb)>-1){return true;}if(checkOptional&&optional&&YUI.ArrayUtil.indexOf(optional,bb)>-1){return true;}var ss=info[bb]&&info[bb].supersedes;if(ss){for(ii=0;ii<ss.length;ii=ii+1){if(requires(aa,ss[ii])){return true;}}}if(mm.ext&&mm.type=="css"&&!other.ext&&other.type=="css"){return true;}return false;};for(var i in this.required){if(lang.hasOwnProperty(this.required,i)){s.push(i);}}var p=0;for(;;){var l=s.length,a,b,j,k,moved=false;for(j=p;j<l;j=j+1){a=s[j];for(k=j+1;k<l;k=k+1){if(requires(a,s[k])){b=s.splice(k,1);s.splice(j,0,b[0]);moved=true;break;}}if(moved){break;}else{p=p+1;}}if(!moved){break;}}this.sorted=s;},toString:function(){var o={type:"YUILoader",base:this.base,filter:this.filter,required:this.required,loaded:this.loaded,inserted:this.inserted};lang.dump(o,1);},_combine:function(){this._combining=[];var self=this,s=this.sorted,len=s.length,js=this.comboBase,css=this.comboBase,target,startLen=js.length,i,m,type=this.loadType;YAHOO.log("type "+type);for(i=0;i<len;i=i+1){m=this.moduleInfo[s[i]];if(m&&!m.ext&&(!type||type===m.type)){target=this.root+m.path;target+="&";if(m.type=="js"){js+=target;}else{css+=target;}this._combining.push(s[i]);}}if(this._combining.length){YAHOO.log("Attempting to combine: "+this._combining,"info","loader");var callback=function(o){var c=this._combining,len=c.length,i,m;for(i=0;i<len;i=i+1){this.inserted[c[i]]=true;}this.loadNext(o.data);},loadScript=function(){if(js.length>startLen){YAHOO.util.Get.script(self._filter(js),{data:self._loading,onSuccess:callback,onFailure:self._onFailure,onTimeout:self._onTimeout,insertBefore:self.insertBefore,charset:self.charset,timeout:self.timeout,scope:self});}};if(css.length>startLen){YAHOO.util.Get.css(this._filter(css),{data:this._loading,onSuccess:loadScript,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,scope:self});}else{loadScript();}return;}else{this.loadNext(this._loading);}},insert:function(o,type){this.calculate(o);this._loading=true;this.loadType=type;if(this.combine){return this._combine();}if(!type){var self=this;this._internalCallback=function(){self._internalCallback=null;self.insert(null,"js");};this.insert(null,"css");return;}this.loadNext();},sandbox:function(o,type){this._config(o);if(!this.onSuccess){throw new Error("You must supply an onSuccess handler for your sandbox");}this._sandbox=true;var self=this;if(!type||type!=="js"){this._internalCallback=function(){self._internalCallback=null;self.sandbox(null,"js");};this.insert(null,"css");return;}if(!util.Connect){var ld=new YAHOO.util.YUILoader();ld.insert({base:this.base,filter:this.filter,require:"connection",insertBefore:this.insertBefore,charset:this.charset,onSuccess:function(){this.sandbox(null,"js");},scope:this},"js");return;}this._scriptText=[];this._loadCount=0;this._stopCount=this.sorted.length;this._xhr=[];this.calculate();var s=this.sorted,l=s.length,i,m,url;for(i=0;i<l;i=i+1){m=this.moduleInfo[s[i]];if(!m){this._onFailure("undefined module "+m);for(var j=0;j<this._xhr.length;j=j+1){this._xhr[j].abort();}return;}if(m.type!=="js"){this._loadCount++;continue;}url=m.fullpath;url=(url)?this._filter(url):this._url(m.path);var xhrData={success:function(o){var idx=o.argument[0],name=o.argument[2];this._scriptText[idx]=o.responseText;if(this.onProgress){this.onProgress.call(this.scope,{name:name,scriptText:o.responseText,xhrResponse:o,data:this.data});}this._loadCount++;if(this._loadCount>=this._stopCount){var v=this.varName||"YAHOO";var t="(function() {\n";var b="\nreturn "+v+";\n})();";var ref=eval(t+this._scriptText.join("\n")+b);this._pushEvents(ref);if(ref){this.onSuccess.call(this.scope,{reference:ref,data:this.data});}else{this._onFailure.call(this.varName+" reference failure");}}},failure:function(o){this.onFailure.call(this.scope,{msg:"XHR failure",xhrResponse:o,data:this.data});},scope:this,argument:[i,url,s[i]]};this._xhr.push(util.Connect.asyncRequest("GET",url,xhrData));}},loadNext:function(mname){if(!this._loading){return;}if(mname){if(mname!==this._loading){return;}this.inserted[mname]=true;if(this.onProgress){this.onProgress.call(this.scope,{name:mname,data:this.data});}}var s=this.sorted,len=s.length,i,m;for(i=0;i<len;i=i+1){if(s[i] in this.inserted){continue;}if(s[i]===this._loading){return;}m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});return;}if(!this.loadType||this.loadType===m.type){this._loading=s[i];var fn=(m.type==="css")?util.Get.css:util.Get.script,url=m.fullpath,self=this,c=function(o){self.loadNext(o.data);};url=(url)?this._filter(url):this._url(m.path);if(env.ua.webkit&&env.ua.webkit<420&&m.type==="js"&&!m.varName){c=null;this._useYahooListener=true;}fn(url,{data:s[i],onSuccess:c,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,varName:m.varName,scope:self});return;}}this._loading=null;if(this._internalCallback){var f=this._internalCallback;this._internalCallback=null;f.call(this);}else{if(this.onSuccess){this._pushEvents();this.onSuccess.call(this.scope,{data:this.data});}}},_pushEvents:function(ref){var r=ref||YAHOO;if(r.util&&r.util.Event){r.util.Event._load();}},_filter:function(str){var f=this.filter;return(f)?str.replace(new RegExp(f.searchExp,"g"),f.replaceStr):str;},_url:function(path){return this._filter((this.base||"")+path);}};})();YAHOO.register("yuiloader",YAHOO.util.YUILoader,{version:"2.8.1",build:"19"});
+}},_onTimeout:function(){YAHOO.log("Timeout","info","loader");var f=this.onTimeout;if(f){f.call(this.scope,{msg:"timeout",data:this.data,success:false});}},_sort:function(){var s=[],info=this.moduleInfo,loaded=this.loaded,checkOptional=!this.loadOptional,me=this;var requires=function(aa,bb){var mm=info[aa];if(loaded[bb]||!mm){return false;}var ii,rr=mm.expanded,after=mm.after,other=info[bb],optional=mm.optional;if(rr&&YUI.ArrayUtil.indexOf(rr,bb)>-1){return true;}if(after&&YUI.ArrayUtil.indexOf(after,bb)>-1){return true;}if(checkOptional&&optional&&YUI.ArrayUtil.indexOf(optional,bb)>-1){return true;}var ss=info[bb]&&info[bb].supersedes;if(ss){for(ii=0;ii<ss.length;ii=ii+1){if(requires(aa,ss[ii])){return true;}}}if(mm.ext&&mm.type=="css"&&!other.ext&&other.type=="css"){return true;}return false;};for(var i in this.required){if(lang.hasOwnProperty(this.required,i)){s.push(i);}}var p=0;for(;;){var l=s.length,a,b,j,k,moved=false;for(j=p;j<l;j=j+1){a=s[j];for(k=j+1;k<l;k=k+1){if(requires(a,s[k])){b=s.splice(k,1);s.splice(j,0,b[0]);moved=true;break;}}if(moved){break;}else{p=p+1;}}if(!moved){break;}}this.sorted=s;},toString:function(){var o={type:"YUILoader",base:this.base,filter:this.filter,required:this.required,loaded:this.loaded,inserted:this.inserted};lang.dump(o,1);},_combine:function(){this._combining=[];var self=this,s=this.sorted,len=s.length,js=this.comboBase,css=this.comboBase,target,startLen=js.length,i,m,type=this.loadType;YAHOO.log("type "+type);for(i=0;i<len;i=i+1){m=this.moduleInfo[s[i]];if(m&&!m.ext&&(!type||type===m.type)){target=this.root+m.path;target+="&";if(m.type=="js"){js+=target;}else{css+=target;}this._combining.push(s[i]);}}if(this._combining.length){YAHOO.log("Attempting to combine: "+this._combining,"info","loader");var callback=function(o){var c=this._combining,len=c.length,i,m;for(i=0;i<len;i=i+1){this.inserted[c[i]]=true;}this.loadNext(o.data);},loadScript=function(){if(js.length>startLen){YAHOO.util.Get.script(self._filter(js),{data:self._loading,onSuccess:callback,onFailure:self._onFailure,onTimeout:self._onTimeout,insertBefore:self.insertBefore,charset:self.charset,timeout:self.timeout,scope:self});}};if(css.length>startLen){YAHOO.util.Get.css(this._filter(css),{data:this._loading,onSuccess:loadScript,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,scope:self});}else{loadScript();}return;}else{this.loadNext(this._loading);}},insert:function(o,type){this.calculate(o);this._loading=true;this.loadType=type;if(this.combine){return this._combine();}if(!type){var self=this;this._internalCallback=function(){self._internalCallback=null;self.insert(null,"js");};this.insert(null,"css");return;}this.loadNext();},sandbox:function(o,type){this._config(o);if(!this.onSuccess){throw new Error("You must supply an onSuccess handler for your sandbox");}this._sandbox=true;var self=this;if(!type||type!=="js"){this._internalCallback=function(){self._internalCallback=null;self.sandbox(null,"js");};this.insert(null,"css");return;}if(!util.Connect){var ld=new YAHOO.util.YUILoader();ld.insert({base:this.base,filter:this.filter,require:"connection",insertBefore:this.insertBefore,charset:this.charset,onSuccess:function(){this.sandbox(null,"js");},scope:this},"js");return;}this._scriptText=[];this._loadCount=0;this._stopCount=this.sorted.length;this._xhr=[];this.calculate();var s=this.sorted,l=s.length,i,m,url;for(i=0;i<l;i=i+1){m=this.moduleInfo[s[i]];if(!m){this._onFailure("undefined module "+m);for(var j=0;j<this._xhr.length;j=j+1){this._xhr[j].abort();}return;}if(m.type!=="js"){this._loadCount++;continue;}url=m.fullpath;url=(url)?this._filter(url):this._url(m.path);var xhrData={success:function(o){var idx=o.argument[0],name=o.argument[2];this._scriptText[idx]=o.responseText;if(this.onProgress){this.onProgress.call(this.scope,{name:name,scriptText:o.responseText,xhrResponse:o,data:this.data});}this._loadCount++;if(this._loadCount>=this._stopCount){var v=this.varName||"YAHOO";var t="(function() {\n";var b="\nreturn "+v+";\n})();";var ref=eval(t+this._scriptText.join("\n")+b);this._pushEvents(ref);if(ref){this.onSuccess.call(this.scope,{reference:ref,data:this.data});}else{this._onFailure.call(this.varName+" reference failure");}}},failure:function(o){this.onFailure.call(this.scope,{msg:"XHR failure",xhrResponse:o,data:this.data});},scope:this,argument:[i,url,s[i]]};this._xhr.push(util.Connect.asyncRequest("GET",url,xhrData));}},loadNext:function(mname){if(!this._loading){return;}if(mname){if(mname!==this._loading){return;}this.inserted[mname]=true;if(this.onProgress){this.onProgress.call(this.scope,{name:mname,data:this.data});}}var s=this.sorted,len=s.length,i,m;for(i=0;i<len;i=i+1){if(s[i] in this.inserted){continue;}if(s[i]===this._loading){return;}m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});return;}if(!this.loadType||this.loadType===m.type){this._loading=s[i];var fn=(m.type==="css")?util.Get.css:util.Get.script,url=m.fullpath,self=this,c=function(o){self.loadNext(o.data);};url=(url)?this._filter(url):this._url(m.path);if(env.ua.webkit&&env.ua.webkit<420&&m.type==="js"&&!m.varName){c=null;this._useYahooListener=true;}fn(url,{data:s[i],onSuccess:c,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,varName:m.varName,scope:self});return;}}this._loading=null;if(this._internalCallback){var f=this._internalCallback;this._internalCallback=null;f.call(this);}else{if(this.onSuccess){this._pushEvents();this.onSuccess.call(this.scope,{data:this.data});}}},_pushEvents:function(ref){var r=ref||YAHOO;if(r.util&&r.util.Event){r.util.Event._load();}},_filter:function(str){var f=this.filter;return(f)?str.replace(new RegExp(f.searchExp,"g"),f.replaceStr):str;},_url:function(path){return this._filter((this.base||"")+path);}};})();YAHOO.register("yuiloader",YAHOO.util.YUILoader,{version:"2.8.2r1",build:"7"});
 (function(){YAHOO.env._id_counter=YAHOO.env._id_counter||0;var E=YAHOO.util,L=YAHOO.lang,m=YAHOO.env.ua,A=YAHOO.lang.trim,d={},h={},N=/^t(?:able|d|h)$/i,X=/color$/i,K=window.document,W=K.documentElement,e="ownerDocument",n="defaultView",v="documentElement",t="compatMode",b="offsetLeft",P="offsetTop",u="offsetParent",Z="parentNode",l="nodeType",C="tagName",O="scrollLeft",i="scrollTop",Q="getBoundingClientRect",w="getComputedStyle",a="currentStyle",M="CSS1Compat",c="BackCompat",g="class",F="className",J="",B=" ",s="(?:^|\\s)",k="(?= |$)",U="g",p="position",f="fixed",V="relative",j="left",o="top",r="medium",q="borderLeftWidth",R="borderTopWidth",D=m.opera,I=m.webkit,H=m.gecko,T=m.ie;E.Dom={CUSTOM_ATTRIBUTES:(!W.hasAttribute)?{"for":"htmlFor","class":F}:{"htmlFor":"for","className":g},DOT_ATTRIBUTES:{},get:function(z){var AB,x,AA,y,Y,G;if(z){if(z[l]||z.item){return z;}if(typeof z==="string"){AB=z;z=K.getElementById(z);G=(z)?z.attributes:null;if(z&&G&&G.id&&G.id.value===AB){return z;}else{if(z&&K.all){z=null;x=K.all[AB];for(y=0,Y=x.length;y<Y;++y){if(x[y].id===AB){return x[y];}}}}return z;}if(YAHOO.util.Element&&z instanceof YAHOO.util.Element){z=z.get("element");}if("length" in z){AA=[];for(y=0,Y=z.length;y<Y;++y){AA[AA.length]=E.Dom.get(z[y]);}return AA;}return z;}return null;},getComputedStyle:function(G,Y){if(window[w]){return G[e][n][w](G,null)[Y];}else{if(G[a]){return E.Dom.IE_ComputedStyle.get(G,Y);}}},getStyle:function(G,Y){return E.Dom.batch(G,E.Dom._getStyle,Y);},_getStyle:function(){if(window[w]){return function(G,y){y=(y==="float")?y="cssFloat":E.Dom._toCamel(y);var x=G.style[y],Y;if(!x){Y=G[e][n][w](G,null);if(Y){x=Y[y];}}return x;};}else{if(W[a]){return function(G,y){var x;switch(y){case"opacity":x=100;try{x=G.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(z){try{x=G.filters("alpha").opacity;}catch(Y){}}return x/100;case"float":y="styleFloat";default:y=E.Dom._toCamel(y);x=G[a]?G[a][y]:null;return(G.style[y]||x);}};}}}(),setStyle:function(G,Y,x){E.Dom.batch(G,E.Dom._setStyle,{prop:Y,val:x});},_setStyle:function(){if(T){return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){switch(x){case"opacity":if(L.isString(Y.style.filter)){Y.style.filter="alpha(opacity="+y*100+")";if(!Y[a]||!Y[a].hasLayout){Y.style.zoom=1;}}break;case"float":x="styleFloat";default:Y.style[x]=y;}}else{}};}else{return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){if(x=="float"){x="cssFloat";}Y.style[x]=y;}else{}};}}(),getXY:function(G){return E.Dom.batch(G,E.Dom._getXY);},_canPosition:function(G){return(E.Dom._getStyle(G,"display")!=="none"&&E.Dom._inDoc(G));},_getXY:function(){if(K[v][Q]){return function(y){var z,Y,AA,AF,AE,AD,AC,G,x,AB=Math.floor,AG=false;if(E.Dom._canPosition(y)){AA=y[Q]();AF=y[e];z=E.Dom.getDocumentScrollLeft(AF);Y=E.Dom.getDocumentScrollTop(AF);AG=[AB(AA[j]),AB(AA[o])];if(T&&m.ie<8){AE=2;AD=2;AC=AF[t];if(m.ie===6){if(AC!==c){AE=0;AD=0;}}if((AC===c)){G=S(AF[v],q);x=S(AF[v],R);if(G!==r){AE=parseInt(G,10);}if(x!==r){AD=parseInt(x,10);}}AG[0]-=AE;AG[1]-=AD;}if((Y||z)){AG[0]+=z;AG[1]+=Y;}AG[0]=AB(AG[0]);AG[1]=AB(AG[1]);}else{}return AG;};}else{return function(y){var x,Y,AA,AB,AC,z=false,G=y;if(E.Dom._canPosition(y)){z=[y[b],y[P]];x=E.Dom.getDocumentScrollLeft(y[e]);Y=E.Dom.getDocumentScrollTop(y[e]);AC=((H||m.webkit>519)?true:false);while((G=G[u])){z[0]+=G[b];z[1]+=G[P];if(AC){z=E.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!==f){G=y;while((G=G[Z])&&G[C]){AA=G[i];AB=G[O];if(H&&(E.Dom._getStyle(G,"overflow")!=="visible")){z=E.Dom._calcBorders(G,z);}if(AA||AB){z[0]-=AB;z[1]-=AA;}}z[0]+=x;z[1]+=Y;}else{if(D){z[0]-=x;z[1]-=Y;}else{if(I||H){z[0]+=x;z[1]+=Y;}}}z[0]=Math.floor(z[0]);z[1]=Math.floor(z[1]);}else{}return z;};}}(),getX:function(G){var Y=function(x){return E.Dom.getXY(x)[0];};return E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var Y=function(x){return E.Dom.getXY(x)[1];};return E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var AA=E.Dom._getStyle(G,p),y=E.Dom.setStyle,AD=z.pos,Y=z.noRetry,AB=[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle(G,o),10)],AC,x;if(AA=="static"){AA=V;y(G,p,AA);}AC=E.Dom._getXY(G);if(!AD||AC===false){return false;}if(isNaN(AB[0])){AB[0]=(AA==V)?0:G[b];}if(isNaN(AB[1])){AB[1]=(AA==V)?0:G[P];}if(AD[0]!==null){y(G,j,AD[0]-AC[0]+AB[0]+"px");}if(AD[1]!==null){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=E.Dom._getXY(G);if((AD[0]!==null&&x[0]!=AD[0])||(AD[1]!==null&&x[1]!=AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Dom.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getRegion:function(G){var Y=function(x){var y=false;if(E.Dom._canPosition(x)){y=E.Region.getRegion(x);}else{}return y;};return E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return E.Dom.getViewportWidth();},getClientHeight:function(){return E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x,AD){AF=AF||"*";AC=(AC)?E.Dom.get(AC):null||K;if(!AC){return[];}var Y=[],G=AC.getElementsByTagName(AF),z=E.Dom.hasClass;for(var y=0,AA=G.length;y<AA;++y){if(z(G[y],AB)){Y[Y.length]=G[y];}}if(AE){E.Dom.batch(Y,AE,x,AD);}return Y;},hasClass:function(Y,G){return E.Dom.batch(Y,E.Dom._hasClass,G);},_hasClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom._getAttribute(x,F)||J;if(Y.exec){G=Y.test(y);}else{G=Y&&(B+y+B).indexOf(B+Y+B)>-1;}}else{}return G;},addClass:function(Y,G){return E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom._getAttribute(x,F)||J;if(!E.Dom._hasClass(x,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=true;}}else{}return G;},removeClass:function(Y,G){return E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var Y=false,AA,z,G;if(y&&x){AA=E.Dom._getAttribute(y,F)||J;E.Dom.setAttribute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=E.Dom._getAttribute(y,F);if(AA!==z){E.Dom.setAttribute(y,F,A(z));Y=true;if(E.Dom._getAttribute(y,F)===""){G=(y.hasAttribute&&y.hasAttribute(g))?g:F;
 y.removeAttribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G});},_replaceClass:function(y,x){var Y,AB,AA,G=false,z;if(y&&x){AB=x.from;AA=x.to;if(!AA){G=false;}else{if(!AB){G=E.Dom._addClass(y,x.to);}else{if(AB!==AA){z=E.Dom._getAttribute(y,F)||J;Y=(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.join(J)));G=true;}}}}else{}return G;},generateId:function(G,x){x=x||"yui-gen";var Y=function(y){if(y&&y.id){return y.id;}var z=x+YAHOO.env._id_counter++;if(y){if(y[e]&&y[e].getElementById(z)){return E.Dom.generateId(y,z+x);}y.id=z;}return z;};return E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:function(Y,x){Y=E.Dom.get(Y);x=E.Dom.get(x);var G=false;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!==x){G=Y.contains(x);}else{if(Y.compareDocumentPosition){G=!!(Y.compareDocumentPosition(x)&16);}}}else{}return G;},inDocument:function(G,Y){return E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var G=false;if(Y&&Y[C]){x=x||Y[e];G=E.Dom.isAncestor(x[v],Y);}else{}return G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=AF||"*";AB=(AB)?E.Dom.get(AB):null||K;if(!AB){return[];}var x=[],G=AB.getElementsByTagName(AF);for(var z=0,AA=G.length;z<AA;++z){if(Y(G[z])){if(AE){x=G[z];break;}else{x[x.length]=G[z];}}}if(AD){E.Dom.batch(x,AD,y,AC);}return x;},getElementBy:function(x,G,Y){return E.Dom.getElementsBy(x,G,Y,null,null,null,true);},batch:function(x,AB,AA,z){var y=[],Y=(z)?AA:window;x=(x&&(x[C]||x.item))?x:E.Dom.get(x);if(x&&AB){if(x[C]||x.length===undefined){return AB.call(Y,x,AA);}for(var G=0;G<x.length;++G){y[y.length]=AB.call(Y,x[G],AA);}}else{return false;}return y;},getDocumentHeight:function(){var Y=(K[t]!=M||I)?K.body.scrollHeight:W.scrollHeight,G=Math.max(Y,E.Dom.getViewportHeight());return G;},getDocumentWidth:function(){var Y=(K[t]!=M||I)?K.body.scrollWidth:W.scrollWidth,G=Math.max(Y,E.Dom.getViewportWidth());return G;},getViewportHeight:function(){var G=self.innerHeight,Y=K[t];if((Y||T)&&!D){G=(Y==M)?W.clientHeight:K.body.clientHeight;}return G;},getViewportWidth:function(){var G=self.innerWidth,Y=K[t];if(Y||T){G=(Y==M)?W.clientWidth:K.body.clientWidth;}return G;},getAncestorBy:function(G,Y){while((G=G[Z])){if(E.Dom._testElement(G,Y)){return G;}}return null;},getAncestorByClassName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return E.Dom.hasClass(y,G);};return E.Dom.getAncestorBy(Y,x);},getAncestorByTagName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return y[C]&&y[C].toUpperCase()==G.toUpperCase();};return E.Dom.getAncestorBy(Y,x);},getPreviousSiblingBy:function(G,Y){while(G){G=G.previousSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getPreviousSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getPreviousSiblingBy(G);},getNextSiblingBy:function(G,Y){while(G){G=G.nextSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getNextSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getNextSiblingBy(G);},getFirstChildBy:function(G,x){var Y=(E.Dom._testElement(G.firstChild,x))?G.firstChild:null;return Y||E.Dom.getNextSiblingBy(G.firstChild,x);},getFirstChild:function(G,Y){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getFirstChildBy(G);},getLastChildBy:function(G,x){if(!G){return null;}var Y=(E.Dom._testElement(G.lastChild,x))?G.lastChild:null;return Y||E.Dom.getPreviousSiblingBy(G.lastChild,x);},getLastChild:function(G){G=E.Dom.get(G);return E.Dom.getLastChildBy(G);},getChildrenBy:function(Y,y){var x=E.Dom.getFirstChildBy(Y,y),G=x?[x]:[];E.Dom.getNextSiblingBy(x,function(z){if(!y||y(z)){G[G.length]=z;}return false;});return G;},getChildren:function(G){G=E.Dom.get(G);if(!G){}return E.Dom.getChildrenBy(G);},getDocumentScrollLeft:function(G){G=G||K;return Math.max(G[v].scrollLeft,G.body.scrollLeft);},getDocumentScrollTop:function(G){G=G||K;return Math.max(G[v].scrollTop,G.body.scrollTop);},insertBefore:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}return G[Z].insertBefore(Y,G);},insertAfter:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}if(G.nextSibling){return G[Z].insertBefore(Y,G.nextSibling);}else{return G[Z].appendChild(Y);}},getClientRegion:function(){var x=E.Dom.getDocumentScrollTop(),Y=E.Dom.getDocumentScrollLeft(),y=E.Dom.getViewportWidth()+Y,G=E.Dom.getViewportHeight()+x;return new E.Region(x,y,G,Y);},setAttribute:function(Y,G,x){E.Dom.batch(Y,E.Dom._setAttribute,{attr:G,val:x});},_setAttribute:function(x,Y){var G=E.Dom._toCamel(Y.attr),y=Y.val;if(x&&x.setAttribute){if(E.Dom.DOT_ATTRIBUTES[G]){x[G]=y;}else{G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;x.setAttribute(G,y);}}else{}},getAttribute:function(Y,G){return E.Dom.batch(Y,E.Dom._getAttribute,G);},_getAttribute:function(Y,G){var x;G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;if(Y&&Y.getAttribute){x=Y.getAttribute(G,2);}else{}return x;},_toCamel:function(Y){var x=d;function G(y,z){return z.toUpperCase();}return x[Y]||(x[Y]=Y.indexOf("-")===-1?Y:Y.replace(/-([a-z])/gi,G));},_getClassRegex:function(Y){var G;if(Y!==undefined){if(Y.exec){G=Y;}else{G=h[Y];if(!G){Y=Y.replace(E.Dom._patterns.CLASS_RE_TOKENS,"\\$1");G=h[Y]=new RegExp(s+Y+k,U);}}}return G;},_patterns:{ROOT_TAG:/^body|html$/i,CLASS_RE_TOKENS:/([\.\(\)\^\$\*\+\?\|\[\]\{\}\\])/g},_testElement:function(G,Y){return G&&G[l]==1&&(!Y||Y(G));},_calcBorders:function(x,y){var Y=parseInt(E.Dom[w](x,R),10)||0,G=parseInt(E.Dom[w](x,q),10)||0;if(H){if(N.test(x[C])){Y=0;G=0;}}y[0]+=G;y[1]+=Y;return y;}};var S=E.Dom[w];if(m.opera){E.Dom[w]=function(Y,G){var x=S(Y,G);if(X.test(G)){x=E.Dom.Color.toRGB(x);}return x;};}if(m.webkit){E.Dom[w]=function(Y,G){var x=S(Y,G);if(x==="rgba(0, 0, 0, 0)"){x="transparent";}return x;};}if(m.ie&&m.ie>=8&&K.documentElement.hasAttribute){E.Dom.DOT_ATTRIBUTES.type=true;}})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this.y=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this.x=B;this[0]=B;
-this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.8.1",build:"19"});YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var H=[],A=this.subscribers.length;var D=[].slice.call(arguments,0),C=true,F,B=false;if(this.fireOnce){if(this.fired){return true;}else{this.firedWith=D;}}this.fired=true;if(!A&&this.silent){return true;}if(!this.silent){}var E=this.subscribers.slice();for(F=0;F<A;++F){var G=E[F];if(!G){B=true;}else{C=this.notify(G,D);if(false===C){if(!this.silent){}break;}}}return(C!==false);},notify:function(F,C){var B,H=null,E=F.getScope(this.scope),A=YAHOO.util.Event.throwErrors;if(!this.silent){}if(this.signature==YAHOO.util.CustomEvent.FLAT){if(C.length>0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var G=false,H=[],J=[],A=0,E=[],B=0,C={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},D=YAHOO.env.ua.ie,F="focusin",I="focusout";return{POLL_RETRYS:500,POLL_INTERVAL:40,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:D,_interval:null,_dri:null,_specialTypes:{focusin:(D?"focusin":"focus"),focusout:(D?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,null,true);}},onAvailable:function(Q,M,O,P,N){var K=(YAHOO.lang.isString(Q))?[Q]:Q;for(var L=0;L<K.length;L=L+1){E.push({id:K[L],fn:M,obj:O,overrideContext:P,checkReady:N});}A=this.POLL_RETRYS;this.startInterval();},onContentReady:function(N,K,L,M){this.onAvailable(N,K,L,M,true);},onDOMReady:function(){this.DOMReadyEvent.subscribe.apply(this.DOMReadyEvent,arguments);},_addListener:function(M,K,V,P,T,Y){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var Q=0,S=M.length;Q<S;++Q){W=this.on(M[Q],K,V,P,T)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var O=this.getEl(M);if(O){M=O;}else{this.onAvailable(M,function(){YAHOO.util.Event._addListener(M,K,V,P,T,Y);});return true;}}}if(!M){return false;}if("unload"==K&&P!==this){J[J.length]=[M,K,V,P,T];return true;}var L=M;if(T){if(T===true){L=P;}else{L=T;}}var N=function(Z){return V.call(L,YAHOO.util.Event.getEvent(Z,M),P);};var X=[M,K,V,N,L,P,T,Y];var R=H.length;H[R]=X;try{this._simpleAdd(M,K,N,Y);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}return true;},_getType:function(K){return this._specialTypes[K]||K;},addListener:function(M,P,L,N,O){var K=((P==F||P==I)&&!YAHOO.env.ua.ie)?true:false;return this._addListener(M,this._getType(P),L,N,O,K);},addFocusListener:function(L,K,M,N){return this.on(L,F,K,M,N);},removeFocusListener:function(L,K){return this.removeListener(L,F,K);},addBlurListener:function(L,K,M,N){return this.on(L,I,K,M,N);},removeBlurListener:function(L,K){return this.removeListener(L,I,K);},removeListener:function(L,K,R){var M,P,U;K=this._getType(K);if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var S=true;for(M=L.length-1;M>-1;M--){S=(this.removeListener(L[M],K,R)&&S);}return S;}}if(!R||!R.call){return this.purgeElement(L,false,K);}if("unload"==K){for(M=J.length-1;M>-1;M--){U=J[M];if(U&&U[0]==L&&U[1]==K&&U[2]==R){J.splice(M,1);return true;}}return false;}var N=null;var O=arguments[3];if("undefined"===typeof O){O=this._getCacheIndex(H,L,K,R);}if(O>=0){N=H[O];}if(!L||!N){return false;}var T=N[this.CAPTURE]===true?true:false;try{this._simpleRemove(L,K,N[this.WFN],T);}catch(Q){this.lastError=Q;return false;}delete H[O][this.WFN];delete H[O][this.FN];H.splice(O,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;
+this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.8.2r1",build:"7"});YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var H=[],A=this.subscribers.length;var D=[].slice.call(arguments,0),C=true,F,B=false;if(this.fireOnce){if(this.fired){return true;}else{this.firedWith=D;}}this.fired=true;if(!A&&this.silent){return true;}if(!this.silent){}var E=this.subscribers.slice();for(F=0;F<A;++F){var G=E[F];if(!G){B=true;}else{C=this.notify(G,D);if(false===C){if(!this.silent){}break;}}}return(C!==false);},notify:function(F,C){var B,H=null,E=F.getScope(this.scope),A=YAHOO.util.Event.throwErrors;if(!this.silent){}if(this.signature==YAHOO.util.CustomEvent.FLAT){if(C.length>0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var G=false,H=[],J=[],A=0,E=[],B=0,C={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},D=YAHOO.env.ua.ie,F="focusin",I="focusout";return{POLL_RETRYS:500,POLL_INTERVAL:40,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:D,_interval:null,_dri:null,_specialTypes:{focusin:(D?"focusin":"focus"),focusout:(D?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,null,true);}},onAvailable:function(Q,M,O,P,N){var K=(YAHOO.lang.isString(Q))?[Q]:Q;for(var L=0;L<K.length;L=L+1){E.push({id:K[L],fn:M,obj:O,overrideContext:P,checkReady:N});}A=this.POLL_RETRYS;this.startInterval();},onContentReady:function(N,K,L,M){this.onAvailable(N,K,L,M,true);},onDOMReady:function(){this.DOMReadyEvent.subscribe.apply(this.DOMReadyEvent,arguments);},_addListener:function(M,K,V,P,T,Y){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var Q=0,S=M.length;Q<S;++Q){W=this.on(M[Q],K,V,P,T)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var O=this.getEl(M);if(O){M=O;}else{this.onAvailable(M,function(){YAHOO.util.Event._addListener(M,K,V,P,T,Y);});return true;}}}if(!M){return false;}if("unload"==K&&P!==this){J[J.length]=[M,K,V,P,T];return true;}var L=M;if(T){if(T===true){L=P;}else{L=T;}}var N=function(Z){return V.call(L,YAHOO.util.Event.getEvent(Z,M),P);};var X=[M,K,V,N,L,P,T,Y];var R=H.length;H[R]=X;try{this._simpleAdd(M,K,N,Y);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}return true;},_getType:function(K){return this._specialTypes[K]||K;},addListener:function(M,P,L,N,O){var K=((P==F||P==I)&&!YAHOO.env.ua.ie)?true:false;return this._addListener(M,this._getType(P),L,N,O,K);},addFocusListener:function(L,K,M,N){return this.on(L,F,K,M,N);},removeFocusListener:function(L,K){return this.removeListener(L,F,K);},addBlurListener:function(L,K,M,N){return this.on(L,I,K,M,N);},removeBlurListener:function(L,K){return this.removeListener(L,I,K);},removeListener:function(L,K,R){var M,P,U;K=this._getType(K);if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var S=true;for(M=L.length-1;M>-1;M--){S=(this.removeListener(L[M],K,R)&&S);}return S;}}if(!R||!R.call){return this.purgeElement(L,false,K);}if("unload"==K){for(M=J.length-1;M>-1;M--){U=J[M];if(U&&U[0]==L&&U[1]==K&&U[2]==R){J.splice(M,1);return true;}}return false;}var N=null;var O=arguments[3];if("undefined"===typeof O){O=this._getCacheIndex(H,L,K,R);}if(O>=0){N=H[O];}if(!L||!N){return false;}var T=N[this.CAPTURE]===true?true:false;try{this._simpleRemove(L,K,N[this.WFN],T);}catch(Q){this.lastError=Q;return false;}delete H[O][this.WFN];delete H[O][this.FN];H.splice(O,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;
 }else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in C)){K=C[K];}return K;},_getCacheIndex:function(M,P,Q,O){for(var N=0,L=M.length;N<L;N=N+1){var K=M[N];if(K&&K[this.FN]==O&&K[this.EL]==P&&K[this.TYPE]==Q){return N;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+B;++B;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",YAHOO,0,0,1),_load:function(L){if(!G){G=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(E.length===0){A=0;if(this._interval){this._interval.cancel();this._interval=null;}return;}if(this.locked){return;}if(this.isIE){if(!this.DOMReady){this.startInterval();return;}}this.locked=true;var Q=!G;if(!Q){Q=(A>0&&E.length>0);}var P=[];var R=function(T,U){var S=T;if(U.overrideContext){if(U.overrideContext===true){S=U.obj;}else{S=U.overrideContext;}}U.fn.call(S,U.obj);};var L,K,O,N,M=[];for(L=0,K=E.length;L<K;L=L+1){O=E[L];if(O){N=this.getEl(O.id);if(N){if(O.checkReady){if(G||N.nextSibling||!Q){M.push(O);E[L]=null;}}else{R(N,O);E[L]=null;}}else{P.push(O);}}}for(L=0,K=M.length;L<K;L=L+1){O=M[L];R(this.getEl(O.id),O);}A--;if(Q){for(L=E.length-1;L>-1;L--){O=E[L];if(!O||!O.id){E.splice(L,1);}}this.startInterval();}else{if(this._interval){this._interval.cancel();this._interval=null;}}this.locked=false;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=Q.length-1;N>-1;N--){var L=Q[N];this.removeListener(M,L.type,L.fn);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[H,J];}else{if(K==="unload"){L=[J];}else{K=this._getType(K);L=[H];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var L=YAHOO.util.Event,O,N,M,Q,P,S=J.slice(),K;for(O=0,Q=J.length;O<Q;++O){M=S[O];if(M){K=window;if(M[L.ADJ_SCOPE]){if(M[L.ADJ_SCOPE]===true){K=M[L.UNLOAD_OBJ];}else{K=M[L.ADJ_SCOPE];}}M[L.FN].call(K,L.getEvent(R,M[L.EL]),M[L.UNLOAD_OBJ]);S[O]=null;}}M=null;K=null;J=null;if(H){for(N=H.length-1;N>-1;N--){M=H[N];if(M){L.removeListener(M[L.EL],M[L.TYPE],M[L.FN],N);}}M=null;}L._simpleRemove(window,"unload",L._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
 /* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller/Diego Perini */
 if(EU.isIE){if(self!==self.top){document.onreadystatechange=function(){if(document.readyState=="complete"){document.onreadystatechange=null;EU._ready();}};}else{YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);
-},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C<A.length;++C){F.subscribe(A[C].fn,A[C].obj,A[C].overrideContext);}}}return D[B];},fireEvent:function(B){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[B];if(!D){return null;}var A=[];for(var C=1;C<arguments.length;++C){A.push(arguments[C]);}return D.fire.apply(D,A);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.8.1",build:"19"});YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(F){var D,A,B;try{A=new XMLHttpRequest();D={conn:A,tId:F,xhr:true};}catch(C){for(B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:F,xhr:true};break;}catch(E){}}}finally{return D;}},getConnectionObject:function(A){var C,D=this._transaction_id;try{if(!A){C=this.createXhrObject(D);}else{C={tId:D};if(A==="xdr"){C.conn=this._transport;C.xdr=true;}else{if(A==="upload"){C.upload=true;}}}if(C){this._transaction_id++;}}catch(B){}return C;},asyncRequest:function(G,D,F,A){var E,C,B=(F&&F.argument)?F.argument:null;if(this._isFileUpload){C="upload";}else{if(F.xdr){C="xdr";}}E=this.getConnectionObject(C);if(!E){return null;}else{if(F&&F.customevents){this.initCustomEvents(E,F);}if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(E,F,D,A);return E;}if(G.toUpperCase()=="GET"){if(this._sFormData.length!==0){D+=((D.indexOf("?")==-1)?"?":"&")+this._sFormData;}}else{if(G.toUpperCase()=="POST"){A=A?this._sFormData+"&"+A:this._sFormData;}}}if(G.toUpperCase()=="GET"&&(F&&F.cache===false)){D+=((D.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();}if(this._use_default_xhr_header){if(!this._default_headers["X-Requested-With"]){this.initHeader("X-Requested-With",this._default_xhr_header,true);}}if((G.toUpperCase()==="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){this.initHeader("Content-Type",this._default_post_header);}if(E.xdr){this.xdr(E,G,D,F,A);return E;}E.conn.open(G,D,true);if(this._has_default_headers||this._has_http_headers){this.setHeader(E);}this.handleReadyState(E,F);E.conn.send(A||"");if(this._isFormSubmit===true){this.resetFormState();}this.startEvent.fire(E,B);if(E.startEvent){E.startEvent.fire(E,B);}return E;}},initCustomEvents:function(A,C){var B;for(B in C.customevents){if(this._customEvents[B][0]){A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);A[this._customEvents[B][0]].subscribe(C.customevents[B]);}}},handleReadyState:function(C,D){var B=this,A=(D&&D.argument)?D.argument:null;if(D&&D.timeout){this._timeOut[C.tId]=window.setTimeout(function(){B.abort(C,D,true);},D.timeout);}this._poll[C.tId]=window.setInterval(function(){if(C.conn&&C.conn.readyState===4){window.clearInterval(B._poll[C.tId]);delete B._poll[C.tId];if(D&&D.timeout){window.clearTimeout(B._timeOut[C.tId]);delete B._timeOut[C.tId];}B.completeEvent.fire(C,A);if(C.completeEvent){C.completeEvent.fire(C,A);}B.handleTransactionResponse(C,D);}},this._polling_interval);},handleTransactionResponse:function(B,I,D){var E,A,G=(I&&I.argument)?I.argument:null,C=(B.r&&B.r.statusText==="xdr:success")?true:false,H=(B.r&&B.r.statusText==="xdr:failure")?true:false,J=D;try{if((B.conn.status!==undefined&&B.conn.status!==0)||C){E=B.conn.status;}else{if(H&&!J){E=0;}else{E=13030;}}}catch(F){E=13030;}if((E>=200&&E<300)||E===1223||C){A=B.xdr?B.r:this.createResponseObject(B,G);if(I&&I.success){if(!I.scope){I.success(A);}else{I.success.apply(I.scope,[A]);}}this.successEvent.fire(A);if(B.successEvent){B.successEvent.fire(A);}}else{switch(E){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:A=this.createExceptionObject(B.tId,G,(D?D:false));if(I&&I.failure){if(!I.scope){I.failure(A);}else{I.failure.apply(I.scope,[A]);}}break;default:A=(B.xdr)?B.response:this.createResponseObject(B,G);if(I&&I.failure){if(!I.scope){I.failure(A);}else{I.failure.apply(I.scope,[A]);}}}this.failureEvent.fire(A);if(B.failureEvent){B.failureEvent.fire(A);}}this.releaseObject(B);A=null;},createResponseObject:function(A,G){var D={},I={},E,C,F,B;try{C=A.conn.getAllResponseHeaders();F=C.split("\n");for(E=0;E<F.length;E++){B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=YAHOO.lang.trim(F[E].substring(B+2));}}}catch(H){}D.tId=A.tId;D.status=(A.conn.status==1223)?204:A.conn.status;D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(G){D.argument=G;}return D;},createExceptionObject:function(H,D,A){var F=0,G="communication failure",C=-1,B="transaction aborted",E={};E.tId=H;if(A){E.status=C;E.statusText=B;}else{E.status=F;E.statusText=G;}if(D){E.argument=D;}return E;},initHeader:function(A,D,C){var B=(C)?this._default_headers:this._http_headers;B[A]=D;if(C){this._has_default_headers=true;}else{this._has_http_headers=true;}},setHeader:function(A){var B;if(this._has_default_headers){for(B in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){A.conn.setRequestHeader(B,this._default_headers[B]);}}}if(this._has_http_headers){for(B in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){A.conn.setRequestHeader(B,this._http_headers[B]);
+},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C<A.length;++C){F.subscribe(A[C].fn,A[C].obj,A[C].overrideContext);}}}return D[B];},fireEvent:function(B){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[B];if(!D){return null;}var A=[];for(var C=1;C<arguments.length;++C){A.push(arguments[C]);}return D.fire.apply(D,A);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.8.2r1",build:"7"});YAHOO.util.Connect={_msxml_progid:["Microsoft.XMLHTTP","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP"],_http_headers:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:"application/x-www-form-urlencoded; charset=UTF-8",_default_form_header:"application/x-www-form-urlencoded",_use_default_xhr_header:true,_default_xhr_header:"XMLHttpRequest",_has_default_headers:true,_default_headers:{},_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,startEvent:new YAHOO.util.CustomEvent("start"),completeEvent:new YAHOO.util.CustomEvent("complete"),successEvent:new YAHOO.util.CustomEvent("success"),failureEvent:new YAHOO.util.CustomEvent("failure"),abortEvent:new YAHOO.util.CustomEvent("abort"),_customEvents:{onStart:["startEvent","start"],onComplete:["completeEvent","complete"],onSuccess:["successEvent","success"],onFailure:["failureEvent","failure"],onUpload:["uploadEvent","upload"],onAbort:["abortEvent","abort"]},setProgId:function(A){this._msxml_progid.unshift(A);},setDefaultPostHeader:function(A){if(typeof A=="string"){this._default_post_header=A;}else{if(typeof A=="boolean"){this._use_default_post_header=A;}}},setDefaultXhrHeader:function(A){if(typeof A=="string"){this._default_xhr_header=A;}else{this._use_default_xhr_header=A;}},setPollingInterval:function(A){if(typeof A=="number"&&isFinite(A)){this._polling_interval=A;}},createXhrObject:function(F){var D,A,B;try{A=new XMLHttpRequest();D={conn:A,tId:F,xhr:true};}catch(C){for(B=0;B<this._msxml_progid.length;++B){try{A=new ActiveXObject(this._msxml_progid[B]);D={conn:A,tId:F,xhr:true};break;}catch(E){}}}finally{return D;}},getConnectionObject:function(A){var C,D=this._transaction_id;try{if(!A){C=this.createXhrObject(D);}else{C={tId:D};if(A==="xdr"){C.conn=this._transport;C.xdr=true;}else{if(A==="upload"){C.upload=true;}}}if(C){this._transaction_id++;}}catch(B){}return C;},asyncRequest:function(G,D,F,A){var E,C,B=(F&&F.argument)?F.argument:null;if(this._isFileUpload){C="upload";}else{if(F.xdr){C="xdr";}}E=this.getConnectionObject(C);if(!E){return null;}else{if(F&&F.customevents){this.initCustomEvents(E,F);}if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(E,F,D,A);return E;}if(G.toUpperCase()=="GET"){if(this._sFormData.length!==0){D+=((D.indexOf("?")==-1)?"?":"&")+this._sFormData;}}else{if(G.toUpperCase()=="POST"){A=A?this._sFormData+"&"+A:this._sFormData;}}}if(G.toUpperCase()=="GET"&&(F&&F.cache===false)){D+=((D.indexOf("?")==-1)?"?":"&")+"rnd="+new Date().valueOf().toString();}if(this._use_default_xhr_header){if(!this._default_headers["X-Requested-With"]){this.initHeader("X-Requested-With",this._default_xhr_header,true);}}if((G.toUpperCase()==="POST"&&this._use_default_post_header)&&this._isFormSubmit===false){this.initHeader("Content-Type",this._default_post_header);}if(E.xdr){this.xdr(E,G,D,F,A);return E;}E.conn.open(G,D,true);if(this._has_default_headers||this._has_http_headers){this.setHeader(E);}this.handleReadyState(E,F);E.conn.send(A||"");if(this._isFormSubmit===true){this.resetFormState();}this.startEvent.fire(E,B);if(E.startEvent){E.startEvent.fire(E,B);}return E;}},initCustomEvents:function(A,C){var B;for(B in C.customevents){if(this._customEvents[B][0]){A[this._customEvents[B][0]]=new YAHOO.util.CustomEvent(this._customEvents[B][1],(C.scope)?C.scope:null);A[this._customEvents[B][0]].subscribe(C.customevents[B]);}}},handleReadyState:function(C,D){var B=this,A=(D&&D.argument)?D.argument:null;if(D&&D.timeout){this._timeOut[C.tId]=window.setTimeout(function(){B.abort(C,D,true);},D.timeout);}this._poll[C.tId]=window.setInterval(function(){if(C.conn&&C.conn.readyState===4){window.clearInterval(B._poll[C.tId]);delete B._poll[C.tId];if(D&&D.timeout){window.clearTimeout(B._timeOut[C.tId]);delete B._timeOut[C.tId];}B.completeEvent.fire(C,A);if(C.completeEvent){C.completeEvent.fire(C,A);}B.handleTransactionResponse(C,D);}},this._polling_interval);},handleTransactionResponse:function(B,I,D){var E,A,G=(I&&I.argument)?I.argument:null,C=(B.r&&B.r.statusText==="xdr:success")?true:false,H=(B.r&&B.r.statusText==="xdr:failure")?true:false,J=D;try{if((B.conn.status!==undefined&&B.conn.status!==0)||C){E=B.conn.status;}else{if(H&&!J){E=0;}else{E=13030;}}}catch(F){E=13030;}if((E>=200&&E<300)||E===1223||C){A=B.xdr?B.r:this.createResponseObject(B,G);if(I&&I.success){if(!I.scope){I.success(A);}else{I.success.apply(I.scope,[A]);}}this.successEvent.fire(A);if(B.successEvent){B.successEvent.fire(A);}}else{switch(E){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:A=this.createExceptionObject(B.tId,G,(D?D:false));if(I&&I.failure){if(!I.scope){I.failure(A);}else{I.failure.apply(I.scope,[A]);}}break;default:A=(B.xdr)?B.response:this.createResponseObject(B,G);if(I&&I.failure){if(!I.scope){I.failure(A);}else{I.failure.apply(I.scope,[A]);}}}this.failureEvent.fire(A);if(B.failureEvent){B.failureEvent.fire(A);}}this.releaseObject(B);A=null;},createResponseObject:function(A,G){var D={},I={},E,C,F,B;try{C=A.conn.getAllResponseHeaders();F=C.split("\n");for(E=0;E<F.length;E++){B=F[E].indexOf(":");if(B!=-1){I[F[E].substring(0,B)]=YAHOO.lang.trim(F[E].substring(B+2));}}}catch(H){}D.tId=A.tId;D.status=(A.conn.status==1223)?204:A.conn.status;D.statusText=(A.conn.status==1223)?"No Content":A.conn.statusText;D.getResponseHeader=I;D.getAllResponseHeaders=C;D.responseText=A.conn.responseText;D.responseXML=A.conn.responseXML;if(G){D.argument=G;}return D;},createExceptionObject:function(H,D,A){var F=0,G="communication failure",C=-1,B="transaction aborted",E={};E.tId=H;if(A){E.status=C;E.statusText=B;}else{E.status=F;E.statusText=G;}if(D){E.argument=D;}return E;},initHeader:function(A,D,C){var B=(C)?this._default_headers:this._http_headers;B[A]=D;if(C){this._has_default_headers=true;}else{this._has_http_headers=true;}},setHeader:function(A){var B;if(this._has_default_headers){for(B in this._default_headers){if(YAHOO.lang.hasOwnProperty(this._default_headers,B)){A.conn.setRequestHeader(B,this._default_headers[B]);}}}if(this._has_http_headers){for(B in this._http_headers){if(YAHOO.lang.hasOwnProperty(this._http_headers,B)){A.conn.setRequestHeader(B,this._http_headers[B]);
 }}this._http_headers={};this._has_http_headers=false;}},resetDefaultHeaders:function(){this._default_headers={};this._has_default_headers=false;},abort:function(E,G,A){var D,B=(G&&G.argument)?G.argument:null;E=E||{};if(E.conn){if(E.xhr){if(this.isCallInProgress(E)){E.conn.abort();window.clearInterval(this._poll[E.tId]);delete this._poll[E.tId];if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{if(E.xdr){E.conn.abort(E.tId);D=true;}}}else{if(E.upload){var C="yuiIO"+E.tId;var F=document.getElementById(C);if(F){YAHOO.util.Event.removeListener(F,"load");document.body.removeChild(F);if(A){window.clearTimeout(this._timeOut[E.tId]);delete this._timeOut[E.tId];}D=true;}}else{D=false;}}if(D===true){this.abortEvent.fire(E,B);if(E.abortEvent){E.abortEvent.fire(E,B);}this.handleTransactionResponse(E,G,true);}return D;},isCallInProgress:function(A){A=A||{};if(A.xhr&&A.conn){return A.conn.readyState!==4&&A.conn.readyState!==0;}else{if(A.xdr&&A.conn){return A.conn.isCallInProgress(A.tId);}else{if(A.upload===true){return document.getElementById("yuiIO"+A.tId)?true:false;}else{return false;}}}},releaseObject:function(A){if(A&&A.conn){A.conn=null;A=null;}}};(function(){var G=YAHOO.util.Connect,H={};function D(I){var J='<object id="YUIConnectionSwf" type="application/x-shockwave-flash" data="'+I+'" width="0" height="0">'+'<param name="movie" value="'+I+'">'+'<param name="allowScriptAccess" value="always">'+"</object>",K=document.createElement("div");document.body.appendChild(K);K.innerHTML=J;}function B(L,I,J,M,K){H[parseInt(L.tId)]={"o":L,"c":M};if(K){M.method=I;M.data=K;}L.conn.send(J,M,L.tId);}function E(I){D(I);G._transport=document.getElementById("YUIConnectionSwf");}function C(){G.xdrReadyEvent.fire();}function A(J,I){if(J){G.startEvent.fire(J,I.argument);if(J.startEvent){J.startEvent.fire(J,I.argument);}}}function F(J){var K=H[J.tId].o,I=H[J.tId].c;if(J.statusText==="xdr:start"){A(K,I);return;}J.responseText=decodeURI(J.responseText);K.r=J;if(I.argument){K.r.argument=I.argument;}this.handleTransactionResponse(K,I,J.statusText==="xdr:abort"?true:false);delete H[J.tId];}G.xdr=B;G.swf=D;G.transport=E;G.xdrReadyEvent=new YAHOO.util.CustomEvent("xdrReady");G.xdrReady=C;G.handleXdrResponse=F;})();(function(){var D=YAHOO.util.Connect,F=YAHOO.util.Event;D._isFormSubmit=false;D._isFileUpload=false;D._formNode=null;D._sFormData=null;D._submitElementValue=null;D.uploadEvent=new YAHOO.util.CustomEvent("upload"),D._hasSubmitListener=function(){if(F){F.addListener(document,"click",function(J){var I=F.getTarget(J),H=I.nodeName.toLowerCase();if((H==="input"||H==="button")&&(I.type&&I.type.toLowerCase()=="submit")){D._submitElementValue=encodeURIComponent(I.name)+"="+encodeURIComponent(I.value);}});return true;}return false;}();function G(T,O,J){var S,I,R,P,W,Q=false,M=[],V=0,L,N,K,U,H;this.resetFormState();if(typeof T=="string"){S=(document.getElementById(T)||document.forms[T]);}else{if(typeof T=="object"){S=T;}else{return;}}if(O){this.createFrame(J?J:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=S;return;}for(L=0,N=S.elements.length;L<N;++L){I=S.elements[L];W=I.disabled;R=I.name;if(!W&&R){R=encodeURIComponent(R)+"=";P=encodeURIComponent(I.value);switch(I.type){case"select-one":if(I.selectedIndex>-1){H=I.options[I.selectedIndex];M[V++]=R+encodeURIComponent((H.attributes.value&&H.attributes.value.specified)?H.value:H.text);}break;case"select-multiple":if(I.selectedIndex>-1){for(K=I.selectedIndex,U=I.options.length;K<U;++K){H=I.options[K];if(H.selected){M[V++]=R+encodeURIComponent((H.attributes.value&&H.attributes.value.specified)?H.value:H.text);}}}break;case"radio":case"checkbox":if(I.checked){M[V++]=R+P;}break;case"file":case undefined:case"reset":case"button":break;case"submit":if(Q===false){if(this._hasSubmitListener&&this._submitElementValue){M[V++]=this._submitElementValue;}Q=true;}break;default:M[V++]=R+P;}}}this._isFormSubmit=true;this._sFormData=M.join("&");this.initHeader("Content-Type",this._default_form_header);return this._sFormData;}function C(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";}function B(H){var I="yuiIO"+this._transaction_id,J;if(YAHOO.env.ua.ie){J=document.createElement('<iframe id="'+I+'" name="'+I+'" />');if(typeof H=="boolean"){J.src="javascript:false";}}else{J=document.createElement("iframe");J.id=I;J.name=I;}J.style.position="absolute";J.style.top="-1000px";J.style.left="-1000px";document.body.appendChild(J);}function E(H){var K=[],I=H.split("&"),J,L;for(J=0;J<I.length;J++){L=I[J].indexOf("=");if(L!=-1){K[J]=document.createElement("input");K[J].type="hidden";K[J].name=decodeURIComponent(I[J].substring(0,L));K[J].value=decodeURIComponent(I[J].substring(L+1));this._formNode.appendChild(K[J]);}}return K;}function A(K,V,L,J){var Q="yuiIO"+K.tId,R="multipart/form-data",T=document.getElementById(Q),M=(document.documentMode&&document.documentMode===8)?true:false,W=this,S=(V&&V.argument)?V.argument:null,U,P,I,O,H,N;H={action:this._formNode.getAttribute("action"),method:this._formNode.getAttribute("method"),target:this._formNode.getAttribute("target")};this._formNode.setAttribute("action",L);this._formNode.setAttribute("method","POST");this._formNode.setAttribute("target",Q);if(YAHOO.env.ua.ie&&!M){this._formNode.setAttribute("encoding",R);}else{this._formNode.setAttribute("enctype",R);}if(J){U=this.appendPostData(J);}this._formNode.submit();this.startEvent.fire(K,S);if(K.startEvent){K.startEvent.fire(K,S);}if(V&&V.timeout){this._timeOut[K.tId]=window.setTimeout(function(){W.abort(K,V,true);},V.timeout);}if(U&&U.length>0){for(P=0;P<U.length;P++){this._formNode.removeChild(U[P]);}}for(I in H){if(YAHOO.lang.hasOwnProperty(H,I)){if(H[I]){this._formNode.setAttribute(I,H[I]);}else{this._formNode.removeAttribute(I);}}}this.resetFormState();N=function(){if(V&&V.timeout){window.clearTimeout(W._timeOut[K.tId]);delete W._timeOut[K.tId];}W.completeEvent.fire(K,S);if(K.completeEvent){K.completeEvent.fire(K,S);
-}O={tId:K.tId,argument:V.argument};try{O.responseText=T.contentWindow.document.body?T.contentWindow.document.body.innerHTML:T.contentWindow.document.documentElement.textContent;O.responseXML=T.contentWindow.document.XMLDocument?T.contentWindow.document.XMLDocument:T.contentWindow.document;}catch(X){}if(V&&V.upload){if(!V.scope){V.upload(O);}else{V.upload.apply(V.scope,[O]);}}W.uploadEvent.fire(O);if(K.uploadEvent){K.uploadEvent.fire(O);}F.removeListener(T,"load",N);setTimeout(function(){document.body.removeChild(T);W.releaseObject(K);},100);};F.addListener(T,"load",N);}D.setForm=G;D.resetFormState=C;D.createFrame=B;D.appendPostData=E;D.uploadFile=A;})();YAHOO.register("connection",YAHOO.util.Connect,{version:"2.8.1",build:"19"});(function(){var B=YAHOO.util;var A=function(D,C,E,F){if(!D){}this.init(D,C,E,F);};A.NAME="Anim";A.prototype={toString:function(){var C=this.getEl()||{};var D=C.id||C.tagName;return(this.constructor.NAME+": "+D);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(C,E,D){return this.method(this.currentFrame,E,D-E,this.totalFrames);},setAttribute:function(C,F,E){var D=this.getEl();if(this.patterns.noNegatives.test(C)){F=(F>0)?F:0;}if(C in D&&!("style" in D&&C in D.style)){D[C]=F;}else{B.Dom.setStyle(D,C,F+E);}},getAttribute:function(C){var E=this.getEl();var G=B.Dom.getStyle(E,C);if(G!=="auto"&&!this.patterns.offsetUnit.test(G)){return parseFloat(G);}var D=this.patterns.offsetAttribute.exec(C)||[];var H=!!(D[3]);var F=!!(D[2]);if("style" in E){if(F||(B.Dom.getStyle(E,"position")=="absolute"&&H)){G=E["offset"+D[0].charAt(0).toUpperCase()+D[0].substr(1)];}else{G=0;}}else{if(C in E){G=E[C];}}return G;},getDefaultUnit:function(C){if(this.patterns.defaultUnit.test(C)){return"px";}return"";},setRuntimeAttribute:function(D){var I;var E;var F=this.attributes;this.runtimeAttributes[D]={};var H=function(J){return(typeof J!=="undefined");};if(!H(F[D]["to"])&&!H(F[D]["by"])){return false;}I=(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);if(H(F[D]["to"])){E=F[D]["to"];}else{if(H(F[D]["by"])){if(I.constructor==Array){E=[];for(var G=0,C=I.length;G<C;++G){E[G]=I[G]+F[D]["by"][G]*1;}}else{E=I+F[D]["by"]*1;}}}this.runtimeAttributes[D].start=I;this.runtimeAttributes[D].end=E;this.runtimeAttributes[D].unit=(H(F[D].unit))?F[D]["unit"]:this.getDefaultUnit(D);return true;},init:function(E,J,I,C){var D=false;var F=null;var H=0;E=B.Dom.get(E);this.attributes=J||{};this.duration=!YAHOO.lang.isUndefined(I)?I:1;this.method=C||B.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=B.AnimMgr.fps;this.setEl=function(M){E=B.Dom.get(M);};this.getEl=function(){return E;};this.isAnimated=function(){return D;};this.getStartTime=function(){return F;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(B.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}B.AnimMgr.registerElement(this);return true;};this.stop=function(M){if(!this.isAnimated()){return false;}if(M){this.currentFrame=this.totalFrames;this._onTween.fire();}B.AnimMgr.stop(this);};var L=function(){this.onStart.fire();this.runtimeAttributes={};for(var M in this.attributes){this.setRuntimeAttribute(M);}D=true;H=0;F=new Date();};var K=function(){var O={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};O.toString=function(){return("duration: "+O.duration+", currentFrame: "+O.currentFrame);};this.onTween.fire(O);var N=this.runtimeAttributes;for(var M in N){this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);}H+=1;};var G=function(){var M=(new Date()-F)/1000;var N={duration:M,frames:H,fps:H/M};N.toString=function(){return("duration: "+N.duration+", frames: "+N.frames+", fps: "+N.fps);};D=false;H=0;this.onComplete.fire(N);};this._onStart=new B.CustomEvent("_start",this,true);this.onStart=new B.CustomEvent("start",this);this.onTween=new B.CustomEvent("tween",this);this._onTween=new B.CustomEvent("_tween",this,true);this.onComplete=new B.CustomEvent("complete",this);this._onComplete=new B.CustomEvent("_complete",this,true);this._onStart.subscribe(L);this._onTween.subscribe(K);this._onComplete.subscribe(G);}};B.Anim=A;})();YAHOO.util.AnimMgr=new function(){var C=null;var B=[];var A=0;this.fps=1000;this.delay=1;this.registerElement=function(F){B[B.length]=F;A+=1;F._onStart.fire();this.start();};this.unRegister=function(G,F){F=F||E(G);if(!G.isAnimated()||F===-1){return false;}G._onComplete.fire();B.splice(F,1);A-=1;if(A<=0){this.stop();}return true;};this.start=function(){if(C===null){C=setInterval(this.run,this.delay);}};this.stop=function(H){if(!H){clearInterval(C);for(var G=0,F=B.length;G<F;++G){this.unRegister(B[0],0);}B=[];C=null;A=0;}else{this.unRegister(H);}};this.run=function(){for(var H=0,F=B.length;H<F;++H){var G=B[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrames||G.totalFrames===null){G.currentFrame+=1;if(G.useSeconds){D(G);}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var E=function(H){for(var G=0,F=B.length;G<F;++G){if(B[G]===H){return G;}}return -1;};var D=function(G){var J=G.totalFrames;var I=G.currentFrame;var H=(G.currentFrame*G.duration*1000/G.totalFrames);var F=(new Date()-G.getStartTime());var K=0;if(F<G.duration*1000){K=Math.round((F/H-1)*G.currentFrame);}else{K=J-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=J){K=J-(I+1);}G.currentFrame+=K;}};this._queue=B;this._getIndex=E;};YAHOO.util.Bezier=new function(){this.getPosition=function(E,D){var F=E.length;var C=[];for(var B=0;B<F;++B){C[B]=[E[B][0],E[B][1]];}for(var A=1;A<F;++A){for(B=0;B<F-A;++B){C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0][0],C[0][1]];};};(function(){var A=function(F,E,G,H){A.superclass.constructor.call(this,F,E,G,H);};A.NAME="ColorAnim";A.DEFAULT_BGCOLOR="#fff";var C=YAHOO.util;YAHOO.extend(A,C.Anim);var D=A.superclass;var B=A.prototype;B.patterns.color=/color$/i;B.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;B.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;B.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;B.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;B.parseColor=function(E){if(E.length==3){return E;}var F=this.patterns.hex.exec(E);if(F&&F.length==4){return[parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16)];}F=this.patterns.rgb.exec(E);if(F&&F.length==4){return[parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10)];}F=this.patterns.hex3.exec(E);if(F&&F.length==4){return[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];
+}O={tId:K.tId,argument:V.argument};try{O.responseText=T.contentWindow.document.body?T.contentWindow.document.body.innerHTML:T.contentWindow.document.documentElement.textContent;O.responseXML=T.contentWindow.document.XMLDocument?T.contentWindow.document.XMLDocument:T.contentWindow.document;}catch(X){}if(V&&V.upload){if(!V.scope){V.upload(O);}else{V.upload.apply(V.scope,[O]);}}W.uploadEvent.fire(O);if(K.uploadEvent){K.uploadEvent.fire(O);}F.removeListener(T,"load",N);setTimeout(function(){document.body.removeChild(T);W.releaseObject(K);},100);};F.addListener(T,"load",N);}D.setForm=G;D.resetFormState=C;D.createFrame=B;D.appendPostData=E;D.uploadFile=A;})();YAHOO.register("connection",YAHOO.util.Connect,{version:"2.8.2r1",build:"7"});(function(){var B=YAHOO.util;var A=function(D,C,E,F){if(!D){}this.init(D,C,E,F);};A.NAME="Anim";A.prototype={toString:function(){var C=this.getEl()||{};var D=C.id||C.tagName;return(this.constructor.NAME+": "+D);},patterns:{noNegatives:/width|height|opacity|padding/i,offsetAttribute:/^((width|height)|(top|left))$/,defaultUnit:/width|height|top$|bottom$|left$|right$/i,offsetUnit:/\d+(em|%|en|ex|pt|in|cm|mm|pc)$/i},doMethod:function(C,E,D){return this.method(this.currentFrame,E,D-E,this.totalFrames);},setAttribute:function(C,F,E){var D=this.getEl();if(this.patterns.noNegatives.test(C)){F=(F>0)?F:0;}if(C in D&&!("style" in D&&C in D.style)){D[C]=F;}else{B.Dom.setStyle(D,C,F+E);}},getAttribute:function(C){var E=this.getEl();var G=B.Dom.getStyle(E,C);if(G!=="auto"&&!this.patterns.offsetUnit.test(G)){return parseFloat(G);}var D=this.patterns.offsetAttribute.exec(C)||[];var H=!!(D[3]);var F=!!(D[2]);if("style" in E){if(F||(B.Dom.getStyle(E,"position")=="absolute"&&H)){G=E["offset"+D[0].charAt(0).toUpperCase()+D[0].substr(1)];}else{G=0;}}else{if(C in E){G=E[C];}}return G;},getDefaultUnit:function(C){if(this.patterns.defaultUnit.test(C)){return"px";}return"";},setRuntimeAttribute:function(D){var I;var E;var F=this.attributes;this.runtimeAttributes[D]={};var H=function(J){return(typeof J!=="undefined");};if(!H(F[D]["to"])&&!H(F[D]["by"])){return false;}I=(H(F[D]["from"]))?F[D]["from"]:this.getAttribute(D);if(H(F[D]["to"])){E=F[D]["to"];}else{if(H(F[D]["by"])){if(I.constructor==Array){E=[];for(var G=0,C=I.length;G<C;++G){E[G]=I[G]+F[D]["by"][G]*1;}}else{E=I+F[D]["by"]*1;}}}this.runtimeAttributes[D].start=I;this.runtimeAttributes[D].end=E;this.runtimeAttributes[D].unit=(H(F[D].unit))?F[D]["unit"]:this.getDefaultUnit(D);return true;},init:function(E,J,I,C){var D=false;var F=null;var H=0;E=B.Dom.get(E);this.attributes=J||{};this.duration=!YAHOO.lang.isUndefined(I)?I:1;this.method=C||B.Easing.easeNone;this.useSeconds=true;this.currentFrame=0;this.totalFrames=B.AnimMgr.fps;this.setEl=function(M){E=B.Dom.get(M);};this.getEl=function(){return E;};this.isAnimated=function(){return D;};this.getStartTime=function(){return F;};this.runtimeAttributes={};this.animate=function(){if(this.isAnimated()){return false;}this.currentFrame=0;this.totalFrames=(this.useSeconds)?Math.ceil(B.AnimMgr.fps*this.duration):this.duration;if(this.duration===0&&this.useSeconds){this.totalFrames=1;}B.AnimMgr.registerElement(this);return true;};this.stop=function(M){if(!this.isAnimated()){return false;}if(M){this.currentFrame=this.totalFrames;this._onTween.fire();}B.AnimMgr.stop(this);};var L=function(){this.onStart.fire();this.runtimeAttributes={};for(var M in this.attributes){this.setRuntimeAttribute(M);}D=true;H=0;F=new Date();};var K=function(){var O={duration:new Date()-this.getStartTime(),currentFrame:this.currentFrame};O.toString=function(){return("duration: "+O.duration+", currentFrame: "+O.currentFrame);};this.onTween.fire(O);var N=this.runtimeAttributes;for(var M in N){this.setAttribute(M,this.doMethod(M,N[M].start,N[M].end),N[M].unit);}H+=1;};var G=function(){var M=(new Date()-F)/1000;var N={duration:M,frames:H,fps:H/M};N.toString=function(){return("duration: "+N.duration+", frames: "+N.frames+", fps: "+N.fps);};D=false;H=0;this.onComplete.fire(N);};this._onStart=new B.CustomEvent("_start",this,true);this.onStart=new B.CustomEvent("start",this);this.onTween=new B.CustomEvent("tween",this);this._onTween=new B.CustomEvent("_tween",this,true);this.onComplete=new B.CustomEvent("complete",this);this._onComplete=new B.CustomEvent("_complete",this,true);this._onStart.subscribe(L);this._onTween.subscribe(K);this._onComplete.subscribe(G);}};B.Anim=A;})();YAHOO.util.AnimMgr=new function(){var C=null;var B=[];var A=0;this.fps=1000;this.delay=1;this.registerElement=function(F){B[B.length]=F;A+=1;F._onStart.fire();this.start();};this.unRegister=function(G,F){F=F||E(G);if(!G.isAnimated()||F===-1){return false;}G._onComplete.fire();B.splice(F,1);A-=1;if(A<=0){this.stop();}return true;};this.start=function(){if(C===null){C=setInterval(this.run,this.delay);}};this.stop=function(H){if(!H){clearInterval(C);for(var G=0,F=B.length;G<F;++G){this.unRegister(B[0],0);}B=[];C=null;A=0;}else{this.unRegister(H);}};this.run=function(){for(var H=0,F=B.length;H<F;++H){var G=B[H];if(!G||!G.isAnimated()){continue;}if(G.currentFrame<G.totalFrames||G.totalFrames===null){G.currentFrame+=1;if(G.useSeconds){D(G);}G._onTween.fire();}else{YAHOO.util.AnimMgr.stop(G,H);}}};var E=function(H){for(var G=0,F=B.length;G<F;++G){if(B[G]===H){return G;}}return -1;};var D=function(G){var J=G.totalFrames;var I=G.currentFrame;var H=(G.currentFrame*G.duration*1000/G.totalFrames);var F=(new Date()-G.getStartTime());var K=0;if(F<G.duration*1000){K=Math.round((F/H-1)*G.currentFrame);}else{K=J-(I+1);}if(K>0&&isFinite(K)){if(G.currentFrame+K>=J){K=J-(I+1);}G.currentFrame+=K;}};this._queue=B;this._getIndex=E;};YAHOO.util.Bezier=new function(){this.getPosition=function(E,D){var F=E.length;var C=[];for(var B=0;B<F;++B){C[B]=[E[B][0],E[B][1]];}for(var A=1;A<F;++A){for(B=0;B<F-A;++B){C[B][0]=(1-D)*C[B][0]+D*C[parseInt(B+1,10)][0];C[B][1]=(1-D)*C[B][1]+D*C[parseInt(B+1,10)][1];}}return[C[0][0],C[0][1]];};};(function(){var A=function(F,E,G,H){A.superclass.constructor.call(this,F,E,G,H);};A.NAME="ColorAnim";A.DEFAULT_BGCOLOR="#fff";var C=YAHOO.util;YAHOO.extend(A,C.Anim);var D=A.superclass;var B=A.prototype;B.patterns.color=/color$/i;B.patterns.rgb=/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i;B.patterns.hex=/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i;B.patterns.hex3=/^#?([0-9A-F]{1})([0-9A-F]{1})([0-9A-F]{1})$/i;B.patterns.transparent=/^transparent|rgba\(0, 0, 0, 0\)$/;B.parseColor=function(E){if(E.length==3){return E;}var F=this.patterns.hex.exec(E);if(F&&F.length==4){return[parseInt(F[1],16),parseInt(F[2],16),parseInt(F[3],16)];}F=this.patterns.rgb.exec(E);if(F&&F.length==4){return[parseInt(F[1],10),parseInt(F[2],10),parseInt(F[3],10)];}F=this.patterns.hex3.exec(E);if(F&&F.length==4){return[parseInt(F[1]+F[1],16),parseInt(F[2]+F[2],16),parseInt(F[3]+F[3],16)];
 }return null;};B.getAttribute=function(E){var G=this.getEl();if(this.patterns.color.test(E)){var I=YAHOO.util.Dom.getStyle(G,E);var H=this;if(this.patterns.transparent.test(I)){var F=YAHOO.util.Dom.getAncestorBy(G,function(J){return !H.patterns.transparent.test(I);});if(F){I=C.Dom.getStyle(F,E);}else{I=A.DEFAULT_BGCOLOR;}}}else{I=D.getAttribute.call(this,E);}return I;};B.doMethod=function(F,J,G){var I;if(this.patterns.color.test(F)){I=[];for(var H=0,E=J.length;H<E;++H){I[H]=D.doMethod.call(this,F,J[H],G[H]);}I="rgb("+Math.floor(I[0])+","+Math.floor(I[1])+","+Math.floor(I[2])+")";}else{I=D.doMethod.call(this,F,J,G);}return I;};B.setRuntimeAttribute=function(F){D.setRuntimeAttribute.call(this,F);if(this.patterns.color.test(F)){var H=this.attributes;var J=this.parseColor(this.runtimeAttributes[F].start);var G=this.parseColor(this.runtimeAttributes[F].end);if(typeof H[F]["to"]==="undefined"&&typeof H[F]["by"]!=="undefined"){G=this.parseColor(H[F].by);for(var I=0,E=J.length;I<E;++I){G[I]=J[I]+G[I];}}this.runtimeAttributes[F].start=J;this.runtimeAttributes[F].end=G;}};C.ColorAnim=A;})();
 /*
 TERMS OF USE - EASING EQUATIONS
@@ -32,8 +32,8 @@ Redistribution and use in source and binary forms, with or without modification,
 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 YAHOO.util.Easing={easeNone:function(B,A,D,C){return D*B/C+A;},easeIn:function(B,A,D,C){return D*(B/=C)*B+A;},easeOut:function(B,A,D,C){return -D*(B/=C)*(B-2)+A;},easeBoth:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B+A;}return -D/2*((--B)*(B-2)-1)+A;},easeInStrong:function(B,A,D,C){return D*(B/=C)*B*B*B+A;},easeOutStrong:function(B,A,D,C){return -D*((B=B/C-1)*B*B*B-1)+A;},easeBothStrong:function(B,A,D,C){if((B/=C/2)<1){return D/2*B*B*B*B+A;}return -D/2*((B-=2)*B*B*B-2)+A;},elasticIn:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return -(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;},elasticOut:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F)==1){return A+G;}if(!E){E=F*0.3;}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}return B*Math.pow(2,-10*C)*Math.sin((C*F-D)*(2*Math.PI)/E)+G+A;},elasticBoth:function(C,A,G,F,B,E){if(C==0){return A;}if((C/=F/2)==2){return A+G;}if(!E){E=F*(0.3*1.5);}if(!B||B<Math.abs(G)){B=G;var D=E/4;}else{var D=E/(2*Math.PI)*Math.asin(G/B);}if(C<1){return -0.5*(B*Math.pow(2,10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E))+A;}return B*Math.pow(2,-10*(C-=1))*Math.sin((C*F-D)*(2*Math.PI)/E)*0.5+G+A;},backIn:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*(B/=D)*B*((C+1)*B-C)+A;},backOut:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}return E*((B=B/D-1)*B*((C+1)*B+C)+1)+A;},backBoth:function(B,A,E,D,C){if(typeof C=="undefined"){C=1.70158;}if((B/=D/2)<1){return E/2*(B*B*(((C*=(1.525))+1)*B-C))+A;}return E/2*((B-=2)*B*(((C*=(1.525))+1)*B+C)+2)+A;},bounceIn:function(B,A,D,C){return D-YAHOO.util.Easing.bounceOut(C-B,0,D,C)+A;},bounceOut:function(B,A,D,C){if((B/=C)<(1/2.75)){return D*(7.5625*B*B)+A;}else{if(B<(2/2.75)){return D*(7.5625*(B-=(1.5/2.75))*B+0.75)+A;}else{if(B<(2.5/2.75)){return D*(7.5625*(B-=(2.25/2.75))*B+0.9375)+A;}}}return D*(7.5625*(B-=(2.625/2.75))*B+0.984375)+A;},bounceBoth:function(B,A,D,C){if(B<C/2){return YAHOO.util.Easing.bounceIn(B*2,0,D,C)*0.5+A;}return YAHOO.util.Easing.bounceOut(B*2-C,0,D,C)*0.5+D*0.5+A;}};(function(){var A=function(H,G,I,J){if(H){A.superclass.constructor.call(this,H,G,I,J);}};A.NAME="Motion";var E=YAHOO.util;YAHOO.extend(A,E.ColorAnim);var F=A.superclass;var C=A.prototype;C.patterns.points=/^points$/i;C.setAttribute=function(G,I,H){if(this.patterns.points.test(G)){H=H||"px";F.setAttribute.call(this,"left",I[0],H);F.setAttribute.call(this,"top",I[1],H);}else{F.setAttribute.call(this,G,I,H);}};C.getAttribute=function(G){if(this.patterns.points.test(G)){var H=[F.getAttribute.call(this,"left"),F.getAttribute.call(this,"top")];}else{H=F.getAttribute.call(this,G);}return H;};C.doMethod=function(G,K,H){var J=null;if(this.patterns.points.test(G)){var I=this.method(this.currentFrame,0,100,this.totalFrames)/100;J=E.Bezier.getPosition(this.runtimeAttributes[G],I);}else{J=F.doMethod.call(this,G,K,H);}return J;};C.setRuntimeAttribute=function(P){if(this.patterns.points.test(P)){var H=this.getEl();var J=this.attributes;var G;var L=J["points"]["control"]||[];var I;var M,O;if(L.length>0&&!(L[0] instanceof Array)){L=[L];}else{var K=[];for(M=0,O=L.length;M<O;++M){K[M]=L[M];}L=K;}if(E.Dom.getStyle(H,"position")=="static"){E.Dom.setStyle(H,"position","relative");}if(D(J["points"]["from"])){E.Dom.setXY(H,J["points"]["from"]);
-}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=this.getAttribute("points");if(D(J["points"]["to"])){I=B.call(this,J["points"]["to"],G);var N=E.Dom.getXY(this.getEl());for(M=0,O=L.length;M<O;++M){L[M]=B.call(this,L[M],G);}}else{if(D(J["points"]["by"])){I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];for(M=0,O=L.length;M<O;++M){L[M]=[G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=[G];if(L.length>0){this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);}this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;}else{F.setRuntimeAttribute.call(this,P);}};var B=function(G,I){var H=E.Dom.getXY(this.getEl());G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return G;};var D=function(G){return(typeof G!=="undefined");};E.Motion=A;})();(function(){var D=function(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}};D.NAME="Scroll";var B=YAHOO.util;YAHOO.extend(D,B.ColorAnim);var C=D.superclass;var A=D.prototype;A.doMethod=function(E,H,F){var G=null;if(E=="scroll"){G=[this.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];}else{G=C.doMethod.call(this,E,H,F);}return G;};A.getAttribute=function(E){var G=null;var F=this.getEl();if(E=="scroll"){G=[F.scrollLeft,F.scrollTop];}else{G=C.getAttribute.call(this,E);}return G;};A.setAttribute=function(E,H,G){var F=this.getEl();if(E=="scroll"){F.scrollLeft=H[0];F.scrollTop=H[1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=D;})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.8.1",build:"19"});if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom;return{useShim:false,_shimActive:false,_shimState:false,_debugShim:false,_createShim:function(){var C=document.createElement("div");C.id="yui-ddm-shim";if(document.body.firstChild){document.body.insertBefore(C,document.body.firstChild);}else{document.body.appendChild(C);}C.style.display="none";C.style.backgroundColor="red";C.style.position="absolute";C.style.zIndex="99999";B.setStyle(C,"opacity","0");this._shim=C;A.on(C,"mouseup",this.handleMouseUp,this,true);A.on(C,"mousemove",this.handleMouseMove,this,true);A.on(window,"scroll",this._sizeShim,this,true);},_sizeShim:function(){if(this._shimActive){var C=this._shim;C.style.height=B.getDocumentHeight()+"px";C.style.width=B.getDocumentWidth()+"px";C.style.top="0";C.style.left="0";}},_activateShim:function(){if(this.useShim){if(!this._shim){this._createShim();}this._shimActive=true;var C=this._shim,D="0";if(this._debugShim){D=".5";}B.setStyle(C,"opacity",D);this._sizeShim();C.style.display="block";}},_deactivateShim:function(){this._shim.style.display="none";this._shimActive=false;},_shim:null,ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(E,D){for(var F in this.ids){for(var C in this.ids[F]){var G=this.ids[F][C];if(!this.isTypeOfDD(G)){continue;}G[E].apply(G,D);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(C){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(D,C){if(!this.initialized){this.init();}if(!this.ids[C]){this.ids[C]={};}this.ids[C][D.id]=D;},removeDDFromGroup:function(E,C){if(!this.ids[C]){this.ids[C]={};}var D=this.ids[C];if(D&&D[E.id]){delete D[E.id];}},_remove:function(E){for(var D in E.groups){if(D){var C=this.ids[D];if(C&&C[E.id]){delete C[E.id];}}}delete this.handleIds[E.id];},regHandle:function(D,C){if(!this.handleIds[D]){this.handleIds[D]={};}this.handleIds[D][C]=C;},isDragDrop:function(C){return(this.getDDById(C))?true:false;},getRelated:function(H,D){var G=[];for(var F in H.groups){for(var E in this.ids[F]){var C=this.ids[F][E];if(!this.isTypeOfDD(C)){continue;}if(!D||C.isTarget){G[G.length]=C;}}}return G;},isLegalTarget:function(G,F){var D=this.getRelated(G,true);for(var E=0,C=D.length;E<C;++E){if(D[E].id==F.id){return true;}}return false;},isTypeOfDD:function(C){return(C&&C.__ygDragDrop);},isHandle:function(D,C){return(this.handleIds[D]&&this.handleIds[D][C]);},getDDById:function(D){for(var C in this.ids){if(this.ids[C][D]){return this.ids[C][D];}}return null;},handleMouseDown:function(E,D){this.currentTarget=YAHOO.util.Event.getTarget(E);this.dragCurrent=D;var C=D.getEl();this.startX=YAHOO.util.Event.getPageX(E);this.startY=YAHOO.util.Event.getPageY(E);this.deltaX=this.startX-C.offsetLeft;this.deltaY=this.startY-C.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var F=YAHOO.util.DDM;F.startDrag(F.startX,F.startY);F.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(C,E){if(this.dragCurrent&&this.dragCurrent.useShim){this._shimState=this.useShim;this.useShim=true;}this._activateShim();clearTimeout(this.clickTimeout);var D=this.dragCurrent;if(D&&D.events.b4StartDrag){D.b4StartDrag(C,E);D.fireEvent("b4StartDragEvent",{x:C,y:E});}if(D&&D.events.startDrag){D.startDrag(C,E);D.fireEvent("startDragEvent",{x:C,y:E});}this.dragThreshMet=true;},handleMouseUp:function(C){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.fromTimeout=false;this.handleMouseMove(C);}this.fromTimeout=false;this.fireEvents(C,true);}else{}this.stopDrag(C);this.stopEvent(C);}},stopEvent:function(C){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(C);}if(this.preventDefault){YAHOO.util.Event.preventDefault(C);}},stopDrag:function(E,D){var C=this.dragCurrent;if(C&&!D){if(this.dragThreshMet){if(C.events.b4EndDrag){C.b4EndDrag(E);C.fireEvent("b4EndDragEvent",{e:E});}if(C.events.endDrag){C.endDrag(E);C.fireEvent("endDragEvent",{e:E});}}if(C.events.mouseUp){C.onMouseUp(E);C.fireEvent("mouseUpEvent",{e:E});}}if(this._shimActive){this._deactivateShim();if(this.dragCurrent&&this.dragCurrent.useShim){this.useShim=this._shimState;this._shimState=false;}}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(F){var C=this.dragCurrent;if(C){if(YAHOO.util.Event.isIE&&!F.button){this.stopEvent(F);return this.handleMouseUp(F);}else{if(F.clientX<0||F.clientY<0){}}if(!this.dragThreshMet){var E=Math.abs(this.startX-YAHOO.util.Event.getPageX(F));var D=Math.abs(this.startY-YAHOO.util.Event.getPageY(F));if(E>this.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(V,L){var a=this.dragCurrent;if(!a||a.isLocked()||a.dragOnly){return;}var N=YAHOO.util.Event.getPageX(V),M=YAHOO.util.Event.getPageY(V),P=new YAHOO.util.Point(N,M),K=a.getTargetCoord(P.x,P.y),F=a.getDragEl(),E=["out","over","drop","enter"],U=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},Q=[],c={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var S in this.dragOvers){var d=this.dragOvers[S];if(!this.isTypeOfDD(d)){continue;
+}else{E.Dom.setXY(H,E.Dom.getXY(H));}G=this.getAttribute("points");if(D(J["points"]["to"])){I=B.call(this,J["points"]["to"],G);var N=E.Dom.getXY(this.getEl());for(M=0,O=L.length;M<O;++M){L[M]=B.call(this,L[M],G);}}else{if(D(J["points"]["by"])){I=[G[0]+J["points"]["by"][0],G[1]+J["points"]["by"][1]];for(M=0,O=L.length;M<O;++M){L[M]=[G[0]+L[M][0],G[1]+L[M][1]];}}}this.runtimeAttributes[P]=[G];if(L.length>0){this.runtimeAttributes[P]=this.runtimeAttributes[P].concat(L);}this.runtimeAttributes[P][this.runtimeAttributes[P].length]=I;}else{F.setRuntimeAttribute.call(this,P);}};var B=function(G,I){var H=E.Dom.getXY(this.getEl());G=[G[0]-H[0]+I[0],G[1]-H[1]+I[1]];return G;};var D=function(G){return(typeof G!=="undefined");};E.Motion=A;})();(function(){var D=function(F,E,G,H){if(F){D.superclass.constructor.call(this,F,E,G,H);}};D.NAME="Scroll";var B=YAHOO.util;YAHOO.extend(D,B.ColorAnim);var C=D.superclass;var A=D.prototype;A.doMethod=function(E,H,F){var G=null;if(E=="scroll"){G=[this.method(this.currentFrame,H[0],F[0]-H[0],this.totalFrames),this.method(this.currentFrame,H[1],F[1]-H[1],this.totalFrames)];}else{G=C.doMethod.call(this,E,H,F);}return G;};A.getAttribute=function(E){var G=null;var F=this.getEl();if(E=="scroll"){G=[F.scrollLeft,F.scrollTop];}else{G=C.getAttribute.call(this,E);}return G;};A.setAttribute=function(E,H,G){var F=this.getEl();if(E=="scroll"){F.scrollLeft=H[0];F.scrollTop=H[1];}else{C.setAttribute.call(this,E,H,G);}};B.Scroll=D;})();YAHOO.register("animation",YAHOO.util.Anim,{version:"2.8.2r1",build:"7"});if(!YAHOO.util.DragDropMgr){YAHOO.util.DragDropMgr=function(){var A=YAHOO.util.Event,B=YAHOO.util.Dom;return{useShim:false,_shimActive:false,_shimState:false,_debugShim:false,_createShim:function(){var C=document.createElement("div");C.id="yui-ddm-shim";if(document.body.firstChild){document.body.insertBefore(C,document.body.firstChild);}else{document.body.appendChild(C);}C.style.display="none";C.style.backgroundColor="red";C.style.position="absolute";C.style.zIndex="99999";B.setStyle(C,"opacity","0");this._shim=C;A.on(C,"mouseup",this.handleMouseUp,this,true);A.on(C,"mousemove",this.handleMouseMove,this,true);A.on(window,"scroll",this._sizeShim,this,true);},_sizeShim:function(){if(this._shimActive){var C=this._shim;C.style.height=B.getDocumentHeight()+"px";C.style.width=B.getDocumentWidth()+"px";C.style.top="0";C.style.left="0";}},_activateShim:function(){if(this.useShim){if(!this._shim){this._createShim();}this._shimActive=true;var C=this._shim,D="0";if(this._debugShim){D=".5";}B.setStyle(C,"opacity",D);this._sizeShim();C.style.display="block";}},_deactivateShim:function(){this._shim.style.display="none";this._shimActive=false;},_shim:null,ids:{},handleIds:{},dragCurrent:null,dragOvers:{},deltaX:0,deltaY:0,preventDefault:true,stopPropagation:true,initialized:false,locked:false,interactionInfo:null,init:function(){this.initialized=true;},POINT:0,INTERSECT:1,STRICT_INTERSECT:2,mode:0,_execOnAll:function(E,D){for(var F in this.ids){for(var C in this.ids[F]){var G=this.ids[F][C];if(!this.isTypeOfDD(G)){continue;}G[E].apply(G,D);}}},_onLoad:function(){this.init();A.on(document,"mouseup",this.handleMouseUp,this,true);A.on(document,"mousemove",this.handleMouseMove,this,true);A.on(window,"unload",this._onUnload,this,true);A.on(window,"resize",this._onResize,this,true);},_onResize:function(C){this._execOnAll("resetConstraints",[]);},lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isLocked:function(){return this.locked;},locationCache:{},useCache:true,clickPixelThresh:3,clickTimeThresh:1000,dragThreshMet:false,clickTimeout:null,startX:0,startY:0,fromTimeout:false,regDragDrop:function(D,C){if(!this.initialized){this.init();}if(!this.ids[C]){this.ids[C]={};}this.ids[C][D.id]=D;},removeDDFromGroup:function(E,C){if(!this.ids[C]){this.ids[C]={};}var D=this.ids[C];if(D&&D[E.id]){delete D[E.id];}},_remove:function(E){for(var D in E.groups){if(D){var C=this.ids[D];if(C&&C[E.id]){delete C[E.id];}}}delete this.handleIds[E.id];},regHandle:function(D,C){if(!this.handleIds[D]){this.handleIds[D]={};}this.handleIds[D][C]=C;},isDragDrop:function(C){return(this.getDDById(C))?true:false;},getRelated:function(H,D){var G=[];for(var F in H.groups){for(var E in this.ids[F]){var C=this.ids[F][E];if(!this.isTypeOfDD(C)){continue;}if(!D||C.isTarget){G[G.length]=C;}}}return G;},isLegalTarget:function(G,F){var D=this.getRelated(G,true);for(var E=0,C=D.length;E<C;++E){if(D[E].id==F.id){return true;}}return false;},isTypeOfDD:function(C){return(C&&C.__ygDragDrop);},isHandle:function(D,C){return(this.handleIds[D]&&this.handleIds[D][C]);},getDDById:function(D){for(var C in this.ids){if(this.ids[C][D]){return this.ids[C][D];}}return null;},handleMouseDown:function(E,D){this.currentTarget=YAHOO.util.Event.getTarget(E);this.dragCurrent=D;var C=D.getEl();this.startX=YAHOO.util.Event.getPageX(E);this.startY=YAHOO.util.Event.getPageY(E);this.deltaX=this.startX-C.offsetLeft;this.deltaY=this.startY-C.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout(function(){var F=YAHOO.util.DDM;F.startDrag(F.startX,F.startY);F.fromTimeout=true;},this.clickTimeThresh);},startDrag:function(C,E){if(this.dragCurrent&&this.dragCurrent.useShim){this._shimState=this.useShim;this.useShim=true;}this._activateShim();clearTimeout(this.clickTimeout);var D=this.dragCurrent;if(D&&D.events.b4StartDrag){D.b4StartDrag(C,E);D.fireEvent("b4StartDragEvent",{x:C,y:E});}if(D&&D.events.startDrag){D.startDrag(C,E);D.fireEvent("startDragEvent",{x:C,y:E});}this.dragThreshMet=true;},handleMouseUp:function(C){if(this.dragCurrent){clearTimeout(this.clickTimeout);if(this.dragThreshMet){if(this.fromTimeout){this.fromTimeout=false;this.handleMouseMove(C);}this.fromTimeout=false;this.fireEvents(C,true);}else{}this.stopDrag(C);this.stopEvent(C);}},stopEvent:function(C){if(this.stopPropagation){YAHOO.util.Event.stopPropagation(C);}if(this.preventDefault){YAHOO.util.Event.preventDefault(C);}},stopDrag:function(E,D){var C=this.dragCurrent;if(C&&!D){if(this.dragThreshMet){if(C.events.b4EndDrag){C.b4EndDrag(E);C.fireEvent("b4EndDragEvent",{e:E});}if(C.events.endDrag){C.endDrag(E);C.fireEvent("endDragEvent",{e:E});}}if(C.events.mouseUp){C.onMouseUp(E);C.fireEvent("mouseUpEvent",{e:E});}}if(this._shimActive){this._deactivateShim();if(this.dragCurrent&&this.dragCurrent.useShim){this.useShim=this._shimState;this._shimState=false;}}this.dragCurrent=null;this.dragOvers={};},handleMouseMove:function(F){var C=this.dragCurrent;if(C){if(YAHOO.util.Event.isIE&&!F.button){this.stopEvent(F);return this.handleMouseUp(F);}else{if(F.clientX<0||F.clientY<0){}}if(!this.dragThreshMet){var E=Math.abs(this.startX-YAHOO.util.Event.getPageX(F));var D=Math.abs(this.startY-YAHOO.util.Event.getPageY(F));if(E>this.clickPixelThresh||D>this.clickPixelThresh){this.startDrag(this.startX,this.startY);}}if(this.dragThreshMet){if(C&&C.events.b4Drag){C.b4Drag(F);C.fireEvent("b4DragEvent",{e:F});}if(C&&C.events.drag){C.onDrag(F);C.fireEvent("dragEvent",{e:F});}if(C){this.fireEvents(F,false);}}this.stopEvent(F);}},fireEvents:function(V,L){var a=this.dragCurrent;if(!a||a.isLocked()||a.dragOnly){return;}var N=YAHOO.util.Event.getPageX(V),M=YAHOO.util.Event.getPageY(V),P=new YAHOO.util.Point(N,M),K=a.getTargetCoord(P.x,P.y),F=a.getDragEl(),E=["out","over","drop","enter"],U=new YAHOO.util.Region(K.y,K.x+F.offsetWidth,K.y+F.offsetHeight,K.x),I=[],D={},Q=[],c={outEvts:[],overEvts:[],dropEvts:[],enterEvts:[]};for(var S in this.dragOvers){var d=this.dragOvers[S];if(!this.isTypeOfDD(d)){continue;
 }if(!this.isOverTarget(P,d,this.mode,U)){c.outEvts.push(d);}I[S]=true;delete this.dragOvers[S];}for(var R in a.groups){if("string"!=typeof R){continue;}for(S in this.ids[R]){var G=this.ids[R][S];if(!this.isTypeOfDD(G)){continue;}if(G.isTarget&&!G.isLocked()&&G!=a){if(this.isOverTarget(P,G,this.mode,U)){D[R]=true;if(L){c.dropEvts.push(G);}else{if(!I[G.id]){c.enterEvts.push(G);}else{c.overEvts.push(G);}this.dragOvers[G.id]=G;}}}}}this.interactionInfo={out:c.outEvts,enter:c.enterEvts,over:c.overEvts,drop:c.dropEvts,point:P,draggedRegion:U,sourceRegion:this.locationCache[a.id],validDrop:L};for(var C in D){Q.push(C);}if(L&&!c.dropEvts.length){this.interactionInfo.validDrop=false;if(a.events.invalidDrop){a.onInvalidDrop(V);a.fireEvent("invalidDropEvent",{e:V});}}for(S=0;S<E.length;S++){var Y=null;if(c[E[S]+"Evts"]){Y=c[E[S]+"Evts"];}if(Y&&Y.length){var H=E[S].charAt(0).toUpperCase()+E[S].substr(1),X="onDrag"+H,J="b4Drag"+H,O="drag"+H+"Event",W="drag"+H;if(this.mode){if(a.events[J]){a[J](V,Y,Q);a.fireEvent(J+"Event",{event:V,info:Y,group:Q});}if(a.events[W]){a[X](V,Y,Q);a.fireEvent(O,{event:V,info:Y,group:Q});}}else{for(var Z=0,T=Y.length;Z<T;++Z){if(a.events[J]){a[J](V,Y[Z].id,Q[0]);a.fireEvent(J+"Event",{event:V,info:Y[Z].id,group:Q[0]});}if(a.events[W]){a[X](V,Y[Z].id,Q[0]);a.fireEvent(O,{event:V,info:Y[Z].id,group:Q[0]});}}}}}},getBestMatch:function(E){var G=null;var D=E.length;if(D==1){G=E[0];}else{for(var F=0;F<D;++F){var C=E[F];if(this.mode==this.INTERSECT&&C.cursorIsOver){G=C;break;}else{if(!G||!G.overlap||(C.overlap&&G.overlap.getArea()<C.overlap.getArea())){G=C;}}}}return G;},refreshCache:function(D){var F=D||this.ids;for(var C in F){if("string"!=typeof C){continue;}for(var E in this.ids[C]){var G=this.ids[C][E];if(this.isTypeOfDD(G)){var H=this.getLocation(G);if(H){this.locationCache[G.id]=H;}else{delete this.locationCache[G.id];}}}}},verifyEl:function(D){try{if(D){var C=D.offsetParent;if(C){return true;}}}catch(E){}return false;},getLocation:function(H){if(!this.isTypeOfDD(H)){return null;}var F=H.getEl(),K,E,D,M,L,N,C,J,G;try{K=YAHOO.util.Dom.getXY(F);}catch(I){}if(!K){return null;}E=K[0];D=E+F.offsetWidth;M=K[1];L=M+F.offsetHeight;N=M-H.padding[0];C=D+H.padding[1];J=L+H.padding[2];G=E-H.padding[3];return new YAHOO.util.Region(N,C,J,G);},isOverTarget:function(K,C,E,F){var G=this.locationCache[C.id];if(!G||!this.useCache){G=this.getLocation(C);this.locationCache[C.id]=G;}if(!G){return false;}C.cursorIsOver=G.contains(K);var J=this.dragCurrent;if(!J||(!E&&!J.constrainX&&!J.constrainY)){return C.cursorIsOver;}C.overlap=null;if(!F){var H=J.getTargetCoord(K.x,K.y);var D=J.getDragEl();F=new YAHOO.util.Region(H.y,H.x+D.offsetWidth,H.y+D.offsetHeight,H.x);}var I=F.intersect(G);if(I){C.overlap=I;return(E)?true:C.cursorIsOver;}else{return false;}},_onUnload:function(D,C){this.unregAll();},unregAll:function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null;}this._execOnAll("unreg",[]);this.ids={};},elementCache:{},getElWrapper:function(D){var C=this.elementCache[D];if(!C||!C.el){C=this.elementCache[D]=new this.ElementWrapper(YAHOO.util.Dom.get(D));}return C;},getElement:function(C){return YAHOO.util.Dom.get(C);},getCss:function(D){var C=YAHOO.util.Dom.get(D);return(C)?C.style:null;},ElementWrapper:function(C){this.el=C||null;this.id=this.el&&C.id;this.css=this.el&&C.style;},getPosX:function(C){return YAHOO.util.Dom.getX(C);},getPosY:function(C){return YAHOO.util.Dom.getY(C);},swapNode:function(E,C){if(E.swapNode){E.swapNode(C);}else{var F=C.parentNode;var D=C.nextSibling;if(D==E){F.insertBefore(E,C);}else{if(C==E.nextSibling){F.insertBefore(C,E);}else{E.parentNode.replaceChild(C,E);F.insertBefore(E,D);}}}},getScroll:function(){var E,C,F=document.documentElement,D=document.body;if(F&&(F.scrollTop||F.scrollLeft)){E=F.scrollTop;C=F.scrollLeft;}else{if(D){E=D.scrollTop;C=D.scrollLeft;}else{}}return{top:E,left:C};},getStyle:function(D,C){return YAHOO.util.Dom.getStyle(D,C);},getScrollTop:function(){return this.getScroll().top;},getScrollLeft:function(){return this.getScroll().left;},moveToEl:function(C,E){var D=YAHOO.util.Dom.getXY(E);YAHOO.util.Dom.setXY(C,D);},getClientHeight:function(){return YAHOO.util.Dom.getViewportHeight();},getClientWidth:function(){return YAHOO.util.Dom.getViewportWidth();},numericSort:function(D,C){return(D-C);},_timeoutCount:0,_addListeners:function(){var C=YAHOO.util.DDM;if(YAHOO.util.Event&&document){C._onLoad();}else{if(C._timeoutCount>2000){}else{setTimeout(C._addListeners,10);if(document&&document.body){C._timeoutCount+=1;}}}},handleWasClicked:function(C,E){if(this.isHandle(E,C.id)){return true;}else{var D=C.parentNode;while(D){if(this.isHandle(E,D.id)){return true;}else{D=D.parentNode;}}}return false;}};}();YAHOO.util.DDM=YAHOO.util.DragDropMgr;YAHOO.util.DDM._addListeners();}(function(){var A=YAHOO.util.Event;var B=YAHOO.util.Dom;YAHOO.util.DragDrop=function(E,C,D){if(E){this.init(E,C,D);}};YAHOO.util.DragDrop.prototype={events:null,on:function(){this.subscribe.apply(this,arguments);},id:null,config:null,dragElId:null,handleElId:null,invalidHandleTypes:null,invalidHandleIds:null,invalidHandleClasses:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true;},unlock:function(){this.locked=false;},isTarget:true,padding:null,dragOnly:false,useShim:false,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,deltaX:0,deltaY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,available:false,hasOuterHandles:false,cursorIsOver:false,overlap:null,b4StartDrag:function(C,D){},startDrag:function(C,D){},b4Drag:function(C){},onDrag:function(C){},onDragEnter:function(C,D){},b4DragOver:function(C){},onDragOver:function(C,D){},b4DragOut:function(C){},onDragOut:function(C,D){},b4DragDrop:function(C){},onDragDrop:function(C,D){},onInvalidDrop:function(C){},b4EndDrag:function(C){},endDrag:function(C){},b4MouseDown:function(C){},onMouseDown:function(C){},onMouseUp:function(C){},onAvailable:function(){},getEl:function(){if(!this._domRef){this._domRef=B.get(this.id);
 }return this._domRef;},getDragEl:function(){return B.get(this.dragElId);},init:function(F,C,D){this.initTarget(F,C,D);A.on(this._domRef||this.id,"mousedown",this.handleMouseDown,this,true);for(var E in this.events){this.createEvent(E+"Event");}},initTarget:function(E,C,D){this.config=D||{};this.events={};this.DDM=YAHOO.util.DDM;this.groups={};if(typeof E!=="string"){this._domRef=E;E=B.generateId(E);}this.id=E;this.addToGroup((C)?C:"default");this.handleElId=E;A.onAvailable(E,this.handleOnAvailable,this,true);this.setDragElId(E);this.invalidHandleTypes={A:"A"};this.invalidHandleIds={};this.invalidHandleClasses=[];this.applyConfig();},applyConfig:function(){this.events={mouseDown:true,b4MouseDown:true,mouseUp:true,b4StartDrag:true,startDrag:true,b4EndDrag:true,endDrag:true,drag:true,b4Drag:true,invalidDrop:true,b4DragOut:true,dragOut:true,dragEnter:true,b4DragOver:true,dragOver:true,b4DragDrop:true,dragDrop:true};if(this.config.events){for(var C in this.config.events){if(this.config.events[C]===false){this.events[C]=false;}}}this.padding=this.config.padding||[0,0,0,0];this.isTarget=(this.config.isTarget!==false);this.maintainOffset=(this.config.maintainOffset);this.primaryButtonOnly=(this.config.primaryButtonOnly!==false);this.dragOnly=((this.config.dragOnly===true)?true:false);this.useShim=((this.config.useShim===true)?true:false);},handleOnAvailable:function(){this.available=true;this.resetConstraints();this.onAvailable();},setPadding:function(E,C,F,D){if(!C&&0!==C){this.padding=[E,E,E,E];}else{if(!F&&0!==F){this.padding=[E,C,E,C];}else{this.padding=[E,C,F,D];}}},setInitPosition:function(F,E){var G=this.getEl();if(!this.DDM.verifyEl(G)){if(G&&G.style&&(G.style.display=="none")){}else{}return;}var D=F||0;var C=E||0;var H=B.getXY(G);this.initPageX=H[0]-D;this.initPageY=H[1]-C;this.lastPageX=H[0];this.lastPageY=H[1];this.setStartPosition(H);},setStartPosition:function(D){var C=D||B.getXY(this.getEl());this.deltaSetXY=null;this.startPageX=C[0];this.startPageY=C[1];},addToGroup:function(C){this.groups[C]=true;this.DDM.regDragDrop(this,C);},removeFromGroup:function(C){if(this.groups[C]){delete this.groups[C];}this.DDM.removeDDFromGroup(this,C);},setDragElId:function(C){this.dragElId=C;},setHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.handleElId=C;this.DDM.regHandle(this.id,C);},setOuterHandleElId:function(C){if(typeof C!=="string"){C=B.generateId(C);}A.on(C,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(C);this.hasOuterHandles=true;},unreg:function(){A.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this);},isLocked:function(){return(this.DDM.isLocked()||this.locked);},handleMouseDown:function(J,I){var D=J.which||J.button;if(this.primaryButtonOnly&&D>1){return;}if(this.isLocked()){return;}var C=this.b4MouseDown(J),F=true;if(this.events.b4MouseDown){F=this.fireEvent("b4MouseDownEvent",J);}var E=this.onMouseDown(J),H=true;if(this.events.mouseDown){H=this.fireEvent("mouseDownEvent",J);}if((C===false)||(E===false)||(F===false)||(H===false)){return;}this.DDM.refreshCache(this.groups);var G=new YAHOO.util.Point(A.getPageX(J),A.getPageY(J));if(!this.hasOuterHandles&&!this.DDM.isOverTarget(G,this)){}else{if(this.clickValidator(J)){this.setStartPosition();this.DDM.handleMouseDown(J,this);this.DDM.stopEvent(J);}else{}}},clickValidator:function(D){var C=YAHOO.util.Event.getTarget(D);return(this.isValidHandleChild(C)&&(this.id==this.handleElId||this.DDM.handleWasClicked(C,this.id)));},getTargetCoord:function(E,D){var C=E-this.deltaX;var F=D-this.deltaY;if(this.constrainX){if(C<this.minX){C=this.minX;}if(C>this.maxX){C=this.maxX;}}if(this.constrainY){if(F<this.minY){F=this.minY;}if(F>this.maxY){F=this.maxY;}}C=this.getTick(C,this.xTicks);F=this.getTick(F,this.yTicks);return{x:C,y:F};},addInvalidHandleType:function(C){var D=C.toUpperCase();this.invalidHandleTypes[D]=D;},addInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}this.invalidHandleIds[C]=C;},addInvalidHandleClass:function(C){this.invalidHandleClasses.push(C);},removeInvalidHandleType:function(C){var D=C.toUpperCase();delete this.invalidHandleTypes[D];},removeInvalidHandleId:function(C){if(typeof C!=="string"){C=B.generateId(C);}delete this.invalidHandleIds[C];},removeInvalidHandleClass:function(D){for(var E=0,C=this.invalidHandleClasses.length;E<C;++E){if(this.invalidHandleClasses[E]==D){delete this.invalidHandleClasses[E];}}},isValidHandleChild:function(F){var E=true;var H;try{H=F.nodeName.toUpperCase();}catch(G){H=F.nodeName;}E=E&&!this.invalidHandleTypes[H];E=E&&!this.invalidHandleIds[F.id];for(var D=0,C=this.invalidHandleClasses.length;E&&D<C;++D){E=!B.hasClass(F,this.invalidHandleClasses[D]);}return E;},setXTicks:function(F,C){this.xTicks=[];this.xTickSize=C;var E={};for(var D=this.initPageX;D>=this.minX;D=D-C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}for(D=this.initPageX;D<=this.maxX;D=D+C){if(!E[D]){this.xTicks[this.xTicks.length]=D;E[D]=true;}}this.xTicks.sort(this.DDM.numericSort);},setYTicks:function(F,C){this.yTicks=[];this.yTickSize=C;var E={};for(var D=this.initPageY;D>=this.minY;D=D-C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}for(D=this.initPageY;D<=this.maxY;D=D+C){if(!E[D]){this.yTicks[this.yTicks.length]=D;E[D]=true;}}this.yTicks.sort(this.DDM.numericSort);},setXConstraint:function(E,D,C){this.leftConstraint=parseInt(E,10);this.rightConstraint=parseInt(D,10);this.minX=this.initPageX-this.leftConstraint;this.maxX=this.initPageX+this.rightConstraint;if(C){this.setXTicks(this.initPageX,C);}this.constrainX=true;},clearConstraints:function(){this.constrainX=false;this.constrainY=false;this.clearTicks();},clearTicks:function(){this.xTicks=null;this.yTicks=null;this.xTickSize=0;this.yTickSize=0;},setYConstraint:function(C,E,D){this.topConstraint=parseInt(C,10);this.bottomConstraint=parseInt(E,10);this.minY=this.initPageY-this.topConstraint;this.maxY=this.initPageY+this.bottomConstraint;if(D){this.setYTicks(this.initPageY,D);
-}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return;}var F=this.getDragEl(),E=YAHOO.util.Dom;if(!F){F=document.createElement("div");F.id=this.dragElId;var D=F.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");F.appendChild(C);A.insertBefore(F,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DDM.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.8.1",build:"19"});YAHOO.util.Attribute=function(B,A){if(A){this.owner=A;this.configure(B,true);}};YAHOO.util.Attribute.prototype={name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,setter:null,getter:null,validator:null,getValue:function(){var A=this.value;if(this.getter){A=this.getter.call(this.owner,this.name,A);}return A;},setValue:function(F,B){var E,A=this.owner,C=this.name;var D={type:C,prevValue:this.getValue(),newValue:F};if(this.readOnly||(this.writeOnce&&this._written)){return false;}if(this.validator&&!this.validator.call(A,F)){return false;}if(!B){E=A.fireBeforeChangeEvent(D);if(E===false){return false;}}if(this.setter){F=this.setter.call(A,F,this.name);if(F===undefined){}}if(this.method){this.method.call(A,F,this.name);}this.value=F;this._written=true;D.type=C;if(!B){this.owner.fireChangeEvent(D);}return true;},configure:function(B,C){B=B||{};if(C){this._written=false;}this._initialConfig=this._initialConfig||{};for(var A in B){if(B.hasOwnProperty(A)){this[A]=B[A];if(C){this._initialConfig[A]=B[A];}}}},resetValue:function(){return this.setValue(this._initialConfig.value);},resetConfig:function(){this.configure(this._initialConfig,true);},refresh:function(A){this.setValue(this.value,A);}};(function(){var A=YAHOO.util.Lang;YAHOO.util.AttributeProvider=function(){};YAHOO.util.AttributeProvider.prototype={_configs:null,get:function(C){this._configs=this._configs||{};var B=this._configs[C];if(!B||!this._configs.hasOwnProperty(C)){return null;}return B.getValue();},set:function(D,E,B){this._configs=this._configs||{};var C=this._configs[D];if(!C){return false;}return C.setValue(E,B);},getAttributeKeys:function(){this._configs=this._configs;var C=[],B;for(B in this._configs){if(A.hasOwnProperty(this._configs,B)&&!A.isUndefined(this._configs[B])){C[C.length]=B;}}return C;},setAttributes:function(D,B){for(var C in D){if(A.hasOwnProperty(D,C)){this.set(C,D[C],B);}}},resetValue:function(C,B){this._configs=this._configs||{};if(this._configs[C]){this.set(C,this._configs[C]._initialConfig.value,B);return true;}return false;},refresh:function(E,C){this._configs=this._configs||{};var F=this._configs;E=((A.isString(E))?[E]:E)||this.getAttributeKeys();for(var D=0,B=E.length;D<B;++D){if(F.hasOwnProperty(E[D])){this._configs[E[D]].refresh(C);}}},register:function(B,C){this.setAttributeConfig(B,C);},getAttributeConfig:function(C){this._configs=this._configs||{};var B=this._configs[C]||{};var D={};for(C in B){if(A.hasOwnProperty(B,C)){D[C]=B[C];}}return D;},setAttributeConfig:function(B,C,D){this._configs=this._configs||{};C=C||{};if(!this._configs[B]){C.name=B;this._configs[B]=this.createAttribute(C);}else{this._configs[B].configure(C,D);}},configureAttribute:function(B,C,D){this.setAttributeConfig(B,C,D);},resetAttributeConfig:function(B){this._configs=this._configs||{};this._configs[B].resetConfig();},subscribe:function(B,C){this._events=this._events||{};if(!(B in this._events)){this._events[B]=this.createEvent(B);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.subscribe.apply(this,arguments);},addListener:function(){this.subscribe.apply(this,arguments);},fireBeforeChangeEvent:function(C){var B="before";B+=C.type.charAt(0).toUpperCase()+C.type.substr(1)+"Change";C.type=B;return this.fireEvent(C.type,C);},fireChangeEvent:function(B){B.type+="Change";return this.fireEvent(B.type,B);},createAttribute:function(B){return new YAHOO.util.Attribute(B,this);}};YAHOO.augment(YAHOO.util.AttributeProvider,YAHOO.util.EventProvider);})();(function(){var B=YAHOO.util.Dom,D=YAHOO.util.AttributeProvider,C={mouseenter:true,mouseleave:true};var A=function(E,F){this.init.apply(this,arguments);};A.DOM_EVENTS={"click":true,"dblclick":true,"keydown":true,"keypress":true,"keyup":true,"mousedown":true,"mousemove":true,"mouseout":true,"mouseover":true,"mouseup":true,"mouseenter":true,"mouseleave":true,"focus":true,"blur":true,"submit":true,"change":true};A.prototype={DOM_EVENTS:null,DEFAULT_HTML_SETTER:function(G,E){var F=this.get("element");if(F){F[E]=G;}return G;},DEFAULT_HTML_GETTER:function(E){var F=this.get("element"),G;if(F){G=F[E];}return G;},appendChild:function(E){E=E.get?E.get("element"):E;return this.get("element").appendChild(E);},getElementsByTagName:function(E){return this.get("element").getElementsByTagName(E);},hasChildNodes:function(){return this.get("element").hasChildNodes();},insertBefore:function(E,F){E=E.get?E.get("element"):E;F=(F&&F.get)?F.get("element"):F;return this.get("element").insertBefore(E,F);},removeChild:function(E){E=E.get?E.get("element"):E;return this.get("element").removeChild(E);},replaceChild:function(E,F){E=E.get?E.get("element"):E;F=F.get?F.get("element"):F;return this.get("element").replaceChild(E,F);},initAttributes:function(E){},addListener:function(J,I,K,H){H=H||this;var E=YAHOO.util.Event,G=this.get("element")||this.get("id"),F=this;if(C[J]&&!E._createMouseDelegate){return false;}if(!this._events[J]){if(G&&this.DOM_EVENTS[J]){E.on(G,J,function(M,L){if(M.srcElement&&!M.target){M.target=M.srcElement;}if((M.toElement&&!M.relatedTarget)||(M.fromElement&&!M.relatedTarget)){M.relatedTarget=E.getRelatedTarget(M);}if(!M.currentTarget){M.currentTarget=G;}F.fireEvent(J,M,L);},K,H);}this.createEvent(J,{scope:this});}return YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){return this.addListener.apply(this,arguments);},subscribe:function(){return this.addListener.apply(this,arguments);},removeListener:function(F,E){return this.unsubscribe.apply(this,arguments);},addClass:function(E){B.addClass(this.get("element"),E);},getElementsByClassName:function(F,E){return B.getElementsByClassName(F,E,this.get("element"));},hasClass:function(E){return B.hasClass(this.get("element"),E);},removeClass:function(E){return B.removeClass(this.get("element"),E);},replaceClass:function(F,E){return B.replaceClass(this.get("element"),F,E);},setStyle:function(F,E){return B.setStyle(this.get("element"),F,E);
-},getStyle:function(E){return B.getStyle(this.get("element"),E);},fireQueue:function(){var F=this._queue;for(var G=0,E=F.length;G<E;++G){this[F[G][0]].apply(this,F[G][1]);}},appendTo:function(F,G){F=(F.get)?F.get("element"):B.get(F);this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:F});G=(G&&G.get)?G.get("element"):B.get(G);var E=this.get("element");if(!E){return false;}if(!F){return false;}if(E.parent!=F){if(G){F.insertBefore(E,G);}else{F.appendChild(E);}}this.fireEvent("appendTo",{type:"appendTo",target:F});return E;},get:function(E){var G=this._configs||{},F=G.element;if(F&&!G[E]&&!YAHOO.lang.isUndefined(F.value[E])){this._setHTMLAttrConfig(E);}return D.prototype.get.call(this,E);},setAttributes:function(K,H){var F={},I=this._configOrder;for(var J=0,E=I.length;J<E;++J){if(K[I[J]]!==undefined){F[I[J]]=true;this.set(I[J],K[I[J]],H);}}for(var G in K){if(K.hasOwnProperty(G)&&!F[G]){this.set(G,K[G],H);}}},set:function(F,H,E){var G=this.get("element");if(!G){this._queue[this._queue.length]=["set",arguments];if(this._configs[F]){this._configs[F].value=H;}return;}if(!this._configs[F]&&!YAHOO.lang.isUndefined(G[F])){this._setHTMLAttrConfig(F);}return D.prototype.set.apply(this,arguments);},setAttributeConfig:function(E,F,G){this._configOrder.push(E);D.prototype.setAttributeConfig.apply(this,arguments);},createEvent:function(F,E){this._events[F]=true;return D.prototype.createEvent.apply(this,arguments);},init:function(F,E){this._initElement(F,E);},destroy:function(){var E=this.get("element");YAHOO.util.Event.purgeElement(E,true);this.unsubscribeAll();if(E&&E.parentNode){E.parentNode.removeChild(E);}this._queue=[];this._events={};this._configs={};this._configOrder=[];},_initElement:function(G,F){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._configOrder=[];F=F||{};F.element=F.element||G||null;var I=false;var E=A.DOM_EVENTS;this.DOM_EVENTS=this.DOM_EVENTS||{};for(var H in E){if(E.hasOwnProperty(H)){this.DOM_EVENTS[H]=E[H];}}if(typeof F.element==="string"){this._setHTMLAttrConfig("id",{value:F.element});}if(B.get(F.element)){I=true;this._initHTMLElement(F);this._initContent(F);}YAHOO.util.Event.onAvailable(F.element,function(){if(!I){this._initHTMLElement(F);}this.fireEvent("available",{type:"available",target:B.get(F.element)});},this,true);YAHOO.util.Event.onContentReady(F.element,function(){if(!I){this._initContent(F);}this.fireEvent("contentReady",{type:"contentReady",target:B.get(F.element)});},this,true);},_initHTMLElement:function(E){this.setAttributeConfig("element",{value:B.get(E.element),readOnly:true});},_initContent:function(E){this.initAttributes(E);this.setAttributes(E,true);this.fireQueue();},_setHTMLAttrConfig:function(E,G){var F=this.get("element");G=G||{};G.name=E;G.setter=G.setter||this.DEFAULT_HTML_SETTER;G.getter=G.getter||this.DEFAULT_HTML_GETTER;G.value=G.value||F[E];this._configs[E]=new YAHOO.util.Attribute(G,this);}};YAHOO.augment(A,D);YAHOO.util.Element=A;})();YAHOO.register("element",YAHOO.util.Element,{version:"2.8.1",build:"19"});YAHOO.register("utilities", YAHOO, {version: "2.8.1", build: "19"});
\ No newline at end of file
+}this.constrainY=true;},resetConstraints:function(){if(this.initPageX||this.initPageX===0){var D=(this.maintainOffset)?this.lastPageX-this.initPageX:0;var C=(this.maintainOffset)?this.lastPageY-this.initPageY:0;this.setInitPosition(D,C);}else{this.setInitPosition();}if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize);}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize);}},getTick:function(I,F){if(!F){return I;}else{if(F[0]>=I){return F[0];}else{for(var D=0,C=F.length;D<C;++D){var E=D+1;if(F[E]&&F[E]>=I){var H=I-F[D];var G=F[E]-I;return(G>H)?F[D]:F[E];}}return F[F.length-1];}}},toString:function(){return("DragDrop "+this.id);}};YAHOO.augment(YAHOO.util.DragDrop,YAHOO.util.EventProvider);})();YAHOO.util.DD=function(C,A,B){if(C){this.init(C,A,B);}};YAHOO.extend(YAHOO.util.DD,YAHOO.util.DragDrop,{scroll:true,autoOffset:function(C,B){var A=C-this.startPageX;var D=B-this.startPageY;this.setDelta(A,D);},setDelta:function(B,A){this.deltaX=B;this.deltaY=A;},setDragElPos:function(C,B){var A=this.getDragEl();this.alignElWithMouse(A,C,B);},alignElWithMouse:function(C,G,F){var E=this.getTargetCoord(G,F);if(!this.deltaSetXY){var H=[E.x,E.y];YAHOO.util.Dom.setXY(C,H);var D=parseInt(YAHOO.util.Dom.getStyle(C,"left"),10);var B=parseInt(YAHOO.util.Dom.getStyle(C,"top"),10);this.deltaSetXY=[D-E.x,B-E.y];}else{YAHOO.util.Dom.setStyle(C,"left",(E.x+this.deltaSetXY[0])+"px");YAHOO.util.Dom.setStyle(C,"top",(E.y+this.deltaSetXY[1])+"px");}this.cachePosition(E.x,E.y);var A=this;setTimeout(function(){A.autoScroll.call(A,E.x,E.y,C.offsetHeight,C.offsetWidth);},0);},cachePosition:function(B,A){if(B){this.lastPageX=B;this.lastPageY=A;}else{var C=YAHOO.util.Dom.getXY(this.getEl());this.lastPageX=C[0];this.lastPageY=C[1];}},autoScroll:function(J,I,E,K){if(this.scroll){var L=this.DDM.getClientHeight();var B=this.DDM.getClientWidth();var N=this.DDM.getScrollTop();var D=this.DDM.getScrollLeft();var H=E+I;var M=K+J;var G=(L+N-I-this.deltaY);var F=(B+D-J-this.deltaX);var C=40;var A=(document.all)?80:30;if(H>L&&G<C){window.scrollTo(D,N+A);}if(I<N&&N>0&&I-N<C){window.scrollTo(D,N-A);}if(M>B&&F<C){window.scrollTo(D+A,N);}if(J<D&&D>0&&J-D<C){window.scrollTo(D-A,N);}}},applyConfig:function(){YAHOO.util.DD.superclass.applyConfig.call(this);this.scroll=(this.config.scroll!==false);},b4MouseDown:function(A){this.setStartPosition();this.autoOffset(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},b4Drag:function(A){this.setDragElPos(YAHOO.util.Event.getPageX(A),YAHOO.util.Event.getPageY(A));},toString:function(){return("DD "+this.id);}});YAHOO.util.DDProxy=function(C,A,B){if(C){this.init(C,A,B);this.initFrame();}};YAHOO.util.DDProxy.dragElId="ygddfdiv";YAHOO.extend(YAHOO.util.DDProxy,YAHOO.util.DD,{resizeFrame:true,centerFrame:false,createFrame:function(){var B=this,A=document.body;if(!A||!A.firstChild){setTimeout(function(){B.createFrame();},50);return;}var F=this.getDragEl(),E=YAHOO.util.Dom;if(!F){F=document.createElement("div");F.id=this.dragElId;var D=F.style;D.position="absolute";D.visibility="hidden";D.cursor="move";D.border="2px solid #aaa";D.zIndex=999;D.height="25px";D.width="25px";var C=document.createElement("div");E.setStyle(C,"height","100%");E.setStyle(C,"width","100%");E.setStyle(C,"background-color","#ccc");E.setStyle(C,"opacity","0");F.appendChild(C);A.insertBefore(F,A.firstChild);}},initFrame:function(){this.createFrame();},applyConfig:function(){YAHOO.util.DDProxy.superclass.applyConfig.call(this);this.resizeFrame=(this.config.resizeFrame!==false);this.centerFrame=(this.config.centerFrame);this.setDragElId(this.config.dragElId||YAHOO.util.DDProxy.dragElId);},showFrame:function(E,D){var C=this.getEl();var A=this.getDragEl();var B=A.style;this._resizeProxy();if(this.centerFrame){this.setDelta(Math.round(parseInt(B.width,10)/2),Math.round(parseInt(B.height,10)/2));}this.setDragElPos(E,D);YAHOO.util.Dom.setStyle(A,"visibility","visible");},_resizeProxy:function(){if(this.resizeFrame){var H=YAHOO.util.Dom;var B=this.getEl();var C=this.getDragEl();var G=parseInt(H.getStyle(C,"borderTopWidth"),10);var I=parseInt(H.getStyle(C,"borderRightWidth"),10);var F=parseInt(H.getStyle(C,"borderBottomWidth"),10);var D=parseInt(H.getStyle(C,"borderLeftWidth"),10);if(isNaN(G)){G=0;}if(isNaN(I)){I=0;}if(isNaN(F)){F=0;}if(isNaN(D)){D=0;}var E=Math.max(0,B.offsetWidth-I-D);var A=Math.max(0,B.offsetHeight-G-F);H.setStyle(C,"width",E+"px");H.setStyle(C,"height",A+"px");}},b4MouseDown:function(B){this.setStartPosition();var A=YAHOO.util.Event.getPageX(B);var C=YAHOO.util.Event.getPageY(B);this.autoOffset(A,C);},b4StartDrag:function(A,B){this.showFrame(A,B);},b4EndDrag:function(A){YAHOO.util.Dom.setStyle(this.getDragEl(),"visibility","hidden");},endDrag:function(D){var C=YAHOO.util.Dom;var B=this.getEl();var A=this.getDragEl();C.setStyle(A,"visibility","");C.setStyle(B,"visibility","hidden");YAHOO.util.DDM.moveToEl(B,A);C.setStyle(A,"visibility","hidden");C.setStyle(B,"visibility","");},toString:function(){return("DDProxy "+this.id);}});YAHOO.util.DDTarget=function(C,A,B){if(C){this.initTarget(C,A,B);}};YAHOO.extend(YAHOO.util.DDTarget,YAHOO.util.DragDrop,{toString:function(){return("DDTarget "+this.id);}});YAHOO.register("dragdrop",YAHOO.util.DragDropMgr,{version:"2.8.2r1",build:"7"});YAHOO.util.Attribute=function(B,A){if(A){this.owner=A;this.configure(B,true);}};YAHOO.util.Attribute.prototype={name:undefined,value:null,owner:null,readOnly:false,writeOnce:false,_initialConfig:null,_written:false,method:null,setter:null,getter:null,validator:null,getValue:function(){var A=this.value;if(this.getter){A=this.getter.call(this.owner,this.name,A);}return A;},setValue:function(F,B){var E,A=this.owner,C=this.name;var D={type:C,prevValue:this.getValue(),newValue:F};if(this.readOnly||(this.writeOnce&&this._written)){return false;}if(this.validator&&!this.validator.call(A,F)){return false;}if(!B){E=A.fireBeforeChangeEvent(D);if(E===false){return false;}}if(this.setter){F=this.setter.call(A,F,this.name);if(F===undefined){}}if(this.method){this.method.call(A,F,this.name);}this.value=F;this._written=true;D.type=C;if(!B){this.owner.fireChangeEvent(D);}return true;},configure:function(B,C){B=B||{};if(C){this._written=false;}this._initialConfig=this._initialConfig||{};for(var A in B){if(B.hasOwnProperty(A)){this[A]=B[A];if(C){this._initialConfig[A]=B[A];}}}},resetValue:function(){return this.setValue(this._initialConfig.value);},resetConfig:function(){this.configure(this._initialConfig,true);},refresh:function(A){this.setValue(this.value,A);}};(function(){var A=YAHOO.util.Lang;YAHOO.util.AttributeProvider=function(){};YAHOO.util.AttributeProvider.prototype={_configs:null,get:function(C){this._configs=this._configs||{};var B=this._configs[C];if(!B||!this._configs.hasOwnProperty(C)){return null;}return B.getValue();},set:function(D,E,B){this._configs=this._configs||{};var C=this._configs[D];if(!C){return false;}return C.setValue(E,B);},getAttributeKeys:function(){this._configs=this._configs;var C=[],B;for(B in this._configs){if(A.hasOwnProperty(this._configs,B)&&!A.isUndefined(this._configs[B])){C[C.length]=B;}}return C;},setAttributes:function(D,B){for(var C in D){if(A.hasOwnProperty(D,C)){this.set(C,D[C],B);}}},resetValue:function(C,B){this._configs=this._configs||{};if(this._configs[C]){this.set(C,this._configs[C]._initialConfig.value,B);return true;}return false;},refresh:function(E,C){this._configs=this._configs||{};var F=this._configs;E=((A.isString(E))?[E]:E)||this.getAttributeKeys();for(var D=0,B=E.length;D<B;++D){if(F.hasOwnProperty(E[D])){this._configs[E[D]].refresh(C);}}},register:function(B,C){this.setAttributeConfig(B,C);},getAttributeConfig:function(C){this._configs=this._configs||{};var B=this._configs[C]||{};var D={};for(C in B){if(A.hasOwnProperty(B,C)){D[C]=B[C];}}return D;},setAttributeConfig:function(B,C,D){this._configs=this._configs||{};C=C||{};if(!this._configs[B]){C.name=B;this._configs[B]=this.createAttribute(C);}else{this._configs[B].configure(C,D);}},configureAttribute:function(B,C,D){this.setAttributeConfig(B,C,D);},resetAttributeConfig:function(B){this._configs=this._configs||{};this._configs[B].resetConfig();},subscribe:function(B,C){this._events=this._events||{};if(!(B in this._events)){this._events[B]=this.createEvent(B);}YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){this.subscribe.apply(this,arguments);},addListener:function(){this.subscribe.apply(this,arguments);},fireBeforeChangeEvent:function(C){var B="before";B+=C.type.charAt(0).toUpperCase()+C.type.substr(1)+"Change";C.type=B;return this.fireEvent(C.type,C);},fireChangeEvent:function(B){B.type+="Change";return this.fireEvent(B.type,B);},createAttribute:function(B){return new YAHOO.util.Attribute(B,this);}};YAHOO.augment(YAHOO.util.AttributeProvider,YAHOO.util.EventProvider);})();(function(){var B=YAHOO.util.Dom,D=YAHOO.util.AttributeProvider,C={mouseenter:true,mouseleave:true};var A=function(E,F){this.init.apply(this,arguments);};A.DOM_EVENTS={"click":true,"dblclick":true,"keydown":true,"keypress":true,"keyup":true,"mousedown":true,"mousemove":true,"mouseout":true,"mouseover":true,"mouseup":true,"mouseenter":true,"mouseleave":true,"focus":true,"blur":true,"submit":true,"change":true};A.prototype={DOM_EVENTS:null,DEFAULT_HTML_SETTER:function(G,E){var F=this.get("element");if(F){F[E]=G;}return G;},DEFAULT_HTML_GETTER:function(E){var F=this.get("element"),G;if(F){G=F[E];}return G;},appendChild:function(E){E=E.get?E.get("element"):E;return this.get("element").appendChild(E);},getElementsByTagName:function(E){return this.get("element").getElementsByTagName(E);},hasChildNodes:function(){return this.get("element").hasChildNodes();},insertBefore:function(E,F){E=E.get?E.get("element"):E;F=(F&&F.get)?F.get("element"):F;return this.get("element").insertBefore(E,F);},removeChild:function(E){E=E.get?E.get("element"):E;return this.get("element").removeChild(E);},replaceChild:function(E,F){E=E.get?E.get("element"):E;F=F.get?F.get("element"):F;return this.get("element").replaceChild(E,F);},initAttributes:function(E){},addListener:function(J,I,K,H){H=H||this;var E=YAHOO.util.Event,G=this.get("element")||this.get("id"),F=this;if(C[J]&&!E._createMouseDelegate){return false;}if(!this._events[J]){if(G&&this.DOM_EVENTS[J]){E.on(G,J,function(M,L){if(M.srcElement&&!M.target){M.target=M.srcElement;}if((M.toElement&&!M.relatedTarget)||(M.fromElement&&!M.relatedTarget)){M.relatedTarget=E.getRelatedTarget(M);}if(!M.currentTarget){M.currentTarget=G;}F.fireEvent(J,M,L);},K,H);}this.createEvent(J,{scope:this});}return YAHOO.util.EventProvider.prototype.subscribe.apply(this,arguments);},on:function(){return this.addListener.apply(this,arguments);},subscribe:function(){return this.addListener.apply(this,arguments);},removeListener:function(F,E){return this.unsubscribe.apply(this,arguments);},addClass:function(E){B.addClass(this.get("element"),E);},getElementsByClassName:function(F,E){return B.getElementsByClassName(F,E,this.get("element"));},hasClass:function(E){return B.hasClass(this.get("element"),E);},removeClass:function(E){return B.removeClass(this.get("element"),E);},replaceClass:function(F,E){return B.replaceClass(this.get("element"),F,E);},setStyle:function(F,E){return B.setStyle(this.get("element"),F,E);
+},getStyle:function(E){return B.getStyle(this.get("element"),E);},fireQueue:function(){var F=this._queue;for(var G=0,E=F.length;G<E;++G){this[F[G][0]].apply(this,F[G][1]);}},appendTo:function(F,G){F=(F.get)?F.get("element"):B.get(F);this.fireEvent("beforeAppendTo",{type:"beforeAppendTo",target:F});G=(G&&G.get)?G.get("element"):B.get(G);var E=this.get("element");if(!E){return false;}if(!F){return false;}if(E.parent!=F){if(G){F.insertBefore(E,G);}else{F.appendChild(E);}}this.fireEvent("appendTo",{type:"appendTo",target:F});return E;},get:function(E){var G=this._configs||{},F=G.element;if(F&&!G[E]&&!YAHOO.lang.isUndefined(F.value[E])){this._setHTMLAttrConfig(E);}return D.prototype.get.call(this,E);},setAttributes:function(K,H){var F={},I=this._configOrder;for(var J=0,E=I.length;J<E;++J){if(K[I[J]]!==undefined){F[I[J]]=true;this.set(I[J],K[I[J]],H);}}for(var G in K){if(K.hasOwnProperty(G)&&!F[G]){this.set(G,K[G],H);}}},set:function(F,H,E){var G=this.get("element");if(!G){this._queue[this._queue.length]=["set",arguments];if(this._configs[F]){this._configs[F].value=H;}return;}if(!this._configs[F]&&!YAHOO.lang.isUndefined(G[F])){this._setHTMLAttrConfig(F);}return D.prototype.set.apply(this,arguments);},setAttributeConfig:function(E,F,G){this._configOrder.push(E);D.prototype.setAttributeConfig.apply(this,arguments);},createEvent:function(F,E){this._events[F]=true;return D.prototype.createEvent.apply(this,arguments);},init:function(F,E){this._initElement(F,E);},destroy:function(){var E=this.get("element");YAHOO.util.Event.purgeElement(E,true);this.unsubscribeAll();if(E&&E.parentNode){E.parentNode.removeChild(E);}this._queue=[];this._events={};this._configs={};this._configOrder=[];},_initElement:function(G,F){this._queue=this._queue||[];this._events=this._events||{};this._configs=this._configs||{};this._configOrder=[];F=F||{};F.element=F.element||G||null;var I=false;var E=A.DOM_EVENTS;this.DOM_EVENTS=this.DOM_EVENTS||{};for(var H in E){if(E.hasOwnProperty(H)){this.DOM_EVENTS[H]=E[H];}}if(typeof F.element==="string"){this._setHTMLAttrConfig("id",{value:F.element});}if(B.get(F.element)){I=true;this._initHTMLElement(F);this._initContent(F);}YAHOO.util.Event.onAvailable(F.element,function(){if(!I){this._initHTMLElement(F);}this.fireEvent("available",{type:"available",target:B.get(F.element)});},this,true);YAHOO.util.Event.onContentReady(F.element,function(){if(!I){this._initContent(F);}this.fireEvent("contentReady",{type:"contentReady",target:B.get(F.element)});},this,true);},_initHTMLElement:function(E){this.setAttributeConfig("element",{value:B.get(E.element),readOnly:true});},_initContent:function(E){this.initAttributes(E);this.setAttributes(E,true);this.fireQueue();},_setHTMLAttrConfig:function(E,G){var F=this.get("element");G=G||{};G.name=E;G.setter=G.setter||this.DEFAULT_HTML_SETTER;G.getter=G.getter||this.DEFAULT_HTML_GETTER;G.value=G.value||F[E];this._configs[E]=new YAHOO.util.Attribute(G,this);}};YAHOO.augment(A,D);YAHOO.util.Element=A;})();YAHOO.register("element",YAHOO.util.Element,{version:"2.8.2r1",build:"7"});YAHOO.register("utilities", YAHOO, {version: "2.8.2r1", build: "7"});
\ No newline at end of file
diff --git a/build/yahoo-dom-event/yahoo-dom-event.js b/build/yahoo-dom-event/yahoo-dom-event.js
index 05af8a6..8ab7c86 100644
--- a/build/yahoo-dom-event/yahoo-dom-event.js
+++ b/build/yahoo-dom-event/yahoo-dom-event.js
@@ -2,13 +2,13 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.1",build:"19"});
+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.2r1",build:"7"});
 (function(){YAHOO.env._id_counter=YAHOO.env._id_counter||0;var E=YAHOO.util,L=YAHOO.lang,m=YAHOO.env.ua,A=YAHOO.lang.trim,d={},h={},N=/^t(?:able|d|h)$/i,X=/color$/i,K=window.document,W=K.documentElement,e="ownerDocument",n="defaultView",v="documentElement",t="compatMode",b="offsetLeft",P="offsetTop",u="offsetParent",Z="parentNode",l="nodeType",C="tagName",O="scrollLeft",i="scrollTop",Q="getBoundingClientRect",w="getComputedStyle",a="currentStyle",M="CSS1Compat",c="BackCompat",g="class",F="className",J="",B=" ",s="(?:^|\\s)",k="(?= |$)",U="g",p="position",f="fixed",V="relative",j="left",o="top",r="medium",q="borderLeftWidth",R="borderTopWidth",D=m.opera,I=m.webkit,H=m.gecko,T=m.ie;E.Dom={CUSTOM_ATTRIBUTES:(!W.hasAttribute)?{"for":"htmlFor","class":F}:{"htmlFor":"for","className":g},DOT_ATTRIBUTES:{},get:function(z){var AB,x,AA,y,Y,G;if(z){if(z[l]||z.item){return z;}if(typeof z==="string"){AB=z;z=K.getElementById(z);G=(z)?z.attributes:null;if(z&&G&&G.id&&G.id.value===AB){return z;}else{if(z&&K.all){z=null;x=K.all[AB];for(y=0,Y=x.length;y<Y;++y){if(x[y].id===AB){return x[y];}}}}return z;}if(YAHOO.util.Element&&z instanceof YAHOO.util.Element){z=z.get("element");}if("length" in z){AA=[];for(y=0,Y=z.length;y<Y;++y){AA[AA.length]=E.Dom.get(z[y]);}return AA;}return z;}return null;},getComputedStyle:function(G,Y){if(window[w]){return G[e][n][w](G,null)[Y];}else{if(G[a]){return E.Dom.IE_ComputedStyle.get(G,Y);}}},getStyle:function(G,Y){return E.Dom.batch(G,E.Dom._getStyle,Y);},_getStyle:function(){if(window[w]){return function(G,y){y=(y==="float")?y="cssFloat":E.Dom._toCamel(y);var x=G.style[y],Y;if(!x){Y=G[e][n][w](G,null);if(Y){x=Y[y];}}return x;};}else{if(W[a]){return function(G,y){var x;switch(y){case"opacity":x=100;try{x=G.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(z){try{x=G.filters("alpha").opacity;}catch(Y){}}return x/100;case"float":y="styleFloat";default:y=E.Dom._toCamel(y);x=G[a]?G[a][y]:null;return(G.style[y]||x);}};}}}(),setStyle:function(G,Y,x){E.Dom.batch(G,E.Dom._setStyle,{prop:Y,val:x});},_setStyle:function(){if(T){return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){switch(x){case"opacity":if(L.isString(Y.style.filter)){Y.style.filter="alpha(opacity="+y*100+")";if(!Y[a]||!Y[a].hasLayout){Y.style.zoom=1;}}break;case"float":x="styleFloat";default:Y.style[x]=y;}}else{}};}else{return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){if(x=="float"){x="cssFloat";}Y.style[x]=y;}else{}};}}(),getXY:function(G){return E.Dom.batch(G,E.Dom._getXY);},_canPosition:function(G){return(E.Dom._getStyle(G,"display")!=="none"&&E.Dom._inDoc(G));},_getXY:function(){if(K[v][Q]){return function(y){var z,Y,AA,AF,AE,AD,AC,G,x,AB=Math.floor,AG=false;if(E.Dom._canPosition(y)){AA=y[Q]();AF=y[e];z=E.Dom.getDocumentScrollLeft(AF);Y=E.Dom.getDocumentScrollTop(AF);AG=[AB(AA[j]),AB(AA[o])];if(T&&m.ie<8){AE=2;AD=2;AC=AF[t];if(m.ie===6){if(AC!==c){AE=0;AD=0;}}if((AC===c)){G=S(AF[v],q);x=S(AF[v],R);if(G!==r){AE=parseInt(G,10);}if(x!==r){AD=parseInt(x,10);}}AG[0]-=AE;AG[1]-=AD;}if((Y||z)){AG[0]+=z;AG[1]+=Y;}AG[0]=AB(AG[0]);AG[1]=AB(AG[1]);}else{}return AG;};}else{return function(y){var x,Y,AA,AB,AC,z=false,G=y;if(E.Dom._canPosition(y)){z=[y[b],y[P]];x=E.Dom.getDocumentScrollLeft(y[e]);Y=E.Dom.getDocumentScrollTop(y[e]);AC=((H||m.webkit>519)?true:false);while((G=G[u])){z[0]+=G[b];z[1]+=G[P];if(AC){z=E.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!==f){G=y;while((G=G[Z])&&G[C]){AA=G[i];AB=G[O];if(H&&(E.Dom._getStyle(G,"overflow")!=="visible")){z=E.Dom._calcBorders(G,z);}if(AA||AB){z[0]-=AB;z[1]-=AA;}}z[0]+=x;z[1]+=Y;}else{if(D){z[0]-=x;z[1]-=Y;}else{if(I||H){z[0]+=x;z[1]+=Y;}}}z[0]=Math.floor(z[0]);z[1]=Math.floor(z[1]);}else{}return z;};}}(),getX:function(G){var Y=function(x){return E.Dom.getXY(x)[0];};return E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var Y=function(x){return E.Dom.getXY(x)[1];};return E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var AA=E.Dom._getStyle(G,p),y=E.Dom.setStyle,AD=z.pos,Y=z.noRetry,AB=[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle(G,o),10)],AC,x;if(AA=="static"){AA=V;y(G,p,AA);}AC=E.Dom._getXY(G);if(!AD||AC===false){return false;}if(isNaN(AB[0])){AB[0]=(AA==V)?0:G[b];}if(isNaN(AB[1])){AB[1]=(AA==V)?0:G[P];}if(AD[0]!==null){y(G,j,AD[0]-AC[0]+AB[0]+"px");}if(AD[1]!==null){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=E.Dom._getXY(G);if((AD[0]!==null&&x[0]!=AD[0])||(AD[1]!==null&&x[1]!=AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Dom.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getRegion:function(G){var Y=function(x){var y=false;if(E.Dom._canPosition(x)){y=E.Region.getRegion(x);}else{}return y;};return E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return E.Dom.getViewportWidth();},getClientHeight:function(){return E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x,AD){AF=AF||"*";AC=(AC)?E.Dom.get(AC):null||K;if(!AC){return[];}var Y=[],G=AC.getElementsByTagName(AF),z=E.Dom.hasClass;for(var y=0,AA=G.length;y<AA;++y){if(z(G[y],AB)){Y[Y.length]=G[y];}}if(AE){E.Dom.batch(Y,AE,x,AD);}return Y;},hasClass:function(Y,G){return E.Dom.batch(Y,E.Dom._hasClass,G);},_hasClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom._getAttribute(x,F)||J;if(Y.exec){G=Y.test(y);}else{G=Y&&(B+y+B).indexOf(B+Y+B)>-1;}}else{}return G;},addClass:function(Y,G){return E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom._getAttribute(x,F)||J;if(!E.Dom._hasClass(x,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=true;}}else{}return G;},removeClass:function(Y,G){return E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var Y=false,AA,z,G;if(y&&x){AA=E.Dom._getAttribute(y,F)||J;E.Dom.setAttribute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=E.Dom._getAttribute(y,F);if(AA!==z){E.Dom.setAttribute(y,F,A(z));Y=true;if(E.Dom._getAttribute(y,F)===""){G=(y.hasAttribute&&y.hasAttribute(g))?g:F;
 y.removeAttribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G});},_replaceClass:function(y,x){var Y,AB,AA,G=false,z;if(y&&x){AB=x.from;AA=x.to;if(!AA){G=false;}else{if(!AB){G=E.Dom._addClass(y,x.to);}else{if(AB!==AA){z=E.Dom._getAttribute(y,F)||J;Y=(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.join(J)));G=true;}}}}else{}return G;},generateId:function(G,x){x=x||"yui-gen";var Y=function(y){if(y&&y.id){return y.id;}var z=x+YAHOO.env._id_counter++;if(y){if(y[e]&&y[e].getElementById(z)){return E.Dom.generateId(y,z+x);}y.id=z;}return z;};return E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:function(Y,x){Y=E.Dom.get(Y);x=E.Dom.get(x);var G=false;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!==x){G=Y.contains(x);}else{if(Y.compareDocumentPosition){G=!!(Y.compareDocumentPosition(x)&16);}}}else{}return G;},inDocument:function(G,Y){return E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var G=false;if(Y&&Y[C]){x=x||Y[e];G=E.Dom.isAncestor(x[v],Y);}else{}return G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=AF||"*";AB=(AB)?E.Dom.get(AB):null||K;if(!AB){return[];}var x=[],G=AB.getElementsByTagName(AF);for(var z=0,AA=G.length;z<AA;++z){if(Y(G[z])){if(AE){x=G[z];break;}else{x[x.length]=G[z];}}}if(AD){E.Dom.batch(x,AD,y,AC);}return x;},getElementBy:function(x,G,Y){return E.Dom.getElementsBy(x,G,Y,null,null,null,true);},batch:function(x,AB,AA,z){var y=[],Y=(z)?AA:window;x=(x&&(x[C]||x.item))?x:E.Dom.get(x);if(x&&AB){if(x[C]||x.length===undefined){return AB.call(Y,x,AA);}for(var G=0;G<x.length;++G){y[y.length]=AB.call(Y,x[G],AA);}}else{return false;}return y;},getDocumentHeight:function(){var Y=(K[t]!=M||I)?K.body.scrollHeight:W.scrollHeight,G=Math.max(Y,E.Dom.getViewportHeight());return G;},getDocumentWidth:function(){var Y=(K[t]!=M||I)?K.body.scrollWidth:W.scrollWidth,G=Math.max(Y,E.Dom.getViewportWidth());return G;},getViewportHeight:function(){var G=self.innerHeight,Y=K[t];if((Y||T)&&!D){G=(Y==M)?W.clientHeight:K.body.clientHeight;}return G;},getViewportWidth:function(){var G=self.innerWidth,Y=K[t];if(Y||T){G=(Y==M)?W.clientWidth:K.body.clientWidth;}return G;},getAncestorBy:function(G,Y){while((G=G[Z])){if(E.Dom._testElement(G,Y)){return G;}}return null;},getAncestorByClassName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return E.Dom.hasClass(y,G);};return E.Dom.getAncestorBy(Y,x);},getAncestorByTagName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return y[C]&&y[C].toUpperCase()==G.toUpperCase();};return E.Dom.getAncestorBy(Y,x);},getPreviousSiblingBy:function(G,Y){while(G){G=G.previousSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getPreviousSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getPreviousSiblingBy(G);},getNextSiblingBy:function(G,Y){while(G){G=G.nextSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getNextSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getNextSiblingBy(G);},getFirstChildBy:function(G,x){var Y=(E.Dom._testElement(G.firstChild,x))?G.firstChild:null;return Y||E.Dom.getNextSiblingBy(G.firstChild,x);},getFirstChild:function(G,Y){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getFirstChildBy(G);},getLastChildBy:function(G,x){if(!G){return null;}var Y=(E.Dom._testElement(G.lastChild,x))?G.lastChild:null;return Y||E.Dom.getPreviousSiblingBy(G.lastChild,x);},getLastChild:function(G){G=E.Dom.get(G);return E.Dom.getLastChildBy(G);},getChildrenBy:function(Y,y){var x=E.Dom.getFirstChildBy(Y,y),G=x?[x]:[];E.Dom.getNextSiblingBy(x,function(z){if(!y||y(z)){G[G.length]=z;}return false;});return G;},getChildren:function(G){G=E.Dom.get(G);if(!G){}return E.Dom.getChildrenBy(G);},getDocumentScrollLeft:function(G){G=G||K;return Math.max(G[v].scrollLeft,G.body.scrollLeft);},getDocumentScrollTop:function(G){G=G||K;return Math.max(G[v].scrollTop,G.body.scrollTop);},insertBefore:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}return G[Z].insertBefore(Y,G);},insertAfter:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}if(G.nextSibling){return G[Z].insertBefore(Y,G.nextSibling);}else{return G[Z].appendChild(Y);}},getClientRegion:function(){var x=E.Dom.getDocumentScrollTop(),Y=E.Dom.getDocumentScrollLeft(),y=E.Dom.getViewportWidth()+Y,G=E.Dom.getViewportHeight()+x;return new E.Region(x,y,G,Y);},setAttribute:function(Y,G,x){E.Dom.batch(Y,E.Dom._setAttribute,{attr:G,val:x});},_setAttribute:function(x,Y){var G=E.Dom._toCamel(Y.attr),y=Y.val;if(x&&x.setAttribute){if(E.Dom.DOT_ATTRIBUTES[G]){x[G]=y;}else{G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;x.setAttribute(G,y);}}else{}},getAttribute:function(Y,G){return E.Dom.batch(Y,E.Dom._getAttribute,G);},_getAttribute:function(Y,G){var x;G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;if(Y&&Y.getAttribute){x=Y.getAttribute(G,2);}else{}return x;},_toCamel:function(Y){var x=d;function G(y,z){return z.toUpperCase();}return x[Y]||(x[Y]=Y.indexOf("-")===-1?Y:Y.replace(/-([a-z])/gi,G));},_getClassRegex:function(Y){var G;if(Y!==undefined){if(Y.exec){G=Y;}else{G=h[Y];if(!G){Y=Y.replace(E.Dom._patterns.CLASS_RE_TOKENS,"\\$1");G=h[Y]=new RegExp(s+Y+k,U);}}}return G;},_patterns:{ROOT_TAG:/^body|html$/i,CLASS_RE_TOKENS:/([\.\(\)\^\$\*\+\?\|\[\]\{\}\\])/g},_testElement:function(G,Y){return G&&G[l]==1&&(!Y||Y(G));},_calcBorders:function(x,y){var Y=parseInt(E.Dom[w](x,R),10)||0,G=parseInt(E.Dom[w](x,q),10)||0;if(H){if(N.test(x[C])){Y=0;G=0;}}y[0]+=G;y[1]+=Y;return y;}};var S=E.Dom[w];if(m.opera){E.Dom[w]=function(Y,G){var x=S(Y,G);if(X.test(G)){x=E.Dom.Color.toRGB(x);}return x;};}if(m.webkit){E.Dom[w]=function(Y,G){var x=S(Y,G);if(x==="rgba(0, 0, 0, 0)"){x="transparent";}return x;};}if(m.ie&&m.ie>=8&&K.documentElement.hasAttribute){E.Dom.DOT_ATTRIBUTES.type=true;}})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this.y=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this.x=B;this[0]=B;
-this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.8.1",build:"19"});YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var H=[],A=this.subscribers.length;var D=[].slice.call(arguments,0),C=true,F,B=false;if(this.fireOnce){if(this.fired){return true;}else{this.firedWith=D;}}this.fired=true;if(!A&&this.silent){return true;}if(!this.silent){}var E=this.subscribers.slice();for(F=0;F<A;++F){var G=E[F];if(!G){B=true;}else{C=this.notify(G,D);if(false===C){if(!this.silent){}break;}}}return(C!==false);},notify:function(F,C){var B,H=null,E=F.getScope(this.scope),A=YAHOO.util.Event.throwErrors;if(!this.silent){}if(this.signature==YAHOO.util.CustomEvent.FLAT){if(C.length>0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var G=false,H=[],J=[],A=0,E=[],B=0,C={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},D=YAHOO.env.ua.ie,F="focusin",I="focusout";return{POLL_RETRYS:500,POLL_INTERVAL:40,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:D,_interval:null,_dri:null,_specialTypes:{focusin:(D?"focusin":"focus"),focusout:(D?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,null,true);}},onAvailable:function(Q,M,O,P,N){var K=(YAHOO.lang.isString(Q))?[Q]:Q;for(var L=0;L<K.length;L=L+1){E.push({id:K[L],fn:M,obj:O,overrideContext:P,checkReady:N});}A=this.POLL_RETRYS;this.startInterval();},onContentReady:function(N,K,L,M){this.onAvailable(N,K,L,M,true);},onDOMReady:function(){this.DOMReadyEvent.subscribe.apply(this.DOMReadyEvent,arguments);},_addListener:function(M,K,V,P,T,Y){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var Q=0,S=M.length;Q<S;++Q){W=this.on(M[Q],K,V,P,T)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var O=this.getEl(M);if(O){M=O;}else{this.onAvailable(M,function(){YAHOO.util.Event._addListener(M,K,V,P,T,Y);});return true;}}}if(!M){return false;}if("unload"==K&&P!==this){J[J.length]=[M,K,V,P,T];return true;}var L=M;if(T){if(T===true){L=P;}else{L=T;}}var N=function(Z){return V.call(L,YAHOO.util.Event.getEvent(Z,M),P);};var X=[M,K,V,N,L,P,T,Y];var R=H.length;H[R]=X;try{this._simpleAdd(M,K,N,Y);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}return true;},_getType:function(K){return this._specialTypes[K]||K;},addListener:function(M,P,L,N,O){var K=((P==F||P==I)&&!YAHOO.env.ua.ie)?true:false;return this._addListener(M,this._getType(P),L,N,O,K);},addFocusListener:function(L,K,M,N){return this.on(L,F,K,M,N);},removeFocusListener:function(L,K){return this.removeListener(L,F,K);},addBlurListener:function(L,K,M,N){return this.on(L,I,K,M,N);},removeBlurListener:function(L,K){return this.removeListener(L,I,K);},removeListener:function(L,K,R){var M,P,U;K=this._getType(K);if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var S=true;for(M=L.length-1;M>-1;M--){S=(this.removeListener(L[M],K,R)&&S);}return S;}}if(!R||!R.call){return this.purgeElement(L,false,K);}if("unload"==K){for(M=J.length-1;M>-1;M--){U=J[M];if(U&&U[0]==L&&U[1]==K&&U[2]==R){J.splice(M,1);return true;}}return false;}var N=null;var O=arguments[3];if("undefined"===typeof O){O=this._getCacheIndex(H,L,K,R);}if(O>=0){N=H[O];}if(!L||!N){return false;}var T=N[this.CAPTURE]===true?true:false;try{this._simpleRemove(L,K,N[this.WFN],T);}catch(Q){this.lastError=Q;return false;}delete H[O][this.WFN];delete H[O][this.FN];H.splice(O,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;
+this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.8.2r1",build:"7"});YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var H=[],A=this.subscribers.length;var D=[].slice.call(arguments,0),C=true,F,B=false;if(this.fireOnce){if(this.fired){return true;}else{this.firedWith=D;}}this.fired=true;if(!A&&this.silent){return true;}if(!this.silent){}var E=this.subscribers.slice();for(F=0;F<A;++F){var G=E[F];if(!G){B=true;}else{C=this.notify(G,D);if(false===C){if(!this.silent){}break;}}}return(C!==false);},notify:function(F,C){var B,H=null,E=F.getScope(this.scope),A=YAHOO.util.Event.throwErrors;if(!this.silent){}if(this.signature==YAHOO.util.CustomEvent.FLAT){if(C.length>0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var G=false,H=[],J=[],A=0,E=[],B=0,C={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},D=YAHOO.env.ua.ie,F="focusin",I="focusout";return{POLL_RETRYS:500,POLL_INTERVAL:40,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:D,_interval:null,_dri:null,_specialTypes:{focusin:(D?"focusin":"focus"),focusout:(D?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,null,true);}},onAvailable:function(Q,M,O,P,N){var K=(YAHOO.lang.isString(Q))?[Q]:Q;for(var L=0;L<K.length;L=L+1){E.push({id:K[L],fn:M,obj:O,overrideContext:P,checkReady:N});}A=this.POLL_RETRYS;this.startInterval();},onContentReady:function(N,K,L,M){this.onAvailable(N,K,L,M,true);},onDOMReady:function(){this.DOMReadyEvent.subscribe.apply(this.DOMReadyEvent,arguments);},_addListener:function(M,K,V,P,T,Y){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var Q=0,S=M.length;Q<S;++Q){W=this.on(M[Q],K,V,P,T)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var O=this.getEl(M);if(O){M=O;}else{this.onAvailable(M,function(){YAHOO.util.Event._addListener(M,K,V,P,T,Y);});return true;}}}if(!M){return false;}if("unload"==K&&P!==this){J[J.length]=[M,K,V,P,T];return true;}var L=M;if(T){if(T===true){L=P;}else{L=T;}}var N=function(Z){return V.call(L,YAHOO.util.Event.getEvent(Z,M),P);};var X=[M,K,V,N,L,P,T,Y];var R=H.length;H[R]=X;try{this._simpleAdd(M,K,N,Y);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}return true;},_getType:function(K){return this._specialTypes[K]||K;},addListener:function(M,P,L,N,O){var K=((P==F||P==I)&&!YAHOO.env.ua.ie)?true:false;return this._addListener(M,this._getType(P),L,N,O,K);},addFocusListener:function(L,K,M,N){return this.on(L,F,K,M,N);},removeFocusListener:function(L,K){return this.removeListener(L,F,K);},addBlurListener:function(L,K,M,N){return this.on(L,I,K,M,N);},removeBlurListener:function(L,K){return this.removeListener(L,I,K);},removeListener:function(L,K,R){var M,P,U;K=this._getType(K);if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var S=true;for(M=L.length-1;M>-1;M--){S=(this.removeListener(L[M],K,R)&&S);}return S;}}if(!R||!R.call){return this.purgeElement(L,false,K);}if("unload"==K){for(M=J.length-1;M>-1;M--){U=J[M];if(U&&U[0]==L&&U[1]==K&&U[2]==R){J.splice(M,1);return true;}}return false;}var N=null;var O=arguments[3];if("undefined"===typeof O){O=this._getCacheIndex(H,L,K,R);}if(O>=0){N=H[O];}if(!L||!N){return false;}var T=N[this.CAPTURE]===true?true:false;try{this._simpleRemove(L,K,N[this.WFN],T);}catch(Q){this.lastError=Q;return false;}delete H[O][this.WFN];delete H[O][this.FN];H.splice(O,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;
 }else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in C)){K=C[K];}return K;},_getCacheIndex:function(M,P,Q,O){for(var N=0,L=M.length;N<L;N=N+1){var K=M[N];if(K&&K[this.FN]==O&&K[this.EL]==P&&K[this.TYPE]==Q){return N;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+B;++B;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",YAHOO,0,0,1),_load:function(L){if(!G){G=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(E.length===0){A=0;if(this._interval){this._interval.cancel();this._interval=null;}return;}if(this.locked){return;}if(this.isIE){if(!this.DOMReady){this.startInterval();return;}}this.locked=true;var Q=!G;if(!Q){Q=(A>0&&E.length>0);}var P=[];var R=function(T,U){var S=T;if(U.overrideContext){if(U.overrideContext===true){S=U.obj;}else{S=U.overrideContext;}}U.fn.call(S,U.obj);};var L,K,O,N,M=[];for(L=0,K=E.length;L<K;L=L+1){O=E[L];if(O){N=this.getEl(O.id);if(N){if(O.checkReady){if(G||N.nextSibling||!Q){M.push(O);E[L]=null;}}else{R(N,O);E[L]=null;}}else{P.push(O);}}}for(L=0,K=M.length;L<K;L=L+1){O=M[L];R(this.getEl(O.id),O);}A--;if(Q){for(L=E.length-1;L>-1;L--){O=E[L];if(!O||!O.id){E.splice(L,1);}}this.startInterval();}else{if(this._interval){this._interval.cancel();this._interval=null;}}this.locked=false;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=Q.length-1;N>-1;N--){var L=Q[N];this.removeListener(M,L.type,L.fn);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[H,J];}else{if(K==="unload"){L=[J];}else{K=this._getType(K);L=[H];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var L=YAHOO.util.Event,O,N,M,Q,P,S=J.slice(),K;for(O=0,Q=J.length;O<Q;++O){M=S[O];if(M){K=window;if(M[L.ADJ_SCOPE]){if(M[L.ADJ_SCOPE]===true){K=M[L.UNLOAD_OBJ];}else{K=M[L.ADJ_SCOPE];}}M[L.FN].call(K,L.getEvent(R,M[L.EL]),M[L.UNLOAD_OBJ]);S[O]=null;}}M=null;K=null;J=null;if(H){for(N=H.length-1;N>-1;N--){M=H[N];if(M){L.removeListener(M[L.EL],M[L.TYPE],M[L.FN],N);}}M=null;}L._simpleRemove(window,"unload",L._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
 /* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller/Diego Perini */
 if(EU.isIE){if(self!==self.top){document.onreadystatechange=function(){if(document.readyState=="complete"){document.onreadystatechange=null;EU._ready();}};}else{YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);
-},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C<A.length;++C){F.subscribe(A[C].fn,A[C].obj,A[C].overrideContext);}}}return D[B];},fireEvent:function(B){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[B];if(!D){return null;}var A=[];for(var C=1;C<arguments.length;++C){A.push(arguments[C]);}return D.fire.apply(D,A);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.8.1",build:"19"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.8.1", build: "19"});
\ No newline at end of file
+},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C<A.length;++C){F.subscribe(A[C].fn,A[C].obj,A[C].overrideContext);}}}return D[B];},fireEvent:function(B){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[B];if(!D){return null;}var A=[];for(var C=1;C<arguments.length;++C){A.push(arguments[C]);}return D.fire.apply(D,A);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.8.2r1",build:"7"});YAHOO.register("yahoo-dom-event", YAHOO, {version: "2.8.2r1", build: "7"});
\ No newline at end of file
diff --git a/build/yahoo/yahoo-debug.js b/build/yahoo/yahoo-debug.js
index 9bf0b5c..89d62ff 100644
--- a/build/yahoo/yahoo-debug.js
+++ b/build/yahoo/yahoo-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The YAHOO object is the single global object used by YUI Library.  It
@@ -1072,4 +1072,4 @@ YAHOO.augment = L.augmentProto;
 YAHOO.extend = L.extend;
 
 })();
-YAHOO.register("yahoo", YAHOO, {version: "2.8.1", build: "19"});
+YAHOO.register("yahoo", YAHOO, {version: "2.8.2r1", build: "7"});
diff --git a/build/yahoo/yahoo-min.js b/build/yahoo/yahoo-min.js
index 3909ef8..eb944a6 100644
--- a/build/yahoo/yahoo-min.js
+++ b/build/yahoo/yahoo-min.js
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.1",build:"19"});
+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.2r1",build:"7"});
diff --git a/build/yahoo/yahoo.js b/build/yahoo/yahoo.js
index 9bf0b5c..89d62ff 100644
--- a/build/yahoo/yahoo.js
+++ b/build/yahoo/yahoo.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The YAHOO object is the single global object used by YUI Library.  It
@@ -1072,4 +1072,4 @@ YAHOO.augment = L.augmentProto;
 YAHOO.extend = L.extend;
 
 })();
-YAHOO.register("yahoo", YAHOO, {version: "2.8.1", build: "19"});
+YAHOO.register("yahoo", YAHOO, {version: "2.8.2r1", build: "7"});
diff --git a/build/yuiloader-dom-event/yuiloader-dom-event.js b/build/yuiloader-dom-event/yuiloader-dom-event.js
index eea1766..6a324cf 100644
--- a/build/yuiloader-dom-event/yuiloader-dom-event.js
+++ b/build/yuiloader-dom-event/yuiloader-dom-event.js
@@ -2,16 +2,16 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.1",build:"19"});
-YAHOO.util.Get=function(){var M={},L=0,R=0,E=false,N=YAHOO.env.ua,S=YAHOO.lang;var J=function(W,T,X){var U=X||window,Y=U.document,Z=Y.createElement(W);for(var V in T){if(T[V]&&YAHOO.lang.hasOwnProperty(T,V)){Z.setAttribute(V,T[V]);}}return Z;};var I=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/css",rel:"stylesheet",href:U};if(T){S.augmentObject(W,T);}return J("link",W,V);};var P=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/javascript",src:U};if(T){S.augmentObject(W,T);}return J("script",W,V);};var A=function(T,U){return{tId:T.tId,win:T.win,data:T.data,nodes:T.nodes,msg:U,purge:function(){D(this.tId);}};};var B=function(T,W){var U=M[W],V=(S.isString(T))?U.win.document.getElementById(T):T;if(!V){Q(W,"target node not found: "+T);}return V;};var Q=function(W,V){var T=M[W];if(T.onFailure){var U=T.scope||T.win;T.onFailure.call(U,A(T,V));}};var C=function(W){var T=M[W];T.finished=true;if(T.aborted){var V="transaction "+W+" was aborted";Q(W,V);return;}if(T.onSuccess){var U=T.scope||T.win;T.onSuccess.call(U,A(T));}};var O=function(V){var T=M[V];if(T.onTimeout){var U=T.scope||T;T.onTimeout.call(U,A(T));}};var G=function(V,Z){var U=M[V];if(U.timer){U.timer.cancel();}if(U.aborted){var X="transaction "+V+" was aborted";Q(V,X);return;}if(Z){U.url.shift();if(U.varName){U.varName.shift();}}else{U.url=(S.isString(U.url))?[U.url]:U.url;if(U.varName){U.varName=(S.isString(U.varName))?[U.varName]:U.varName;}}var c=U.win,b=c.document,a=b.getElementsByTagName("head")[0],W;if(U.url.length===0){if(U.type==="script"&&N.webkit&&N.webkit<420&&!U.finalpass&&!U.varName){var Y=P(null,U.win,U.attributes);Y.innerHTML='YAHOO.util.Get._finalize("'+V+'");';U.nodes.push(Y);a.appendChild(Y);}else{C(V);}return;}var T=U.url[0];if(!T){U.url.shift();return G(V);}if(U.timeout){U.timer=S.later(U.timeout,U,O,V);}if(U.type==="script"){W=P(T,c,U.attributes);}else{W=I(T,c,U.attributes);}F(U.type,W,V,T,c,U.url.length);U.nodes.push(W);if(U.insertBefore){var e=B(U.insertBefore,V);if(e){e.parentNode.insertBefore(W,e);}}else{a.appendChild(W);}if((N.webkit||N.gecko)&&U.type==="css"){G(V,T);}};var K=function(){if(E){return;}E=true;for(var T in M){var U=M[T];if(U.autopurge&&U.finished){D(U.tId);delete M[T];}}E=false;};var D=function(Z){if(M[Z]){var T=M[Z],U=T.nodes,X=U.length,c=T.win.document,a=c.getElementsByTagName("head")[0],V,Y,W,b;if(T.insertBefore){V=B(T.insertBefore,Z);if(V){a=V.parentNode;}}for(Y=0;Y<X;Y=Y+1){W=U[Y];if(W.clearAttributes){W.clearAttributes();}else{for(b in W){delete W[b];}}a.removeChild(W);}T.nodes=[];}};var H=function(U,T,V){var X="q"+(L++);V=V||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[X]=S.merge(V,{tId:X,type:U,url:T,finished:false,aborted:false,nodes:[]});var W=M[X];W.win=W.win||window;W.scope=W.scope||W.win;W.autopurge=("autopurge" in W)?W.autopurge:(U==="script")?true:false;if(V.charset){W.attributes=W.attributes||{};W.attributes.charset=V.charset;}S.later(0,W,G,X);return{tId:X};};var F=function(c,X,W,U,Y,Z,b){var a=b||G;if(N.ie){X.onreadystatechange=function(){var d=this.readyState;if("loaded"===d||"complete"===d){X.onreadystatechange=null;a(W,U);}};}else{if(N.webkit){if(c==="script"){if(N.webkit>=420){X.addEventListener("load",function(){a(W,U);});}else{var T=M[W];if(T.varName){var V=YAHOO.util.Get.POLL_FREQ;T.maxattempts=YAHOO.util.Get.TIMEOUT/V;T.attempts=0;T._cache=T.varName[0].split(".");T.timer=S.later(V,T,function(j){var f=this._cache,e=f.length,d=this.win,g;for(g=0;g<e;g=g+1){d=d[f[g]];if(!d){this.attempts++;if(this.attempts++>this.maxattempts){var h="Over retry limit, giving up";T.timer.cancel();Q(W,h);}else{}return;}}T.timer.cancel();a(W,U);},null,true);}else{S.later(YAHOO.util.Get.POLL_FREQ,null,a,[W,U]);}}}}else{X.onload=function(){a(W,U);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(T){S.later(0,null,C,T);},abort:function(U){var V=(S.isString(U))?U:U.tId;var T=M[V];if(T){T.aborted=true;}},script:function(T,U){return H("script",T,U);},css:function(T,U){return H("css",T,U);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.8.1",build:"19"});(function(){var Y=YAHOO,util=Y.util,lang=Y.lang,env=Y.env,PROV="_provides",SUPER="_supersedes",REQ="expanded",AFTER="_after";var YUI={dupsAllowed:{"yahoo":true,"get":true},info:{"root":"2.8.1/build/","base":"http://yui.yahooapis.com/2.8.1/build/","comboBase":"http://yui.yahooapis.com/combo?","skin":{"defaultSkin":"sam","base":"assets/skins/","path":"skin.css","after":["reset","fonts","grids","base"],"rollup":3},dupsAllowed:["yahoo","get"],"moduleInfo":{"animation":{"type":"js","path":"animation/animation-min.js","requires":["dom","event"]},"autocomplete":{"type":"js","path":"autocomplete/autocomplete-min.js","requires":["dom","event","datasource"],"optional":["connection","animation"],"skinnable":true},"base":{"type":"css","path":"base/base-min.css","after":["reset","fonts","grids"]},"button":{"type":"js","path":"button/button-min.js","requires":["element"],"optional":["menu"],"skinnable":true},"calendar":{"type":"js","path":"calendar/calendar-min.js","requires":["event","dom"],supersedes:["datemeth"],"skinnable":true},"carousel":{"type":"js","path":"carousel/carousel-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"charts":{"type":"js","path":"charts/charts-min.js","requires":["element","json","datasource","swf"]},"colorpicker":{"type":"js","path":"colorpicker/colorpicker-min.js","requires":["slider","element"],"optional":["animation"],"skinnable":true},"connection":{"type":"js","path":"connection/connection-min.js","requires":["event"],"supersedes":["connectioncore"]},"connectioncore":{"type":"js","path":"connection/connection_core-min.js","requires":["event"],"pkg":"connection"},"container":{"type":"js","path":"container/container-min.js","requires":["dom","event"],"optional":["dragdrop","animation","connection"],"supersedes":["containercore"],"skinnable":true},"containercore":{"type":"js","path":"container/container_core-min.js","requires":["dom","event"],"pkg":"container"},"cookie":{"type":"js","path":"cookie/cookie-min.js","requires":["yahoo"]},"datasource":{"type":"js","path":"datasource/datasource-min.js","requires":["event"],"optional":["connection"]},"datatable":{"type":"js","path":"datatable/datatable-min.js","requires":["element","datasource"],"optional":["calendar","dragdrop","paginator"],"skinnable":true},datemath:{"type":"js","path":"datemath/datemath-min.js","requires":["yahoo"]},"dom":{"type":"js","path":"dom/dom-min.js","requires":["yahoo"]},"dragdrop":{"type":"js","path":"dragdrop/dragdrop-min.js","requires":["dom","event"]},"editor":{"type":"js","path":"editor/editor-min.js","requires":["menu","element","button"],"optional":["animation","dragdrop"],"supersedes":["simpleeditor"],"skinnable":true},"element":{"type":"js","path":"element/element-min.js","requires":["dom","event"],"optional":["event-mouseenter","event-delegate"]},"element-delegate":{"type":"js","path":"element-delegate/element-delegate-min.js","requires":["element"]},"event":{"type":"js","path":"event/event-min.js","requires":["yahoo"]},"event-simulate":{"type":"js","path":"event-simulate/event-simulate-min.js","requires":["event"]},"event-delegate":{"type":"js","path":"event-delegate/event-delegate-min.js","requires":["event"],"optional":["selector"]},"event-mouseenter":{"type":"js","path":"event-mouseenter/event-mouseenter-min.js","requires":["dom","event"]},"fonts":{"type":"css","path":"fonts/fonts-min.css"},"get":{"type":"js","path":"get/get-min.js","requires":["yahoo"]},"grids":{"type":"css","path":"grids/grids-min.css","requires":["fonts"],"optional":["reset"]},"history":{"type":"js","path":"history/history-min.js","requires":["event"]},"imagecropper":{"type":"js","path":"imagecropper/imagecropper-min.js","requires":["dragdrop","element","resize"],"skinnable":true},"imageloader":{"type":"js","path":"imageloader/imageloader-min.js","requires":["event","dom"]},"json":{"type":"js","path":"json/json-min.js","requires":["yahoo"]},"layout":{"type":"js","path":"layout/layout-min.js","requires":["element"],"optional":["animation","dragdrop","resize","selector"],"skinnable":true},"logger":{"type":"js","path":"logger/logger-min.js","requires":["event","dom"],"optional":["dragdrop"],"skinnable":true},"menu":{"type":"js","path":"menu/menu-min.js","requires":["containercore"],"skinnable":true},"paginator":{"type":"js","path":"paginator/paginator-min.js","requires":["element"],"skinnable":true},"profiler":{"type":"js","path":"profiler/profiler-min.js","requires":["yahoo"]},"profilerviewer":{"type":"js","path":"profilerviewer/profilerviewer-min.js","requires":["profiler","yuiloader","element"],"skinnable":true},"progressbar":{"type":"js","path":"progressbar/progressbar-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"reset":{"type":"css","path":"reset/reset-min.css"},"reset-fonts-grids":{"type":"css","path":"reset-fonts-grids/reset-fonts-grids.css","supersedes":["reset","fonts","grids","reset-fonts"],"rollup":4},"reset-fonts":{"type":"css","path":"reset-fonts/reset-fonts.css","supersedes":["reset","fonts"],"rollup":2},"resize":{"type":"js","path":"resize/resize-min.js","requires":["dragdrop","element"],"optional":["animation"],"skinnable":true},"selector":{"type":"js","path":"selector/selector-min.js","requires":["yahoo","dom"]},"simpleeditor":{"type":"js","path":"editor/simpleeditor-min.js","requires":["element"],"optional":["containercore","menu","button","animation","dragdrop"],"skinnable":true,"pkg":"editor"},"slider":{"type":"js","path":"slider/slider-min.js","requires":["dragdrop"],"optional":["animation"],"skinnable":true},"storage":{"type":"js","path":"storage/storage-min.js","requires":["yahoo","event","cookie"],"optional":["swfstore"]},"stylesheet":{"type":"js","path":"stylesheet/stylesheet-min.js","requires":["yahoo"]},"swf":{"type":"js","path":"swf/swf-min.js","requires":["element"],"supersedes":["swfdetect"]},"swfdetect":{"type":"js","path":"swfdetect/swfdetect-min.js","requires":["yahoo"]},"swfstore":{"type":"js","path":"swfstore/swfstore-min.js","requires":["element","cookie","swf"]},"tabview":{"type":"js","path":"tabview/tabview-min.js","requires":["element"],"optional":["connection"],"skinnable":true},"treeview":{"type":"js","path":"treeview/treeview-min.js","requires":["event","dom"],"optional":["json","animation","calendar"],"skinnable":true},"uploader":{"type":"js","path":"uploader/uploader-min.js","requires":["element"]},"utilities":{"type":"js","path":"utilities/utilities.js","supersedes":["yahoo","event","dragdrop","animation","dom","connection","element","yahoo-dom-event","get","yuiloader","yuiloader-dom-event"],"rollup":8},"yahoo":{"type":"js","path":"yahoo/yahoo-min.js"},"yahoo-dom-event":{"type":"js","path":"yahoo-dom-event/yahoo-dom-event.js","supersedes":["yahoo","event","dom"],"rollup":3},"yuiloader":{"type":"js","path":"yuiloader/yuiloader-min.js","supersedes":["yahoo","get"]},"yuiloader-dom-event":{"type":"js","path":"yuiloader-dom-event/yuiloader-dom-event.js","supersedes":["yahoo","dom","event","get","yuiloader","yahoo-dom-event"],"rollup":5},"yuitest":{"type":"js","path":"yuitest/yuitest-min.js","requires":["logger"],"optional":["event-simulate"],"skinnable":true}}},ObjectUtil:{appendArray:function(o,a){if(a){for(var i=0;
+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.2r1",build:"7"});
+YAHOO.util.Get=function(){var M={},L=0,R=0,E=false,N=YAHOO.env.ua,S=YAHOO.lang;var J=function(W,T,X){var U=X||window,Y=U.document,Z=Y.createElement(W);for(var V in T){if(T[V]&&YAHOO.lang.hasOwnProperty(T,V)){Z.setAttribute(V,T[V]);}}return Z;};var I=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/css",rel:"stylesheet",href:U};if(T){S.augmentObject(W,T);}return J("link",W,V);};var P=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/javascript",src:U};if(T){S.augmentObject(W,T);}return J("script",W,V);};var A=function(T,U){return{tId:T.tId,win:T.win,data:T.data,nodes:T.nodes,msg:U,purge:function(){D(this.tId);}};};var B=function(T,W){var U=M[W],V=(S.isString(T))?U.win.document.getElementById(T):T;if(!V){Q(W,"target node not found: "+T);}return V;};var Q=function(W,V){var T=M[W];if(T.onFailure){var U=T.scope||T.win;T.onFailure.call(U,A(T,V));}};var C=function(W){var T=M[W];T.finished=true;if(T.aborted){var V="transaction "+W+" was aborted";Q(W,V);return;}if(T.onSuccess){var U=T.scope||T.win;T.onSuccess.call(U,A(T));}};var O=function(V){var T=M[V];if(T.onTimeout){var U=T.scope||T;T.onTimeout.call(U,A(T));}};var G=function(V,Z){var U=M[V];if(U.timer){U.timer.cancel();}if(U.aborted){var X="transaction "+V+" was aborted";Q(V,X);return;}if(Z){U.url.shift();if(U.varName){U.varName.shift();}}else{U.url=(S.isString(U.url))?[U.url]:U.url;if(U.varName){U.varName=(S.isString(U.varName))?[U.varName]:U.varName;}}var c=U.win,b=c.document,a=b.getElementsByTagName("head")[0],W;if(U.url.length===0){if(U.type==="script"&&N.webkit&&N.webkit<420&&!U.finalpass&&!U.varName){var Y=P(null,U.win,U.attributes);Y.innerHTML='YAHOO.util.Get._finalize("'+V+'");';U.nodes.push(Y);a.appendChild(Y);}else{C(V);}return;}var T=U.url[0];if(!T){U.url.shift();return G(V);}if(U.timeout){U.timer=S.later(U.timeout,U,O,V);}if(U.type==="script"){W=P(T,c,U.attributes);}else{W=I(T,c,U.attributes);}F(U.type,W,V,T,c,U.url.length);U.nodes.push(W);if(U.insertBefore){var e=B(U.insertBefore,V);if(e){e.parentNode.insertBefore(W,e);}}else{a.appendChild(W);}if((N.webkit||N.gecko)&&U.type==="css"){G(V,T);}};var K=function(){if(E){return;}E=true;for(var T in M){var U=M[T];if(U.autopurge&&U.finished){D(U.tId);delete M[T];}}E=false;};var D=function(Z){if(M[Z]){var T=M[Z],U=T.nodes,X=U.length,c=T.win.document,a=c.getElementsByTagName("head")[0],V,Y,W,b;if(T.insertBefore){V=B(T.insertBefore,Z);if(V){a=V.parentNode;}}for(Y=0;Y<X;Y=Y+1){W=U[Y];if(W.clearAttributes){W.clearAttributes();}else{for(b in W){delete W[b];}}a.removeChild(W);}T.nodes=[];}};var H=function(U,T,V){var X="q"+(L++);V=V||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[X]=S.merge(V,{tId:X,type:U,url:T,finished:false,aborted:false,nodes:[]});var W=M[X];W.win=W.win||window;W.scope=W.scope||W.win;W.autopurge=("autopurge" in W)?W.autopurge:(U==="script")?true:false;if(V.charset){W.attributes=W.attributes||{};W.attributes.charset=V.charset;}S.later(0,W,G,X);return{tId:X};};var F=function(c,X,W,U,Y,Z,b){var a=b||G;if(N.ie){X.onreadystatechange=function(){var d=this.readyState;if("loaded"===d||"complete"===d){X.onreadystatechange=null;a(W,U);}};}else{if(N.webkit){if(c==="script"){if(N.webkit>=420){X.addEventListener("load",function(){a(W,U);});}else{var T=M[W];if(T.varName){var V=YAHOO.util.Get.POLL_FREQ;T.maxattempts=YAHOO.util.Get.TIMEOUT/V;T.attempts=0;T._cache=T.varName[0].split(".");T.timer=S.later(V,T,function(j){var f=this._cache,e=f.length,d=this.win,g;for(g=0;g<e;g=g+1){d=d[f[g]];if(!d){this.attempts++;if(this.attempts++>this.maxattempts){var h="Over retry limit, giving up";T.timer.cancel();Q(W,h);}else{}return;}}T.timer.cancel();a(W,U);},null,true);}else{S.later(YAHOO.util.Get.POLL_FREQ,null,a,[W,U]);}}}}else{X.onload=function(){a(W,U);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(T){S.later(0,null,C,T);},abort:function(U){var V=(S.isString(U))?U:U.tId;var T=M[V];if(T){T.aborted=true;}},script:function(T,U){return H("script",T,U);},css:function(T,U){return H("css",T,U);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.8.2r1",build:"7"});(function(){var Y=YAHOO,util=Y.util,lang=Y.lang,env=Y.env,PROV="_provides",SUPER="_supersedes",REQ="expanded",AFTER="_after";var YUI={dupsAllowed:{"yahoo":true,"get":true},info:{"root":"2.8.2r1/build/","base":"http://yui.yahooapis.com/2.8.2r1/build/","comboBase":"http://yui.yahooapis.com/combo?","skin":{"defaultSkin":"sam","base":"assets/skins/","path":"skin.css","after":["reset","fonts","grids","base"],"rollup":3},dupsAllowed:["yahoo","get"],"moduleInfo":{"animation":{"type":"js","path":"animation/animation-min.js","requires":["dom","event"]},"autocomplete":{"type":"js","path":"autocomplete/autocomplete-min.js","requires":["dom","event","datasource"],"optional":["connection","animation"],"skinnable":true},"base":{"type":"css","path":"base/base-min.css","after":["reset","fonts","grids"]},"button":{"type":"js","path":"button/button-min.js","requires":["element"],"optional":["menu"],"skinnable":true},"calendar":{"type":"js","path":"calendar/calendar-min.js","requires":["event","dom"],supersedes:["datemeth"],"skinnable":true},"carousel":{"type":"js","path":"carousel/carousel-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"charts":{"type":"js","path":"charts/charts-min.js","requires":["element","json","datasource","swf"]},"colorpicker":{"type":"js","path":"colorpicker/colorpicker-min.js","requires":["slider","element"],"optional":["animation"],"skinnable":true},"connection":{"type":"js","path":"connection/connection-min.js","requires":["event"],"supersedes":["connectioncore"]},"connectioncore":{"type":"js","path":"connection/connection_core-min.js","requires":["event"],"pkg":"connection"},"container":{"type":"js","path":"container/container-min.js","requires":["dom","event"],"optional":["dragdrop","animation","connection"],"supersedes":["containercore"],"skinnable":true},"containercore":{"type":"js","path":"container/container_core-min.js","requires":["dom","event"],"pkg":"container"},"cookie":{"type":"js","path":"cookie/cookie-min.js","requires":["yahoo"]},"datasource":{"type":"js","path":"datasource/datasource-min.js","requires":["event"],"optional":["connection"]},"datatable":{"type":"js","path":"datatable/datatable-min.js","requires":["element","datasource"],"optional":["calendar","dragdrop","paginator"],"skinnable":true},datemath:{"type":"js","path":"datemath/datemath-min.js","requires":["yahoo"]},"dom":{"type":"js","path":"dom/dom-min.js","requires":["yahoo"]},"dragdrop":{"type":"js","path":"dragdrop/dragdrop-min.js","requires":["dom","event"]},"editor":{"type":"js","path":"editor/editor-min.js","requires":["menu","element","button"],"optional":["animation","dragdrop"],"supersedes":["simpleeditor"],"skinnable":true},"element":{"type":"js","path":"element/element-min.js","requires":["dom","event"],"optional":["event-mouseenter","event-delegate"]},"element-delegate":{"type":"js","path":"element-delegate/element-delegate-min.js","requires":["element"]},"event":{"type":"js","path":"event/event-min.js","requires":["yahoo"]},"event-simulate":{"type":"js","path":"event-simulate/event-simulate-min.js","requires":["event"]},"event-delegate":{"type":"js","path":"event-delegate/event-delegate-min.js","requires":["event"],"optional":["selector"]},"event-mouseenter":{"type":"js","path":"event-mouseenter/event-mouseenter-min.js","requires":["dom","event"]},"fonts":{"type":"css","path":"fonts/fonts-min.css"},"get":{"type":"js","path":"get/get-min.js","requires":["yahoo"]},"grids":{"type":"css","path":"grids/grids-min.css","requires":["fonts"],"optional":["reset"]},"history":{"type":"js","path":"history/history-min.js","requires":["event"]},"imagecropper":{"type":"js","path":"imagecropper/imagecropper-min.js","requires":["dragdrop","element","resize"],"skinnable":true},"imageloader":{"type":"js","path":"imageloader/imageloader-min.js","requires":["event","dom"]},"json":{"type":"js","path":"json/json-min.js","requires":["yahoo"]},"layout":{"type":"js","path":"layout/layout-min.js","requires":["element"],"optional":["animation","dragdrop","resize","selector"],"skinnable":true},"logger":{"type":"js","path":"logger/logger-min.js","requires":["event","dom"],"optional":["dragdrop"],"skinnable":true},"menu":{"type":"js","path":"menu/menu-min.js","requires":["containercore"],"skinnable":true},"paginator":{"type":"js","path":"paginator/paginator-min.js","requires":["element"],"skinnable":true},"profiler":{"type":"js","path":"profiler/profiler-min.js","requires":["yahoo"]},"profilerviewer":{"type":"js","path":"profilerviewer/profilerviewer-min.js","requires":["profiler","yuiloader","element"],"skinnable":true},"progressbar":{"type":"js","path":"progressbar/progressbar-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"reset":{"type":"css","path":"reset/reset-min.css"},"reset-fonts-grids":{"type":"css","path":"reset-fonts-grids/reset-fonts-grids.css","supersedes":["reset","fonts","grids","reset-fonts"],"rollup":4},"reset-fonts":{"type":"css","path":"reset-fonts/reset-fonts.css","supersedes":["reset","fonts"],"rollup":2},"resize":{"type":"js","path":"resize/resize-min.js","requires":["dragdrop","element"],"optional":["animation"],"skinnable":true},"selector":{"type":"js","path":"selector/selector-min.js","requires":["yahoo","dom"]},"simpleeditor":{"type":"js","path":"editor/simpleeditor-min.js","requires":["element"],"optional":["containercore","menu","button","animation","dragdrop"],"skinnable":true,"pkg":"editor"},"slider":{"type":"js","path":"slider/slider-min.js","requires":["dragdrop"],"optional":["animation"],"skinnable":true},"storage":{"type":"js","path":"storage/storage-min.js","requires":["yahoo","event","cookie"],"optional":["swfstore"]},"stylesheet":{"type":"js","path":"stylesheet/stylesheet-min.js","requires":["yahoo"]},"swf":{"type":"js","path":"swf/swf-min.js","requires":["element"],"supersedes":["swfdetect"]},"swfdetect":{"type":"js","path":"swfdetect/swfdetect-min.js","requires":["yahoo"]},"swfstore":{"type":"js","path":"swfstore/swfstore-min.js","requires":["element","cookie","swf"]},"tabview":{"type":"js","path":"tabview/tabview-min.js","requires":["element"],"optional":["connection"],"skinnable":true},"treeview":{"type":"js","path":"treeview/treeview-min.js","requires":["event","dom"],"optional":["json","animation","calendar"],"skinnable":true},"uploader":{"type":"js","path":"uploader/uploader-min.js","requires":["element"]},"utilities":{"type":"js","path":"utilities/utilities.js","supersedes":["yahoo","event","dragdrop","animation","dom","connection","element","yahoo-dom-event","get","yuiloader","yuiloader-dom-event"],"rollup":8},"yahoo":{"type":"js","path":"yahoo/yahoo-min.js"},"yahoo-dom-event":{"type":"js","path":"yahoo-dom-event/yahoo-dom-event.js","supersedes":["yahoo","event","dom"],"rollup":3},"yuiloader":{"type":"js","path":"yuiloader/yuiloader-min.js","supersedes":["yahoo","get"]},"yuiloader-dom-event":{"type":"js","path":"yuiloader-dom-event/yuiloader-dom-event.js","supersedes":["yahoo","dom","event","get","yuiloader","yahoo-dom-event"],"rollup":5},"yuitest":{"type":"js","path":"yuitest/yuitest-min.js","requires":["logger"],"optional":["event-simulate"],"skinnable":true}}},ObjectUtil:{appendArray:function(o,a){if(a){for(var i=0;
 i<a.length;i=i+1){o[a[i]]=true;}}},keys:function(o,ordered){var a=[],i;for(i in o){if(lang.hasOwnProperty(o,i)){a.push(i);}}return a;}},ArrayUtil:{appendArray:function(a1,a2){Array.prototype.push.apply(a1,a2);},indexOf:function(a,val){for(var i=0;i<a.length;i=i+1){if(a[i]===val){return i;}}return -1;},toObject:function(a){var o={};for(var i=0;i<a.length;i=i+1){o[a[i]]=true;}return o;},uniq:function(a){return YUI.ObjectUtil.keys(YUI.ArrayUtil.toObject(a));}}};YAHOO.util.YUILoader=function(o){this._internalCallback=null;this._useYahooListener=false;this.onSuccess=null;this.onFailure=Y.log;this.onProgress=null;this.onTimeout=null;this.scope=this;this.data=null;this.insertBefore=null;this.charset=null;this.varName=null;this.base=YUI.info.base;this.comboBase=YUI.info.comboBase;this.combine=false;this.root=YUI.info.root;this.timeout=0;this.ignore=null;this.force=null;this.allowRollup=true;this.filter=null;this.required={};this.moduleInfo=lang.merge(YUI.info.moduleInfo);this.rollups=null;this.loadOptional=false;this.sorted=[];this.loaded={};this.dirty=true;this.inserted={};var self=this;env.listeners.push(function(m){if(self._useYahooListener){self.loadNext(m.name);}});this.skin=lang.merge(YUI.info.skin);this._config(o);};Y.util.YUILoader.prototype={FILTERS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},SKIN_PREFIX:"skin-",_config:function(o){if(o){for(var i in o){if(lang.hasOwnProperty(o,i)){if(i=="require"){this.require(o[i]);}else{this[i]=o[i];}}}}var f=this.filter;if(lang.isString(f)){f=f.toUpperCase();if(f==="DEBUG"){this.require("logger");}if(!Y.widget.LogWriter){Y.widget.LogWriter=function(){return Y;};}this.filter=this.FILTERS[f];}},addModule:function(o){if(!o||!o.name||!o.type||(!o.path&&!o.fullpath)){return false;}o.ext=("ext" in o)?o.ext:true;o.requires=o.requires||[];this.moduleInfo[o.name]=o;this.dirty=true;return true;},require:function(what){var a=(typeof what==="string")?arguments:what;this.dirty=true;YUI.ObjectUtil.appendArray(this.required,a);},_addSkin:function(skin,mod){var name=this.formatSkin(skin),info=this.moduleInfo,sinf=this.skin,ext=info[mod]&&info[mod].ext;if(!info[name]){this.addModule({"name":name,"type":"css","path":sinf.base+skin+"/"+sinf.path,"after":sinf.after,"rollup":sinf.rollup,"ext":ext});}if(mod){name=this.formatSkin(skin,mod);if(!info[name]){var mdef=info[mod],pkg=mdef.pkg||mod;this.addModule({"name":name,"type":"css","after":sinf.after,"path":pkg+"/"+sinf.base+skin+"/"+mod+".css","ext":ext});}}return name;},getRequires:function(mod){if(!mod){return[];}if(!this.dirty&&mod.expanded){return mod.expanded;}mod.requires=mod.requires||[];var i,d=[],r=mod.requires,o=mod.optional,info=this.moduleInfo,m;for(i=0;i<r.length;i=i+1){d.push(r[i]);m=info[r[i]];YUI.ArrayUtil.appendArray(d,this.getRequires(m));}if(o&&this.loadOptional){for(i=0;i<o.length;i=i+1){d.push(o[i]);YUI.ArrayUtil.appendArray(d,this.getRequires(info[o[i]]));}}mod.expanded=YUI.ArrayUtil.uniq(d);return mod.expanded;},getProvides:function(name,notMe){var addMe=!(notMe),ckey=(addMe)?PROV:SUPER,m=this.moduleInfo[name],o={};if(!m){return o;}if(m[ckey]){return m[ckey];}var s=m.supersedes,done={},me=this;var add=function(mm){if(!done[mm]){done[mm]=true;lang.augmentObject(o,me.getProvides(mm));}};if(s){for(var i=0;i<s.length;i=i+1){add(s[i]);}}m[SUPER]=o;m[PROV]=lang.merge(o);m[PROV][name]=true;return m[ckey];},calculate:function(o){if(o||this.dirty){this._config(o);this._setup();this._explode();if(this.allowRollup){this._rollup();}this._reduce();this._sort();this.dirty=false;}},_setup:function(){var info=this.moduleInfo,name,i,j;for(name in info){if(lang.hasOwnProperty(info,name)){var m=info[name];if(m&&m.skinnable){var o=this.skin.overrides,smod;if(o&&o[name]){for(i=0;i<o[name].length;i=i+1){smod=this._addSkin(o[name][i],name);}}else{smod=this._addSkin(this.skin.defaultSkin,name);}m.requires.push(smod);}}}var l=lang.merge(this.inserted);if(!this._sandbox){l=lang.merge(l,env.modules);}if(this.ignore){YUI.ObjectUtil.appendArray(l,this.ignore);}if(this.force){for(i=0;i<this.force.length;i=i+1){if(this.force[i] in l){delete l[this.force[i]];}}}for(j in l){if(lang.hasOwnProperty(l,j)){lang.augmentObject(l,this.getProvides(j));}}this.loaded=l;},_explode:function(){var r=this.required,i,mod;for(i in r){if(lang.hasOwnProperty(r,i)){mod=this.moduleInfo[i];if(mod){var req=this.getRequires(mod);if(req){YUI.ObjectUtil.appendArray(r,req);}}}}},_skin:function(){},formatSkin:function(skin,mod){var s=this.SKIN_PREFIX+skin;if(mod){s=s+"-"+mod;}return s;},parseSkin:function(mod){if(mod.indexOf(this.SKIN_PREFIX)===0){var a=mod.split("-");return{skin:a[1],module:a[2]};}return null;},_rollup:function(){var i,j,m,s,rollups={},r=this.required,roll,info=this.moduleInfo;if(this.dirty||!this.rollups){for(i in info){if(lang.hasOwnProperty(info,i)){m=info[i];if(m&&m.rollup){rollups[i]=m;}}}this.rollups=rollups;}for(;;){var rolled=false;for(i in rollups){if(!r[i]&&!this.loaded[i]){m=info[i];s=m.supersedes;roll=false;if(!m.rollup){continue;}var skin=(m.ext)?false:this.parseSkin(i),c=0;if(skin){for(j in r){if(lang.hasOwnProperty(r,j)){if(i!==j&&this.parseSkin(j)){c++;roll=(c>=m.rollup);if(roll){break;}}}}}else{for(j=0;j<s.length;j=j+1){if(this.loaded[s[j]]&&(!YUI.dupsAllowed[s[j]])){roll=false;break;}else{if(r[s[j]]){c++;roll=(c>=m.rollup);if(roll){break;}}}}}if(roll){r[i]=true;rolled=true;this.getRequires(m);}}}if(!rolled){break;}}},_reduce:function(){var i,j,s,m,r=this.required;for(i in r){if(i in this.loaded){delete r[i];}else{var skinDef=this.parseSkin(i);if(skinDef){if(!skinDef.module){var skin_pre=this.SKIN_PREFIX+skinDef.skin;for(j in r){if(lang.hasOwnProperty(r,j)){m=this.moduleInfo[j];var ext=m&&m.ext;if(!ext&&j!==i&&j.indexOf(skin_pre)>-1){delete r[j];}}}}}else{m=this.moduleInfo[i];s=m&&m.supersedes;if(s){for(j=0;j<s.length;j=j+1){if(s[j] in r){delete r[s[j]];}}}}}}},_onFailure:function(msg){YAHOO.log("Failure","info","loader");var f=this.onFailure;if(f){f.call(this.scope,{msg:"failure: "+msg,data:this.data,success:false});
-}},_onTimeout:function(){YAHOO.log("Timeout","info","loader");var f=this.onTimeout;if(f){f.call(this.scope,{msg:"timeout",data:this.data,success:false});}},_sort:function(){var s=[],info=this.moduleInfo,loaded=this.loaded,checkOptional=!this.loadOptional,me=this;var requires=function(aa,bb){var mm=info[aa];if(loaded[bb]||!mm){return false;}var ii,rr=mm.expanded,after=mm.after,other=info[bb],optional=mm.optional;if(rr&&YUI.ArrayUtil.indexOf(rr,bb)>-1){return true;}if(after&&YUI.ArrayUtil.indexOf(after,bb)>-1){return true;}if(checkOptional&&optional&&YUI.ArrayUtil.indexOf(optional,bb)>-1){return true;}var ss=info[bb]&&info[bb].supersedes;if(ss){for(ii=0;ii<ss.length;ii=ii+1){if(requires(aa,ss[ii])){return true;}}}if(mm.ext&&mm.type=="css"&&!other.ext&&other.type=="css"){return true;}return false;};for(var i in this.required){if(lang.hasOwnProperty(this.required,i)){s.push(i);}}var p=0;for(;;){var l=s.length,a,b,j,k,moved=false;for(j=p;j<l;j=j+1){a=s[j];for(k=j+1;k<l;k=k+1){if(requires(a,s[k])){b=s.splice(k,1);s.splice(j,0,b[0]);moved=true;break;}}if(moved){break;}else{p=p+1;}}if(!moved){break;}}this.sorted=s;},toString:function(){var o={type:"YUILoader",base:this.base,filter:this.filter,required:this.required,loaded:this.loaded,inserted:this.inserted};lang.dump(o,1);},_combine:function(){this._combining=[];var self=this,s=this.sorted,len=s.length,js=this.comboBase,css=this.comboBase,target,startLen=js.length,i,m,type=this.loadType;YAHOO.log("type "+type);for(i=0;i<len;i=i+1){m=this.moduleInfo[s[i]];if(m&&!m.ext&&(!type||type===m.type)){target=this.root+m.path;target+="&";if(m.type=="js"){js+=target;}else{css+=target;}this._combining.push(s[i]);}}if(this._combining.length){YAHOO.log("Attempting to combine: "+this._combining,"info","loader");var callback=function(o){var c=this._combining,len=c.length,i,m;for(i=0;i<len;i=i+1){this.inserted[c[i]]=true;}this.loadNext(o.data);},loadScript=function(){if(js.length>startLen){YAHOO.util.Get.script(self._filter(js),{data:self._loading,onSuccess:callback,onFailure:self._onFailure,onTimeout:self._onTimeout,insertBefore:self.insertBefore,charset:self.charset,timeout:self.timeout,scope:self});}};if(css.length>startLen){YAHOO.util.Get.css(this._filter(css),{data:this._loading,onSuccess:loadScript,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,scope:self});}else{loadScript();}return;}else{this.loadNext(this._loading);}},insert:function(o,type){this.calculate(o);this._loading=true;this.loadType=type;if(this.combine){return this._combine();}if(!type){var self=this;this._internalCallback=function(){self._internalCallback=null;self.insert(null,"js");};this.insert(null,"css");return;}this.loadNext();},sandbox:function(o,type){this._config(o);if(!this.onSuccess){throw new Error("You must supply an onSuccess handler for your sandbox");}this._sandbox=true;var self=this;if(!type||type!=="js"){this._internalCallback=function(){self._internalCallback=null;self.sandbox(null,"js");};this.insert(null,"css");return;}if(!util.Connect){var ld=new YAHOO.util.YUILoader();ld.insert({base:this.base,filter:this.filter,require:"connection",insertBefore:this.insertBefore,charset:this.charset,onSuccess:function(){this.sandbox(null,"js");},scope:this},"js");return;}this._scriptText=[];this._loadCount=0;this._stopCount=this.sorted.length;this._xhr=[];this.calculate();var s=this.sorted,l=s.length,i,m,url;for(i=0;i<l;i=i+1){m=this.moduleInfo[s[i]];if(!m){this._onFailure("undefined module "+m);for(var j=0;j<this._xhr.length;j=j+1){this._xhr[j].abort();}return;}if(m.type!=="js"){this._loadCount++;continue;}url=m.fullpath;url=(url)?this._filter(url):this._url(m.path);var xhrData={success:function(o){var idx=o.argument[0],name=o.argument[2];this._scriptText[idx]=o.responseText;if(this.onProgress){this.onProgress.call(this.scope,{name:name,scriptText:o.responseText,xhrResponse:o,data:this.data});}this._loadCount++;if(this._loadCount>=this._stopCount){var v=this.varName||"YAHOO";var t="(function() {\n";var b="\nreturn "+v+";\n})();";var ref=eval(t+this._scriptText.join("\n")+b);this._pushEvents(ref);if(ref){this.onSuccess.call(this.scope,{reference:ref,data:this.data});}else{this._onFailure.call(this.varName+" reference failure");}}},failure:function(o){this.onFailure.call(this.scope,{msg:"XHR failure",xhrResponse:o,data:this.data});},scope:this,argument:[i,url,s[i]]};this._xhr.push(util.Connect.asyncRequest("GET",url,xhrData));}},loadNext:function(mname){if(!this._loading){return;}if(mname){if(mname!==this._loading){return;}this.inserted[mname]=true;if(this.onProgress){this.onProgress.call(this.scope,{name:mname,data:this.data});}}var s=this.sorted,len=s.length,i,m;for(i=0;i<len;i=i+1){if(s[i] in this.inserted){continue;}if(s[i]===this._loading){return;}m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});return;}if(!this.loadType||this.loadType===m.type){this._loading=s[i];var fn=(m.type==="css")?util.Get.css:util.Get.script,url=m.fullpath,self=this,c=function(o){self.loadNext(o.data);};url=(url)?this._filter(url):this._url(m.path);if(env.ua.webkit&&env.ua.webkit<420&&m.type==="js"&&!m.varName){c=null;this._useYahooListener=true;}fn(url,{data:s[i],onSuccess:c,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,varName:m.varName,scope:self});return;}}this._loading=null;if(this._internalCallback){var f=this._internalCallback;this._internalCallback=null;f.call(this);}else{if(this.onSuccess){this._pushEvents();this.onSuccess.call(this.scope,{data:this.data});}}},_pushEvents:function(ref){var r=ref||YAHOO;if(r.util&&r.util.Event){r.util.Event._load();}},_filter:function(str){var f=this.filter;return(f)?str.replace(new RegExp(f.searchExp,"g"),f.replaceStr):str;},_url:function(path){return this._filter((this.base||"")+path);}};})();YAHOO.register("yuiloader",YAHOO.util.YUILoader,{version:"2.8.1",build:"19"});
+}},_onTimeout:function(){YAHOO.log("Timeout","info","loader");var f=this.onTimeout;if(f){f.call(this.scope,{msg:"timeout",data:this.data,success:false});}},_sort:function(){var s=[],info=this.moduleInfo,loaded=this.loaded,checkOptional=!this.loadOptional,me=this;var requires=function(aa,bb){var mm=info[aa];if(loaded[bb]||!mm){return false;}var ii,rr=mm.expanded,after=mm.after,other=info[bb],optional=mm.optional;if(rr&&YUI.ArrayUtil.indexOf(rr,bb)>-1){return true;}if(after&&YUI.ArrayUtil.indexOf(after,bb)>-1){return true;}if(checkOptional&&optional&&YUI.ArrayUtil.indexOf(optional,bb)>-1){return true;}var ss=info[bb]&&info[bb].supersedes;if(ss){for(ii=0;ii<ss.length;ii=ii+1){if(requires(aa,ss[ii])){return true;}}}if(mm.ext&&mm.type=="css"&&!other.ext&&other.type=="css"){return true;}return false;};for(var i in this.required){if(lang.hasOwnProperty(this.required,i)){s.push(i);}}var p=0;for(;;){var l=s.length,a,b,j,k,moved=false;for(j=p;j<l;j=j+1){a=s[j];for(k=j+1;k<l;k=k+1){if(requires(a,s[k])){b=s.splice(k,1);s.splice(j,0,b[0]);moved=true;break;}}if(moved){break;}else{p=p+1;}}if(!moved){break;}}this.sorted=s;},toString:function(){var o={type:"YUILoader",base:this.base,filter:this.filter,required:this.required,loaded:this.loaded,inserted:this.inserted};lang.dump(o,1);},_combine:function(){this._combining=[];var self=this,s=this.sorted,len=s.length,js=this.comboBase,css=this.comboBase,target,startLen=js.length,i,m,type=this.loadType;YAHOO.log("type "+type);for(i=0;i<len;i=i+1){m=this.moduleInfo[s[i]];if(m&&!m.ext&&(!type||type===m.type)){target=this.root+m.path;target+="&";if(m.type=="js"){js+=target;}else{css+=target;}this._combining.push(s[i]);}}if(this._combining.length){YAHOO.log("Attempting to combine: "+this._combining,"info","loader");var callback=function(o){var c=this._combining,len=c.length,i,m;for(i=0;i<len;i=i+1){this.inserted[c[i]]=true;}this.loadNext(o.data);},loadScript=function(){if(js.length>startLen){YAHOO.util.Get.script(self._filter(js),{data:self._loading,onSuccess:callback,onFailure:self._onFailure,onTimeout:self._onTimeout,insertBefore:self.insertBefore,charset:self.charset,timeout:self.timeout,scope:self});}};if(css.length>startLen){YAHOO.util.Get.css(this._filter(css),{data:this._loading,onSuccess:loadScript,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,scope:self});}else{loadScript();}return;}else{this.loadNext(this._loading);}},insert:function(o,type){this.calculate(o);this._loading=true;this.loadType=type;if(this.combine){return this._combine();}if(!type){var self=this;this._internalCallback=function(){self._internalCallback=null;self.insert(null,"js");};this.insert(null,"css");return;}this.loadNext();},sandbox:function(o,type){this._config(o);if(!this.onSuccess){throw new Error("You must supply an onSuccess handler for your sandbox");}this._sandbox=true;var self=this;if(!type||type!=="js"){this._internalCallback=function(){self._internalCallback=null;self.sandbox(null,"js");};this.insert(null,"css");return;}if(!util.Connect){var ld=new YAHOO.util.YUILoader();ld.insert({base:this.base,filter:this.filter,require:"connection",insertBefore:this.insertBefore,charset:this.charset,onSuccess:function(){this.sandbox(null,"js");},scope:this},"js");return;}this._scriptText=[];this._loadCount=0;this._stopCount=this.sorted.length;this._xhr=[];this.calculate();var s=this.sorted,l=s.length,i,m,url;for(i=0;i<l;i=i+1){m=this.moduleInfo[s[i]];if(!m){this._onFailure("undefined module "+m);for(var j=0;j<this._xhr.length;j=j+1){this._xhr[j].abort();}return;}if(m.type!=="js"){this._loadCount++;continue;}url=m.fullpath;url=(url)?this._filter(url):this._url(m.path);var xhrData={success:function(o){var idx=o.argument[0],name=o.argument[2];this._scriptText[idx]=o.responseText;if(this.onProgress){this.onProgress.call(this.scope,{name:name,scriptText:o.responseText,xhrResponse:o,data:this.data});}this._loadCount++;if(this._loadCount>=this._stopCount){var v=this.varName||"YAHOO";var t="(function() {\n";var b="\nreturn "+v+";\n})();";var ref=eval(t+this._scriptText.join("\n")+b);this._pushEvents(ref);if(ref){this.onSuccess.call(this.scope,{reference:ref,data:this.data});}else{this._onFailure.call(this.varName+" reference failure");}}},failure:function(o){this.onFailure.call(this.scope,{msg:"XHR failure",xhrResponse:o,data:this.data});},scope:this,argument:[i,url,s[i]]};this._xhr.push(util.Connect.asyncRequest("GET",url,xhrData));}},loadNext:function(mname){if(!this._loading){return;}if(mname){if(mname!==this._loading){return;}this.inserted[mname]=true;if(this.onProgress){this.onProgress.call(this.scope,{name:mname,data:this.data});}}var s=this.sorted,len=s.length,i,m;for(i=0;i<len;i=i+1){if(s[i] in this.inserted){continue;}if(s[i]===this._loading){return;}m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});return;}if(!this.loadType||this.loadType===m.type){this._loading=s[i];var fn=(m.type==="css")?util.Get.css:util.Get.script,url=m.fullpath,self=this,c=function(o){self.loadNext(o.data);};url=(url)?this._filter(url):this._url(m.path);if(env.ua.webkit&&env.ua.webkit<420&&m.type==="js"&&!m.varName){c=null;this._useYahooListener=true;}fn(url,{data:s[i],onSuccess:c,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,varName:m.varName,scope:self});return;}}this._loading=null;if(this._internalCallback){var f=this._internalCallback;this._internalCallback=null;f.call(this);}else{if(this.onSuccess){this._pushEvents();this.onSuccess.call(this.scope,{data:this.data});}}},_pushEvents:function(ref){var r=ref||YAHOO;if(r.util&&r.util.Event){r.util.Event._load();}},_filter:function(str){var f=this.filter;return(f)?str.replace(new RegExp(f.searchExp,"g"),f.replaceStr):str;},_url:function(path){return this._filter((this.base||"")+path);}};})();YAHOO.register("yuiloader",YAHOO.util.YUILoader,{version:"2.8.2r1",build:"7"});
 (function(){YAHOO.env._id_counter=YAHOO.env._id_counter||0;var E=YAHOO.util,L=YAHOO.lang,m=YAHOO.env.ua,A=YAHOO.lang.trim,d={},h={},N=/^t(?:able|d|h)$/i,X=/color$/i,K=window.document,W=K.documentElement,e="ownerDocument",n="defaultView",v="documentElement",t="compatMode",b="offsetLeft",P="offsetTop",u="offsetParent",Z="parentNode",l="nodeType",C="tagName",O="scrollLeft",i="scrollTop",Q="getBoundingClientRect",w="getComputedStyle",a="currentStyle",M="CSS1Compat",c="BackCompat",g="class",F="className",J="",B=" ",s="(?:^|\\s)",k="(?= |$)",U="g",p="position",f="fixed",V="relative",j="left",o="top",r="medium",q="borderLeftWidth",R="borderTopWidth",D=m.opera,I=m.webkit,H=m.gecko,T=m.ie;E.Dom={CUSTOM_ATTRIBUTES:(!W.hasAttribute)?{"for":"htmlFor","class":F}:{"htmlFor":"for","className":g},DOT_ATTRIBUTES:{},get:function(z){var AB,x,AA,y,Y,G;if(z){if(z[l]||z.item){return z;}if(typeof z==="string"){AB=z;z=K.getElementById(z);G=(z)?z.attributes:null;if(z&&G&&G.id&&G.id.value===AB){return z;}else{if(z&&K.all){z=null;x=K.all[AB];for(y=0,Y=x.length;y<Y;++y){if(x[y].id===AB){return x[y];}}}}return z;}if(YAHOO.util.Element&&z instanceof YAHOO.util.Element){z=z.get("element");}if("length" in z){AA=[];for(y=0,Y=z.length;y<Y;++y){AA[AA.length]=E.Dom.get(z[y]);}return AA;}return z;}return null;},getComputedStyle:function(G,Y){if(window[w]){return G[e][n][w](G,null)[Y];}else{if(G[a]){return E.Dom.IE_ComputedStyle.get(G,Y);}}},getStyle:function(G,Y){return E.Dom.batch(G,E.Dom._getStyle,Y);},_getStyle:function(){if(window[w]){return function(G,y){y=(y==="float")?y="cssFloat":E.Dom._toCamel(y);var x=G.style[y],Y;if(!x){Y=G[e][n][w](G,null);if(Y){x=Y[y];}}return x;};}else{if(W[a]){return function(G,y){var x;switch(y){case"opacity":x=100;try{x=G.filters["DXImageTransform.Microsoft.Alpha"].opacity;}catch(z){try{x=G.filters("alpha").opacity;}catch(Y){}}return x/100;case"float":y="styleFloat";default:y=E.Dom._toCamel(y);x=G[a]?G[a][y]:null;return(G.style[y]||x);}};}}}(),setStyle:function(G,Y,x){E.Dom.batch(G,E.Dom._setStyle,{prop:Y,val:x});},_setStyle:function(){if(T){return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){switch(x){case"opacity":if(L.isString(Y.style.filter)){Y.style.filter="alpha(opacity="+y*100+")";if(!Y[a]||!Y[a].hasLayout){Y.style.zoom=1;}}break;case"float":x="styleFloat";default:Y.style[x]=y;}}else{}};}else{return function(Y,G){var x=E.Dom._toCamel(G.prop),y=G.val;if(Y){if(x=="float"){x="cssFloat";}Y.style[x]=y;}else{}};}}(),getXY:function(G){return E.Dom.batch(G,E.Dom._getXY);},_canPosition:function(G){return(E.Dom._getStyle(G,"display")!=="none"&&E.Dom._inDoc(G));},_getXY:function(){if(K[v][Q]){return function(y){var z,Y,AA,AF,AE,AD,AC,G,x,AB=Math.floor,AG=false;if(E.Dom._canPosition(y)){AA=y[Q]();AF=y[e];z=E.Dom.getDocumentScrollLeft(AF);Y=E.Dom.getDocumentScrollTop(AF);AG=[AB(AA[j]),AB(AA[o])];if(T&&m.ie<8){AE=2;AD=2;AC=AF[t];if(m.ie===6){if(AC!==c){AE=0;AD=0;}}if((AC===c)){G=S(AF[v],q);x=S(AF[v],R);if(G!==r){AE=parseInt(G,10);}if(x!==r){AD=parseInt(x,10);}}AG[0]-=AE;AG[1]-=AD;}if((Y||z)){AG[0]+=z;AG[1]+=Y;}AG[0]=AB(AG[0]);AG[1]=AB(AG[1]);}else{}return AG;};}else{return function(y){var x,Y,AA,AB,AC,z=false,G=y;if(E.Dom._canPosition(y)){z=[y[b],y[P]];x=E.Dom.getDocumentScrollLeft(y[e]);Y=E.Dom.getDocumentScrollTop(y[e]);AC=((H||m.webkit>519)?true:false);while((G=G[u])){z[0]+=G[b];z[1]+=G[P];if(AC){z=E.Dom._calcBorders(G,z);}}if(E.Dom._getStyle(y,p)!==f){G=y;while((G=G[Z])&&G[C]){AA=G[i];AB=G[O];if(H&&(E.Dom._getStyle(G,"overflow")!=="visible")){z=E.Dom._calcBorders(G,z);}if(AA||AB){z[0]-=AB;z[1]-=AA;}}z[0]+=x;z[1]+=Y;}else{if(D){z[0]-=x;z[1]-=Y;}else{if(I||H){z[0]+=x;z[1]+=Y;}}}z[0]=Math.floor(z[0]);z[1]=Math.floor(z[1]);}else{}return z;};}}(),getX:function(G){var Y=function(x){return E.Dom.getXY(x)[0];};return E.Dom.batch(G,Y,E.Dom,true);},getY:function(G){var Y=function(x){return E.Dom.getXY(x)[1];};return E.Dom.batch(G,Y,E.Dom,true);},setXY:function(G,x,Y){E.Dom.batch(G,E.Dom._setXY,{pos:x,noRetry:Y});},_setXY:function(G,z){var AA=E.Dom._getStyle(G,p),y=E.Dom.setStyle,AD=z.pos,Y=z.noRetry,AB=[parseInt(E.Dom.getComputedStyle(G,j),10),parseInt(E.Dom.getComputedStyle(G,o),10)],AC,x;if(AA=="static"){AA=V;y(G,p,AA);}AC=E.Dom._getXY(G);if(!AD||AC===false){return false;}if(isNaN(AB[0])){AB[0]=(AA==V)?0:G[b];}if(isNaN(AB[1])){AB[1]=(AA==V)?0:G[P];}if(AD[0]!==null){y(G,j,AD[0]-AC[0]+AB[0]+"px");}if(AD[1]!==null){y(G,o,AD[1]-AC[1]+AB[1]+"px");}if(!Y){x=E.Dom._getXY(G);if((AD[0]!==null&&x[0]!=AD[0])||(AD[1]!==null&&x[1]!=AD[1])){E.Dom._setXY(G,{pos:AD,noRetry:true});}}},setX:function(Y,G){E.Dom.setXY(Y,[G,null]);},setY:function(G,Y){E.Dom.setXY(G,[null,Y]);},getRegion:function(G){var Y=function(x){var y=false;if(E.Dom._canPosition(x)){y=E.Region.getRegion(x);}else{}return y;};return E.Dom.batch(G,Y,E.Dom,true);},getClientWidth:function(){return E.Dom.getViewportWidth();},getClientHeight:function(){return E.Dom.getViewportHeight();},getElementsByClassName:function(AB,AF,AC,AE,x,AD){AF=AF||"*";AC=(AC)?E.Dom.get(AC):null||K;if(!AC){return[];}var Y=[],G=AC.getElementsByTagName(AF),z=E.Dom.hasClass;for(var y=0,AA=G.length;y<AA;++y){if(z(G[y],AB)){Y[Y.length]=G[y];}}if(AE){E.Dom.batch(Y,AE,x,AD);}return Y;},hasClass:function(Y,G){return E.Dom.batch(Y,E.Dom._hasClass,G);},_hasClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom._getAttribute(x,F)||J;if(Y.exec){G=Y.test(y);}else{G=Y&&(B+y+B).indexOf(B+Y+B)>-1;}}else{}return G;},addClass:function(Y,G){return E.Dom.batch(Y,E.Dom._addClass,G);},_addClass:function(x,Y){var G=false,y;if(x&&Y){y=E.Dom._getAttribute(x,F)||J;if(!E.Dom._hasClass(x,Y)){E.Dom.setAttribute(x,F,A(y+B+Y));G=true;}}else{}return G;},removeClass:function(Y,G){return E.Dom.batch(Y,E.Dom._removeClass,G);},_removeClass:function(y,x){var Y=false,AA,z,G;if(y&&x){AA=E.Dom._getAttribute(y,F)||J;E.Dom.setAttribute(y,F,AA.replace(E.Dom._getClassRegex(x),J));z=E.Dom._getAttribute(y,F);if(AA!==z){E.Dom.setAttribute(y,F,A(z));Y=true;if(E.Dom._getAttribute(y,F)===""){G=(y.hasAttribute&&y.hasAttribute(g))?g:F;
 y.removeAttribute(G);}}}else{}return Y;},replaceClass:function(x,Y,G){return E.Dom.batch(x,E.Dom._replaceClass,{from:Y,to:G});},_replaceClass:function(y,x){var Y,AB,AA,G=false,z;if(y&&x){AB=x.from;AA=x.to;if(!AA){G=false;}else{if(!AB){G=E.Dom._addClass(y,x.to);}else{if(AB!==AA){z=E.Dom._getAttribute(y,F)||J;Y=(B+z.replace(E.Dom._getClassRegex(AB),B+AA)).split(E.Dom._getClassRegex(AA));Y.splice(1,0,B+AA);E.Dom.setAttribute(y,F,A(Y.join(J)));G=true;}}}}else{}return G;},generateId:function(G,x){x=x||"yui-gen";var Y=function(y){if(y&&y.id){return y.id;}var z=x+YAHOO.env._id_counter++;if(y){if(y[e]&&y[e].getElementById(z)){return E.Dom.generateId(y,z+x);}y.id=z;}return z;};return E.Dom.batch(G,Y,E.Dom,true)||Y.apply(E.Dom,arguments);},isAncestor:function(Y,x){Y=E.Dom.get(Y);x=E.Dom.get(x);var G=false;if((Y&&x)&&(Y[l]&&x[l])){if(Y.contains&&Y!==x){G=Y.contains(x);}else{if(Y.compareDocumentPosition){G=!!(Y.compareDocumentPosition(x)&16);}}}else{}return G;},inDocument:function(G,Y){return E.Dom._inDoc(E.Dom.get(G),Y);},_inDoc:function(Y,x){var G=false;if(Y&&Y[C]){x=x||Y[e];G=E.Dom.isAncestor(x[v],Y);}else{}return G;},getElementsBy:function(Y,AF,AB,AD,y,AC,AE){AF=AF||"*";AB=(AB)?E.Dom.get(AB):null||K;if(!AB){return[];}var x=[],G=AB.getElementsByTagName(AF);for(var z=0,AA=G.length;z<AA;++z){if(Y(G[z])){if(AE){x=G[z];break;}else{x[x.length]=G[z];}}}if(AD){E.Dom.batch(x,AD,y,AC);}return x;},getElementBy:function(x,G,Y){return E.Dom.getElementsBy(x,G,Y,null,null,null,true);},batch:function(x,AB,AA,z){var y=[],Y=(z)?AA:window;x=(x&&(x[C]||x.item))?x:E.Dom.get(x);if(x&&AB){if(x[C]||x.length===undefined){return AB.call(Y,x,AA);}for(var G=0;G<x.length;++G){y[y.length]=AB.call(Y,x[G],AA);}}else{return false;}return y;},getDocumentHeight:function(){var Y=(K[t]!=M||I)?K.body.scrollHeight:W.scrollHeight,G=Math.max(Y,E.Dom.getViewportHeight());return G;},getDocumentWidth:function(){var Y=(K[t]!=M||I)?K.body.scrollWidth:W.scrollWidth,G=Math.max(Y,E.Dom.getViewportWidth());return G;},getViewportHeight:function(){var G=self.innerHeight,Y=K[t];if((Y||T)&&!D){G=(Y==M)?W.clientHeight:K.body.clientHeight;}return G;},getViewportWidth:function(){var G=self.innerWidth,Y=K[t];if(Y||T){G=(Y==M)?W.clientWidth:K.body.clientWidth;}return G;},getAncestorBy:function(G,Y){while((G=G[Z])){if(E.Dom._testElement(G,Y)){return G;}}return null;},getAncestorByClassName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return E.Dom.hasClass(y,G);};return E.Dom.getAncestorBy(Y,x);},getAncestorByTagName:function(Y,G){Y=E.Dom.get(Y);if(!Y){return null;}var x=function(y){return y[C]&&y[C].toUpperCase()==G.toUpperCase();};return E.Dom.getAncestorBy(Y,x);},getPreviousSiblingBy:function(G,Y){while(G){G=G.previousSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getPreviousSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getPreviousSiblingBy(G);},getNextSiblingBy:function(G,Y){while(G){G=G.nextSibling;if(E.Dom._testElement(G,Y)){return G;}}return null;},getNextSibling:function(G){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getNextSiblingBy(G);},getFirstChildBy:function(G,x){var Y=(E.Dom._testElement(G.firstChild,x))?G.firstChild:null;return Y||E.Dom.getNextSiblingBy(G.firstChild,x);},getFirstChild:function(G,Y){G=E.Dom.get(G);if(!G){return null;}return E.Dom.getFirstChildBy(G);},getLastChildBy:function(G,x){if(!G){return null;}var Y=(E.Dom._testElement(G.lastChild,x))?G.lastChild:null;return Y||E.Dom.getPreviousSiblingBy(G.lastChild,x);},getLastChild:function(G){G=E.Dom.get(G);return E.Dom.getLastChildBy(G);},getChildrenBy:function(Y,y){var x=E.Dom.getFirstChildBy(Y,y),G=x?[x]:[];E.Dom.getNextSiblingBy(x,function(z){if(!y||y(z)){G[G.length]=z;}return false;});return G;},getChildren:function(G){G=E.Dom.get(G);if(!G){}return E.Dom.getChildrenBy(G);},getDocumentScrollLeft:function(G){G=G||K;return Math.max(G[v].scrollLeft,G.body.scrollLeft);},getDocumentScrollTop:function(G){G=G||K;return Math.max(G[v].scrollTop,G.body.scrollTop);},insertBefore:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}return G[Z].insertBefore(Y,G);},insertAfter:function(Y,G){Y=E.Dom.get(Y);G=E.Dom.get(G);if(!Y||!G||!G[Z]){return null;}if(G.nextSibling){return G[Z].insertBefore(Y,G.nextSibling);}else{return G[Z].appendChild(Y);}},getClientRegion:function(){var x=E.Dom.getDocumentScrollTop(),Y=E.Dom.getDocumentScrollLeft(),y=E.Dom.getViewportWidth()+Y,G=E.Dom.getViewportHeight()+x;return new E.Region(x,y,G,Y);},setAttribute:function(Y,G,x){E.Dom.batch(Y,E.Dom._setAttribute,{attr:G,val:x});},_setAttribute:function(x,Y){var G=E.Dom._toCamel(Y.attr),y=Y.val;if(x&&x.setAttribute){if(E.Dom.DOT_ATTRIBUTES[G]){x[G]=y;}else{G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;x.setAttribute(G,y);}}else{}},getAttribute:function(Y,G){return E.Dom.batch(Y,E.Dom._getAttribute,G);},_getAttribute:function(Y,G){var x;G=E.Dom.CUSTOM_ATTRIBUTES[G]||G;if(Y&&Y.getAttribute){x=Y.getAttribute(G,2);}else{}return x;},_toCamel:function(Y){var x=d;function G(y,z){return z.toUpperCase();}return x[Y]||(x[Y]=Y.indexOf("-")===-1?Y:Y.replace(/-([a-z])/gi,G));},_getClassRegex:function(Y){var G;if(Y!==undefined){if(Y.exec){G=Y;}else{G=h[Y];if(!G){Y=Y.replace(E.Dom._patterns.CLASS_RE_TOKENS,"\\$1");G=h[Y]=new RegExp(s+Y+k,U);}}}return G;},_patterns:{ROOT_TAG:/^body|html$/i,CLASS_RE_TOKENS:/([\.\(\)\^\$\*\+\?\|\[\]\{\}\\])/g},_testElement:function(G,Y){return G&&G[l]==1&&(!Y||Y(G));},_calcBorders:function(x,y){var Y=parseInt(E.Dom[w](x,R),10)||0,G=parseInt(E.Dom[w](x,q),10)||0;if(H){if(N.test(x[C])){Y=0;G=0;}}y[0]+=G;y[1]+=Y;return y;}};var S=E.Dom[w];if(m.opera){E.Dom[w]=function(Y,G){var x=S(Y,G);if(X.test(G)){x=E.Dom.Color.toRGB(x);}return x;};}if(m.webkit){E.Dom[w]=function(Y,G){var x=S(Y,G);if(x==="rgba(0, 0, 0, 0)"){x="transparent";}return x;};}if(m.ie&&m.ie>=8&&K.documentElement.hasAttribute){E.Dom.DOT_ATTRIBUTES.type=true;}})();YAHOO.util.Region=function(C,D,A,B){this.top=C;this.y=C;this[1]=C;this.right=D;this.bottom=A;this.left=B;this.x=B;this[0]=B;
-this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.8.1",build:"19"});YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var H=[],A=this.subscribers.length;var D=[].slice.call(arguments,0),C=true,F,B=false;if(this.fireOnce){if(this.fired){return true;}else{this.firedWith=D;}}this.fired=true;if(!A&&this.silent){return true;}if(!this.silent){}var E=this.subscribers.slice();for(F=0;F<A;++F){var G=E[F];if(!G){B=true;}else{C=this.notify(G,D);if(false===C){if(!this.silent){}break;}}}return(C!==false);},notify:function(F,C){var B,H=null,E=F.getScope(this.scope),A=YAHOO.util.Event.throwErrors;if(!this.silent){}if(this.signature==YAHOO.util.CustomEvent.FLAT){if(C.length>0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var G=false,H=[],J=[],A=0,E=[],B=0,C={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},D=YAHOO.env.ua.ie,F="focusin",I="focusout";return{POLL_RETRYS:500,POLL_INTERVAL:40,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:D,_interval:null,_dri:null,_specialTypes:{focusin:(D?"focusin":"focus"),focusout:(D?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,null,true);}},onAvailable:function(Q,M,O,P,N){var K=(YAHOO.lang.isString(Q))?[Q]:Q;for(var L=0;L<K.length;L=L+1){E.push({id:K[L],fn:M,obj:O,overrideContext:P,checkReady:N});}A=this.POLL_RETRYS;this.startInterval();},onContentReady:function(N,K,L,M){this.onAvailable(N,K,L,M,true);},onDOMReady:function(){this.DOMReadyEvent.subscribe.apply(this.DOMReadyEvent,arguments);},_addListener:function(M,K,V,P,T,Y){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var Q=0,S=M.length;Q<S;++Q){W=this.on(M[Q],K,V,P,T)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var O=this.getEl(M);if(O){M=O;}else{this.onAvailable(M,function(){YAHOO.util.Event._addListener(M,K,V,P,T,Y);});return true;}}}if(!M){return false;}if("unload"==K&&P!==this){J[J.length]=[M,K,V,P,T];return true;}var L=M;if(T){if(T===true){L=P;}else{L=T;}}var N=function(Z){return V.call(L,YAHOO.util.Event.getEvent(Z,M),P);};var X=[M,K,V,N,L,P,T,Y];var R=H.length;H[R]=X;try{this._simpleAdd(M,K,N,Y);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}return true;},_getType:function(K){return this._specialTypes[K]||K;},addListener:function(M,P,L,N,O){var K=((P==F||P==I)&&!YAHOO.env.ua.ie)?true:false;return this._addListener(M,this._getType(P),L,N,O,K);},addFocusListener:function(L,K,M,N){return this.on(L,F,K,M,N);},removeFocusListener:function(L,K){return this.removeListener(L,F,K);},addBlurListener:function(L,K,M,N){return this.on(L,I,K,M,N);},removeBlurListener:function(L,K){return this.removeListener(L,I,K);},removeListener:function(L,K,R){var M,P,U;K=this._getType(K);if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var S=true;for(M=L.length-1;M>-1;M--){S=(this.removeListener(L[M],K,R)&&S);}return S;}}if(!R||!R.call){return this.purgeElement(L,false,K);}if("unload"==K){for(M=J.length-1;M>-1;M--){U=J[M];if(U&&U[0]==L&&U[1]==K&&U[2]==R){J.splice(M,1);return true;}}return false;}var N=null;var O=arguments[3];if("undefined"===typeof O){O=this._getCacheIndex(H,L,K,R);}if(O>=0){N=H[O];}if(!L||!N){return false;}var T=N[this.CAPTURE]===true?true:false;try{this._simpleRemove(L,K,N[this.WFN],T);}catch(Q){this.lastError=Q;return false;}delete H[O][this.WFN];delete H[O][this.FN];H.splice(O,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;
+this.width=this.right-this.left;this.height=this.bottom-this.top;};YAHOO.util.Region.prototype.contains=function(A){return(A.left>=this.left&&A.right<=this.right&&A.top>=this.top&&A.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.util.Region.prototype.intersect=function(E){var C=Math.max(this.top,E.top),D=Math.min(this.right,E.right),A=Math.min(this.bottom,E.bottom),B=Math.max(this.left,E.left);if(A>=C&&D>=B){return new YAHOO.util.Region(C,D,A,B);}else{return null;}};YAHOO.util.Region.prototype.union=function(E){var C=Math.min(this.top,E.top),D=Math.max(this.right,E.right),A=Math.max(this.bottom,E.bottom),B=Math.min(this.left,E.left);return new YAHOO.util.Region(C,D,A,B);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+", height: "+this.height+", width: "+this.width+"}");};YAHOO.util.Region.getRegion=function(D){var F=YAHOO.util.Dom.getXY(D),C=F[1],E=F[0]+D.offsetWidth,A=F[1]+D.offsetHeight,B=F[0];return new YAHOO.util.Region(C,E,A,B);};YAHOO.util.Point=function(A,B){if(YAHOO.lang.isArray(A)){B=A[1];A=A[0];}YAHOO.util.Point.superclass.constructor.call(this,B,A,B,A);};YAHOO.extend(YAHOO.util.Point,YAHOO.util.Region);(function(){var B=YAHOO.util,A="clientTop",F="clientLeft",J="parentNode",K="right",W="hasLayout",I="px",U="opacity",L="auto",D="borderLeftWidth",G="borderTopWidth",P="borderRightWidth",V="borderBottomWidth",S="visible",Q="transparent",N="height",E="width",H="style",T="currentStyle",R=/^width|height$/,O=/^(\d[.\d]*)+(em|ex|px|gd|rem|vw|vh|vm|ch|mm|cm|in|pt|pc|deg|rad|ms|s|hz|khz|%){1}?/i,M={get:function(X,Z){var Y="",a=X[T][Z];if(Z===U){Y=B.Dom.getStyle(X,U);}else{if(!a||(a.indexOf&&a.indexOf(I)>-1)){Y=a;}else{if(B.Dom.IE_COMPUTED[Z]){Y=B.Dom.IE_COMPUTED[Z](X,Z);}else{if(O.test(a)){Y=B.Dom.IE.ComputedStyle.getPixel(X,Z);}else{Y=a;}}}}return Y;},getOffset:function(Z,e){var b=Z[T][e],X=e.charAt(0).toUpperCase()+e.substr(1),c="offset"+X,Y="pixel"+X,a="",d;if(b==L){d=Z[c];if(d===undefined){a=0;}a=d;if(R.test(e)){Z[H][e]=d;if(Z[c]>d){a=d-(Z[c]-d);}Z[H][e]=L;}}else{if(!Z[H][Y]&&!Z[H][e]){Z[H][e]=b;}a=Z[H][Y];}return a+I;},getBorderWidth:function(X,Z){var Y=null;if(!X[T][W]){X[H].zoom=1;}switch(Z){case G:Y=X[A];break;case V:Y=X.offsetHeight-X.clientHeight-X[A];break;case D:Y=X[F];break;case P:Y=X.offsetWidth-X.clientWidth-X[F];break;}return Y+I;},getPixel:function(Y,X){var a=null,b=Y[T][K],Z=Y[T][X];Y[H][K]=Z;a=Y[H].pixelRight;Y[H][K]=b;return a+I;},getMargin:function(Y,X){var Z;if(Y[T][X]==L){Z=0+I;}else{Z=B.Dom.IE.ComputedStyle.getPixel(Y,X);}return Z;},getVisibility:function(Y,X){var Z;while((Z=Y[T])&&Z[X]=="inherit"){Y=Y[J];}return(Z)?Z[X]:S;},getColor:function(Y,X){return B.Dom.Color.toRGB(Y[T][X])||Q;},getBorderColor:function(Y,X){var Z=Y[T],a=Z[X]||Z.color;return B.Dom.Color.toRGB(B.Dom.Color.toHex(a));}},C={};C.top=C.right=C.bottom=C.left=C[E]=C[N]=M.getOffset;C.color=M.getColor;C[G]=C[P]=C[V]=C[D]=M.getBorderWidth;C.marginTop=C.marginRight=C.marginBottom=C.marginLeft=M.getMargin;C.visibility=M.getVisibility;C.borderColor=C.borderTopColor=C.borderRightColor=C.borderBottomColor=C.borderLeftColor=M.getBorderColor;B.Dom.IE_COMPUTED=C;B.Dom.IE_ComputedStyle=M;})();(function(){var C="toString",A=parseInt,B=RegExp,D=YAHOO.util;D.Dom.Color={KEYWORDS:{black:"000",silver:"c0c0c0",gray:"808080",white:"fff",maroon:"800000",red:"f00",purple:"800080",fuchsia:"f0f",green:"008000",lime:"0f0",olive:"808000",yellow:"ff0",navy:"000080",blue:"00f",teal:"008080",aqua:"0ff"},re_RGB:/^rgb\(([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\)$/i,re_hex:/^#?([0-9A-F]{2})([0-9A-F]{2})([0-9A-F]{2})$/i,re_hex3:/([0-9A-F])/gi,toRGB:function(E){if(!D.Dom.Color.re_RGB.test(E)){E=D.Dom.Color.toHex(E);}if(D.Dom.Color.re_hex.exec(E)){E="rgb("+[A(B.$1,16),A(B.$2,16),A(B.$3,16)].join(", ")+")";}return E;},toHex:function(H){H=D.Dom.Color.KEYWORDS[H]||H;if(D.Dom.Color.re_RGB.exec(H)){var G=(B.$1.length===1)?"0"+B.$1:Number(B.$1),F=(B.$2.length===1)?"0"+B.$2:Number(B.$2),E=(B.$3.length===1)?"0"+B.$3:Number(B.$3);H=[G[C](16),F[C](16),E[C](16)].join("");}if(H.length<6){H=H.replace(D.Dom.Color.re_hex3,"$1$1");}if(H!=="transparent"&&H.indexOf("#")<0){H="#"+H;}return H.toLowerCase();}};}());YAHOO.register("dom",YAHOO.util.Dom,{version:"2.8.2r1",build:"7"});YAHOO.util.CustomEvent=function(D,C,B,A,E){this.type=D;this.scope=C||window;this.silent=B;this.fireOnce=E;this.fired=false;this.firedWith=null;this.signature=A||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var F="_YUICEOnSubscribe";if(D!==F){this.subscribeEvent=new YAHOO.util.CustomEvent(F,this,true);}this.lastError=null;};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(B,C,D){if(!B){throw new Error("Invalid callback for subscriber to '"+this.type+"'");}if(this.subscribeEvent){this.subscribeEvent.fire(B,C,D);}var A=new YAHOO.util.Subscriber(B,C,D);if(this.fireOnce&&this.fired){this.notify(A,this.firedWith);}else{this.subscribers.push(A);}},unsubscribe:function(D,F){if(!D){return this.unsubscribeAll();}var E=false;for(var B=0,A=this.subscribers.length;B<A;++B){var C=this.subscribers[B];if(C&&C.contains(D,F)){this._delete(B);E=true;}}return E;},fire:function(){this.lastError=null;var H=[],A=this.subscribers.length;var D=[].slice.call(arguments,0),C=true,F,B=false;if(this.fireOnce){if(this.fired){return true;}else{this.firedWith=D;}}this.fired=true;if(!A&&this.silent){return true;}if(!this.silent){}var E=this.subscribers.slice();for(F=0;F<A;++F){var G=E[F];if(!G){B=true;}else{C=this.notify(G,D);if(false===C){if(!this.silent){}break;}}}return(C!==false);},notify:function(F,C){var B,H=null,E=F.getScope(this.scope),A=YAHOO.util.Event.throwErrors;if(!this.silent){}if(this.signature==YAHOO.util.CustomEvent.FLAT){if(C.length>0){H=C[0];}try{B=F.fn.call(E,H,F.obj);}catch(G){this.lastError=G;if(A){throw G;}}}else{try{B=F.fn.call(E,this.type,C,F.obj);}catch(D){this.lastError=D;if(A){throw D;}}}return B;},unsubscribeAll:function(){var A=this.subscribers.length,B;for(B=A-1;B>-1;B--){this._delete(B);}this.subscribers=[];return A;},_delete:function(A){var B=this.subscribers[A];if(B){delete B.fn;delete B.obj;}this.subscribers.splice(A,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"context: "+this.scope;}};YAHOO.util.Subscriber=function(A,B,C){this.fn=A;this.obj=YAHOO.lang.isUndefined(B)?null:B;this.overrideContext=C;};YAHOO.util.Subscriber.prototype.getScope=function(A){if(this.overrideContext){if(this.overrideContext===true){return this.obj;}else{return this.overrideContext;}}return A;};YAHOO.util.Subscriber.prototype.contains=function(A,B){if(B){return(this.fn==A&&this.obj==B);}else{return(this.fn==A);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+this.obj+", overrideContext: "+(this.overrideContext||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var G=false,H=[],J=[],A=0,E=[],B=0,C={63232:38,63233:40,63234:37,63235:39,63276:33,63277:34,25:9},D=YAHOO.env.ua.ie,F="focusin",I="focusout";return{POLL_RETRYS:500,POLL_INTERVAL:40,EL:0,TYPE:1,FN:2,WFN:3,UNLOAD_OBJ:3,ADJ_SCOPE:4,OBJ:5,OVERRIDE:6,CAPTURE:7,lastError:null,isSafari:YAHOO.env.ua.webkit,webkit:YAHOO.env.ua.webkit,isIE:D,_interval:null,_dri:null,_specialTypes:{focusin:(D?"focusin":"focus"),focusout:(D?"focusout":"blur")},DOMReady:false,throwErrors:false,startInterval:function(){if(!this._interval){this._interval=YAHOO.lang.later(this.POLL_INTERVAL,this,this._tryPreloadAttach,null,true);}},onAvailable:function(Q,M,O,P,N){var K=(YAHOO.lang.isString(Q))?[Q]:Q;for(var L=0;L<K.length;L=L+1){E.push({id:K[L],fn:M,obj:O,overrideContext:P,checkReady:N});}A=this.POLL_RETRYS;this.startInterval();},onContentReady:function(N,K,L,M){this.onAvailable(N,K,L,M,true);},onDOMReady:function(){this.DOMReadyEvent.subscribe.apply(this.DOMReadyEvent,arguments);},_addListener:function(M,K,V,P,T,Y){if(!V||!V.call){return false;}if(this._isValidCollection(M)){var W=true;for(var Q=0,S=M.length;Q<S;++Q){W=this.on(M[Q],K,V,P,T)&&W;}return W;}else{if(YAHOO.lang.isString(M)){var O=this.getEl(M);if(O){M=O;}else{this.onAvailable(M,function(){YAHOO.util.Event._addListener(M,K,V,P,T,Y);});return true;}}}if(!M){return false;}if("unload"==K&&P!==this){J[J.length]=[M,K,V,P,T];return true;}var L=M;if(T){if(T===true){L=P;}else{L=T;}}var N=function(Z){return V.call(L,YAHOO.util.Event.getEvent(Z,M),P);};var X=[M,K,V,N,L,P,T,Y];var R=H.length;H[R]=X;try{this._simpleAdd(M,K,N,Y);}catch(U){this.lastError=U;this.removeListener(M,K,V);return false;}return true;},_getType:function(K){return this._specialTypes[K]||K;},addListener:function(M,P,L,N,O){var K=((P==F||P==I)&&!YAHOO.env.ua.ie)?true:false;return this._addListener(M,this._getType(P),L,N,O,K);},addFocusListener:function(L,K,M,N){return this.on(L,F,K,M,N);},removeFocusListener:function(L,K){return this.removeListener(L,F,K);},addBlurListener:function(L,K,M,N){return this.on(L,I,K,M,N);},removeBlurListener:function(L,K){return this.removeListener(L,I,K);},removeListener:function(L,K,R){var M,P,U;K=this._getType(K);if(typeof L=="string"){L=this.getEl(L);}else{if(this._isValidCollection(L)){var S=true;for(M=L.length-1;M>-1;M--){S=(this.removeListener(L[M],K,R)&&S);}return S;}}if(!R||!R.call){return this.purgeElement(L,false,K);}if("unload"==K){for(M=J.length-1;M>-1;M--){U=J[M];if(U&&U[0]==L&&U[1]==K&&U[2]==R){J.splice(M,1);return true;}}return false;}var N=null;var O=arguments[3];if("undefined"===typeof O){O=this._getCacheIndex(H,L,K,R);}if(O>=0){N=H[O];}if(!L||!N){return false;}var T=N[this.CAPTURE]===true?true:false;try{this._simpleRemove(L,K,N[this.WFN],T);}catch(Q){this.lastError=Q;return false;}delete H[O][this.WFN];delete H[O][this.FN];H.splice(O,1);return true;},getTarget:function(M,L){var K=M.target||M.srcElement;return this.resolveTextNode(K);},resolveTextNode:function(L){try{if(L&&3==L.nodeType){return L.parentNode;}}catch(K){}return L;},getPageX:function(L){var K=L.pageX;if(!K&&0!==K){K=L.clientX||0;if(this.isIE){K+=this._getScrollLeft();}}return K;},getPageY:function(K){var L=K.pageY;if(!L&&0!==L){L=K.clientY||0;if(this.isIE){L+=this._getScrollTop();}}return L;},getXY:function(K){return[this.getPageX(K),this.getPageY(K)];},getRelatedTarget:function(L){var K=L.relatedTarget;if(!K){if(L.type=="mouseout"){K=L.toElement;
 }else{if(L.type=="mouseover"){K=L.fromElement;}}}return this.resolveTextNode(K);},getTime:function(M){if(!M.time){var L=new Date().getTime();try{M.time=L;}catch(K){this.lastError=K;return L;}}return M.time;},stopEvent:function(K){this.stopPropagation(K);this.preventDefault(K);},stopPropagation:function(K){if(K.stopPropagation){K.stopPropagation();}else{K.cancelBubble=true;}},preventDefault:function(K){if(K.preventDefault){K.preventDefault();}else{K.returnValue=false;}},getEvent:function(M,K){var L=M||window.event;if(!L){var N=this.getEvent.caller;while(N){L=N.arguments[0];if(L&&Event==L.constructor){break;}N=N.caller;}}return L;},getCharCode:function(L){var K=L.keyCode||L.charCode||0;if(YAHOO.env.ua.webkit&&(K in C)){K=C[K];}return K;},_getCacheIndex:function(M,P,Q,O){for(var N=0,L=M.length;N<L;N=N+1){var K=M[N];if(K&&K[this.FN]==O&&K[this.EL]==P&&K[this.TYPE]==Q){return N;}}return -1;},generateId:function(K){var L=K.id;if(!L){L="yuievtautoid-"+B;++B;K.id=L;}return L;},_isValidCollection:function(L){try{return(L&&typeof L!=="string"&&L.length&&!L.tagName&&!L.alert&&typeof L[0]!=="undefined");}catch(K){return false;}},elCache:{},getEl:function(K){return(typeof K==="string")?document.getElementById(K):K;},clearCache:function(){},DOMReadyEvent:new YAHOO.util.CustomEvent("DOMReady",YAHOO,0,0,1),_load:function(L){if(!G){G=true;var K=YAHOO.util.Event;K._ready();K._tryPreloadAttach();}},_ready:function(L){var K=YAHOO.util.Event;if(!K.DOMReady){K.DOMReady=true;K.DOMReadyEvent.fire();K._simpleRemove(document,"DOMContentLoaded",K._ready);}},_tryPreloadAttach:function(){if(E.length===0){A=0;if(this._interval){this._interval.cancel();this._interval=null;}return;}if(this.locked){return;}if(this.isIE){if(!this.DOMReady){this.startInterval();return;}}this.locked=true;var Q=!G;if(!Q){Q=(A>0&&E.length>0);}var P=[];var R=function(T,U){var S=T;if(U.overrideContext){if(U.overrideContext===true){S=U.obj;}else{S=U.overrideContext;}}U.fn.call(S,U.obj);};var L,K,O,N,M=[];for(L=0,K=E.length;L<K;L=L+1){O=E[L];if(O){N=this.getEl(O.id);if(N){if(O.checkReady){if(G||N.nextSibling||!Q){M.push(O);E[L]=null;}}else{R(N,O);E[L]=null;}}else{P.push(O);}}}for(L=0,K=M.length;L<K;L=L+1){O=M[L];R(this.getEl(O.id),O);}A--;if(Q){for(L=E.length-1;L>-1;L--){O=E[L];if(!O||!O.id){E.splice(L,1);}}this.startInterval();}else{if(this._interval){this._interval.cancel();this._interval=null;}}this.locked=false;},purgeElement:function(O,P,R){var M=(YAHOO.lang.isString(O))?this.getEl(O):O;var Q=this.getListeners(M,R),N,K;if(Q){for(N=Q.length-1;N>-1;N--){var L=Q[N];this.removeListener(M,L.type,L.fn);}}if(P&&M&&M.childNodes){for(N=0,K=M.childNodes.length;N<K;++N){this.purgeElement(M.childNodes[N],P,R);}}},getListeners:function(M,K){var P=[],L;if(!K){L=[H,J];}else{if(K==="unload"){L=[J];}else{K=this._getType(K);L=[H];}}var R=(YAHOO.lang.isString(M))?this.getEl(M):M;for(var O=0;O<L.length;O=O+1){var T=L[O];if(T){for(var Q=0,S=T.length;Q<S;++Q){var N=T[Q];if(N&&N[this.EL]===R&&(!K||K===N[this.TYPE])){P.push({type:N[this.TYPE],fn:N[this.FN],obj:N[this.OBJ],adjust:N[this.OVERRIDE],scope:N[this.ADJ_SCOPE],index:Q});}}}}return(P.length)?P:null;},_unload:function(R){var L=YAHOO.util.Event,O,N,M,Q,P,S=J.slice(),K;for(O=0,Q=J.length;O<Q;++O){M=S[O];if(M){K=window;if(M[L.ADJ_SCOPE]){if(M[L.ADJ_SCOPE]===true){K=M[L.UNLOAD_OBJ];}else{K=M[L.ADJ_SCOPE];}}M[L.FN].call(K,L.getEvent(R,M[L.EL]),M[L.UNLOAD_OBJ]);S[O]=null;}}M=null;K=null;J=null;if(H){for(N=H.length-1;N>-1;N--){M=H[N];if(M){L.removeListener(M[L.EL],M[L.TYPE],M[L.FN],N);}}M=null;}L._simpleRemove(window,"unload",L._unload);},_getScrollLeft:function(){return this._getScroll()[1];},_getScrollTop:function(){return this._getScroll()[0];},_getScroll:function(){var K=document.documentElement,L=document.body;if(K&&(K.scrollTop||K.scrollLeft)){return[K.scrollTop,K.scrollLeft];}else{if(L){return[L.scrollTop,L.scrollLeft];}else{return[0,0];}}},regCE:function(){},_simpleAdd:function(){if(window.addEventListener){return function(M,N,L,K){M.addEventListener(N,L,(K));};}else{if(window.attachEvent){return function(M,N,L,K){M.attachEvent("on"+N,L);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(M,N,L,K){M.removeEventListener(N,L,(K));};}else{if(window.detachEvent){return function(L,M,K){L.detachEvent("on"+M,K);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;EU.onFocus=EU.addFocusListener;EU.onBlur=EU.addBlurListener;
 /* DOMReady: based on work by: Dean Edwards/John Resig/Matthias Miller/Diego Perini */
 if(EU.isIE){if(self!==self.top){document.onreadystatechange=function(){if(document.readyState=="complete"){document.onreadystatechange=null;EU._ready();}};}else{YAHOO.util.Event.onDOMReady(YAHOO.util.Event._tryPreloadAttach,YAHOO.util.Event,true);var n=document.createElement("p");EU._dri=setInterval(function(){try{n.doScroll("left");clearInterval(EU._dri);EU._dri=null;EU._ready();n=null;}catch(ex){}},EU.POLL_INTERVAL);}}else{if(EU.webkit&&EU.webkit<525){EU._dri=setInterval(function(){var rs=document.readyState;if("loaded"==rs||"complete"==rs){clearInterval(EU._dri);EU._dri=null;EU._ready();}},EU.POLL_INTERVAL);}else{EU._simpleAdd(document,"DOMContentLoaded",EU._ready);}}EU._simpleAdd(window,"load",EU._load);EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(A,C,F,E){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[A];if(D){D.subscribe(C,F,E);}else{this.__yui_subscribers=this.__yui_subscribers||{};var B=this.__yui_subscribers;if(!B[A]){B[A]=[];}B[A].push({fn:C,obj:F,overrideContext:E});}},unsubscribe:function(C,E,G){this.__yui_events=this.__yui_events||{};var A=this.__yui_events;if(C){var F=A[C];if(F){return F.unsubscribe(E,G);}}else{var B=true;for(var D in A){if(YAHOO.lang.hasOwnProperty(A,D)){B=B&&A[D].unsubscribe(E,G);}}return B;}return false;},unsubscribeAll:function(A){return this.unsubscribe(A);
-},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C<A.length;++C){F.subscribe(A[C].fn,A[C].obj,A[C].overrideContext);}}}return D[B];},fireEvent:function(B){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[B];if(!D){return null;}var A=[];for(var C=1;C<arguments.length;++C){A.push(arguments[C]);}return D.fire.apply(D,A);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.8.1",build:"19"});YAHOO.register("yuiloader-dom-event", YAHOO, {version: "2.8.1", build: "19"});
\ No newline at end of file
+},createEvent:function(B,G){this.__yui_events=this.__yui_events||{};var E=G||{},D=this.__yui_events,F;if(D[B]){}else{F=new YAHOO.util.CustomEvent(B,E.scope||this,E.silent,YAHOO.util.CustomEvent.FLAT,E.fireOnce);D[B]=F;if(E.onSubscribeCallback){F.subscribeEvent.subscribe(E.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var A=this.__yui_subscribers[B];if(A){for(var C=0;C<A.length;++C){F.subscribe(A[C].fn,A[C].obj,A[C].overrideContext);}}}return D[B];},fireEvent:function(B){this.__yui_events=this.__yui_events||{};var D=this.__yui_events[B];if(!D){return null;}var A=[];for(var C=1;C<arguments.length;++C){A.push(arguments[C]);}return D.fire.apply(D,A);},hasEvent:function(A){if(this.__yui_events){if(this.__yui_events[A]){return true;}}return false;}};(function(){var A=YAHOO.util.Event,C=YAHOO.lang;YAHOO.util.KeyListener=function(D,I,E,F){if(!D){}else{if(!I){}else{if(!E){}}}if(!F){F=YAHOO.util.KeyListener.KEYDOWN;}var G=new YAHOO.util.CustomEvent("keyPressed");this.enabledEvent=new YAHOO.util.CustomEvent("enabled");this.disabledEvent=new YAHOO.util.CustomEvent("disabled");if(C.isString(D)){D=document.getElementById(D);}if(C.isFunction(E)){G.subscribe(E);}else{G.subscribe(E.fn,E.scope,E.correctScope);}function H(O,N){if(!I.shift){I.shift=false;}if(!I.alt){I.alt=false;}if(!I.ctrl){I.ctrl=false;}if(O.shiftKey==I.shift&&O.altKey==I.alt&&O.ctrlKey==I.ctrl){var J,M=I.keys,L;if(YAHOO.lang.isArray(M)){for(var K=0;K<M.length;K++){J=M[K];L=A.getCharCode(O);if(J==L){G.fire(L,O);break;}}}else{L=A.getCharCode(O);if(M==L){G.fire(L,O);}}}}this.enable=function(){if(!this.enabled){A.on(D,F,H);this.enabledEvent.fire(I);}this.enabled=true;};this.disable=function(){if(this.enabled){A.removeListener(D,F,H);this.disabledEvent.fire(I);}this.enabled=false;};this.toString=function(){return"KeyListener ["+I.keys+"] "+D.tagName+(D.id?"["+D.id+"]":"");};};var B=YAHOO.util.KeyListener;B.KEYDOWN="keydown";B.KEYUP="keyup";B.KEY={ALT:18,BACK_SPACE:8,CAPS_LOCK:20,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,META:224,NUM_LOCK:144,PAGE_DOWN:34,PAGE_UP:33,PAUSE:19,PRINTSCREEN:44,RIGHT:39,SCROLL_LOCK:145,SHIFT:16,SPACE:32,TAB:9,UP:38};})();YAHOO.register("event",YAHOO.util.Event,{version:"2.8.2r1",build:"7"});YAHOO.register("yuiloader-dom-event", YAHOO, {version: "2.8.2r1", build: "7"});
\ No newline at end of file
diff --git a/build/yuiloader/yuiloader-debug.js b/build/yuiloader/yuiloader-debug.js
index 545b43c..3f29301 100644
--- a/build/yuiloader/yuiloader-debug.js
+++ b/build/yuiloader/yuiloader-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The YAHOO object is the single global object used by YUI Library.  It
@@ -1072,7 +1072,7 @@ YAHOO.augment = L.augmentProto;
 YAHOO.extend = L.extend;
 
 })();
-YAHOO.register("yahoo", YAHOO, {version: "2.8.1", build: "19"});
+YAHOO.register("yahoo", YAHOO, {version: "2.8.2r1", build: "7"});
 /**
  * Provides a mechanism to fetch remote resources and
  * insert them into a document
@@ -1821,7 +1821,7 @@ YAHOO.util.Get = function() {
     };
 }();
 
-YAHOO.register("get", YAHOO.util.Get, {version: "2.8.1", build: "19"});
+YAHOO.register("get", YAHOO.util.Get, {version: "2.8.2r1", build: "7"});
 /**
  * Provides dynamic loading for the YUI library.  It includes the dependency
  * info for the library, and will automatically pull in dependencies for
@@ -1861,8 +1861,8 @@ YAHOO.register("get", YAHOO.util.Get, {version: "2.8.1", build: "19"});
     // 'root': '2.5.2/build/',
     // 'base': 'http://yui.yahooapis.com/2.5.2/build/',
 
-    'root': '2.8.1/build/',
-    'base': 'http://yui.yahooapis.com/2.8.1/build/',
+    'root': '2.8.2r1/build/',
+    'base': 'http://yui.yahooapis.com/2.8.2r1/build/',
 
     'comboBase': 'http://yui.yahooapis.com/combo?',
 
@@ -3876,4 +3876,4 @@ throw new Error("You must supply an onSuccess handler for your sandbox");
 
 })();
 
-YAHOO.register("yuiloader", YAHOO.util.YUILoader, {version: "2.8.1", build: "19"});
+YAHOO.register("yuiloader", YAHOO.util.YUILoader, {version: "2.8.2r1", build: "7"});
diff --git a/build/yuiloader/yuiloader-min.js b/build/yuiloader/yuiloader-min.js
index 0d320f7..2c1c58c 100644
--- a/build/yuiloader/yuiloader-min.js
+++ b/build/yuiloader/yuiloader-min.js
@@ -2,9 +2,9 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
-if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.1",build:"19"});
-YAHOO.util.Get=function(){var M={},L=0,R=0,E=false,N=YAHOO.env.ua,S=YAHOO.lang;var J=function(W,T,X){var U=X||window,Y=U.document,Z=Y.createElement(W);for(var V in T){if(T[V]&&YAHOO.lang.hasOwnProperty(T,V)){Z.setAttribute(V,T[V]);}}return Z;};var I=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/css",rel:"stylesheet",href:U};if(T){S.augmentObject(W,T);}return J("link",W,V);};var P=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/javascript",src:U};if(T){S.augmentObject(W,T);}return J("script",W,V);};var A=function(T,U){return{tId:T.tId,win:T.win,data:T.data,nodes:T.nodes,msg:U,purge:function(){D(this.tId);}};};var B=function(T,W){var U=M[W],V=(S.isString(T))?U.win.document.getElementById(T):T;if(!V){Q(W,"target node not found: "+T);}return V;};var Q=function(W,V){var T=M[W];if(T.onFailure){var U=T.scope||T.win;T.onFailure.call(U,A(T,V));}};var C=function(W){var T=M[W];T.finished=true;if(T.aborted){var V="transaction "+W+" was aborted";Q(W,V);return;}if(T.onSuccess){var U=T.scope||T.win;T.onSuccess.call(U,A(T));}};var O=function(V){var T=M[V];if(T.onTimeout){var U=T.scope||T;T.onTimeout.call(U,A(T));}};var G=function(V,Z){var U=M[V];if(U.timer){U.timer.cancel();}if(U.aborted){var X="transaction "+V+" was aborted";Q(V,X);return;}if(Z){U.url.shift();if(U.varName){U.varName.shift();}}else{U.url=(S.isString(U.url))?[U.url]:U.url;if(U.varName){U.varName=(S.isString(U.varName))?[U.varName]:U.varName;}}var c=U.win,b=c.document,a=b.getElementsByTagName("head")[0],W;if(U.url.length===0){if(U.type==="script"&&N.webkit&&N.webkit<420&&!U.finalpass&&!U.varName){var Y=P(null,U.win,U.attributes);Y.innerHTML='YAHOO.util.Get._finalize("'+V+'");';U.nodes.push(Y);a.appendChild(Y);}else{C(V);}return;}var T=U.url[0];if(!T){U.url.shift();return G(V);}if(U.timeout){U.timer=S.later(U.timeout,U,O,V);}if(U.type==="script"){W=P(T,c,U.attributes);}else{W=I(T,c,U.attributes);}F(U.type,W,V,T,c,U.url.length);U.nodes.push(W);if(U.insertBefore){var e=B(U.insertBefore,V);if(e){e.parentNode.insertBefore(W,e);}}else{a.appendChild(W);}if((N.webkit||N.gecko)&&U.type==="css"){G(V,T);}};var K=function(){if(E){return;}E=true;for(var T in M){var U=M[T];if(U.autopurge&&U.finished){D(U.tId);delete M[T];}}E=false;};var D=function(Z){if(M[Z]){var T=M[Z],U=T.nodes,X=U.length,c=T.win.document,a=c.getElementsByTagName("head")[0],V,Y,W,b;if(T.insertBefore){V=B(T.insertBefore,Z);if(V){a=V.parentNode;}}for(Y=0;Y<X;Y=Y+1){W=U[Y];if(W.clearAttributes){W.clearAttributes();}else{for(b in W){delete W[b];}}a.removeChild(W);}T.nodes=[];}};var H=function(U,T,V){var X="q"+(L++);V=V||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[X]=S.merge(V,{tId:X,type:U,url:T,finished:false,aborted:false,nodes:[]});var W=M[X];W.win=W.win||window;W.scope=W.scope||W.win;W.autopurge=("autopurge" in W)?W.autopurge:(U==="script")?true:false;if(V.charset){W.attributes=W.attributes||{};W.attributes.charset=V.charset;}S.later(0,W,G,X);return{tId:X};};var F=function(c,X,W,U,Y,Z,b){var a=b||G;if(N.ie){X.onreadystatechange=function(){var d=this.readyState;if("loaded"===d||"complete"===d){X.onreadystatechange=null;a(W,U);}};}else{if(N.webkit){if(c==="script"){if(N.webkit>=420){X.addEventListener("load",function(){a(W,U);});}else{var T=M[W];if(T.varName){var V=YAHOO.util.Get.POLL_FREQ;T.maxattempts=YAHOO.util.Get.TIMEOUT/V;T.attempts=0;T._cache=T.varName[0].split(".");T.timer=S.later(V,T,function(j){var f=this._cache,e=f.length,d=this.win,g;for(g=0;g<e;g=g+1){d=d[f[g]];if(!d){this.attempts++;if(this.attempts++>this.maxattempts){var h="Over retry limit, giving up";T.timer.cancel();Q(W,h);}else{}return;}}T.timer.cancel();a(W,U);},null,true);}else{S.later(YAHOO.util.Get.POLL_FREQ,null,a,[W,U]);}}}}else{X.onload=function(){a(W,U);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(T){S.later(0,null,C,T);},abort:function(U){var V=(S.isString(U))?U:U.tId;var T=M[V];if(T){T.aborted=true;}},script:function(T,U){return H("script",T,U);},css:function(T,U){return H("css",T,U);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.8.1",build:"19"});(function(){var Y=YAHOO,util=Y.util,lang=Y.lang,env=Y.env,PROV="_provides",SUPER="_supersedes",REQ="expanded",AFTER="_after";var YUI={dupsAllowed:{"yahoo":true,"get":true},info:{"root":"2.8.1/build/","base":"http://yui.yahooapis.com/2.8.1/build/","comboBase":"http://yui.yahooapis.com/combo?","skin":{"defaultSkin":"sam","base":"assets/skins/","path":"skin.css","after":["reset","fonts","grids","base"],"rollup":3},dupsAllowed:["yahoo","get"],"moduleInfo":{"animation":{"type":"js","path":"animation/animation-min.js","requires":["dom","event"]},"autocomplete":{"type":"js","path":"autocomplete/autocomplete-min.js","requires":["dom","event","datasource"],"optional":["connection","animation"],"skinnable":true},"base":{"type":"css","path":"base/base-min.css","after":["reset","fonts","grids"]},"button":{"type":"js","path":"button/button-min.js","requires":["element"],"optional":["menu"],"skinnable":true},"calendar":{"type":"js","path":"calendar/calendar-min.js","requires":["event","dom"],supersedes:["datemeth"],"skinnable":true},"carousel":{"type":"js","path":"carousel/carousel-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"charts":{"type":"js","path":"charts/charts-min.js","requires":["element","json","datasource","swf"]},"colorpicker":{"type":"js","path":"colorpicker/colorpicker-min.js","requires":["slider","element"],"optional":["animation"],"skinnable":true},"connection":{"type":"js","path":"connection/connection-min.js","requires":["event"],"supersedes":["connectioncore"]},"connectioncore":{"type":"js","path":"connection/connection_core-min.js","requires":["event"],"pkg":"connection"},"container":{"type":"js","path":"container/container-min.js","requires":["dom","event"],"optional":["dragdrop","animation","connection"],"supersedes":["containercore"],"skinnable":true},"containercore":{"type":"js","path":"container/container_core-min.js","requires":["dom","event"],"pkg":"container"},"cookie":{"type":"js","path":"cookie/cookie-min.js","requires":["yahoo"]},"datasource":{"type":"js","path":"datasource/datasource-min.js","requires":["event"],"optional":["connection"]},"datatable":{"type":"js","path":"datatable/datatable-min.js","requires":["element","datasource"],"optional":["calendar","dragdrop","paginator"],"skinnable":true},datemath:{"type":"js","path":"datemath/datemath-min.js","requires":["yahoo"]},"dom":{"type":"js","path":"dom/dom-min.js","requires":["yahoo"]},"dragdrop":{"type":"js","path":"dragdrop/dragdrop-min.js","requires":["dom","event"]},"editor":{"type":"js","path":"editor/editor-min.js","requires":["menu","element","button"],"optional":["animation","dragdrop"],"supersedes":["simpleeditor"],"skinnable":true},"element":{"type":"js","path":"element/element-min.js","requires":["dom","event"],"optional":["event-mouseenter","event-delegate"]},"element-delegate":{"type":"js","path":"element-delegate/element-delegate-min.js","requires":["element"]},"event":{"type":"js","path":"event/event-min.js","requires":["yahoo"]},"event-simulate":{"type":"js","path":"event-simulate/event-simulate-min.js","requires":["event"]},"event-delegate":{"type":"js","path":"event-delegate/event-delegate-min.js","requires":["event"],"optional":["selector"]},"event-mouseenter":{"type":"js","path":"event-mouseenter/event-mouseenter-min.js","requires":["dom","event"]},"fonts":{"type":"css","path":"fonts/fonts-min.css"},"get":{"type":"js","path":"get/get-min.js","requires":["yahoo"]},"grids":{"type":"css","path":"grids/grids-min.css","requires":["fonts"],"optional":["reset"]},"history":{"type":"js","path":"history/history-min.js","requires":["event"]},"imagecropper":{"type":"js","path":"imagecropper/imagecropper-min.js","requires":["dragdrop","element","resize"],"skinnable":true},"imageloader":{"type":"js","path":"imageloader/imageloader-min.js","requires":["event","dom"]},"json":{"type":"js","path":"json/json-min.js","requires":["yahoo"]},"layout":{"type":"js","path":"layout/layout-min.js","requires":["element"],"optional":["animation","dragdrop","resize","selector"],"skinnable":true},"logger":{"type":"js","path":"logger/logger-min.js","requires":["event","dom"],"optional":["dragdrop"],"skinnable":true},"menu":{"type":"js","path":"menu/menu-min.js","requires":["containercore"],"skinnable":true},"paginator":{"type":"js","path":"paginator/paginator-min.js","requires":["element"],"skinnable":true},"profiler":{"type":"js","path":"profiler/profiler-min.js","requires":["yahoo"]},"profilerviewer":{"type":"js","path":"profilerviewer/profilerviewer-min.js","requires":["profiler","yuiloader","element"],"skinnable":true},"progressbar":{"type":"js","path":"progressbar/progressbar-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"reset":{"type":"css","path":"reset/reset-min.css"},"reset-fonts-grids":{"type":"css","path":"reset-fonts-grids/reset-fonts-grids.css","supersedes":["reset","fonts","grids","reset-fonts"],"rollup":4},"reset-fonts":{"type":"css","path":"reset-fonts/reset-fonts.css","supersedes":["reset","fonts"],"rollup":2},"resize":{"type":"js","path":"resize/resize-min.js","requires":["dragdrop","element"],"optional":["animation"],"skinnable":true},"selector":{"type":"js","path":"selector/selector-min.js","requires":["yahoo","dom"]},"simpleeditor":{"type":"js","path":"editor/simpleeditor-min.js","requires":["element"],"optional":["containercore","menu","button","animation","dragdrop"],"skinnable":true,"pkg":"editor"},"slider":{"type":"js","path":"slider/slider-min.js","requires":["dragdrop"],"optional":["animation"],"skinnable":true},"storage":{"type":"js","path":"storage/storage-min.js","requires":["yahoo","event","cookie"],"optional":["swfstore"]},"stylesheet":{"type":"js","path":"stylesheet/stylesheet-min.js","requires":["yahoo"]},"swf":{"type":"js","path":"swf/swf-min.js","requires":["element"],"supersedes":["swfdetect"]},"swfdetect":{"type":"js","path":"swfdetect/swfdetect-min.js","requires":["yahoo"]},"swfstore":{"type":"js","path":"swfstore/swfstore-min.js","requires":["element","cookie","swf"]},"tabview":{"type":"js","path":"tabview/tabview-min.js","requires":["element"],"optional":["connection"],"skinnable":true},"treeview":{"type":"js","path":"treeview/treeview-min.js","requires":["event","dom"],"optional":["json","animation","calendar"],"skinnable":true},"uploader":{"type":"js","path":"uploader/uploader-min.js","requires":["element"]},"utilities":{"type":"js","path":"utilities/utilities.js","supersedes":["yahoo","event","dragdrop","animation","dom","connection","element","yahoo-dom-event","get","yuiloader","yuiloader-dom-event"],"rollup":8},"yahoo":{"type":"js","path":"yahoo/yahoo-min.js"},"yahoo-dom-event":{"type":"js","path":"yahoo-dom-event/yahoo-dom-event.js","supersedes":["yahoo","event","dom"],"rollup":3},"yuiloader":{"type":"js","path":"yuiloader/yuiloader-min.js","supersedes":["yahoo","get"]},"yuiloader-dom-event":{"type":"js","path":"yuiloader-dom-event/yuiloader-dom-event.js","supersedes":["yahoo","dom","event","get","yuiloader","yahoo-dom-event"],"rollup":5},"yuitest":{"type":"js","path":"yuitest/yuitest-min.js","requires":["logger"],"optional":["event-simulate"],"skinnable":true}}},ObjectUtil:{appendArray:function(o,a){if(a){for(var i=0;
+if(typeof YAHOO=="undefined"||!YAHOO){var YAHOO={};}YAHOO.namespace=function(){var A=arguments,E=null,C,B,D;for(C=0;C<A.length;C=C+1){D=(""+A[C]).split(".");E=YAHOO;for(B=(D[0]=="YAHOO")?1:0;B<D.length;B=B+1){E[D[B]]=E[D[B]]||{};E=E[D[B]];}}return E;};YAHOO.log=function(D,A,C){var B=YAHOO.widget.Logger;if(B&&B.log){return B.log(D,A,C);}else{return false;}};YAHOO.register=function(A,E,D){var I=YAHOO.env.modules,B,H,G,F,C;if(!I[A]){I[A]={versions:[],builds:[]};}B=I[A];H=D.version;G=D.build;F=YAHOO.env.listeners;B.name=A;B.version=H;B.build=G;B.versions.push(H);B.builds.push(G);B.mainClass=E;for(C=0;C<F.length;C=C+1){F[C](B);}if(E){E.VERSION=H;E.BUILD=G;}else{YAHOO.log("mainClass is undefined for module "+A,"warn");}};YAHOO.env=YAHOO.env||{modules:[],listeners:[]};YAHOO.env.getVersion=function(A){return YAHOO.env.modules[A]||null;};YAHOO.env.ua=function(){var D=function(H){var I=0;return parseFloat(H.replace(/\./g,function(){return(I++==1)?"":".";}));},G=navigator,F={ie:0,opera:0,gecko:0,webkit:0,mobile:null,air:0,caja:G.cajaVersion,secure:false,os:null},C=navigator&&navigator.userAgent,E=window&&window.location,B=E&&E.href,A;F.secure=B&&(B.toLowerCase().indexOf("https")===0);if(C){if((/windows|win32/i).test(C)){F.os="windows";}else{if((/macintosh/i).test(C)){F.os="macintosh";}}if((/KHTML/).test(C)){F.webkit=1;}A=C.match(/AppleWebKit\/([^\s]*)/);if(A&&A[1]){F.webkit=D(A[1]);if(/ Mobile\//.test(C)){F.mobile="Apple";}else{A=C.match(/NokiaN[^\/]*/);if(A){F.mobile=A[0];}}A=C.match(/AdobeAIR\/([^\s]*)/);if(A){F.air=A[0];}}if(!F.webkit){A=C.match(/Opera[\s\/]([^\s]*)/);if(A&&A[1]){F.opera=D(A[1]);A=C.match(/Opera Mini[^;]*/);if(A){F.mobile=A[0];}}else{A=C.match(/MSIE\s([^;]*)/);if(A&&A[1]){F.ie=D(A[1]);}else{A=C.match(/Gecko\/([^\s]*)/);if(A){F.gecko=1;A=C.match(/rv:([^\s\)]*)/);if(A&&A[1]){F.gecko=D(A[1]);}}}}}}return F;}();(function(){YAHOO.namespace("util","widget","example");if("undefined"!==typeof YAHOO_config){var B=YAHOO_config.listener,A=YAHOO.env.listeners,D=true,C;if(B){for(C=0;C<A.length;C++){if(A[C]==B){D=false;break;}}if(D){A.push(B);}}}})();YAHOO.lang=YAHOO.lang||{};(function(){var B=YAHOO.lang,A=Object.prototype,H="[object Array]",C="[object Function]",G="[object Object]",E=[],F=["toString","valueOf"],D={isArray:function(I){return A.toString.apply(I)===H;},isBoolean:function(I){return typeof I==="boolean";},isFunction:function(I){return(typeof I==="function")||A.toString.apply(I)===C;},isNull:function(I){return I===null;},isNumber:function(I){return typeof I==="number"&&isFinite(I);},isObject:function(I){return(I&&(typeof I==="object"||B.isFunction(I)))||false;},isString:function(I){return typeof I==="string";},isUndefined:function(I){return typeof I==="undefined";},_IEEnumFix:(YAHOO.env.ua.ie)?function(K,J){var I,M,L;for(I=0;I<F.length;I=I+1){M=F[I];L=J[M];if(B.isFunction(L)&&L!=A[M]){K[M]=L;}}}:function(){},extend:function(L,M,K){if(!M||!L){throw new Error("extend failed, please check that "+"all dependencies are included.");}var J=function(){},I;J.prototype=M.prototype;L.prototype=new J();L.prototype.constructor=L;L.superclass=M.prototype;if(M.prototype.constructor==A.constructor){M.prototype.constructor=M;}if(K){for(I in K){if(B.hasOwnProperty(K,I)){L.prototype[I]=K[I];}}B._IEEnumFix(L.prototype,K);}},augmentObject:function(M,L){if(!L||!M){throw new Error("Absorb failed, verify dependencies.");}var I=arguments,K,N,J=I[2];if(J&&J!==true){for(K=2;K<I.length;K=K+1){M[I[K]]=L[I[K]];}}else{for(N in L){if(J||!(N in M)){M[N]=L[N];}}B._IEEnumFix(M,L);}},augmentProto:function(L,K){if(!K||!L){throw new Error("Augment failed, verify dependencies.");}var I=[L.prototype,K.prototype],J;for(J=2;J<arguments.length;J=J+1){I.push(arguments[J]);}B.augmentObject.apply(this,I);},dump:function(I,N){var K,M,P=[],Q="{...}",J="f(){...}",O=", ",L=" => ";if(!B.isObject(I)){return I+"";}else{if(I instanceof Date||("nodeType" in I&&"tagName" in I)){return I;}else{if(B.isFunction(I)){return J;}}}N=(B.isNumber(N))?N:3;if(B.isArray(I)){P.push("[");for(K=0,M=I.length;K<M;K=K+1){if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}if(P.length>1){P.pop();}P.push("]");}else{P.push("{");for(K in I){if(B.hasOwnProperty(I,K)){P.push(K+L);if(B.isObject(I[K])){P.push((N>0)?B.dump(I[K],N-1):Q);}else{P.push(I[K]);}P.push(O);}}if(P.length>1){P.pop();}P.push("}");}return P.join("");},substitute:function(Y,J,R){var N,M,L,U,V,X,T=[],K,O="dump",S=" ",I="{",W="}",Q,P;for(;;){N=Y.lastIndexOf(I);if(N<0){break;}M=Y.indexOf(W,N);if(N+1>=M){break;}K=Y.substring(N+1,M);U=K;X=null;L=U.indexOf(S);if(L>-1){X=U.substring(L+1);U=U.substring(0,L);}V=J[U];if(R){V=R(U,V,X);}if(B.isObject(V)){if(B.isArray(V)){V=B.dump(V,parseInt(X,10));}else{X=X||"";Q=X.indexOf(O);if(Q>-1){X=X.substring(4);}P=V.toString();if(P===G||Q>-1){V=B.dump(V,parseInt(X,10));}else{V=P;}}}else{if(!B.isString(V)&&!B.isNumber(V)){V="~-"+T.length+"-~";T[T.length]=K;}}Y=Y.substring(0,N)+V+Y.substring(M+1);}for(N=T.length-1;N>=0;N=N-1){Y=Y.replace(new RegExp("~-"+N+"-~"),"{"+T[N]+"}","g");}return Y;},trim:function(I){try{return I.replace(/^\s+|\s+$/g,"");}catch(J){return I;}},merge:function(){var L={},J=arguments,I=J.length,K;for(K=0;K<I;K=K+1){B.augmentObject(L,J[K],true);}return L;},later:function(P,J,Q,L,M){P=P||0;J=J||{};var K=Q,O=L,N,I;if(B.isString(Q)){K=J[Q];}if(!K){throw new TypeError("method undefined");}if(O&&!B.isArray(O)){O=[L];}N=function(){K.apply(J,O||E);};I=(M)?setInterval(N,P):setTimeout(N,P);return{interval:M,cancel:function(){if(this.interval){clearInterval(I);}else{clearTimeout(I);}}};},isValue:function(I){return(B.isObject(I)||B.isString(I)||B.isNumber(I)||B.isBoolean(I));}};B.hasOwnProperty=(A.hasOwnProperty)?function(I,J){return I&&I.hasOwnProperty(J);}:function(I,J){return !B.isUndefined(I[J])&&I.constructor.prototype[J]!==I[J];};D.augmentObject(B,D,true);YAHOO.util.Lang=B;B.augment=B.augmentProto;YAHOO.augment=B.augmentProto;YAHOO.extend=B.extend;})();YAHOO.register("yahoo",YAHOO,{version:"2.8.2r1",build:"7"});
+YAHOO.util.Get=function(){var M={},L=0,R=0,E=false,N=YAHOO.env.ua,S=YAHOO.lang;var J=function(W,T,X){var U=X||window,Y=U.document,Z=Y.createElement(W);for(var V in T){if(T[V]&&YAHOO.lang.hasOwnProperty(T,V)){Z.setAttribute(V,T[V]);}}return Z;};var I=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/css",rel:"stylesheet",href:U};if(T){S.augmentObject(W,T);}return J("link",W,V);};var P=function(U,V,T){var W={id:"yui__dyn_"+(R++),type:"text/javascript",src:U};if(T){S.augmentObject(W,T);}return J("script",W,V);};var A=function(T,U){return{tId:T.tId,win:T.win,data:T.data,nodes:T.nodes,msg:U,purge:function(){D(this.tId);}};};var B=function(T,W){var U=M[W],V=(S.isString(T))?U.win.document.getElementById(T):T;if(!V){Q(W,"target node not found: "+T);}return V;};var Q=function(W,V){var T=M[W];if(T.onFailure){var U=T.scope||T.win;T.onFailure.call(U,A(T,V));}};var C=function(W){var T=M[W];T.finished=true;if(T.aborted){var V="transaction "+W+" was aborted";Q(W,V);return;}if(T.onSuccess){var U=T.scope||T.win;T.onSuccess.call(U,A(T));}};var O=function(V){var T=M[V];if(T.onTimeout){var U=T.scope||T;T.onTimeout.call(U,A(T));}};var G=function(V,Z){var U=M[V];if(U.timer){U.timer.cancel();}if(U.aborted){var X="transaction "+V+" was aborted";Q(V,X);return;}if(Z){U.url.shift();if(U.varName){U.varName.shift();}}else{U.url=(S.isString(U.url))?[U.url]:U.url;if(U.varName){U.varName=(S.isString(U.varName))?[U.varName]:U.varName;}}var c=U.win,b=c.document,a=b.getElementsByTagName("head")[0],W;if(U.url.length===0){if(U.type==="script"&&N.webkit&&N.webkit<420&&!U.finalpass&&!U.varName){var Y=P(null,U.win,U.attributes);Y.innerHTML='YAHOO.util.Get._finalize("'+V+'");';U.nodes.push(Y);a.appendChild(Y);}else{C(V);}return;}var T=U.url[0];if(!T){U.url.shift();return G(V);}if(U.timeout){U.timer=S.later(U.timeout,U,O,V);}if(U.type==="script"){W=P(T,c,U.attributes);}else{W=I(T,c,U.attributes);}F(U.type,W,V,T,c,U.url.length);U.nodes.push(W);if(U.insertBefore){var e=B(U.insertBefore,V);if(e){e.parentNode.insertBefore(W,e);}}else{a.appendChild(W);}if((N.webkit||N.gecko)&&U.type==="css"){G(V,T);}};var K=function(){if(E){return;}E=true;for(var T in M){var U=M[T];if(U.autopurge&&U.finished){D(U.tId);delete M[T];}}E=false;};var D=function(Z){if(M[Z]){var T=M[Z],U=T.nodes,X=U.length,c=T.win.document,a=c.getElementsByTagName("head")[0],V,Y,W,b;if(T.insertBefore){V=B(T.insertBefore,Z);if(V){a=V.parentNode;}}for(Y=0;Y<X;Y=Y+1){W=U[Y];if(W.clearAttributes){W.clearAttributes();}else{for(b in W){delete W[b];}}a.removeChild(W);}T.nodes=[];}};var H=function(U,T,V){var X="q"+(L++);V=V||{};if(L%YAHOO.util.Get.PURGE_THRESH===0){K();}M[X]=S.merge(V,{tId:X,type:U,url:T,finished:false,aborted:false,nodes:[]});var W=M[X];W.win=W.win||window;W.scope=W.scope||W.win;W.autopurge=("autopurge" in W)?W.autopurge:(U==="script")?true:false;if(V.charset){W.attributes=W.attributes||{};W.attributes.charset=V.charset;}S.later(0,W,G,X);return{tId:X};};var F=function(c,X,W,U,Y,Z,b){var a=b||G;if(N.ie){X.onreadystatechange=function(){var d=this.readyState;if("loaded"===d||"complete"===d){X.onreadystatechange=null;a(W,U);}};}else{if(N.webkit){if(c==="script"){if(N.webkit>=420){X.addEventListener("load",function(){a(W,U);});}else{var T=M[W];if(T.varName){var V=YAHOO.util.Get.POLL_FREQ;T.maxattempts=YAHOO.util.Get.TIMEOUT/V;T.attempts=0;T._cache=T.varName[0].split(".");T.timer=S.later(V,T,function(j){var f=this._cache,e=f.length,d=this.win,g;for(g=0;g<e;g=g+1){d=d[f[g]];if(!d){this.attempts++;if(this.attempts++>this.maxattempts){var h="Over retry limit, giving up";T.timer.cancel();Q(W,h);}else{}return;}}T.timer.cancel();a(W,U);},null,true);}else{S.later(YAHOO.util.Get.POLL_FREQ,null,a,[W,U]);}}}}else{X.onload=function(){a(W,U);};}}};return{POLL_FREQ:10,PURGE_THRESH:20,TIMEOUT:2000,_finalize:function(T){S.later(0,null,C,T);},abort:function(U){var V=(S.isString(U))?U:U.tId;var T=M[V];if(T){T.aborted=true;}},script:function(T,U){return H("script",T,U);},css:function(T,U){return H("css",T,U);}};}();YAHOO.register("get",YAHOO.util.Get,{version:"2.8.2r1",build:"7"});(function(){var Y=YAHOO,util=Y.util,lang=Y.lang,env=Y.env,PROV="_provides",SUPER="_supersedes",REQ="expanded",AFTER="_after";var YUI={dupsAllowed:{"yahoo":true,"get":true},info:{"root":"2.8.2r1/build/","base":"http://yui.yahooapis.com/2.8.2r1/build/","comboBase":"http://yui.yahooapis.com/combo?","skin":{"defaultSkin":"sam","base":"assets/skins/","path":"skin.css","after":["reset","fonts","grids","base"],"rollup":3},dupsAllowed:["yahoo","get"],"moduleInfo":{"animation":{"type":"js","path":"animation/animation-min.js","requires":["dom","event"]},"autocomplete":{"type":"js","path":"autocomplete/autocomplete-min.js","requires":["dom","event","datasource"],"optional":["connection","animation"],"skinnable":true},"base":{"type":"css","path":"base/base-min.css","after":["reset","fonts","grids"]},"button":{"type":"js","path":"button/button-min.js","requires":["element"],"optional":["menu"],"skinnable":true},"calendar":{"type":"js","path":"calendar/calendar-min.js","requires":["event","dom"],supersedes:["datemeth"],"skinnable":true},"carousel":{"type":"js","path":"carousel/carousel-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"charts":{"type":"js","path":"charts/charts-min.js","requires":["element","json","datasource","swf"]},"colorpicker":{"type":"js","path":"colorpicker/colorpicker-min.js","requires":["slider","element"],"optional":["animation"],"skinnable":true},"connection":{"type":"js","path":"connection/connection-min.js","requires":["event"],"supersedes":["connectioncore"]},"connectioncore":{"type":"js","path":"connection/connection_core-min.js","requires":["event"],"pkg":"connection"},"container":{"type":"js","path":"container/container-min.js","requires":["dom","event"],"optional":["dragdrop","animation","connection"],"supersedes":["containercore"],"skinnable":true},"containercore":{"type":"js","path":"container/container_core-min.js","requires":["dom","event"],"pkg":"container"},"cookie":{"type":"js","path":"cookie/cookie-min.js","requires":["yahoo"]},"datasource":{"type":"js","path":"datasource/datasource-min.js","requires":["event"],"optional":["connection"]},"datatable":{"type":"js","path":"datatable/datatable-min.js","requires":["element","datasource"],"optional":["calendar","dragdrop","paginator"],"skinnable":true},datemath:{"type":"js","path":"datemath/datemath-min.js","requires":["yahoo"]},"dom":{"type":"js","path":"dom/dom-min.js","requires":["yahoo"]},"dragdrop":{"type":"js","path":"dragdrop/dragdrop-min.js","requires":["dom","event"]},"editor":{"type":"js","path":"editor/editor-min.js","requires":["menu","element","button"],"optional":["animation","dragdrop"],"supersedes":["simpleeditor"],"skinnable":true},"element":{"type":"js","path":"element/element-min.js","requires":["dom","event"],"optional":["event-mouseenter","event-delegate"]},"element-delegate":{"type":"js","path":"element-delegate/element-delegate-min.js","requires":["element"]},"event":{"type":"js","path":"event/event-min.js","requires":["yahoo"]},"event-simulate":{"type":"js","path":"event-simulate/event-simulate-min.js","requires":["event"]},"event-delegate":{"type":"js","path":"event-delegate/event-delegate-min.js","requires":["event"],"optional":["selector"]},"event-mouseenter":{"type":"js","path":"event-mouseenter/event-mouseenter-min.js","requires":["dom","event"]},"fonts":{"type":"css","path":"fonts/fonts-min.css"},"get":{"type":"js","path":"get/get-min.js","requires":["yahoo"]},"grids":{"type":"css","path":"grids/grids-min.css","requires":["fonts"],"optional":["reset"]},"history":{"type":"js","path":"history/history-min.js","requires":["event"]},"imagecropper":{"type":"js","path":"imagecropper/imagecropper-min.js","requires":["dragdrop","element","resize"],"skinnable":true},"imageloader":{"type":"js","path":"imageloader/imageloader-min.js","requires":["event","dom"]},"json":{"type":"js","path":"json/json-min.js","requires":["yahoo"]},"layout":{"type":"js","path":"layout/layout-min.js","requires":["element"],"optional":["animation","dragdrop","resize","selector"],"skinnable":true},"logger":{"type":"js","path":"logger/logger-min.js","requires":["event","dom"],"optional":["dragdrop"],"skinnable":true},"menu":{"type":"js","path":"menu/menu-min.js","requires":["containercore"],"skinnable":true},"paginator":{"type":"js","path":"paginator/paginator-min.js","requires":["element"],"skinnable":true},"profiler":{"type":"js","path":"profiler/profiler-min.js","requires":["yahoo"]},"profilerviewer":{"type":"js","path":"profilerviewer/profilerviewer-min.js","requires":["profiler","yuiloader","element"],"skinnable":true},"progressbar":{"type":"js","path":"progressbar/progressbar-min.js","requires":["element"],"optional":["animation"],"skinnable":true},"reset":{"type":"css","path":"reset/reset-min.css"},"reset-fonts-grids":{"type":"css","path":"reset-fonts-grids/reset-fonts-grids.css","supersedes":["reset","fonts","grids","reset-fonts"],"rollup":4},"reset-fonts":{"type":"css","path":"reset-fonts/reset-fonts.css","supersedes":["reset","fonts"],"rollup":2},"resize":{"type":"js","path":"resize/resize-min.js","requires":["dragdrop","element"],"optional":["animation"],"skinnable":true},"selector":{"type":"js","path":"selector/selector-min.js","requires":["yahoo","dom"]},"simpleeditor":{"type":"js","path":"editor/simpleeditor-min.js","requires":["element"],"optional":["containercore","menu","button","animation","dragdrop"],"skinnable":true,"pkg":"editor"},"slider":{"type":"js","path":"slider/slider-min.js","requires":["dragdrop"],"optional":["animation"],"skinnable":true},"storage":{"type":"js","path":"storage/storage-min.js","requires":["yahoo","event","cookie"],"optional":["swfstore"]},"stylesheet":{"type":"js","path":"stylesheet/stylesheet-min.js","requires":["yahoo"]},"swf":{"type":"js","path":"swf/swf-min.js","requires":["element"],"supersedes":["swfdetect"]},"swfdetect":{"type":"js","path":"swfdetect/swfdetect-min.js","requires":["yahoo"]},"swfstore":{"type":"js","path":"swfstore/swfstore-min.js","requires":["element","cookie","swf"]},"tabview":{"type":"js","path":"tabview/tabview-min.js","requires":["element"],"optional":["connection"],"skinnable":true},"treeview":{"type":"js","path":"treeview/treeview-min.js","requires":["event","dom"],"optional":["json","animation","calendar"],"skinnable":true},"uploader":{"type":"js","path":"uploader/uploader-min.js","requires":["element"]},"utilities":{"type":"js","path":"utilities/utilities.js","supersedes":["yahoo","event","dragdrop","animation","dom","connection","element","yahoo-dom-event","get","yuiloader","yuiloader-dom-event"],"rollup":8},"yahoo":{"type":"js","path":"yahoo/yahoo-min.js"},"yahoo-dom-event":{"type":"js","path":"yahoo-dom-event/yahoo-dom-event.js","supersedes":["yahoo","event","dom"],"rollup":3},"yuiloader":{"type":"js","path":"yuiloader/yuiloader-min.js","supersedes":["yahoo","get"]},"yuiloader-dom-event":{"type":"js","path":"yuiloader-dom-event/yuiloader-dom-event.js","supersedes":["yahoo","dom","event","get","yuiloader","yahoo-dom-event"],"rollup":5},"yuitest":{"type":"js","path":"yuitest/yuitest-min.js","requires":["logger"],"optional":["event-simulate"],"skinnable":true}}},ObjectUtil:{appendArray:function(o,a){if(a){for(var i=0;
 i<a.length;i=i+1){o[a[i]]=true;}}},keys:function(o,ordered){var a=[],i;for(i in o){if(lang.hasOwnProperty(o,i)){a.push(i);}}return a;}},ArrayUtil:{appendArray:function(a1,a2){Array.prototype.push.apply(a1,a2);},indexOf:function(a,val){for(var i=0;i<a.length;i=i+1){if(a[i]===val){return i;}}return -1;},toObject:function(a){var o={};for(var i=0;i<a.length;i=i+1){o[a[i]]=true;}return o;},uniq:function(a){return YUI.ObjectUtil.keys(YUI.ArrayUtil.toObject(a));}}};YAHOO.util.YUILoader=function(o){this._internalCallback=null;this._useYahooListener=false;this.onSuccess=null;this.onFailure=Y.log;this.onProgress=null;this.onTimeout=null;this.scope=this;this.data=null;this.insertBefore=null;this.charset=null;this.varName=null;this.base=YUI.info.base;this.comboBase=YUI.info.comboBase;this.combine=false;this.root=YUI.info.root;this.timeout=0;this.ignore=null;this.force=null;this.allowRollup=true;this.filter=null;this.required={};this.moduleInfo=lang.merge(YUI.info.moduleInfo);this.rollups=null;this.loadOptional=false;this.sorted=[];this.loaded={};this.dirty=true;this.inserted={};var self=this;env.listeners.push(function(m){if(self._useYahooListener){self.loadNext(m.name);}});this.skin=lang.merge(YUI.info.skin);this._config(o);};Y.util.YUILoader.prototype={FILTERS:{RAW:{"searchExp":"-min\\.js","replaceStr":".js"},DEBUG:{"searchExp":"-min\\.js","replaceStr":"-debug.js"}},SKIN_PREFIX:"skin-",_config:function(o){if(o){for(var i in o){if(lang.hasOwnProperty(o,i)){if(i=="require"){this.require(o[i]);}else{this[i]=o[i];}}}}var f=this.filter;if(lang.isString(f)){f=f.toUpperCase();if(f==="DEBUG"){this.require("logger");}if(!Y.widget.LogWriter){Y.widget.LogWriter=function(){return Y;};}this.filter=this.FILTERS[f];}},addModule:function(o){if(!o||!o.name||!o.type||(!o.path&&!o.fullpath)){return false;}o.ext=("ext" in o)?o.ext:true;o.requires=o.requires||[];this.moduleInfo[o.name]=o;this.dirty=true;return true;},require:function(what){var a=(typeof what==="string")?arguments:what;this.dirty=true;YUI.ObjectUtil.appendArray(this.required,a);},_addSkin:function(skin,mod){var name=this.formatSkin(skin),info=this.moduleInfo,sinf=this.skin,ext=info[mod]&&info[mod].ext;if(!info[name]){this.addModule({"name":name,"type":"css","path":sinf.base+skin+"/"+sinf.path,"after":sinf.after,"rollup":sinf.rollup,"ext":ext});}if(mod){name=this.formatSkin(skin,mod);if(!info[name]){var mdef=info[mod],pkg=mdef.pkg||mod;this.addModule({"name":name,"type":"css","after":sinf.after,"path":pkg+"/"+sinf.base+skin+"/"+mod+".css","ext":ext});}}return name;},getRequires:function(mod){if(!mod){return[];}if(!this.dirty&&mod.expanded){return mod.expanded;}mod.requires=mod.requires||[];var i,d=[],r=mod.requires,o=mod.optional,info=this.moduleInfo,m;for(i=0;i<r.length;i=i+1){d.push(r[i]);m=info[r[i]];YUI.ArrayUtil.appendArray(d,this.getRequires(m));}if(o&&this.loadOptional){for(i=0;i<o.length;i=i+1){d.push(o[i]);YUI.ArrayUtil.appendArray(d,this.getRequires(info[o[i]]));}}mod.expanded=YUI.ArrayUtil.uniq(d);return mod.expanded;},getProvides:function(name,notMe){var addMe=!(notMe),ckey=(addMe)?PROV:SUPER,m=this.moduleInfo[name],o={};if(!m){return o;}if(m[ckey]){return m[ckey];}var s=m.supersedes,done={},me=this;var add=function(mm){if(!done[mm]){done[mm]=true;lang.augmentObject(o,me.getProvides(mm));}};if(s){for(var i=0;i<s.length;i=i+1){add(s[i]);}}m[SUPER]=o;m[PROV]=lang.merge(o);m[PROV][name]=true;return m[ckey];},calculate:function(o){if(o||this.dirty){this._config(o);this._setup();this._explode();if(this.allowRollup){this._rollup();}this._reduce();this._sort();this.dirty=false;}},_setup:function(){var info=this.moduleInfo,name,i,j;for(name in info){if(lang.hasOwnProperty(info,name)){var m=info[name];if(m&&m.skinnable){var o=this.skin.overrides,smod;if(o&&o[name]){for(i=0;i<o[name].length;i=i+1){smod=this._addSkin(o[name][i],name);}}else{smod=this._addSkin(this.skin.defaultSkin,name);}m.requires.push(smod);}}}var l=lang.merge(this.inserted);if(!this._sandbox){l=lang.merge(l,env.modules);}if(this.ignore){YUI.ObjectUtil.appendArray(l,this.ignore);}if(this.force){for(i=0;i<this.force.length;i=i+1){if(this.force[i] in l){delete l[this.force[i]];}}}for(j in l){if(lang.hasOwnProperty(l,j)){lang.augmentObject(l,this.getProvides(j));}}this.loaded=l;},_explode:function(){var r=this.required,i,mod;for(i in r){if(lang.hasOwnProperty(r,i)){mod=this.moduleInfo[i];if(mod){var req=this.getRequires(mod);if(req){YUI.ObjectUtil.appendArray(r,req);}}}}},_skin:function(){},formatSkin:function(skin,mod){var s=this.SKIN_PREFIX+skin;if(mod){s=s+"-"+mod;}return s;},parseSkin:function(mod){if(mod.indexOf(this.SKIN_PREFIX)===0){var a=mod.split("-");return{skin:a[1],module:a[2]};}return null;},_rollup:function(){var i,j,m,s,rollups={},r=this.required,roll,info=this.moduleInfo;if(this.dirty||!this.rollups){for(i in info){if(lang.hasOwnProperty(info,i)){m=info[i];if(m&&m.rollup){rollups[i]=m;}}}this.rollups=rollups;}for(;;){var rolled=false;for(i in rollups){if(!r[i]&&!this.loaded[i]){m=info[i];s=m.supersedes;roll=false;if(!m.rollup){continue;}var skin=(m.ext)?false:this.parseSkin(i),c=0;if(skin){for(j in r){if(lang.hasOwnProperty(r,j)){if(i!==j&&this.parseSkin(j)){c++;roll=(c>=m.rollup);if(roll){break;}}}}}else{for(j=0;j<s.length;j=j+1){if(this.loaded[s[j]]&&(!YUI.dupsAllowed[s[j]])){roll=false;break;}else{if(r[s[j]]){c++;roll=(c>=m.rollup);if(roll){break;}}}}}if(roll){r[i]=true;rolled=true;this.getRequires(m);}}}if(!rolled){break;}}},_reduce:function(){var i,j,s,m,r=this.required;for(i in r){if(i in this.loaded){delete r[i];}else{var skinDef=this.parseSkin(i);if(skinDef){if(!skinDef.module){var skin_pre=this.SKIN_PREFIX+skinDef.skin;for(j in r){if(lang.hasOwnProperty(r,j)){m=this.moduleInfo[j];var ext=m&&m.ext;if(!ext&&j!==i&&j.indexOf(skin_pre)>-1){delete r[j];}}}}}else{m=this.moduleInfo[i];s=m&&m.supersedes;if(s){for(j=0;j<s.length;j=j+1){if(s[j] in r){delete r[s[j]];}}}}}}},_onFailure:function(msg){YAHOO.log("Failure","info","loader");var f=this.onFailure;if(f){f.call(this.scope,{msg:"failure: "+msg,data:this.data,success:false});
-}},_onTimeout:function(){YAHOO.log("Timeout","info","loader");var f=this.onTimeout;if(f){f.call(this.scope,{msg:"timeout",data:this.data,success:false});}},_sort:function(){var s=[],info=this.moduleInfo,loaded=this.loaded,checkOptional=!this.loadOptional,me=this;var requires=function(aa,bb){var mm=info[aa];if(loaded[bb]||!mm){return false;}var ii,rr=mm.expanded,after=mm.after,other=info[bb],optional=mm.optional;if(rr&&YUI.ArrayUtil.indexOf(rr,bb)>-1){return true;}if(after&&YUI.ArrayUtil.indexOf(after,bb)>-1){return true;}if(checkOptional&&optional&&YUI.ArrayUtil.indexOf(optional,bb)>-1){return true;}var ss=info[bb]&&info[bb].supersedes;if(ss){for(ii=0;ii<ss.length;ii=ii+1){if(requires(aa,ss[ii])){return true;}}}if(mm.ext&&mm.type=="css"&&!other.ext&&other.type=="css"){return true;}return false;};for(var i in this.required){if(lang.hasOwnProperty(this.required,i)){s.push(i);}}var p=0;for(;;){var l=s.length,a,b,j,k,moved=false;for(j=p;j<l;j=j+1){a=s[j];for(k=j+1;k<l;k=k+1){if(requires(a,s[k])){b=s.splice(k,1);s.splice(j,0,b[0]);moved=true;break;}}if(moved){break;}else{p=p+1;}}if(!moved){break;}}this.sorted=s;},toString:function(){var o={type:"YUILoader",base:this.base,filter:this.filter,required:this.required,loaded:this.loaded,inserted:this.inserted};lang.dump(o,1);},_combine:function(){this._combining=[];var self=this,s=this.sorted,len=s.length,js=this.comboBase,css=this.comboBase,target,startLen=js.length,i,m,type=this.loadType;YAHOO.log("type "+type);for(i=0;i<len;i=i+1){m=this.moduleInfo[s[i]];if(m&&!m.ext&&(!type||type===m.type)){target=this.root+m.path;target+="&";if(m.type=="js"){js+=target;}else{css+=target;}this._combining.push(s[i]);}}if(this._combining.length){YAHOO.log("Attempting to combine: "+this._combining,"info","loader");var callback=function(o){var c=this._combining,len=c.length,i,m;for(i=0;i<len;i=i+1){this.inserted[c[i]]=true;}this.loadNext(o.data);},loadScript=function(){if(js.length>startLen){YAHOO.util.Get.script(self._filter(js),{data:self._loading,onSuccess:callback,onFailure:self._onFailure,onTimeout:self._onTimeout,insertBefore:self.insertBefore,charset:self.charset,timeout:self.timeout,scope:self});}};if(css.length>startLen){YAHOO.util.Get.css(this._filter(css),{data:this._loading,onSuccess:loadScript,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,scope:self});}else{loadScript();}return;}else{this.loadNext(this._loading);}},insert:function(o,type){this.calculate(o);this._loading=true;this.loadType=type;if(this.combine){return this._combine();}if(!type){var self=this;this._internalCallback=function(){self._internalCallback=null;self.insert(null,"js");};this.insert(null,"css");return;}this.loadNext();},sandbox:function(o,type){this._config(o);if(!this.onSuccess){throw new Error("You must supply an onSuccess handler for your sandbox");}this._sandbox=true;var self=this;if(!type||type!=="js"){this._internalCallback=function(){self._internalCallback=null;self.sandbox(null,"js");};this.insert(null,"css");return;}if(!util.Connect){var ld=new YAHOO.util.YUILoader();ld.insert({base:this.base,filter:this.filter,require:"connection",insertBefore:this.insertBefore,charset:this.charset,onSuccess:function(){this.sandbox(null,"js");},scope:this},"js");return;}this._scriptText=[];this._loadCount=0;this._stopCount=this.sorted.length;this._xhr=[];this.calculate();var s=this.sorted,l=s.length,i,m,url;for(i=0;i<l;i=i+1){m=this.moduleInfo[s[i]];if(!m){this._onFailure("undefined module "+m);for(var j=0;j<this._xhr.length;j=j+1){this._xhr[j].abort();}return;}if(m.type!=="js"){this._loadCount++;continue;}url=m.fullpath;url=(url)?this._filter(url):this._url(m.path);var xhrData={success:function(o){var idx=o.argument[0],name=o.argument[2];this._scriptText[idx]=o.responseText;if(this.onProgress){this.onProgress.call(this.scope,{name:name,scriptText:o.responseText,xhrResponse:o,data:this.data});}this._loadCount++;if(this._loadCount>=this._stopCount){var v=this.varName||"YAHOO";var t="(function() {\n";var b="\nreturn "+v+";\n})();";var ref=eval(t+this._scriptText.join("\n")+b);this._pushEvents(ref);if(ref){this.onSuccess.call(this.scope,{reference:ref,data:this.data});}else{this._onFailure.call(this.varName+" reference failure");}}},failure:function(o){this.onFailure.call(this.scope,{msg:"XHR failure",xhrResponse:o,data:this.data});},scope:this,argument:[i,url,s[i]]};this._xhr.push(util.Connect.asyncRequest("GET",url,xhrData));}},loadNext:function(mname){if(!this._loading){return;}if(mname){if(mname!==this._loading){return;}this.inserted[mname]=true;if(this.onProgress){this.onProgress.call(this.scope,{name:mname,data:this.data});}}var s=this.sorted,len=s.length,i,m;for(i=0;i<len;i=i+1){if(s[i] in this.inserted){continue;}if(s[i]===this._loading){return;}m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});return;}if(!this.loadType||this.loadType===m.type){this._loading=s[i];var fn=(m.type==="css")?util.Get.css:util.Get.script,url=m.fullpath,self=this,c=function(o){self.loadNext(o.data);};url=(url)?this._filter(url):this._url(m.path);if(env.ua.webkit&&env.ua.webkit<420&&m.type==="js"&&!m.varName){c=null;this._useYahooListener=true;}fn(url,{data:s[i],onSuccess:c,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,varName:m.varName,scope:self});return;}}this._loading=null;if(this._internalCallback){var f=this._internalCallback;this._internalCallback=null;f.call(this);}else{if(this.onSuccess){this._pushEvents();this.onSuccess.call(this.scope,{data:this.data});}}},_pushEvents:function(ref){var r=ref||YAHOO;if(r.util&&r.util.Event){r.util.Event._load();}},_filter:function(str){var f=this.filter;return(f)?str.replace(new RegExp(f.searchExp,"g"),f.replaceStr):str;},_url:function(path){return this._filter((this.base||"")+path);}};})();YAHOO.register("yuiloader",YAHOO.util.YUILoader,{version:"2.8.1",build:"19"});
+}},_onTimeout:function(){YAHOO.log("Timeout","info","loader");var f=this.onTimeout;if(f){f.call(this.scope,{msg:"timeout",data:this.data,success:false});}},_sort:function(){var s=[],info=this.moduleInfo,loaded=this.loaded,checkOptional=!this.loadOptional,me=this;var requires=function(aa,bb){var mm=info[aa];if(loaded[bb]||!mm){return false;}var ii,rr=mm.expanded,after=mm.after,other=info[bb],optional=mm.optional;if(rr&&YUI.ArrayUtil.indexOf(rr,bb)>-1){return true;}if(after&&YUI.ArrayUtil.indexOf(after,bb)>-1){return true;}if(checkOptional&&optional&&YUI.ArrayUtil.indexOf(optional,bb)>-1){return true;}var ss=info[bb]&&info[bb].supersedes;if(ss){for(ii=0;ii<ss.length;ii=ii+1){if(requires(aa,ss[ii])){return true;}}}if(mm.ext&&mm.type=="css"&&!other.ext&&other.type=="css"){return true;}return false;};for(var i in this.required){if(lang.hasOwnProperty(this.required,i)){s.push(i);}}var p=0;for(;;){var l=s.length,a,b,j,k,moved=false;for(j=p;j<l;j=j+1){a=s[j];for(k=j+1;k<l;k=k+1){if(requires(a,s[k])){b=s.splice(k,1);s.splice(j,0,b[0]);moved=true;break;}}if(moved){break;}else{p=p+1;}}if(!moved){break;}}this.sorted=s;},toString:function(){var o={type:"YUILoader",base:this.base,filter:this.filter,required:this.required,loaded:this.loaded,inserted:this.inserted};lang.dump(o,1);},_combine:function(){this._combining=[];var self=this,s=this.sorted,len=s.length,js=this.comboBase,css=this.comboBase,target,startLen=js.length,i,m,type=this.loadType;YAHOO.log("type "+type);for(i=0;i<len;i=i+1){m=this.moduleInfo[s[i]];if(m&&!m.ext&&(!type||type===m.type)){target=this.root+m.path;target+="&";if(m.type=="js"){js+=target;}else{css+=target;}this._combining.push(s[i]);}}if(this._combining.length){YAHOO.log("Attempting to combine: "+this._combining,"info","loader");var callback=function(o){var c=this._combining,len=c.length,i,m;for(i=0;i<len;i=i+1){this.inserted[c[i]]=true;}this.loadNext(o.data);},loadScript=function(){if(js.length>startLen){YAHOO.util.Get.script(self._filter(js),{data:self._loading,onSuccess:callback,onFailure:self._onFailure,onTimeout:self._onTimeout,insertBefore:self.insertBefore,charset:self.charset,timeout:self.timeout,scope:self});}};if(css.length>startLen){YAHOO.util.Get.css(this._filter(css),{data:this._loading,onSuccess:loadScript,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,scope:self});}else{loadScript();}return;}else{this.loadNext(this._loading);}},insert:function(o,type){this.calculate(o);this._loading=true;this.loadType=type;if(this.combine){return this._combine();}if(!type){var self=this;this._internalCallback=function(){self._internalCallback=null;self.insert(null,"js");};this.insert(null,"css");return;}this.loadNext();},sandbox:function(o,type){this._config(o);if(!this.onSuccess){throw new Error("You must supply an onSuccess handler for your sandbox");}this._sandbox=true;var self=this;if(!type||type!=="js"){this._internalCallback=function(){self._internalCallback=null;self.sandbox(null,"js");};this.insert(null,"css");return;}if(!util.Connect){var ld=new YAHOO.util.YUILoader();ld.insert({base:this.base,filter:this.filter,require:"connection",insertBefore:this.insertBefore,charset:this.charset,onSuccess:function(){this.sandbox(null,"js");},scope:this},"js");return;}this._scriptText=[];this._loadCount=0;this._stopCount=this.sorted.length;this._xhr=[];this.calculate();var s=this.sorted,l=s.length,i,m,url;for(i=0;i<l;i=i+1){m=this.moduleInfo[s[i]];if(!m){this._onFailure("undefined module "+m);for(var j=0;j<this._xhr.length;j=j+1){this._xhr[j].abort();}return;}if(m.type!=="js"){this._loadCount++;continue;}url=m.fullpath;url=(url)?this._filter(url):this._url(m.path);var xhrData={success:function(o){var idx=o.argument[0],name=o.argument[2];this._scriptText[idx]=o.responseText;if(this.onProgress){this.onProgress.call(this.scope,{name:name,scriptText:o.responseText,xhrResponse:o,data:this.data});}this._loadCount++;if(this._loadCount>=this._stopCount){var v=this.varName||"YAHOO";var t="(function() {\n";var b="\nreturn "+v+";\n})();";var ref=eval(t+this._scriptText.join("\n")+b);this._pushEvents(ref);if(ref){this.onSuccess.call(this.scope,{reference:ref,data:this.data});}else{this._onFailure.call(this.varName+" reference failure");}}},failure:function(o){this.onFailure.call(this.scope,{msg:"XHR failure",xhrResponse:o,data:this.data});},scope:this,argument:[i,url,s[i]]};this._xhr.push(util.Connect.asyncRequest("GET",url,xhrData));}},loadNext:function(mname){if(!this._loading){return;}if(mname){if(mname!==this._loading){return;}this.inserted[mname]=true;if(this.onProgress){this.onProgress.call(this.scope,{name:mname,data:this.data});}}var s=this.sorted,len=s.length,i,m;for(i=0;i<len;i=i+1){if(s[i] in this.inserted){continue;}if(s[i]===this._loading){return;}m=this.moduleInfo[s[i]];if(!m){this.onFailure.call(this.scope,{msg:"undefined module "+m,data:this.data});return;}if(!this.loadType||this.loadType===m.type){this._loading=s[i];var fn=(m.type==="css")?util.Get.css:util.Get.script,url=m.fullpath,self=this,c=function(o){self.loadNext(o.data);};url=(url)?this._filter(url):this._url(m.path);if(env.ua.webkit&&env.ua.webkit<420&&m.type==="js"&&!m.varName){c=null;this._useYahooListener=true;}fn(url,{data:s[i],onSuccess:c,onFailure:this._onFailure,onTimeout:this._onTimeout,insertBefore:this.insertBefore,charset:this.charset,timeout:this.timeout,varName:m.varName,scope:self});return;}}this._loading=null;if(this._internalCallback){var f=this._internalCallback;this._internalCallback=null;f.call(this);}else{if(this.onSuccess){this._pushEvents();this.onSuccess.call(this.scope,{data:this.data});}}},_pushEvents:function(ref){var r=ref||YAHOO;if(r.util&&r.util.Event){r.util.Event._load();}},_filter:function(str){var f=this.filter;return(f)?str.replace(new RegExp(f.searchExp,"g"),f.replaceStr):str;},_url:function(path){return this._filter((this.base||"")+path);}};})();YAHOO.register("yuiloader",YAHOO.util.YUILoader,{version:"2.8.2r1",build:"7"});
diff --git a/build/yuiloader/yuiloader.js b/build/yuiloader/yuiloader.js
index 545b43c..3f29301 100644
--- a/build/yuiloader/yuiloader.js
+++ b/build/yuiloader/yuiloader.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 /**
  * The YAHOO object is the single global object used by YUI Library.  It
@@ -1072,7 +1072,7 @@ YAHOO.augment = L.augmentProto;
 YAHOO.extend = L.extend;
 
 })();
-YAHOO.register("yahoo", YAHOO, {version: "2.8.1", build: "19"});
+YAHOO.register("yahoo", YAHOO, {version: "2.8.2r1", build: "7"});
 /**
  * Provides a mechanism to fetch remote resources and
  * insert them into a document
@@ -1821,7 +1821,7 @@ YAHOO.util.Get = function() {
     };
 }();
 
-YAHOO.register("get", YAHOO.util.Get, {version: "2.8.1", build: "19"});
+YAHOO.register("get", YAHOO.util.Get, {version: "2.8.2r1", build: "7"});
 /**
  * Provides dynamic loading for the YUI library.  It includes the dependency
  * info for the library, and will automatically pull in dependencies for
@@ -1861,8 +1861,8 @@ YAHOO.register("get", YAHOO.util.Get, {version: "2.8.1", build: "19"});
     // 'root': '2.5.2/build/',
     // 'base': 'http://yui.yahooapis.com/2.5.2/build/',
 
-    'root': '2.8.1/build/',
-    'base': 'http://yui.yahooapis.com/2.8.1/build/',
+    'root': '2.8.2r1/build/',
+    'base': 'http://yui.yahooapis.com/2.8.2r1/build/',
 
     'comboBase': 'http://yui.yahooapis.com/combo?',
 
@@ -3876,4 +3876,4 @@ throw new Error("You must supply an onSuccess handler for your sandbox");
 
 })();
 
-YAHOO.register("yuiloader", YAHOO.util.YUILoader, {version: "2.8.1", build: "19"});
+YAHOO.register("yuiloader", YAHOO.util.YUILoader, {version: "2.8.2r1", build: "7"});
diff --git a/build/yuitest/assets/skins/sam/yuitest-skin.css b/build/yuitest/assets/skins/sam/yuitest-skin.css
index 049d5fc..7e727bb 100644
--- a/build/yuitest/assets/skins/sam/yuitest-skin.css
+++ b/build/yuitest/assets/skins/sam/yuitest-skin.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
diff --git a/build/yuitest/assets/skins/sam/yuitest.css b/build/yuitest/assets/skins/sam/yuitest.css
index 049d5fc..7e727bb 100644
--- a/build/yuitest/assets/skins/sam/yuitest.css
+++ b/build/yuitest/assets/skins/sam/yuitest.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
diff --git a/build/yuitest/assets/testlogger.css b/build/yuitest/assets/testlogger.css
index 59ac542..6743cc9 100644
--- a/build/yuitest/assets/testlogger.css
+++ b/build/yuitest/assets/testlogger.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 .yui-log{padding-top:3em;}.yui-log-container{width:40em;}.yui-log .yui-log-bd{height:60em;}.yui-log .yui-log-btns{display:none;}.yui-log .yui-log-ft .yui-log-sourcefilters{visibility:hidden;}.yui-log .yui-log-hd{display:none;}.yui-log .yui-log-ft{position:absolute;top:0;}.pass{background-color:green;font-weight:bold;color:white;}.fail{background-color:red;font-weight:bold;color:white;}.ignore{background-color:#666;font-weight:bold;color:white;}
\ No newline at end of file
diff --git a/build/yuitest/assets/yuitest-core.css b/build/yuitest/assets/yuitest-core.css
index 049d5fc..7e727bb 100644
--- a/build/yuitest/assets/yuitest-core.css
+++ b/build/yuitest/assets/yuitest-core.css
@@ -2,6 +2,6 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 
diff --git a/build/yuitest/yuitest-debug.js b/build/yuitest/yuitest-debug.js
index 178ecdb..e7db430 100644
--- a/build/yuitest/yuitest-debug.js
+++ b/build/yuitest/yuitest-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("tool");
 
@@ -2738,4 +2738,4 @@ YAHOO.tool.TestReporter.prototype = {
     }
 
 };
-YAHOO.register("yuitest", YAHOO.tool.TestRunner, {version: "2.8.1", build: "19"});
+YAHOO.register("yuitest", YAHOO.tool.TestRunner, {version: "2.8.2r1", build: "7"});
diff --git a/build/yuitest/yuitest-min.js b/build/yuitest/yuitest-min.js
index 9f90bf6..9c65bd9 100644
--- a/build/yuitest/yuitest-min.js
+++ b/build/yuitest/yuitest-min.js
@@ -2,9 +2,9 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("tool");(function(){var A=0;YAHOO.tool.TestCase=function(B){this._should={};for(var C in B){this[C]=B[C];}if(!YAHOO.lang.isString(this.name)){this.name="testCase"+(A++);}};YAHOO.tool.TestCase.prototype={resume:function(B){YAHOO.tool.TestRunner.resume(B);},wait:function(D,C){var B=arguments;if(YAHOO.lang.isFunction(B[0])){throw new YAHOO.tool.TestCase.Wait(B[0],B[1]);}else{throw new YAHOO.tool.TestCase.Wait(function(){YAHOO.util.Assert.fail("Timeout: wait() called but resume() never called.");},(YAHOO.lang.isNumber(B[0])?B[0]:10000));}},setUp:function(){},tearDown:function(){}};YAHOO.tool.TestCase.Wait=function(C,B){this.segment=(YAHOO.lang.isFunction(C)?C:null);this.delay=(YAHOO.lang.isNumber(B)?B:0);};})();YAHOO.namespace("tool");YAHOO.tool.TestSuite=function(A){this.name="";this.items=[];if(YAHOO.lang.isString(A)){this.name=A;}else{if(YAHOO.lang.isObject(A)){YAHOO.lang.augmentObject(this,A,true);}}if(this.name===""){this.name=YAHOO.util.Dom.generateId(null,"testSuite");}};YAHOO.tool.TestSuite.prototype={add:function(A){if(A instanceof YAHOO.tool.TestSuite||A instanceof YAHOO.tool.TestCase){this.items.push(A);}},setUp:function(){},tearDown:function(){}};YAHOO.namespace("tool");YAHOO.tool.TestRunner=(function(){function B(C){this.testObject=C;this.firstChild=null;this.lastChild=null;this.parent=null;this.next=null;this.results={passed:0,failed:0,total:0,ignored:0};if(C instanceof YAHOO.tool.TestSuite){this.results.type="testsuite";this.results.name=C.name;}else{if(C instanceof YAHOO.tool.TestCase){this.results.type="testcase";this.results.name=C.name;}}}B.prototype={appendChild:function(C){var D=new B(C);if(this.firstChild===null){this.firstChild=this.lastChild=D;}else{this.lastChild.next=D;this.lastChild=D;}D.parent=this;return D;}};function A(){A.superclass.constructor.apply(this,arguments);this.masterSuite=new YAHOO.tool.TestSuite("YUI Test Results");this._cur=null;this._root=null;var D=[this.TEST_CASE_BEGIN_EVENT,this.TEST_CASE_COMPLETE_EVENT,this.TEST_SUITE_BEGIN_EVENT,this.TEST_SUITE_COMPLETE_EVENT,this.TEST_PASS_EVENT,this.TEST_FAIL_EVENT,this.TEST_IGNORE_EVENT,this.COMPLETE_EVENT,this.BEGIN_EVENT];for(var C=0;C<D.length;C++){this.createEvent(D[C],{scope:this});}}YAHOO.lang.extend(A,YAHOO.util.EventProvider,{TEST_CASE_BEGIN_EVENT:"testcasebegin",TEST_CASE_COMPLETE_EVENT:"testcasecomplete",TEST_SUITE_BEGIN_EVENT:"testsuitebegin",TEST_SUITE_COMPLETE_EVENT:"testsuitecomplete",TEST_PASS_EVENT:"pass",TEST_FAIL_EVENT:"fail",TEST_IGNORE_EVENT:"ignore",COMPLETE_EVENT:"complete",BEGIN_EVENT:"begin",_addTestCaseToTestTree:function(C,D){var E=C.appendChild(D);for(var F in D){if(F.indexOf("test")===0&&YAHOO.lang.isFunction(D[F])){E.appendChild(F);}}},_addTestSuiteToTestTree:function(C,F){var E=C.appendChild(F);for(var D=0;D<F.items.length;D++){if(F.items[D] instanceof YAHOO.tool.TestSuite){this._addTestSuiteToTestTree(E,F.items[D]);}else{if(F.items[D] instanceof YAHOO.tool.TestCase){this._addTestCaseToTestTree(E,F.items[D]);}}}},_buildTestTree:function(){this._root=new B(this.masterSuite);this._cur=this._root;for(var C=0;C<this.masterSuite.items.length;C++){if(this.masterSuite.items[C] instanceof YAHOO.tool.TestSuite){this._addTestSuiteToTestTree(this._root,this.masterSuite.items[C]);}else{if(this.masterSuite.items[C] instanceof YAHOO.tool.TestCase){this._addTestCaseToTestTree(this._root,this.masterSuite.items[C]);}}}},_handleTestObjectComplete:function(C){if(YAHOO.lang.isObject(C.testObject)){C.parent.results.passed+=C.results.passed;C.parent.results.failed+=C.results.failed;C.parent.results.total+=C.results.total;C.parent.results.ignored+=C.results.ignored;C.parent.results[C.testObject.name]=C.results;if(C.testObject instanceof YAHOO.tool.TestSuite){C.testObject.tearDown();this.fireEvent(this.TEST_SUITE_COMPLETE_EVENT,{testSuite:C.testObject,results:C.results});}else{if(C.testObject instanceof YAHOO.tool.TestCase){this.fireEvent(this.TEST_CASE_COMPLETE_EVENT,{testCase:C.testObject,results:C.results});}}}},_next:function(){if(this._cur.firstChild){this._cur=this._cur.firstChild;}else{if(this._cur.next){this._cur=this._cur.next;}else{while(this._cur&&!this._cur.next&&this._cur!==this._root){this._handleTestObjectComplete(this._cur);this._cur=this._cur.parent;}if(this._cur==this._root){this._cur.results.type="report";this._cur.results.timestamp=(new Date()).toLocaleString();this._cur.results.duration=(new Date())-this._cur.results.duration;this.fireEvent(this.COMPLETE_EVENT,{results:this._cur.results});this._cur=null;}else{this._handleTestObjectComplete(this._cur);this._cur=this._cur.next;}}}return this._cur;},_run:function(){var E=false;var D=this._next();if(D!==null){var C=D.testObject;if(YAHOO.lang.isObject(C)){if(C instanceof YAHOO.tool.TestSuite){this.fireEvent(this.TEST_SUITE_BEGIN_EVENT,{testSuite:C});C.setUp();}else{if(C instanceof YAHOO.tool.TestCase){this.fireEvent(this.TEST_CASE_BEGIN_EVENT,{testCase:C});}}if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}}else{this._runTest(D);}}},_resumeTest:function(G){var C=this._cur;var H=C.testObject;var E=C.parent.testObject;if(E.__yui_wait){clearTimeout(E.__yui_wait);delete E.__yui_wait;}var K=(E._should.fail||{})[H];var D=(E._should.error||{})[H];var F=false;var I=null;try{G.apply(E);if(K){I=new YAHOO.util.ShouldFail();F=true;}else{if(D){I=new YAHOO.util.ShouldError();F=true;}}}catch(J){if(J instanceof YAHOO.util.AssertionError){if(!K){I=J;F=true;}}else{if(J instanceof YAHOO.tool.TestCase.Wait){if(YAHOO.lang.isFunction(J.segment)){if(YAHOO.lang.isNumber(J.delay)){if(typeof setTimeout!="undefined"){E.__yui_wait=setTimeout(function(){YAHOO.tool.TestRunner._resumeTest(J.segment);},J.delay);}else{throw new Error("Asynchronous tests not supported in this environment.");}}}return;}else{if(!D){I=new YAHOO.util.UnexpectedError(J);F=true;}else{if(YAHOO.lang.isString(D)){if(J.message!=D){I=new YAHOO.util.UnexpectedError(J);F=true;}}else{if(YAHOO.lang.isFunction(D)){if(!(J instanceof D)){I=new YAHOO.util.UnexpectedError(J);
 F=true;}}else{if(YAHOO.lang.isObject(D)){if(!(J instanceof D.constructor)||J.message!=D.message){I=new YAHOO.util.UnexpectedError(J);F=true;}}}}}}}}if(F){this.fireEvent(this.TEST_FAIL_EVENT,{testCase:E,testName:H,error:I});}else{this.fireEvent(this.TEST_PASS_EVENT,{testCase:E,testName:H});}E.tearDown();C.parent.results[H]={result:F?"fail":"pass",message:I?I.getMessage():"Test passed",type:"test",name:H};if(F){C.parent.results.failed++;}else{C.parent.results.passed++;}C.parent.results.total++;if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}},_runTest:function(F){var C=F.testObject;var D=F.parent.testObject;var G=D[C];var E=(D._should.ignore||{})[C];if(E){F.parent.results[C]={result:"ignore",message:"Test ignored",type:"test",name:C};F.parent.results.ignored++;F.parent.results.total++;this.fireEvent(this.TEST_IGNORE_EVENT,{testCase:D,testName:C});if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}}else{D.setUp();this._resumeTest(G);}},fireEvent:function(C,D){D=D||{};D.type=C;A.superclass.fireEvent.call(this,C,D);},add:function(C){this.masterSuite.add(C);},clear:function(){this.masterSuite.items=[];},resume:function(C){this._resumeTest(C||function(){});},run:function(C){var D=YAHOO.tool.TestRunner;D._buildTestTree();D._root.results.duration=(new Date()).getTime();D.fireEvent(D.BEGIN_EVENT);D._run();}});return new A();})();YAHOO.namespace("util");YAHOO.util.Assert={_formatMessage:function(B,A){var C=B;if(YAHOO.lang.isString(B)&&B.length>0){return YAHOO.lang.substitute(B,{message:A});}else{return A;}},fail:function(A){throw new YAHOO.util.AssertionError(this._formatMessage(A,"Test force-failed."));},areEqual:function(B,C,A){if(B!=C){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Values should be equal."),B,C);}},areNotEqual:function(A,C,B){if(A==C){throw new YAHOO.util.UnexpectedValue(this._formatMessage(B,"Values should not be equal."),A);}},areNotSame:function(A,C,B){if(A===C){throw new YAHOO.util.UnexpectedValue(this._formatMessage(B,"Values should not be the same."),A);}},areSame:function(B,C,A){if(B!==C){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Values should be the same."),B,C);}},isFalse:function(B,A){if(false!==B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be false."),false,B);}},isTrue:function(B,A){if(true!==B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be true."),true,B);}},isNaN:function(B,A){if(!isNaN(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be NaN."),NaN,B);}},isNotNaN:function(B,A){if(isNaN(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Values should not be NaN."),NaN);}},isNotNull:function(B,A){if(YAHOO.lang.isNull(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Values should not be null."),null);}},isNotUndefined:function(B,A){if(YAHOO.lang.isUndefined(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should not be undefined."),undefined);}},isNull:function(B,A){if(!YAHOO.lang.isNull(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be null."),null,B);}},isUndefined:function(B,A){if(!YAHOO.lang.isUndefined(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be undefined."),undefined,B);}},isArray:function(B,A){if(!YAHOO.lang.isArray(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be an array."),B);}},isBoolean:function(B,A){if(!YAHOO.lang.isBoolean(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a Boolean."),B);}},isFunction:function(B,A){if(!YAHOO.lang.isFunction(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a function."),B);}},isInstanceOf:function(B,C,A){if(!(C instanceof B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value isn't an instance of expected type."),B,C);}},isNumber:function(B,A){if(!YAHOO.lang.isNumber(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a number."),B);}},isObject:function(B,A){if(!YAHOO.lang.isObject(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be an object."),B);}},isString:function(B,A){if(!YAHOO.lang.isString(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a string."),B);}},isTypeOf:function(B,C,A){if(typeof C!=B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be of type "+B+"."),B,typeof C);}}};YAHOO.util.AssertionError=function(A){this.message=A;this.name="AssertionError";};YAHOO.lang.extend(YAHOO.util.AssertionError,Object,{getMessage:function(){return this.message;},toString:function(){return this.name+": "+this.getMessage();}});YAHOO.util.ComparisonFailure=function(B,A,C){YAHOO.util.AssertionError.call(this,B);this.expected=A;this.actual=C;this.name="ComparisonFailure";};YAHOO.lang.extend(YAHOO.util.ComparisonFailure,YAHOO.util.AssertionError,{getMessage:function(){return this.message+"\nExpected: "+this.expected+" ("+(typeof this.expected)+")"+"\nActual:"+this.actual+" ("+(typeof this.actual)+")";}});YAHOO.util.UnexpectedValue=function(B,A){YAHOO.util.AssertionError.call(this,B);this.unexpected=A;this.name="UnexpectedValue";};YAHOO.lang.extend(YAHOO.util.UnexpectedValue,YAHOO.util.AssertionError,{getMessage:function(){return this.message+"\nUnexpected: "+this.unexpected+" ("+(typeof this.unexpected)+") ";}});YAHOO.util.ShouldFail=function(A){YAHOO.util.AssertionError.call(this,A||"This test should fail but didn't.");this.name="ShouldFail";};YAHOO.lang.extend(YAHOO.util.ShouldFail,YAHOO.util.AssertionError);YAHOO.util.ShouldError=function(A){YAHOO.util.AssertionError.call(this,A||"This test should have thrown an error but didn't.");this.name="ShouldError";};YAHOO.lang.extend(YAHOO.util.ShouldError,YAHOO.util.AssertionError);YAHOO.util.UnexpectedError=function(A){YAHOO.util.AssertionError.call(this,"Unexpected error: "+A.message);
 this.cause=A;this.name="UnexpectedError";this.stack=A.stack;};YAHOO.lang.extend(YAHOO.util.UnexpectedError,YAHOO.util.AssertionError);YAHOO.util.ArrayAssert={contains:function(E,D,B){var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(!C){F.fail(F._formatMessage(B,"Value "+E+" ("+(typeof E)+") not found in array ["+D+"]."));}},containsItems:function(C,D,B){for(var A=0;A<C.length;A++){this.contains(C[A],D,B);}},containsMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.containsMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(!C){F.fail(F._formatMessage(B,"No match found in array ["+D+"]."));}},doesNotContain:function(E,D,B){var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},doesNotContainItems:function(C,D,B){for(var A=0;A<C.length;A++){this.doesNotContain(C[A],D,B);}},doesNotContainMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.doesNotContainMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},indexOf:function(E,D,A,C){for(var B=0;B<D.length;B++){if(D[B]===E){YAHOO.util.Assert.areEqual(A,B,C||"Value exists at index "+B+" but should be at index "+A+".");return;}}var F=YAHOO.util.Assert;F.fail(F._formatMessage(C,"Value doesn't exist in array ["+D+"]."));},itemsAreEqual:function(D,F,C){var A=Math.max(D.length,F.length||0);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areEqual(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not equal."));}},itemsAreEquivalent:function(E,F,B,D){if(typeof B!="function"){throw new TypeError("ArrayAssert.itemsAreEquivalent(): Third argument must be a function.");}var A=Math.max(E.length,F.length||0);for(var C=0;C<A;C++){if(!B(E[C],F[C])){throw new YAHOO.util.ComparisonFailure(YAHOO.util.Assert._formatMessage(D,"Values in position "+C+" are not equivalent."),E[C],F[C]);}}},isEmpty:function(C,A){if(C.length>0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should be empty."));}},isNotEmpty:function(C,A){if(C.length===0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should not be empty."));}},itemsAreSame:function(D,F,C){var A=Math.max(D.length,F.length||0);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areSame(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not the same."));}},lastIndexOf:function(E,D,A,C){var F=YAHOO.util.Assert;for(var B=D.length;B>=0;B--){if(D[B]===E){F.areEqual(A,B,F._formatMessage(C,"Value exists at index "+B+" but should be at index "+A+"."));return;}}F.fail(F._formatMessage(C,"Value doesn't exist in array."));}};YAHOO.namespace("util");YAHOO.util.ObjectAssert={propertiesAreEqual:function(D,G,C){var F=YAHOO.util.Assert;var B=[];for(var E in D){B.push(E);}for(var A=0;A<B.length;A++){F.isNotUndefined(G[B[A]],F._formatMessage(C,"Property '"+B[A]+"' expected."));}},hasProperty:function(A,B,C){if(!(A in B)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object."));}},hasOwnProperty:function(A,B,C){if(!YAHOO.lang.hasOwnProperty(B,A)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object instance."));}}};YAHOO.util.DateAssert={datesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getFullYear(),D.getFullYear(),C._formatMessage(A,"Years should be equal."));C.areEqual(B.getMonth(),D.getMonth(),C._formatMessage(A,"Months should be equal."));C.areEqual(B.getDate(),D.getDate(),C._formatMessage(A,"Day of month should be equal."));}else{throw new TypeError("DateAssert.datesAreEqual(): Expected and actual values must be Date objects.");}},timesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getHours(),D.getHours(),C._formatMessage(A,"Hours should be equal."));C.areEqual(B.getMinutes(),D.getMinutes(),C._formatMessage(A,"Minutes should be equal."));C.areEqual(B.getSeconds(),D.getSeconds(),C._formatMessage(A,"Seconds should be equal."));}else{throw new TypeError("DateAssert.timesAreEqual(): Expected and actual values must be Date objects.");}}};YAHOO.namespace("tool");YAHOO.tool.TestManager={TEST_PAGE_BEGIN_EVENT:"testpagebegin",TEST_PAGE_COMPLETE_EVENT:"testpagecomplete",TEST_MANAGER_BEGIN_EVENT:"testmanagerbegin",TEST_MANAGER_COMPLETE_EVENT:"testmanagercomplete",_curPage:null,_frame:null,_logger:null,_timeoutId:0,_pages:[],_results:null,_handleTestRunnerComplete:function(A){this.fireEvent(this.TEST_PAGE_COMPLETE_EVENT,{page:this._curPage,results:A.results});this._processResults(this._curPage,A.results);this._logger.clearTestRunner();if(this._pages.length){this._timeoutId=setTimeout(function(){YAHOO.tool.TestManager._run();},1000);}else{this.fireEvent(this.TEST_MANAGER_COMPLETE_EVENT,this._results);}},_processResults:function(C,A){var B=this._results;B.passed+=A.passed;B.failed+=A.failed;B.ignored+=A.ignored;B.total+=A.total;B.duration+=A.duration;if(A.failed){B.failedPages.push(C);}else{B.passedPages.push(C);}A.name=C;A.type="page";B[C]=A;},_run:function(){this._curPage=this._pages.shift();this.fireEvent(this.TEST_PAGE_BEGIN_EVENT,this._curPage);this._frame.location.replace(this._curPage);},load:function(){if(parent.YAHOO.tool.TestManager!==this){parent.YAHOO.tool.TestManager.load();}else{if(this._frame){var A=this._frame.YAHOO.tool.TestRunner;this._logger.setTestRunner(A);A.subscribe(A.COMPLETE_EVENT,this._handleTestRunnerComplete,this,true);A.run();}}},setPages:function(A){this._pages=A;},start:function(){if(!this._initialized){this.createEvent(this.TEST_PAGE_BEGIN_EVENT);this.createEvent(this.TEST_PAGE_COMPLETE_EVENT);this.createEvent(this.TEST_MANAGER_BEGIN_EVENT);this.createEvent(this.TEST_MANAGER_COMPLETE_EVENT);
-if(!this._frame){var A=document.createElement("iframe");A.style.visibility="hidden";A.style.position="absolute";document.body.appendChild(A);this._frame=A.contentWindow||A.contentDocument.parentWindow;}if(!this._logger){this._logger=new YAHOO.tool.TestLogger();}this._initialized=true;}this._results={passed:0,failed:0,ignored:0,total:0,type:"report",name:"YUI Test Results",duration:0,failedPages:[],passedPages:[]};this.fireEvent(this.TEST_MANAGER_BEGIN_EVENT,null);this._run();},stop:function(){clearTimeout(this._timeoutId);}};YAHOO.lang.augmentObject(YAHOO.tool.TestManager,YAHOO.util.EventProvider.prototype);YAHOO.namespace("tool");YAHOO.tool.TestLogger=function(B,A){YAHOO.tool.TestLogger.superclass.constructor.call(this,B,A);this.init();};YAHOO.lang.extend(YAHOO.tool.TestLogger,YAHOO.widget.LogReader,{footerEnabled:true,newestOnTop:false,formatMsg:function(B){var A=B.category;var C=this.html2Text(B.msg);return'<pre><p><span class="'+A+'">'+A.toUpperCase()+"</span> "+C+"</p></pre>";},init:function(){if(YAHOO.tool.TestRunner){this.setTestRunner(YAHOO.tool.TestRunner);}this.hideSource("global");this.hideSource("LogReader");this.hideCategory("warn");this.hideCategory("window");this.hideCategory("time");this.clearConsole();},clearTestRunner:function(){if(this._runner){this._runner.unsubscribeAll();this._runner=null;}},setTestRunner:function(A){if(this._runner){this.clearTestRunner();}this._runner=A;A.subscribe(A.TEST_PASS_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_FAIL_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_IGNORE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.BEGIN_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_SUITE_BEGIN_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_SUITE_COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_CASE_BEGIN_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_CASE_COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);},_handleTestRunnerEvent:function(D){var A=YAHOO.tool.TestRunner;var C="";var B="";switch(D.type){case A.BEGIN_EVENT:C="Testing began at "+(new Date()).toString()+".";B="info";break;case A.COMPLETE_EVENT:C="Testing completed at "+(new Date()).toString()+".\nPassed:"+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;case A.TEST_FAIL_EVENT:C=D.testName+": "+D.error.getMessage();B="fail";break;case A.TEST_IGNORE_EVENT:C=D.testName+": ignored.";B="ignore";break;case A.TEST_PASS_EVENT:C=D.testName+": passed.";B="pass";break;case A.TEST_SUITE_BEGIN_EVENT:C='Test suite "'+D.testSuite.name+'" started.';B="info";break;case A.TEST_SUITE_COMPLETE_EVENT:C='Test suite "'+D.testSuite.name+'" completed.\nPassed:'+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;case A.TEST_CASE_BEGIN_EVENT:C='Test case "'+D.testCase.name+'" started.';B="info";break;case A.TEST_CASE_COMPLETE_EVENT:C='Test case "'+D.testCase.name+'" completed.\nPassed:'+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;default:C="Unexpected event "+D.type;C="info";}YAHOO.log(C,B,"TestRunner");}});YAHOO.namespace("tool.TestFormat");YAHOO.tool.TestFormat.JSON=function(A){return YAHOO.lang.JSON.stringify(A);};YAHOO.tool.TestFormat.XML=function(C){var A=YAHOO.lang;var B="<"+C.type+' name="'+C.name.replace(/"/g,""").replace(/'/g,"'")+'"';if(A.isNumber(C.duration)){B+=' duration="'+C.duration+'"';}if(C.type=="test"){B+=' result="'+C.result+'" message="'+C.message+'">';}else{B+=' passed="'+C.passed+'" failed="'+C.failed+'" ignored="'+C.ignored+'" total="'+C.total+'">';for(var D in C){if(A.hasOwnProperty(C,D)&&A.isObject(C[D])&&!A.isArray(C[D])){B+=arguments.callee(C[D]);}}}B+="</"+C.type+">";return B;};YAHOO.namespace("tool");YAHOO.tool.TestReporter=function(A,B){this.url=A;this.format=B||YAHOO.tool.TestFormat.XML;this._fields=new Object();this._form=null;this._iframe=null;};YAHOO.tool.TestReporter.prototype={constructor:YAHOO.tool.TestReporter,_convertToISOString:function(A){function B(C){return C<10?"0"+C:C;}return A.getUTCFullYear()+"-"+B(A.getUTCMonth()+1)+"-"+B(A.getUTCDate())+"T"+B(A.getUTCHours())+":"+B(A.getUTCMinutes())+":"+B(A.getUTCSeconds())+"Z";},addField:function(A,B){this._fields[A]=B;},clearFields:function(){this._fields=new Object();},destroy:function(){if(this._form){this._form.parentNode.removeChild(this._form);this._form=null;}if(this._iframe){this._iframe.parentNode.removeChild(this._iframe);this._iframe=null;}this._fields=null;},report:function(A){if(!this._form){this._form=document.createElement("form");this._form.method="post";this._form.style.visibility="hidden";this._form.style.position="absolute";this._form.style.top=0;document.body.appendChild(this._form);if(YAHOO.env.ua.ie){this._iframe=document.createElement('<iframe name="yuiTestTarget" />');}else{this._iframe=document.createElement("iframe");this._iframe.name="yuiTestTarget";}this._iframe.src="javascript:false";this._iframe.style.visibility="hidden";this._iframe.style.position="absolute";this._iframe.style.top=0;document.body.appendChild(this._iframe);this._form.target="yuiTestTarget";}this._form.action=this.url;while(this._form.hasChildNodes()){this._form.removeChild(this._form.lastChild);}this._fields.results=this.format(A);this._fields.useragent=navigator.userAgent;this._fields.timestamp=this._convertToISOString(new Date());for(var B in this._fields){if(YAHOO.lang.hasOwnProperty(this._fields,B)&&typeof this._fields[B]!="function"){if(YAHOO.env.ua.ie){input=document.createElement('<input name="'+B+'" >');}else{input=document.createElement("input");input.name=B;}input.type="hidden";input.value=this._fields[B];this._form.appendChild(input);}}delete this._fields.results;delete this._fields.useragent;delete this._fields.timestamp;if(arguments[1]!==false){this._form.submit();}}};YAHOO.register("yuitest",YAHOO.tool.TestRunner,{version:"2.8.1",build:"19"});
+if(!this._frame){var A=document.createElement("iframe");A.style.visibility="hidden";A.style.position="absolute";document.body.appendChild(A);this._frame=A.contentWindow||A.contentDocument.parentWindow;}if(!this._logger){this._logger=new YAHOO.tool.TestLogger();}this._initialized=true;}this._results={passed:0,failed:0,ignored:0,total:0,type:"report",name:"YUI Test Results",duration:0,failedPages:[],passedPages:[]};this.fireEvent(this.TEST_MANAGER_BEGIN_EVENT,null);this._run();},stop:function(){clearTimeout(this._timeoutId);}};YAHOO.lang.augmentObject(YAHOO.tool.TestManager,YAHOO.util.EventProvider.prototype);YAHOO.namespace("tool");YAHOO.tool.TestLogger=function(B,A){YAHOO.tool.TestLogger.superclass.constructor.call(this,B,A);this.init();};YAHOO.lang.extend(YAHOO.tool.TestLogger,YAHOO.widget.LogReader,{footerEnabled:true,newestOnTop:false,formatMsg:function(B){var A=B.category;var C=this.html2Text(B.msg);return'<pre><p><span class="'+A+'">'+A.toUpperCase()+"</span> "+C+"</p></pre>";},init:function(){if(YAHOO.tool.TestRunner){this.setTestRunner(YAHOO.tool.TestRunner);}this.hideSource("global");this.hideSource("LogReader");this.hideCategory("warn");this.hideCategory("window");this.hideCategory("time");this.clearConsole();},clearTestRunner:function(){if(this._runner){this._runner.unsubscribeAll();this._runner=null;}},setTestRunner:function(A){if(this._runner){this.clearTestRunner();}this._runner=A;A.subscribe(A.TEST_PASS_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_FAIL_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_IGNORE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.BEGIN_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_SUITE_BEGIN_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_SUITE_COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_CASE_BEGIN_EVENT,this._handleTestRunnerEvent,this,true);A.subscribe(A.TEST_CASE_COMPLETE_EVENT,this._handleTestRunnerEvent,this,true);},_handleTestRunnerEvent:function(D){var A=YAHOO.tool.TestRunner;var C="";var B="";switch(D.type){case A.BEGIN_EVENT:C="Testing began at "+(new Date()).toString()+".";B="info";break;case A.COMPLETE_EVENT:C="Testing completed at "+(new Date()).toString()+".\nPassed:"+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;case A.TEST_FAIL_EVENT:C=D.testName+": "+D.error.getMessage();B="fail";break;case A.TEST_IGNORE_EVENT:C=D.testName+": ignored.";B="ignore";break;case A.TEST_PASS_EVENT:C=D.testName+": passed.";B="pass";break;case A.TEST_SUITE_BEGIN_EVENT:C='Test suite "'+D.testSuite.name+'" started.';B="info";break;case A.TEST_SUITE_COMPLETE_EVENT:C='Test suite "'+D.testSuite.name+'" completed.\nPassed:'+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;case A.TEST_CASE_BEGIN_EVENT:C='Test case "'+D.testCase.name+'" started.';B="info";break;case A.TEST_CASE_COMPLETE_EVENT:C='Test case "'+D.testCase.name+'" completed.\nPassed:'+D.results.passed+" Failed:"+D.results.failed+" Total:"+D.results.total;B="info";break;default:C="Unexpected event "+D.type;C="info";}YAHOO.log(C,B,"TestRunner");}});YAHOO.namespace("tool.TestFormat");YAHOO.tool.TestFormat.JSON=function(A){return YAHOO.lang.JSON.stringify(A);};YAHOO.tool.TestFormat.XML=function(C){var A=YAHOO.lang;var B="<"+C.type+' name="'+C.name.replace(/"/g,""").replace(/'/g,"'")+'"';if(A.isNumber(C.duration)){B+=' duration="'+C.duration+'"';}if(C.type=="test"){B+=' result="'+C.result+'" message="'+C.message+'">';}else{B+=' passed="'+C.passed+'" failed="'+C.failed+'" ignored="'+C.ignored+'" total="'+C.total+'">';for(var D in C){if(A.hasOwnProperty(C,D)&&A.isObject(C[D])&&!A.isArray(C[D])){B+=arguments.callee(C[D]);}}}B+="</"+C.type+">";return B;};YAHOO.namespace("tool");YAHOO.tool.TestReporter=function(A,B){this.url=A;this.format=B||YAHOO.tool.TestFormat.XML;this._fields=new Object();this._form=null;this._iframe=null;};YAHOO.tool.TestReporter.prototype={constructor:YAHOO.tool.TestReporter,_convertToISOString:function(A){function B(C){return C<10?"0"+C:C;}return A.getUTCFullYear()+"-"+B(A.getUTCMonth()+1)+"-"+B(A.getUTCDate())+"T"+B(A.getUTCHours())+":"+B(A.getUTCMinutes())+":"+B(A.getUTCSeconds())+"Z";},addField:function(A,B){this._fields[A]=B;},clearFields:function(){this._fields=new Object();},destroy:function(){if(this._form){this._form.parentNode.removeChild(this._form);this._form=null;}if(this._iframe){this._iframe.parentNode.removeChild(this._iframe);this._iframe=null;}this._fields=null;},report:function(A){if(!this._form){this._form=document.createElement("form");this._form.method="post";this._form.style.visibility="hidden";this._form.style.position="absolute";this._form.style.top=0;document.body.appendChild(this._form);if(YAHOO.env.ua.ie){this._iframe=document.createElement('<iframe name="yuiTestTarget" />');}else{this._iframe=document.createElement("iframe");this._iframe.name="yuiTestTarget";}this._iframe.src="javascript:false";this._iframe.style.visibility="hidden";this._iframe.style.position="absolute";this._iframe.style.top=0;document.body.appendChild(this._iframe);this._form.target="yuiTestTarget";}this._form.action=this.url;while(this._form.hasChildNodes()){this._form.removeChild(this._form.lastChild);}this._fields.results=this.format(A);this._fields.useragent=navigator.userAgent;this._fields.timestamp=this._convertToISOString(new Date());for(var B in this._fields){if(YAHOO.lang.hasOwnProperty(this._fields,B)&&typeof this._fields[B]!="function"){if(YAHOO.env.ua.ie){input=document.createElement('<input name="'+B+'" >');}else{input=document.createElement("input");input.name=B;}input.type="hidden";input.value=this._fields[B];this._form.appendChild(input);}}delete this._fields.results;delete this._fields.useragent;delete this._fields.timestamp;if(arguments[1]!==false){this._form.submit();}}};YAHOO.register("yuitest",YAHOO.tool.TestRunner,{version:"2.8.2r1",build:"7"});
diff --git a/build/yuitest/yuitest.js b/build/yuitest/yuitest.js
index 178ecdb..e7db430 100644
--- a/build/yuitest/yuitest.js
+++ b/build/yuitest/yuitest.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("tool");
 
@@ -2738,4 +2738,4 @@ YAHOO.tool.TestReporter.prototype = {
     }
 
 };
-YAHOO.register("yuitest", YAHOO.tool.TestRunner, {version: "2.8.1", build: "19"});
+YAHOO.register("yuitest", YAHOO.tool.TestRunner, {version: "2.8.2r1", build: "7"});
diff --git a/build/yuitest/yuitest_core-debug.js b/build/yuitest/yuitest_core-debug.js
index 8c86432..de5bb41 100644
--- a/build/yuitest/yuitest_core-debug.js
+++ b/build/yuitest/yuitest_core-debug.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("tool");
 
@@ -1973,4 +1973,4 @@ YAHOO.util.DateAssert = {
     }
     
 };
-YAHOO.register("yuitest_core", YAHOO.tool.TestRunner, {version: "2.8.1", build: "19"});
+YAHOO.register("yuitest_core", YAHOO.tool.TestRunner, {version: "2.8.2r1", build: "7"});
diff --git a/build/yuitest/yuitest_core-min.js b/build/yuitest/yuitest_core-min.js
index c23c590..3308d27 100644
--- a/build/yuitest/yuitest_core-min.js
+++ b/build/yuitest/yuitest_core-min.js
@@ -2,8 +2,8 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("tool");(function(){var A=0;YAHOO.tool.TestCase=function(B){this._should={};for(var C in B){this[C]=B[C];}if(!YAHOO.lang.isString(this.name)){this.name="testCase"+(A++);}};YAHOO.tool.TestCase.prototype={resume:function(B){YAHOO.tool.TestRunner.resume(B);},wait:function(D,C){var B=arguments;if(YAHOO.lang.isFunction(B[0])){throw new YAHOO.tool.TestCase.Wait(B[0],B[1]);}else{throw new YAHOO.tool.TestCase.Wait(function(){YAHOO.util.Assert.fail("Timeout: wait() called but resume() never called.");},(YAHOO.lang.isNumber(B[0])?B[0]:10000));}},setUp:function(){},tearDown:function(){}};YAHOO.tool.TestCase.Wait=function(C,B){this.segment=(YAHOO.lang.isFunction(C)?C:null);this.delay=(YAHOO.lang.isNumber(B)?B:0);};})();YAHOO.namespace("tool");YAHOO.tool.TestSuite=function(A){this.name="";this.items=[];if(YAHOO.lang.isString(A)){this.name=A;}else{if(YAHOO.lang.isObject(A)){YAHOO.lang.augmentObject(this,A,true);}}if(this.name===""){this.name=YAHOO.util.Dom.generateId(null,"testSuite");}};YAHOO.tool.TestSuite.prototype={add:function(A){if(A instanceof YAHOO.tool.TestSuite||A instanceof YAHOO.tool.TestCase){this.items.push(A);}},setUp:function(){},tearDown:function(){}};YAHOO.namespace("tool");YAHOO.tool.TestRunner=(function(){function B(C){this.testObject=C;this.firstChild=null;this.lastChild=null;this.parent=null;this.next=null;this.results={passed:0,failed:0,total:0,ignored:0};if(C instanceof YAHOO.tool.TestSuite){this.results.type="testsuite";this.results.name=C.name;}else{if(C instanceof YAHOO.tool.TestCase){this.results.type="testcase";this.results.name=C.name;}}}B.prototype={appendChild:function(C){var D=new B(C);if(this.firstChild===null){this.firstChild=this.lastChild=D;}else{this.lastChild.next=D;this.lastChild=D;}D.parent=this;return D;}};function A(){A.superclass.constructor.apply(this,arguments);this.masterSuite=new YAHOO.tool.TestSuite("YUI Test Results");this._cur=null;this._root=null;var D=[this.TEST_CASE_BEGIN_EVENT,this.TEST_CASE_COMPLETE_EVENT,this.TEST_SUITE_BEGIN_EVENT,this.TEST_SUITE_COMPLETE_EVENT,this.TEST_PASS_EVENT,this.TEST_FAIL_EVENT,this.TEST_IGNORE_EVENT,this.COMPLETE_EVENT,this.BEGIN_EVENT];for(var C=0;C<D.length;C++){this.createEvent(D[C],{scope:this});}}YAHOO.lang.extend(A,YAHOO.util.EventProvider,{TEST_CASE_BEGIN_EVENT:"testcasebegin",TEST_CASE_COMPLETE_EVENT:"testcasecomplete",TEST_SUITE_BEGIN_EVENT:"testsuitebegin",TEST_SUITE_COMPLETE_EVENT:"testsuitecomplete",TEST_PASS_EVENT:"pass",TEST_FAIL_EVENT:"fail",TEST_IGNORE_EVENT:"ignore",COMPLETE_EVENT:"complete",BEGIN_EVENT:"begin",_addTestCaseToTestTree:function(C,D){var E=C.appendChild(D);for(var F in D){if(F.indexOf("test")===0&&YAHOO.lang.isFunction(D[F])){E.appendChild(F);}}},_addTestSuiteToTestTree:function(C,F){var E=C.appendChild(F);for(var D=0;D<F.items.length;D++){if(F.items[D] instanceof YAHOO.tool.TestSuite){this._addTestSuiteToTestTree(E,F.items[D]);}else{if(F.items[D] instanceof YAHOO.tool.TestCase){this._addTestCaseToTestTree(E,F.items[D]);}}}},_buildTestTree:function(){this._root=new B(this.masterSuite);this._cur=this._root;for(var C=0;C<this.masterSuite.items.length;C++){if(this.masterSuite.items[C] instanceof YAHOO.tool.TestSuite){this._addTestSuiteToTestTree(this._root,this.masterSuite.items[C]);}else{if(this.masterSuite.items[C] instanceof YAHOO.tool.TestCase){this._addTestCaseToTestTree(this._root,this.masterSuite.items[C]);}}}},_handleTestObjectComplete:function(C){if(YAHOO.lang.isObject(C.testObject)){C.parent.results.passed+=C.results.passed;C.parent.results.failed+=C.results.failed;C.parent.results.total+=C.results.total;C.parent.results.ignored+=C.results.ignored;C.parent.results[C.testObject.name]=C.results;if(C.testObject instanceof YAHOO.tool.TestSuite){C.testObject.tearDown();this.fireEvent(this.TEST_SUITE_COMPLETE_EVENT,{testSuite:C.testObject,results:C.results});}else{if(C.testObject instanceof YAHOO.tool.TestCase){this.fireEvent(this.TEST_CASE_COMPLETE_EVENT,{testCase:C.testObject,results:C.results});}}}},_next:function(){if(this._cur.firstChild){this._cur=this._cur.firstChild;}else{if(this._cur.next){this._cur=this._cur.next;}else{while(this._cur&&!this._cur.next&&this._cur!==this._root){this._handleTestObjectComplete(this._cur);this._cur=this._cur.parent;}if(this._cur==this._root){this._cur.results.type="report";this._cur.results.timestamp=(new Date()).toLocaleString();this._cur.results.duration=(new Date())-this._cur.results.duration;this.fireEvent(this.COMPLETE_EVENT,{results:this._cur.results});this._cur=null;}else{this._handleTestObjectComplete(this._cur);this._cur=this._cur.next;}}}return this._cur;},_run:function(){var E=false;var D=this._next();if(D!==null){var C=D.testObject;if(YAHOO.lang.isObject(C)){if(C instanceof YAHOO.tool.TestSuite){this.fireEvent(this.TEST_SUITE_BEGIN_EVENT,{testSuite:C});C.setUp();}else{if(C instanceof YAHOO.tool.TestCase){this.fireEvent(this.TEST_CASE_BEGIN_EVENT,{testCase:C});}}if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}}else{this._runTest(D);}}},_resumeTest:function(G){var C=this._cur;var H=C.testObject;var E=C.parent.testObject;if(E.__yui_wait){clearTimeout(E.__yui_wait);delete E.__yui_wait;}var K=(E._should.fail||{})[H];var D=(E._should.error||{})[H];var F=false;var I=null;try{G.apply(E);if(K){I=new YAHOO.util.ShouldFail();F=true;}else{if(D){I=new YAHOO.util.ShouldError();F=true;}}}catch(J){if(J instanceof YAHOO.util.AssertionError){if(!K){I=J;F=true;}}else{if(J instanceof YAHOO.tool.TestCase.Wait){if(YAHOO.lang.isFunction(J.segment)){if(YAHOO.lang.isNumber(J.delay)){if(typeof setTimeout!="undefined"){E.__yui_wait=setTimeout(function(){YAHOO.tool.TestRunner._resumeTest(J.segment);},J.delay);}else{throw new Error("Asynchronous tests not supported in this environment.");}}}return;}else{if(!D){I=new YAHOO.util.UnexpectedError(J);F=true;}else{if(YAHOO.lang.isString(D)){if(J.message!=D){I=new YAHOO.util.UnexpectedError(J);F=true;}}else{if(YAHOO.lang.isFunction(D)){if(!(J instanceof D)){I=new YAHOO.util.UnexpectedError(J);
 F=true;}}else{if(YAHOO.lang.isObject(D)){if(!(J instanceof D.constructor)||J.message!=D.message){I=new YAHOO.util.UnexpectedError(J);F=true;}}}}}}}}if(F){this.fireEvent(this.TEST_FAIL_EVENT,{testCase:E,testName:H,error:I});}else{this.fireEvent(this.TEST_PASS_EVENT,{testCase:E,testName:H});}E.tearDown();C.parent.results[H]={result:F?"fail":"pass",message:I?I.getMessage():"Test passed",type:"test",name:H};if(F){C.parent.results.failed++;}else{C.parent.results.passed++;}C.parent.results.total++;if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}},_runTest:function(F){var C=F.testObject;var D=F.parent.testObject;var G=D[C];var E=(D._should.ignore||{})[C];if(E){F.parent.results[C]={result:"ignore",message:"Test ignored",type:"test",name:C};F.parent.results.ignored++;F.parent.results.total++;this.fireEvent(this.TEST_IGNORE_EVENT,{testCase:D,testName:C});if(typeof setTimeout!="undefined"){setTimeout(function(){YAHOO.tool.TestRunner._run();},0);}else{this._run();}}else{D.setUp();this._resumeTest(G);}},fireEvent:function(C,D){D=D||{};D.type=C;A.superclass.fireEvent.call(this,C,D);},add:function(C){this.masterSuite.add(C);},clear:function(){this.masterSuite.items=[];},resume:function(C){this._resumeTest(C||function(){});},run:function(C){var D=YAHOO.tool.TestRunner;D._buildTestTree();D._root.results.duration=(new Date()).getTime();D.fireEvent(D.BEGIN_EVENT);D._run();}});return new A();})();YAHOO.namespace("util");YAHOO.util.Assert={_formatMessage:function(B,A){var C=B;if(YAHOO.lang.isString(B)&&B.length>0){return YAHOO.lang.substitute(B,{message:A});}else{return A;}},fail:function(A){throw new YAHOO.util.AssertionError(this._formatMessage(A,"Test force-failed."));},areEqual:function(B,C,A){if(B!=C){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Values should be equal."),B,C);}},areNotEqual:function(A,C,B){if(A==C){throw new YAHOO.util.UnexpectedValue(this._formatMessage(B,"Values should not be equal."),A);}},areNotSame:function(A,C,B){if(A===C){throw new YAHOO.util.UnexpectedValue(this._formatMessage(B,"Values should not be the same."),A);}},areSame:function(B,C,A){if(B!==C){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Values should be the same."),B,C);}},isFalse:function(B,A){if(false!==B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be false."),false,B);}},isTrue:function(B,A){if(true!==B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be true."),true,B);}},isNaN:function(B,A){if(!isNaN(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be NaN."),NaN,B);}},isNotNaN:function(B,A){if(isNaN(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Values should not be NaN."),NaN);}},isNotNull:function(B,A){if(YAHOO.lang.isNull(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Values should not be null."),null);}},isNotUndefined:function(B,A){if(YAHOO.lang.isUndefined(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should not be undefined."),undefined);}},isNull:function(B,A){if(!YAHOO.lang.isNull(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be null."),null,B);}},isUndefined:function(B,A){if(!YAHOO.lang.isUndefined(B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be undefined."),undefined,B);}},isArray:function(B,A){if(!YAHOO.lang.isArray(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be an array."),B);}},isBoolean:function(B,A){if(!YAHOO.lang.isBoolean(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a Boolean."),B);}},isFunction:function(B,A){if(!YAHOO.lang.isFunction(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a function."),B);}},isInstanceOf:function(B,C,A){if(!(C instanceof B)){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value isn't an instance of expected type."),B,C);}},isNumber:function(B,A){if(!YAHOO.lang.isNumber(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a number."),B);}},isObject:function(B,A){if(!YAHOO.lang.isObject(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be an object."),B);}},isString:function(B,A){if(!YAHOO.lang.isString(B)){throw new YAHOO.util.UnexpectedValue(this._formatMessage(A,"Value should be a string."),B);}},isTypeOf:function(B,C,A){if(typeof C!=B){throw new YAHOO.util.ComparisonFailure(this._formatMessage(A,"Value should be of type "+B+"."),B,typeof C);}}};YAHOO.util.AssertionError=function(A){this.message=A;this.name="AssertionError";};YAHOO.lang.extend(YAHOO.util.AssertionError,Object,{getMessage:function(){return this.message;},toString:function(){return this.name+": "+this.getMessage();}});YAHOO.util.ComparisonFailure=function(B,A,C){YAHOO.util.AssertionError.call(this,B);this.expected=A;this.actual=C;this.name="ComparisonFailure";};YAHOO.lang.extend(YAHOO.util.ComparisonFailure,YAHOO.util.AssertionError,{getMessage:function(){return this.message+"\nExpected: "+this.expected+" ("+(typeof this.expected)+")"+"\nActual:"+this.actual+" ("+(typeof this.actual)+")";}});YAHOO.util.UnexpectedValue=function(B,A){YAHOO.util.AssertionError.call(this,B);this.unexpected=A;this.name="UnexpectedValue";};YAHOO.lang.extend(YAHOO.util.UnexpectedValue,YAHOO.util.AssertionError,{getMessage:function(){return this.message+"\nUnexpected: "+this.unexpected+" ("+(typeof this.unexpected)+") ";}});YAHOO.util.ShouldFail=function(A){YAHOO.util.AssertionError.call(this,A||"This test should fail but didn't.");this.name="ShouldFail";};YAHOO.lang.extend(YAHOO.util.ShouldFail,YAHOO.util.AssertionError);YAHOO.util.ShouldError=function(A){YAHOO.util.AssertionError.call(this,A||"This test should have thrown an error but didn't.");this.name="ShouldError";};YAHOO.lang.extend(YAHOO.util.ShouldError,YAHOO.util.AssertionError);YAHOO.util.UnexpectedError=function(A){YAHOO.util.AssertionError.call(this,"Unexpected error: "+A.message);
-this.cause=A;this.name="UnexpectedError";this.stack=A.stack;};YAHOO.lang.extend(YAHOO.util.UnexpectedError,YAHOO.util.AssertionError);YAHOO.util.ArrayAssert={contains:function(E,D,B){var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(!C){F.fail(F._formatMessage(B,"Value "+E+" ("+(typeof E)+") not found in array ["+D+"]."));}},containsItems:function(C,D,B){for(var A=0;A<C.length;A++){this.contains(C[A],D,B);}},containsMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.containsMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(!C){F.fail(F._formatMessage(B,"No match found in array ["+D+"]."));}},doesNotContain:function(E,D,B){var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},doesNotContainItems:function(C,D,B){for(var A=0;A<C.length;A++){this.doesNotContain(C[A],D,B);}},doesNotContainMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.doesNotContainMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},indexOf:function(E,D,A,C){for(var B=0;B<D.length;B++){if(D[B]===E){YAHOO.util.Assert.areEqual(A,B,C||"Value exists at index "+B+" but should be at index "+A+".");return;}}var F=YAHOO.util.Assert;F.fail(F._formatMessage(C,"Value doesn't exist in array ["+D+"]."));},itemsAreEqual:function(D,F,C){var A=Math.max(D.length,F.length||0);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areEqual(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not equal."));}},itemsAreEquivalent:function(E,F,B,D){if(typeof B!="function"){throw new TypeError("ArrayAssert.itemsAreEquivalent(): Third argument must be a function.");}var A=Math.max(E.length,F.length||0);for(var C=0;C<A;C++){if(!B(E[C],F[C])){throw new YAHOO.util.ComparisonFailure(YAHOO.util.Assert._formatMessage(D,"Values in position "+C+" are not equivalent."),E[C],F[C]);}}},isEmpty:function(C,A){if(C.length>0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should be empty."));}},isNotEmpty:function(C,A){if(C.length===0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should not be empty."));}},itemsAreSame:function(D,F,C){var A=Math.max(D.length,F.length||0);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areSame(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not the same."));}},lastIndexOf:function(E,D,A,C){var F=YAHOO.util.Assert;for(var B=D.length;B>=0;B--){if(D[B]===E){F.areEqual(A,B,F._formatMessage(C,"Value exists at index "+B+" but should be at index "+A+"."));return;}}F.fail(F._formatMessage(C,"Value doesn't exist in array."));}};YAHOO.namespace("util");YAHOO.util.ObjectAssert={propertiesAreEqual:function(D,G,C){var F=YAHOO.util.Assert;var B=[];for(var E in D){B.push(E);}for(var A=0;A<B.length;A++){F.isNotUndefined(G[B[A]],F._formatMessage(C,"Property '"+B[A]+"' expected."));}},hasProperty:function(A,B,C){if(!(A in B)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object."));}},hasOwnProperty:function(A,B,C){if(!YAHOO.lang.hasOwnProperty(B,A)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object instance."));}}};YAHOO.util.DateAssert={datesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getFullYear(),D.getFullYear(),C._formatMessage(A,"Years should be equal."));C.areEqual(B.getMonth(),D.getMonth(),C._formatMessage(A,"Months should be equal."));C.areEqual(B.getDate(),D.getDate(),C._formatMessage(A,"Day of month should be equal."));}else{throw new TypeError("DateAssert.datesAreEqual(): Expected and actual values must be Date objects.");}},timesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getHours(),D.getHours(),C._formatMessage(A,"Hours should be equal."));C.areEqual(B.getMinutes(),D.getMinutes(),C._formatMessage(A,"Minutes should be equal."));C.areEqual(B.getSeconds(),D.getSeconds(),C._formatMessage(A,"Seconds should be equal."));}else{throw new TypeError("DateAssert.timesAreEqual(): Expected and actual values must be Date objects.");}}};YAHOO.register("yuitest_core",YAHOO.tool.TestRunner,{version:"2.8.1",build:"19"});
\ No newline at end of file
+this.cause=A;this.name="UnexpectedError";this.stack=A.stack;};YAHOO.lang.extend(YAHOO.util.UnexpectedError,YAHOO.util.AssertionError);YAHOO.util.ArrayAssert={contains:function(E,D,B){var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(!C){F.fail(F._formatMessage(B,"Value "+E+" ("+(typeof E)+") not found in array ["+D+"]."));}},containsItems:function(C,D,B){for(var A=0;A<C.length;A++){this.contains(C[A],D,B);}},containsMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.containsMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(!C){F.fail(F._formatMessage(B,"No match found in array ["+D+"]."));}},doesNotContain:function(E,D,B){var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(D[A]===E){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},doesNotContainItems:function(C,D,B){for(var A=0;A<C.length;A++){this.doesNotContain(C[A],D,B);}},doesNotContainMatch:function(E,D,B){if(typeof E!="function"){throw new TypeError("ArrayAssert.doesNotContainMatch(): First argument must be a function.");}var C=false;var F=YAHOO.util.Assert;for(var A=0;A<D.length&&!C;A++){if(E(D[A])){C=true;}}if(C){F.fail(F._formatMessage(B,"Value found in array ["+D+"]."));}},indexOf:function(E,D,A,C){for(var B=0;B<D.length;B++){if(D[B]===E){YAHOO.util.Assert.areEqual(A,B,C||"Value exists at index "+B+" but should be at index "+A+".");return;}}var F=YAHOO.util.Assert;F.fail(F._formatMessage(C,"Value doesn't exist in array ["+D+"]."));},itemsAreEqual:function(D,F,C){var A=Math.max(D.length,F.length||0);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areEqual(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not equal."));}},itemsAreEquivalent:function(E,F,B,D){if(typeof B!="function"){throw new TypeError("ArrayAssert.itemsAreEquivalent(): Third argument must be a function.");}var A=Math.max(E.length,F.length||0);for(var C=0;C<A;C++){if(!B(E[C],F[C])){throw new YAHOO.util.ComparisonFailure(YAHOO.util.Assert._formatMessage(D,"Values in position "+C+" are not equivalent."),E[C],F[C]);}}},isEmpty:function(C,A){if(C.length>0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should be empty."));}},isNotEmpty:function(C,A){if(C.length===0){var B=YAHOO.util.Assert;B.fail(B._formatMessage(A,"Array should not be empty."));}},itemsAreSame:function(D,F,C){var A=Math.max(D.length,F.length||0);var E=YAHOO.util.Assert;for(var B=0;B<A;B++){E.areSame(D[B],F[B],E._formatMessage(C,"Values in position "+B+" are not the same."));}},lastIndexOf:function(E,D,A,C){var F=YAHOO.util.Assert;for(var B=D.length;B>=0;B--){if(D[B]===E){F.areEqual(A,B,F._formatMessage(C,"Value exists at index "+B+" but should be at index "+A+"."));return;}}F.fail(F._formatMessage(C,"Value doesn't exist in array."));}};YAHOO.namespace("util");YAHOO.util.ObjectAssert={propertiesAreEqual:function(D,G,C){var F=YAHOO.util.Assert;var B=[];for(var E in D){B.push(E);}for(var A=0;A<B.length;A++){F.isNotUndefined(G[B[A]],F._formatMessage(C,"Property '"+B[A]+"' expected."));}},hasProperty:function(A,B,C){if(!(A in B)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object."));}},hasOwnProperty:function(A,B,C){if(!YAHOO.lang.hasOwnProperty(B,A)){var D=YAHOO.util.Assert;D.fail(D._formatMessage(C,"Property '"+A+"' not found on object instance."));}}};YAHOO.util.DateAssert={datesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getFullYear(),D.getFullYear(),C._formatMessage(A,"Years should be equal."));C.areEqual(B.getMonth(),D.getMonth(),C._formatMessage(A,"Months should be equal."));C.areEqual(B.getDate(),D.getDate(),C._formatMessage(A,"Day of month should be equal."));}else{throw new TypeError("DateAssert.datesAreEqual(): Expected and actual values must be Date objects.");}},timesAreEqual:function(B,D,A){if(B instanceof Date&&D instanceof Date){var C=YAHOO.util.Assert;C.areEqual(B.getHours(),D.getHours(),C._formatMessage(A,"Hours should be equal."));C.areEqual(B.getMinutes(),D.getMinutes(),C._formatMessage(A,"Minutes should be equal."));C.areEqual(B.getSeconds(),D.getSeconds(),C._formatMessage(A,"Seconds should be equal."));}else{throw new TypeError("DateAssert.timesAreEqual(): Expected and actual values must be Date objects.");}}};YAHOO.register("yuitest_core",YAHOO.tool.TestRunner,{version:"2.8.2r1",build:"7"});
\ No newline at end of file
diff --git a/build/yuitest/yuitest_core.js b/build/yuitest/yuitest_core.js
index 8c86432..de5bb41 100644
--- a/build/yuitest/yuitest_core.js
+++ b/build/yuitest/yuitest_core.js
@@ -2,7 +2,7 @@
 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.com/yui/license.html
-version: 2.8.1
+version: 2.8.2r1
 */
 YAHOO.namespace("tool");
 
@@ -1973,4 +1973,4 @@ YAHOO.util.DateAssert = {
     }
     
 };
-YAHOO.register("yuitest_core", YAHOO.tool.TestRunner, {version: "2.8.1", build: "19"});
+YAHOO.register("yuitest_core", YAHOO.tool.TestRunner, {version: "2.8.2r1", build: "7"});
diff --git a/debian/changelog b/debian/changelog
index c3e1b9c..bd4b35a 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+yui (2.8.2r1-1) unstable; urgency=low
+
+  * New upstream version.
+
+ -- Jaldhar H. Vyas <jaldhar at debian.org>  Sat, 27 Nov 2010 11:39:50 -0500
+
 yui (2.8.1-1) unstable; urgency=low
 
   * New upstream version.
diff --git a/docs/Anim.js.html b/docs/Anim.js.html
index 7fe02ae..e2fbb9a 100644
--- a/docs/Anim.js.html
+++ b/docs/Anim.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                 
diff --git a/docs/AnimMgr.js.html b/docs/AnimMgr.js.html
index 9e0df60..07015f2 100644
--- a/docs/AnimMgr.js.html
+++ b/docs/AnimMgr.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                 
diff --git a/docs/ArrayAssert.js.html b/docs/ArrayAssert.js.html
index ac9ea36..1e26293 100644
--- a/docs/ArrayAssert.js.html
+++ b/docs/ArrayAssert.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/Assert.js.html b/docs/Assert.js.html
index 4916988..daaf781 100644
--- a/docs/Assert.js.html
+++ b/docs/Assert.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/Attribute.js.html b/docs/Attribute.js.html
index 2f61ad2..7fa29b6 100644
--- a/docs/Attribute.js.html
+++ b/docs/Attribute.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>element  <span class="subtitle">2.8.1</span></h3>
+        <h3>element  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element.html" title="element">element</a>
                 
diff --git a/docs/AttributeProvider.js.html b/docs/AttributeProvider.js.html
index 599f8a4..43933ed 100644
--- a/docs/AttributeProvider.js.html
+++ b/docs/AttributeProvider.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>element  <span class="subtitle">2.8.1</span></h3>
+        <h3>element  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element.html" title="element">element</a>
                 
diff --git a/docs/AutoComplete.js.html b/docs/AutoComplete.js.html
index c62c6d5..c9f77a1 100644
--- a/docs/AutoComplete.js.html
+++ b/docs/AutoComplete.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>AutoComplete Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>AutoComplete Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_autocomplete.html" title="autocomplete">autocomplete</a>
                 
diff --git a/docs/Axis.js.html b/docs/Axis.js.html
index ed6cb4f..b902f0b 100644
--- a/docs/Axis.js.html
+++ b/docs/Axis.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/Bezier.js.html b/docs/Bezier.js.html
index ddda365..32b5bec 100644
--- a/docs/Bezier.js.html
+++ b/docs/Bezier.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                 
diff --git a/docs/Calendar.js.html b/docs/Calendar.js.html
index 36c410e..69a4d01 100644
--- a/docs/Calendar.js.html
+++ b/docs/Calendar.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                 
diff --git a/docs/CalendarGroup.js.html b/docs/CalendarGroup.js.html
index 0c2d73a..99307a7 100644
--- a/docs/CalendarGroup.js.html
+++ b/docs/CalendarGroup.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                 
diff --git a/docs/CalendarNavigator.js.html b/docs/CalendarNavigator.js.html
index 5b42da4..db7a5cb 100644
--- a/docs/CalendarNavigator.js.html
+++ b/docs/CalendarNavigator.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                 
diff --git a/docs/Carousel.js.html b/docs/Carousel.js.html
index 55d3f35..e9bbabc 100644
--- a/docs/Carousel.js.html
+++ b/docs/Carousel.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Carousel Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Carousel Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_carousel.html" title="carousel">carousel</a>
                 
diff --git a/docs/CartesianChart.js.html b/docs/CartesianChart.js.html
index eff9921..bd5b430 100644
--- a/docs/CartesianChart.js.html
+++ b/docs/CartesianChart.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/CategoryAxis.js.html b/docs/CategoryAxis.js.html
index 31ce255..56c87b5 100644
--- a/docs/CategoryAxis.js.html
+++ b/docs/CategoryAxis.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/CellEditor.js.html b/docs/CellEditor.js.html
index 0a3dd84..23a2b8d 100644
--- a/docs/CellEditor.js.html
+++ b/docs/CellEditor.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                 
diff --git a/docs/Chain.js.html b/docs/Chain.js.html
index 66ca0d1..24e537c 100644
--- a/docs/Chain.js.html
+++ b/docs/Chain.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                 
diff --git a/docs/Chart.js.html b/docs/Chart.js.html
index 5def54a..db594e6 100644
--- a/docs/Chart.js.html
+++ b/docs/Chart.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/ChartTypes.js.html b/docs/ChartTypes.js.html
index 184d9c1..60425a6 100644
--- a/docs/ChartTypes.js.html
+++ b/docs/ChartTypes.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/Color.js.html b/docs/Color.js.html
index 0523331..4a01082 100644
--- a/docs/Color.js.html
+++ b/docs/Color.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                 
diff --git a/docs/ColorAnim.js.html b/docs/ColorAnim.js.html
index 0db9960..ed50a86 100644
--- a/docs/ColorAnim.js.html
+++ b/docs/ColorAnim.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                 
diff --git a/docs/ColorPicker.js.html b/docs/ColorPicker.js.html
index fcb26d9..b7d15e2 100644
--- a/docs/ColorPicker.js.html
+++ b/docs/ColorPicker.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>colorpicker  <span class="subtitle">2.8.1</span></h3>
+        <h3>colorpicker  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_colorpicker.html" title="colorpicker">colorpicker</a>
                 
diff --git a/docs/ColumnSet.js.html b/docs/ColumnSet.js.html
index 5e79096..a4f6c34 100644
--- a/docs/ColumnSet.js.html
+++ b/docs/ColumnSet.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                 
diff --git a/docs/Config.js.html b/docs/Config.js.html
index 33d65e0..aeafbaa 100644
--- a/docs/Config.js.html
+++ b/docs/Config.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/ContainerEffect.js.html b/docs/ContainerEffect.js.html
index 94c25b9..d52a61d 100644
--- a/docs/ContainerEffect.js.html
+++ b/docs/ContainerEffect.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/Cookie.js.html b/docs/Cookie.js.html
index 18568b3..fab7aa6 100644
--- a/docs/Cookie.js.html
+++ b/docs/Cookie.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>cookie  <span class="subtitle">2.8.1</span></h3>
+        <h3>cookie  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_cookie.html" title="cookie">cookie</a>
                 
diff --git a/docs/CurrentPageReport.js.html b/docs/CurrentPageReport.js.html
index 3d1c223..21b3d0d 100644
--- a/docs/CurrentPageReport.js.html
+++ b/docs/CurrentPageReport.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/CustomEvent.js.html b/docs/CustomEvent.js.html
index eb545a9..d54dbdf 100644
--- a/docs/CustomEvent.js.html
+++ b/docs/CustomEvent.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                 
diff --git a/docs/DD.js.html b/docs/DD.js.html
index b57a738..8abd3c4 100644
--- a/docs/DD.js.html
+++ b/docs/DD.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                 
diff --git a/docs/DDProxy.js.html b/docs/DDProxy.js.html
index aa076f2..bdcd5c2 100644
--- a/docs/DDProxy.js.html
+++ b/docs/DDProxy.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                 
diff --git a/docs/DDTarget.js.html b/docs/DDTarget.js.html
index dc63cba..1020d38 100644
--- a/docs/DDTarget.js.html
+++ b/docs/DDTarget.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                 
diff --git a/docs/DataSource.js.html b/docs/DataSource.js.html
index 1003fa0..c527348 100644
--- a/docs/DataSource.js.html
+++ b/docs/DataSource.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                 
diff --git a/docs/DataTable.js.html b/docs/DataTable.js.html
index 441039b..8e54b62 100644
--- a/docs/DataTable.js.html
+++ b/docs/DataTable.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                 
diff --git a/docs/DateAssert.js.html b/docs/DateAssert.js.html
index 34f0e14..bde8975 100644
--- a/docs/DateAssert.js.html
+++ b/docs/DateAssert.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/DateMath.js.html b/docs/DateMath.js.html
index 981ec7c..5e60780 100644
--- a/docs/DateMath.js.html
+++ b/docs/DateMath.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>datemath  <span class="subtitle">2.8.1</span></h3>
+        <h3>datemath  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datemath.html" title="datemath">datemath</a>
                 
diff --git a/docs/DateNode.js.html b/docs/DateNode.js.html
index 1e46bfd..ac94073 100644
--- a/docs/DateNode.js.html
+++ b/docs/DateNode.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/Delegate.js.html b/docs/Delegate.js.html
index b94917c..aa4b982 100644
--- a/docs/Delegate.js.html
+++ b/docs/Delegate.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility Event Delegation Module  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility Event Delegation Module  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event-delegate.html" title="event-delegate">event-delegate</a>
                 
diff --git a/docs/Dialog.js.html b/docs/Dialog.js.html
index 991bf78..f0642d8 100644
--- a/docs/Dialog.js.html
+++ b/docs/Dialog.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/Dom.js.html b/docs/Dom.js.html
index 5fc4f36..de023b8 100644
--- a/docs/Dom.js.html
+++ b/docs/Dom.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                 
diff --git a/docs/DragDrop.js.html b/docs/DragDrop.js.html
index 65f44d2..e2b0c24 100644
--- a/docs/DragDrop.js.html
+++ b/docs/DragDrop.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                 
diff --git a/docs/DragDropMgr.js.html b/docs/DragDropMgr.js.html
index ab57b56..984dc14 100644
--- a/docs/DragDropMgr.js.html
+++ b/docs/DragDropMgr.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                 
diff --git a/docs/DualSlider.js.html b/docs/DualSlider.js.html
index 245803a..52df81f 100644
--- a/docs/DualSlider.js.html
+++ b/docs/DualSlider.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Slider Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Slider Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_slider.html" title="slider">slider</a>
                 
diff --git a/docs/Easing.js.html b/docs/Easing.js.html
index e56613b..9a67d12 100644
--- a/docs/Easing.js.html
+++ b/docs/Easing.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                 
diff --git a/docs/Element-Delegate.js.html b/docs/Element-Delegate.js.html
index 775fd2b..cc46b17 100644
--- a/docs/Element-Delegate.js.html
+++ b/docs/Element-Delegate.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Element Event Delegation Module  <span class="subtitle">2.8.1</span></h3>
+        <h3>Element Event Delegation Module  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element-delegate.html" title="element-delegate">element-delegate</a>
                 
diff --git a/docs/Element.js.html b/docs/Element.js.html
index b146248..9500ef1 100644
--- a/docs/Element.js.html
+++ b/docs/Element.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>element  <span class="subtitle">2.8.1</span></h3>
+        <h3>element  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element.html" title="element">element</a>
                 
diff --git a/docs/Env.js.html b/docs/Env.js.html
index 1c00587..d9946b5 100644
--- a/docs/Env.js.html
+++ b/docs/Env.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                 
diff --git a/docs/Event.js.html b/docs/Event.js.html
index 08ee6a2..2ffe2d3 100644
--- a/docs/Event.js.html
+++ b/docs/Event.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                 
diff --git a/docs/EventProvider.js.html b/docs/EventProvider.js.html
index ff15378..37368cc 100644
--- a/docs/EventProvider.js.html
+++ b/docs/EventProvider.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                 
diff --git a/docs/FirstPageLink.js.html b/docs/FirstPageLink.js.html
index 3e6e599..6239421 100644
--- a/docs/FirstPageLink.js.html
+++ b/docs/FirstPageLink.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/FlashAdapter.js.html b/docs/FlashAdapter.js.html
index 1c634e9..6d77b7e 100644
--- a/docs/FlashAdapter.js.html
+++ b/docs/FlashAdapter.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Uploader  <span class="subtitle">2.8.1</span></h3>
+        <h3>Uploader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_uploader.html" title="uploader">uploader</a>
                 
diff --git a/docs/Get.js.html b/docs/Get.js.html
index 6b9af08..9c937e8 100644
--- a/docs/Get.js.html
+++ b/docs/Get.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>get  <span class="subtitle">2.8.1</span></h3>
+        <h3>get  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_get.html" title="get">get</a>
                 
diff --git a/docs/HTMLNode.js.html b/docs/HTMLNode.js.html
index 521dfc2..70b7050 100644
--- a/docs/HTMLNode.js.html
+++ b/docs/HTMLNode.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/IEStyle.js.html b/docs/IEStyle.js.html
index 4de1f4e..0287737 100644
--- a/docs/IEStyle.js.html
+++ b/docs/IEStyle.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                 
diff --git a/docs/ImageLoader.js.html b/docs/ImageLoader.js.html
index 58ed9cb..860914f 100644
--- a/docs/ImageLoader.js.html
+++ b/docs/ImageLoader.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imageloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>imageloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imageloader.html" title="imageloader">imageloader</a>
                 
diff --git a/docs/JSON.js.html b/docs/JSON.js.html
index a151cd3..53bc75e 100644
--- a/docs/JSON.js.html
+++ b/docs/JSON.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>json  <span class="subtitle">2.8.1</span></h3>
+        <h3>json  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_json.html" title="json">json</a>
                 
diff --git a/docs/KeyListener.js.html b/docs/KeyListener.js.html
index b029efd..0fb04bc 100644
--- a/docs/KeyListener.js.html
+++ b/docs/KeyListener.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                 
diff --git a/docs/Lang.js.html b/docs/Lang.js.html
index 16e1336..1ae36fa 100644
--- a/docs/Lang.js.html
+++ b/docs/Lang.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                 
diff --git a/docs/LastPageLink.js.html b/docs/LastPageLink.js.html
index 219fc38..b132ea9 100644
--- a/docs/LastPageLink.js.html
+++ b/docs/LastPageLink.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/LogMsg.html b/docs/LogMsg.html
index aa6e7d1..e5ca31b 100644
--- a/docs/LogMsg.html
+++ b/docs/LogMsg.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                  > LogMsg 
diff --git a/docs/LogMsg.js.html b/docs/LogMsg.js.html
index 83303d9..0c244a9 100644
--- a/docs/LogMsg.js.html
+++ b/docs/LogMsg.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                 
diff --git a/docs/LogReader.html b/docs/LogReader.html
index e09ec93..541a296 100644
--- a/docs/LogReader.html
+++ b/docs/LogReader.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                  > LogReader 
diff --git a/docs/LogReader.js.html b/docs/LogReader.js.html
index 4fb3dbe..11bb23c 100644
--- a/docs/LogReader.js.html
+++ b/docs/LogReader.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                 
diff --git a/docs/LogWriter.html b/docs/LogWriter.html
index b775ee0..9786235 100644
--- a/docs/LogWriter.html
+++ b/docs/LogWriter.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                  > LogWriter 
diff --git a/docs/LogWriter.js.html b/docs/LogWriter.js.html
index 35afc86..9347824 100644
--- a/docs/LogWriter.js.html
+++ b/docs/LogWriter.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                 
diff --git a/docs/Logger.js.html b/docs/Logger.js.html
index f1ea3ed..1733312 100644
--- a/docs/Logger.js.html
+++ b/docs/Logger.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                 
diff --git a/docs/MenuNode.js.html b/docs/MenuNode.js.html
index 0d8ae83..b19b76b 100644
--- a/docs/MenuNode.js.html
+++ b/docs/MenuNode.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/Module.js.html b/docs/Module.js.html
index 6e29f24..cc0a48b 100644
--- a/docs/Module.js.html
+++ b/docs/Module.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/Motion.js.html b/docs/Motion.js.html
index eb2ff2d..815bf6e 100644
--- a/docs/Motion.js.html
+++ b/docs/Motion.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                 
diff --git a/docs/MouseEnter.js.html b/docs/MouseEnter.js.html
index c16f409..63d9554 100644
--- a/docs/MouseEnter.js.html
+++ b/docs/MouseEnter.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility mouseenter and mouseout Module  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility mouseenter and mouseout Module  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event-mouseenter.html" title="event-mouseenter">event-mouseenter</a>
                 
diff --git a/docs/NextPageLink.js.html b/docs/NextPageLink.js.html
index c42841a..7aca698 100644
--- a/docs/NextPageLink.js.html
+++ b/docs/NextPageLink.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/Node.js.html b/docs/Node.js.html
index 935a53b..56aacd3 100644
--- a/docs/Node.js.html
+++ b/docs/Node.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/NumericAxis.js.html b/docs/NumericAxis.js.html
index c8d87b4..cce875d 100644
--- a/docs/NumericAxis.js.html
+++ b/docs/NumericAxis.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/ObjectAssert.js.html b/docs/ObjectAssert.js.html
index 0b6de9a..fc44fe5 100644
--- a/docs/ObjectAssert.js.html
+++ b/docs/ObjectAssert.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/Overlay.js.html b/docs/Overlay.js.html
index 4e894fe..a80e295 100644
--- a/docs/Overlay.js.html
+++ b/docs/Overlay.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/OverlayManager.js.html b/docs/OverlayManager.js.html
index c697e1b..de47105 100644
--- a/docs/OverlayManager.js.html
+++ b/docs/OverlayManager.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/PageLinks.js.html b/docs/PageLinks.js.html
index 3e422e2..06d5c1d 100644
--- a/docs/PageLinks.js.html
+++ b/docs/PageLinks.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/Paginator.js.html b/docs/Paginator.js.html
index 3c7a9c7..55380a7 100644
--- a/docs/Paginator.js.html
+++ b/docs/Paginator.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/Panel.js.html b/docs/Panel.js.html
index d8ee3bc..e98a663 100644
--- a/docs/Panel.js.html
+++ b/docs/Panel.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/PieChart.js.html b/docs/PieChart.js.html
index 2158bb2..8c73a3b 100644
--- a/docs/PieChart.js.html
+++ b/docs/PieChart.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/PreviousPageLink.js.html b/docs/PreviousPageLink.js.html
index 9be9744..d6d1a2c 100644
--- a/docs/PreviousPageLink.js.html
+++ b/docs/PreviousPageLink.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/Profiler.js.html b/docs/Profiler.js.html
index 494b5fe..c1c77f2 100644
--- a/docs/Profiler.js.html
+++ b/docs/Profiler.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>profiler  <span class="subtitle">2.8.1</span></h3>
+        <h3>profiler  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_profiler.html" title="profiler">profiler</a>
                 
diff --git a/docs/ProgressBar.js.html b/docs/ProgressBar.js.html
index 604b29d..e26636d 100644
--- a/docs/ProgressBar.js.html
+++ b/docs/ProgressBar.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>ProgressBar Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>ProgressBar Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_progressbar.html" title="progressbar">progressbar</a>
                 
diff --git a/docs/RecordSet.js.html b/docs/RecordSet.js.html
index c948566..60b4888 100644
--- a/docs/RecordSet.js.html
+++ b/docs/RecordSet.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                 
diff --git a/docs/Region.js.html b/docs/Region.js.html
index b1664ab..6fceeb3 100644
--- a/docs/Region.js.html
+++ b/docs/Region.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                 
diff --git a/docs/RootNode.js.html b/docs/RootNode.js.html
index 0764c87..507ae8a 100644
--- a/docs/RootNode.js.html
+++ b/docs/RootNode.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/RowsPerPageDropDown.js.html b/docs/RowsPerPageDropDown.js.html
index b6786a7..45a0bb7 100644
--- a/docs/RowsPerPageDropDown.js.html
+++ b/docs/RowsPerPageDropDown.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/Scroll.js.html b/docs/Scroll.js.html
index 19442e4..5a8fe4a 100644
--- a/docs/Scroll.js.html
+++ b/docs/Scroll.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                 
diff --git a/docs/ScrollingDataTable.js.html b/docs/ScrollingDataTable.js.html
index 5ecaa30..6e55839 100644
--- a/docs/ScrollingDataTable.js.html
+++ b/docs/ScrollingDataTable.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                 
diff --git a/docs/Selector.js.html b/docs/Selector.js.html
index f949006..6e38b10 100644
--- a/docs/Selector.js.html
+++ b/docs/Selector.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Selector Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Selector Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_selector.html" title="selector">selector</a>
                 
diff --git a/docs/Series.js.html b/docs/Series.js.html
index 2bb0df4..7596084 100644
--- a/docs/Series.js.html
+++ b/docs/Series.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/SimpleDialog.js.html b/docs/SimpleDialog.js.html
index 6c77919..9ab3968 100644
--- a/docs/SimpleDialog.js.html
+++ b/docs/SimpleDialog.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/Slider.js.html b/docs/Slider.js.html
index 2ea0a9c..42f5ac9 100644
--- a/docs/Slider.js.html
+++ b/docs/Slider.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Slider Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Slider Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_slider.html" title="slider">slider</a>
                 
diff --git a/docs/SliderThumb.js.html b/docs/SliderThumb.js.html
index 6d54c62..6c78015 100644
--- a/docs/SliderThumb.js.html
+++ b/docs/SliderThumb.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Slider Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Slider Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_slider.html" title="slider">slider</a>
                 
diff --git a/docs/Storage.js.html b/docs/Storage.js.html
index c535646..e51b0e7 100644
--- a/docs/Storage.js.html
+++ b/docs/Storage.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/StorageEngineGears.js.html b/docs/StorageEngineGears.js.html
index f3c4d1f..856e49c 100644
--- a/docs/StorageEngineGears.js.html
+++ b/docs/StorageEngineGears.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/StorageEngineHTML5.js.html b/docs/StorageEngineHTML5.js.html
index 2b22334..65b4897 100644
--- a/docs/StorageEngineHTML5.js.html
+++ b/docs/StorageEngineHTML5.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/StorageEngineKeyed.js.html b/docs/StorageEngineKeyed.js.html
index 70f284e..c683adf 100644
--- a/docs/StorageEngineKeyed.js.html
+++ b/docs/StorageEngineKeyed.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/StorageEngineSWF.js.html b/docs/StorageEngineSWF.js.html
index 0a4ca8c..eaf7a80 100644
--- a/docs/StorageEngineSWF.js.html
+++ b/docs/StorageEngineSWF.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/StorageEvent.js.html b/docs/StorageEvent.js.html
index 028a4fd..b95e19e 100644
--- a/docs/StorageEvent.js.html
+++ b/docs/StorageEvent.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/StorageManager.js.html b/docs/StorageManager.js.html
index 8094d98..bcbe0c0 100644
--- a/docs/StorageManager.js.html
+++ b/docs/StorageManager.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/TVAnim.js.html b/docs/TVAnim.js.html
index ee9d33a..15dc844 100644
--- a/docs/TVAnim.js.html
+++ b/docs/TVAnim.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/TVFadeIn.js.html b/docs/TVFadeIn.js.html
index 3518e0f..92e8835 100644
--- a/docs/TVFadeIn.js.html
+++ b/docs/TVFadeIn.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/TVFadeOut.js.html b/docs/TVFadeOut.js.html
index 5a9a715..d5fb14c 100644
--- a/docs/TVFadeOut.js.html
+++ b/docs/TVFadeOut.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/Tab.js.html b/docs/Tab.js.html
index d94a805..311aa8e 100644
--- a/docs/Tab.js.html
+++ b/docs/Tab.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>tabview  <span class="subtitle">2.8.1</span></h3>
+        <h3>tabview  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_tabview.html" title="tabview">tabview</a>
                 
diff --git a/docs/TabView.js.html b/docs/TabView.js.html
index 927769d..078a5e8 100644
--- a/docs/TabView.js.html
+++ b/docs/TabView.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>tabview  <span class="subtitle">2.8.1</span></h3>
+        <h3>tabview  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_tabview.html" title="tabview">tabview</a>
                 
diff --git a/docs/TestCase.js.html b/docs/TestCase.js.html
index 59f7727..09b4900 100644
--- a/docs/TestCase.js.html
+++ b/docs/TestCase.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/TestFormat.js.html b/docs/TestFormat.js.html
index c236488..0bab884 100644
--- a/docs/TestFormat.js.html
+++ b/docs/TestFormat.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/TestLogger.js.html b/docs/TestLogger.js.html
index fc8aa65..c97e599 100644
--- a/docs/TestLogger.js.html
+++ b/docs/TestLogger.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/TestManager.js.html b/docs/TestManager.js.html
index deca3c1..238c655 100644
--- a/docs/TestManager.js.html
+++ b/docs/TestManager.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/TestReporter.js.html b/docs/TestReporter.js.html
index d9f2168..8b9e82e 100644
--- a/docs/TestReporter.js.html
+++ b/docs/TestReporter.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/TestRunner.js.html b/docs/TestRunner.js.html
index 6e36d06..2eb64cb 100644
--- a/docs/TestRunner.js.html
+++ b/docs/TestRunner.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/TestSuite.js.html b/docs/TestSuite.js.html
index feb0e90..f075e1b 100644
--- a/docs/TestSuite.js.html
+++ b/docs/TestSuite.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/TextNode.js.html b/docs/TextNode.js.html
index 1f3c25c..dc06ad7 100644
--- a/docs/TextNode.js.html
+++ b/docs/TextNode.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/TimeAxis.js.html b/docs/TimeAxis.js.html
index 002b8e7..f3650fa 100644
--- a/docs/TimeAxis.js.html
+++ b/docs/TimeAxis.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/Tooltip.js.html b/docs/Tooltip.js.html
index 12fa1c7..9235a88 100644
--- a/docs/Tooltip.js.html
+++ b/docs/Tooltip.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/TreeView.js.html b/docs/TreeView.js.html
index 73c3bbc..bf09c5c 100644
--- a/docs/TreeView.js.html
+++ b/docs/TreeView.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/TreeViewEd.js.html b/docs/TreeViewEd.js.html
index 044f615..39d4ce9 100644
--- a/docs/TreeViewEd.js.html
+++ b/docs/TreeViewEd.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/Type.js.html b/docs/Type.js.html
index d34bb38..cac811e 100644
--- a/docs/Type.js.html
+++ b/docs/Type.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                 
diff --git a/docs/UIComponentTemplate.js.html b/docs/UIComponentTemplate.js.html
index a74f5c6..2ab3193 100644
--- a/docs/UIComponentTemplate.js.html
+++ b/docs/UIComponentTemplate.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/Uploader.js.html b/docs/Uploader.js.html
index 755373e..8fb63b9 100644
--- a/docs/Uploader.js.html
+++ b/docs/Uploader.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Uploader  <span class="subtitle">2.8.1</span></h3>
+        <h3>Uploader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_uploader.html" title="uploader">uploader</a>
                 
diff --git a/docs/UserAction.js.html b/docs/UserAction.js.html
index d4461b7..472ac58 100644
--- a/docs/UserAction.js.html
+++ b/docs/UserAction.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>event-simulate  <span class="subtitle">2.8.1</span></h3>
+        <h3>event-simulate  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event-simulate.html" title="event-simulate">event-simulate</a>
                 
diff --git a/docs/YAHOO.env.html b/docs/YAHOO.env.html
index 6edca8d..7859812 100644
--- a/docs/YAHOO.env.html
+++ b/docs/YAHOO.env.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                  > YAHOO.env 
diff --git a/docs/YAHOO.env.ua.html b/docs/YAHOO.env.ua.html
index 963b095..3c1c5ee 100644
--- a/docs/YAHOO.env.ua.html
+++ b/docs/YAHOO.env.ua.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                  > YAHOO.env.ua 
diff --git a/docs/YAHOO.html b/docs/YAHOO.html
index 87c2578..ce9dbcf 100644
--- a/docs/YAHOO.html
+++ b/docs/YAHOO.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                  > YAHOO 
diff --git a/docs/YAHOO.js.html b/docs/YAHOO.js.html
index 8e8ea46..cb59264 100644
--- a/docs/YAHOO.js.html
+++ b/docs/YAHOO.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                 
diff --git a/docs/YAHOO.lang.JSON.html b/docs/YAHOO.lang.JSON.html
index 1b0d624..b989b0d 100644
--- a/docs/YAHOO.lang.JSON.html
+++ b/docs/YAHOO.lang.JSON.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>json  <span class="subtitle">2.8.1</span></h3>
+        <h3>json  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_json.html" title="json">json</a>
                  > YAHOO.lang.JSON 
diff --git a/docs/YAHOO.lang.html b/docs/YAHOO.lang.html
index de92f76..8f12060 100644
--- a/docs/YAHOO.lang.html
+++ b/docs/YAHOO.lang.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                  > YAHOO.lang 
diff --git a/docs/YAHOO.tool.Profiler.html b/docs/YAHOO.tool.Profiler.html
index 19ede28..1ec8446 100644
--- a/docs/YAHOO.tool.Profiler.html
+++ b/docs/YAHOO.tool.Profiler.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>profiler  <span class="subtitle">2.8.1</span></h3>
+        <h3>profiler  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_profiler.html" title="profiler">profiler</a>
                  > YAHOO.tool.Profiler 
diff --git a/docs/YAHOO.tool.TestCase.Wait.html b/docs/YAHOO.tool.TestCase.Wait.html
index 86a1e52..57006a7 100644
--- a/docs/YAHOO.tool.TestCase.Wait.html
+++ b/docs/YAHOO.tool.TestCase.Wait.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.tool.TestCase.Wait 
diff --git a/docs/YAHOO.tool.TestCase.html b/docs/YAHOO.tool.TestCase.html
index fd8b33e..0f1e2f5 100644
--- a/docs/YAHOO.tool.TestCase.html
+++ b/docs/YAHOO.tool.TestCase.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.tool.TestCase 
diff --git a/docs/YAHOO.tool.TestLogger.html b/docs/YAHOO.tool.TestLogger.html
index 71a1de2..b616ae5 100644
--- a/docs/YAHOO.tool.TestLogger.html
+++ b/docs/YAHOO.tool.TestLogger.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.tool.TestLogger 
diff --git a/docs/YAHOO.tool.TestManager.html b/docs/YAHOO.tool.TestManager.html
index af1bab1..69c8bbc 100644
--- a/docs/YAHOO.tool.TestManager.html
+++ b/docs/YAHOO.tool.TestManager.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.tool.TestManager 
diff --git a/docs/YAHOO.tool.TestNode.html b/docs/YAHOO.tool.TestNode.html
index c7e1bb4..f2616e8 100644
--- a/docs/YAHOO.tool.TestNode.html
+++ b/docs/YAHOO.tool.TestNode.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.tool.TestNode 
diff --git a/docs/YAHOO.tool.TestReporter.html b/docs/YAHOO.tool.TestReporter.html
index 9882f8a..99b7680 100644
--- a/docs/YAHOO.tool.TestReporter.html
+++ b/docs/YAHOO.tool.TestReporter.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.tool.TestReporter 
diff --git a/docs/YAHOO.tool.TestRunner.html b/docs/YAHOO.tool.TestRunner.html
index 09a5ebe..4280c8b 100644
--- a/docs/YAHOO.tool.TestRunner.html
+++ b/docs/YAHOO.tool.TestRunner.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.tool.TestRunner 
diff --git a/docs/YAHOO.tool.TestSuite.html b/docs/YAHOO.tool.TestSuite.html
index 358b903..29cc904 100644
--- a/docs/YAHOO.tool.TestSuite.html
+++ b/docs/YAHOO.tool.TestSuite.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.tool.TestSuite 
diff --git a/docs/YAHOO.util.Anim.html b/docs/YAHOO.util.Anim.html
index 9c63076..3abef6a 100644
--- a/docs/YAHOO.util.Anim.html
+++ b/docs/YAHOO.util.Anim.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                  > YAHOO.util.Anim 
diff --git a/docs/YAHOO.util.AnimMgr.html b/docs/YAHOO.util.AnimMgr.html
index 604a3f4..044f614 100644
--- a/docs/YAHOO.util.AnimMgr.html
+++ b/docs/YAHOO.util.AnimMgr.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                  > YAHOO.util.AnimMgr 
diff --git a/docs/YAHOO.util.ArrayAssert.html b/docs/YAHOO.util.ArrayAssert.html
index 60c2e60..ff5fc54 100644
--- a/docs/YAHOO.util.ArrayAssert.html
+++ b/docs/YAHOO.util.ArrayAssert.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.ArrayAssert 
diff --git a/docs/YAHOO.util.Assert.html b/docs/YAHOO.util.Assert.html
index 8800b10..2594124 100644
--- a/docs/YAHOO.util.Assert.html
+++ b/docs/YAHOO.util.Assert.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.Assert 
diff --git a/docs/YAHOO.util.AssertionError.html b/docs/YAHOO.util.AssertionError.html
index bf16904..599f1e2 100644
--- a/docs/YAHOO.util.AssertionError.html
+++ b/docs/YAHOO.util.AssertionError.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.AssertionError 
diff --git a/docs/YAHOO.util.Attribute.html b/docs/YAHOO.util.Attribute.html
index 68cd818..01bf09e 100644
--- a/docs/YAHOO.util.Attribute.html
+++ b/docs/YAHOO.util.Attribute.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>element  <span class="subtitle">2.8.1</span></h3>
+        <h3>element  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element.html" title="element">element</a>
                  > YAHOO.util.Attribute 
diff --git a/docs/YAHOO.util.AttributeProvider.html b/docs/YAHOO.util.AttributeProvider.html
index c6f291b..f743aa6 100644
--- a/docs/YAHOO.util.AttributeProvider.html
+++ b/docs/YAHOO.util.AttributeProvider.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>element  <span class="subtitle">2.8.1</span></h3>
+        <h3>element  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element.html" title="element">element</a>
                  > YAHOO.util.AttributeProvider 
diff --git a/docs/YAHOO.util.Bezier.html b/docs/YAHOO.util.Bezier.html
index 627d371..3269678 100644
--- a/docs/YAHOO.util.Bezier.html
+++ b/docs/YAHOO.util.Bezier.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                  > YAHOO.util.Bezier 
diff --git a/docs/YAHOO.util.Chain.html b/docs/YAHOO.util.Chain.html
index 722e6c1..2976b14 100644
--- a/docs/YAHOO.util.Chain.html
+++ b/docs/YAHOO.util.Chain.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.util.Chain 
diff --git a/docs/YAHOO.util.Color.html b/docs/YAHOO.util.Color.html
index 34fb356..bbe20bd 100644
--- a/docs/YAHOO.util.Color.html
+++ b/docs/YAHOO.util.Color.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>colorpicker  <span class="subtitle">2.8.1</span></h3>
+        <h3>colorpicker  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_colorpicker.html" title="colorpicker">colorpicker</a>
                  > YAHOO.util.Color 
diff --git a/docs/YAHOO.util.ColorAnim.html b/docs/YAHOO.util.ColorAnim.html
index 8f25e12..7ef2fdc 100644
--- a/docs/YAHOO.util.ColorAnim.html
+++ b/docs/YAHOO.util.ColorAnim.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                  > YAHOO.util.ColorAnim 
diff --git a/docs/YAHOO.util.ColumnDD.html b/docs/YAHOO.util.ColumnDD.html
index c928055..b0692e2 100644
--- a/docs/YAHOO.util.ColumnDD.html
+++ b/docs/YAHOO.util.ColumnDD.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.util.ColumnDD 
diff --git a/docs/YAHOO.util.ColumnResizer.html b/docs/YAHOO.util.ColumnResizer.html
index 0063719..e9df1ba 100644
--- a/docs/YAHOO.util.ColumnResizer.html
+++ b/docs/YAHOO.util.ColumnResizer.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.util.ColumnResizer 
diff --git a/docs/YAHOO.util.ComparisonFailure.html b/docs/YAHOO.util.ComparisonFailure.html
index 77f480f..a206067 100644
--- a/docs/YAHOO.util.ComparisonFailure.html
+++ b/docs/YAHOO.util.ComparisonFailure.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.ComparisonFailure 
diff --git a/docs/YAHOO.util.Config.html b/docs/YAHOO.util.Config.html
index 724d4fe..a4edaf5 100644
--- a/docs/YAHOO.util.Config.html
+++ b/docs/YAHOO.util.Config.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.util.Config 
diff --git a/docs/YAHOO.util.Connect.html b/docs/YAHOO.util.Connect.html
index abddd62..f43ea4a 100644
--- a/docs/YAHOO.util.Connect.html
+++ b/docs/YAHOO.util.Connect.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>connection  <span class="subtitle">2.8.1</span></h3>
+        <h3>connection  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_connection.html" title="connection">connection</a>
                  > YAHOO.util.Connect 
diff --git a/docs/YAHOO.util.Cookie.html b/docs/YAHOO.util.Cookie.html
index 0b456b7..b3584c4 100644
--- a/docs/YAHOO.util.Cookie.html
+++ b/docs/YAHOO.util.Cookie.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>cookie  <span class="subtitle">2.8.1</span></h3>
+        <h3>cookie  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_cookie.html" title="cookie">cookie</a>
                  > YAHOO.util.Cookie 
diff --git a/docs/YAHOO.util.CustomEvent.html b/docs/YAHOO.util.CustomEvent.html
index 9b6a1ab..f62ecef 100644
--- a/docs/YAHOO.util.CustomEvent.html
+++ b/docs/YAHOO.util.CustomEvent.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                  > YAHOO.util.CustomEvent 
diff --git a/docs/YAHOO.util.DD.html b/docs/YAHOO.util.DD.html
index 09175b1..5a01054 100644
--- a/docs/YAHOO.util.DD.html
+++ b/docs/YAHOO.util.DD.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                  > YAHOO.util.DD 
diff --git a/docs/YAHOO.util.DDProxy.html b/docs/YAHOO.util.DDProxy.html
index 7604bbb..4c201c5 100644
--- a/docs/YAHOO.util.DDProxy.html
+++ b/docs/YAHOO.util.DDProxy.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                  > YAHOO.util.DDProxy 
diff --git a/docs/YAHOO.util.DDTarget.html b/docs/YAHOO.util.DDTarget.html
index ce7944b..a5b4a9b 100644
--- a/docs/YAHOO.util.DDTarget.html
+++ b/docs/YAHOO.util.DDTarget.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                  > YAHOO.util.DDTarget 
diff --git a/docs/YAHOO.util.DataSource.html b/docs/YAHOO.util.DataSource.html
index 4f54dbf..8dda29e 100644
--- a/docs/YAHOO.util.DataSource.html
+++ b/docs/YAHOO.util.DataSource.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.DataSource 
diff --git a/docs/YAHOO.util.DataSourceBase.html b/docs/YAHOO.util.DataSourceBase.html
index 228cb50..e437c40 100644
--- a/docs/YAHOO.util.DataSourceBase.html
+++ b/docs/YAHOO.util.DataSourceBase.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.DataSourceBase 
diff --git a/docs/YAHOO.util.Date.html b/docs/YAHOO.util.Date.html
index 306ce56..9974bae 100644
--- a/docs/YAHOO.util.Date.html
+++ b/docs/YAHOO.util.Date.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.Date 
diff --git a/docs/YAHOO.util.DateAssert.html b/docs/YAHOO.util.DateAssert.html
index 967e055..6113030 100644
--- a/docs/YAHOO.util.DateAssert.html
+++ b/docs/YAHOO.util.DateAssert.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.DateAssert 
diff --git a/docs/YAHOO.util.DateLocale.html b/docs/YAHOO.util.DateLocale.html
index 991584e..fc9c10d 100644
--- a/docs/YAHOO.util.DateLocale.html
+++ b/docs/YAHOO.util.DateLocale.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.DateLocale 
diff --git a/docs/YAHOO.util.Dom.Color.html b/docs/YAHOO.util.Dom.Color.html
index 9bf0112..b7230f5 100644
--- a/docs/YAHOO.util.Dom.Color.html
+++ b/docs/YAHOO.util.Dom.Color.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                  > YAHOO.util.Dom.Color 
diff --git a/docs/YAHOO.util.Dom.IEStyle.html b/docs/YAHOO.util.Dom.IEStyle.html
index f8f6cc2..3bc1fe5 100644
--- a/docs/YAHOO.util.Dom.IEStyle.html
+++ b/docs/YAHOO.util.Dom.IEStyle.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                  > YAHOO.util.Dom.IEStyle 
diff --git a/docs/YAHOO.util.Dom.html b/docs/YAHOO.util.Dom.html
index 3cedf64..60be4b4 100644
--- a/docs/YAHOO.util.Dom.html
+++ b/docs/YAHOO.util.Dom.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                  > YAHOO.util.Dom 
diff --git a/docs/YAHOO.util.DragDrop.html b/docs/YAHOO.util.DragDrop.html
index ca46b28..1c96f48 100644
--- a/docs/YAHOO.util.DragDrop.html
+++ b/docs/YAHOO.util.DragDrop.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                  > YAHOO.util.DragDrop 
diff --git a/docs/YAHOO.util.DragDropMgr.ElementWrapper.html b/docs/YAHOO.util.DragDropMgr.ElementWrapper.html
index 65373a5..27a4bcf 100644
--- a/docs/YAHOO.util.DragDropMgr.ElementWrapper.html
+++ b/docs/YAHOO.util.DragDropMgr.ElementWrapper.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                  > YAHOO.util.DragDropMgr.ElementWrapper 
diff --git a/docs/YAHOO.util.DragDropMgr.html b/docs/YAHOO.util.DragDropMgr.html
index bd3d769..8f5d6fe 100644
--- a/docs/YAHOO.util.DragDropMgr.html
+++ b/docs/YAHOO.util.DragDropMgr.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                  > YAHOO.util.DragDropMgr 
diff --git a/docs/YAHOO.util.Easing.html b/docs/YAHOO.util.Easing.html
index 959fcaa..9f8b502 100644
--- a/docs/YAHOO.util.Easing.html
+++ b/docs/YAHOO.util.Easing.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                  > YAHOO.util.Easing 
diff --git a/docs/YAHOO.util.Element.html b/docs/YAHOO.util.Element.html
index 0ea4e25..cedee14 100644
--- a/docs/YAHOO.util.Element.html
+++ b/docs/YAHOO.util.Element.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>element  <span class="subtitle">2.8.1</span></h3>
+        <h3>element  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element.html" title="element">element</a>
                  > YAHOO.util.Element 
diff --git a/docs/YAHOO.util.Event.html b/docs/YAHOO.util.Event.html
index 91fa60a..9bad19e 100644
--- a/docs/YAHOO.util.Event.html
+++ b/docs/YAHOO.util.Event.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                  > YAHOO.util.Event 
diff --git a/docs/YAHOO.util.EventProvider.html b/docs/YAHOO.util.EventProvider.html
index 49058ad..fb6ad3c 100644
--- a/docs/YAHOO.util.EventProvider.html
+++ b/docs/YAHOO.util.EventProvider.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                  > YAHOO.util.EventProvider 
diff --git a/docs/YAHOO.util.FunctionDataSource.html b/docs/YAHOO.util.FunctionDataSource.html
index 0f7cc13..4a40724 100644
--- a/docs/YAHOO.util.FunctionDataSource.html
+++ b/docs/YAHOO.util.FunctionDataSource.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.FunctionDataSource 
diff --git a/docs/YAHOO.util.Get.html b/docs/YAHOO.util.Get.html
index dfbcc2d..2c42c7b 100644
--- a/docs/YAHOO.util.Get.html
+++ b/docs/YAHOO.util.Get.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>get  <span class="subtitle">2.8.1</span></h3>
+        <h3>get  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_get.html" title="get">get</a>
                  > YAHOO.util.Get 
diff --git a/docs/YAHOO.util.History.html b/docs/YAHOO.util.History.html
index 86d71bf..bdc96a8 100644
--- a/docs/YAHOO.util.History.html
+++ b/docs/YAHOO.util.History.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Browser History Manager  <span class="subtitle">2.8.1</span></h3>
+        <h3>Browser History Manager  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_history.html" title="history">history</a>
                  > YAHOO.util.History 
diff --git a/docs/YAHOO.util.ImageLoader.bgImgObj.html b/docs/YAHOO.util.ImageLoader.bgImgObj.html
index d9124bc..75d8353 100644
--- a/docs/YAHOO.util.ImageLoader.bgImgObj.html
+++ b/docs/YAHOO.util.ImageLoader.bgImgObj.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imageloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>imageloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imageloader.html" title="imageloader">imageloader</a>
                  > YAHOO.util.ImageLoader.bgImgObj 
diff --git a/docs/YAHOO.util.ImageLoader.group.html b/docs/YAHOO.util.ImageLoader.group.html
index 886d92d..3252f84 100644
--- a/docs/YAHOO.util.ImageLoader.group.html
+++ b/docs/YAHOO.util.ImageLoader.group.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imageloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>imageloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imageloader.html" title="imageloader">imageloader</a>
                  > YAHOO.util.ImageLoader.group 
diff --git a/docs/YAHOO.util.ImageLoader.imgObj.html b/docs/YAHOO.util.ImageLoader.imgObj.html
index d3afc06..e36ac2a 100644
--- a/docs/YAHOO.util.ImageLoader.imgObj.html
+++ b/docs/YAHOO.util.ImageLoader.imgObj.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imageloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>imageloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imageloader.html" title="imageloader">imageloader</a>
                  > YAHOO.util.ImageLoader.imgObj 
diff --git a/docs/YAHOO.util.ImageLoader.pngBgImgObj.html b/docs/YAHOO.util.ImageLoader.pngBgImgObj.html
index 7af51b3..177aaa5 100644
--- a/docs/YAHOO.util.ImageLoader.pngBgImgObj.html
+++ b/docs/YAHOO.util.ImageLoader.pngBgImgObj.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imageloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>imageloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imageloader.html" title="imageloader">imageloader</a>
                  > YAHOO.util.ImageLoader.pngBgImgObj 
diff --git a/docs/YAHOO.util.ImageLoader.srcImgObj.html b/docs/YAHOO.util.ImageLoader.srcImgObj.html
index a103330..ca97209 100644
--- a/docs/YAHOO.util.ImageLoader.srcImgObj.html
+++ b/docs/YAHOO.util.ImageLoader.srcImgObj.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imageloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>imageloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imageloader.html" title="imageloader">imageloader</a>
                  > YAHOO.util.ImageLoader.srcImgObj 
diff --git a/docs/YAHOO.util.KeyListener.html b/docs/YAHOO.util.KeyListener.html
index f3b22bf..75b346f 100644
--- a/docs/YAHOO.util.KeyListener.html
+++ b/docs/YAHOO.util.KeyListener.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                  > YAHOO.util.KeyListener 
diff --git a/docs/YAHOO.util.LocalDataSource.html b/docs/YAHOO.util.LocalDataSource.html
index 67d2056..9521960 100644
--- a/docs/YAHOO.util.LocalDataSource.html
+++ b/docs/YAHOO.util.LocalDataSource.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.LocalDataSource 
diff --git a/docs/YAHOO.util.Motion.html b/docs/YAHOO.util.Motion.html
index 263134e..b1b11cb 100644
--- a/docs/YAHOO.util.Motion.html
+++ b/docs/YAHOO.util.Motion.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                  > YAHOO.util.Motion 
diff --git a/docs/YAHOO.util.Number.html b/docs/YAHOO.util.Number.html
index 7a9c23f..2cebcf1 100644
--- a/docs/YAHOO.util.Number.html
+++ b/docs/YAHOO.util.Number.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.Number 
diff --git a/docs/YAHOO.util.ObjectAssert.html b/docs/YAHOO.util.ObjectAssert.html
index 5b63686..cf413a3 100644
--- a/docs/YAHOO.util.ObjectAssert.html
+++ b/docs/YAHOO.util.ObjectAssert.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.ObjectAssert 
diff --git a/docs/YAHOO.util.Point.html b/docs/YAHOO.util.Point.html
index 3acac55..63e3937 100644
--- a/docs/YAHOO.util.Point.html
+++ b/docs/YAHOO.util.Point.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                  > YAHOO.util.Point 
diff --git a/docs/YAHOO.util.Region.html b/docs/YAHOO.util.Region.html
index dc3005e..715e4eb 100644
--- a/docs/YAHOO.util.Region.html
+++ b/docs/YAHOO.util.Region.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                  > YAHOO.util.Region 
diff --git a/docs/YAHOO.util.Resize.html b/docs/YAHOO.util.Resize.html
index ad38e25..ed018e1 100644
--- a/docs/YAHOO.util.Resize.html
+++ b/docs/YAHOO.util.Resize.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>resize  <span class="subtitle">2.8.1</span></h3>
+        <h3>resize  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_resize.html" title="resize">resize</a>
                  > YAHOO.util.Resize 
diff --git a/docs/YAHOO.util.SWFDetect.html b/docs/YAHOO.util.SWFDetect.html
index f83651c..43cbb2f 100644
--- a/docs/YAHOO.util.SWFDetect.html
+++ b/docs/YAHOO.util.SWFDetect.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>swfdetect  <span class="subtitle">2.8.1</span></h3>
+        <h3>swfdetect  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swfdetect.html" title="swfdetect">swfdetect</a>
                  > YAHOO.util.SWFDetect 
diff --git a/docs/YAHOO.util.SWFStore.html b/docs/YAHOO.util.SWFStore.html
index ffd95a4..6192d3c 100644
--- a/docs/YAHOO.util.SWFStore.html
+++ b/docs/YAHOO.util.SWFStore.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>swfstore  <span class="subtitle">2.8.1</span></h3>
+        <h3>swfstore  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swfstore.html" title="swfstore">swfstore</a>
                  > YAHOO.util.SWFStore 
diff --git a/docs/YAHOO.util.ScriptNodeDataSource.html b/docs/YAHOO.util.ScriptNodeDataSource.html
index 880e1bf..8a82303 100644
--- a/docs/YAHOO.util.ScriptNodeDataSource.html
+++ b/docs/YAHOO.util.ScriptNodeDataSource.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.ScriptNodeDataSource 
diff --git a/docs/YAHOO.util.Scroll.html b/docs/YAHOO.util.Scroll.html
index ca6ed15..d5080cd 100644
--- a/docs/YAHOO.util.Scroll.html
+++ b/docs/YAHOO.util.Scroll.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                  > YAHOO.util.Scroll 
diff --git a/docs/YAHOO.util.Selector.html b/docs/YAHOO.util.Selector.html
index ff64f29..8453f4e 100644
--- a/docs/YAHOO.util.Selector.html
+++ b/docs/YAHOO.util.Selector.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Selector Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Selector Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_selector.html" title="selector">selector</a>
                  > YAHOO.util.Selector 
diff --git a/docs/YAHOO.util.ShouldError.html b/docs/YAHOO.util.ShouldError.html
index 00df38f..2027a05 100644
--- a/docs/YAHOO.util.ShouldError.html
+++ b/docs/YAHOO.util.ShouldError.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.ShouldError 
diff --git a/docs/YAHOO.util.ShouldFail.html b/docs/YAHOO.util.ShouldFail.html
index 6fba8cb..25f35a4 100644
--- a/docs/YAHOO.util.ShouldFail.html
+++ b/docs/YAHOO.util.ShouldFail.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.ShouldFail 
diff --git a/docs/YAHOO.util.Sort.html b/docs/YAHOO.util.Sort.html
index c91089b..4872e6f 100644
--- a/docs/YAHOO.util.Sort.html
+++ b/docs/YAHOO.util.Sort.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.util.Sort 
diff --git a/docs/YAHOO.util.Storage.html b/docs/YAHOO.util.Storage.html
index a10efb4..485505a 100644
--- a/docs/YAHOO.util.Storage.html
+++ b/docs/YAHOO.util.Storage.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                  > YAHOO.util.Storage 
diff --git a/docs/YAHOO.util.StorageEngineGears.html b/docs/YAHOO.util.StorageEngineGears.html
index 7709ad1..76e323f 100644
--- a/docs/YAHOO.util.StorageEngineGears.html
+++ b/docs/YAHOO.util.StorageEngineGears.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                  > YAHOO.util.StorageEngineGears 
diff --git a/docs/YAHOO.util.StorageEngineHTML5.html b/docs/YAHOO.util.StorageEngineHTML5.html
index 154f5ea..29db013 100644
--- a/docs/YAHOO.util.StorageEngineHTML5.html
+++ b/docs/YAHOO.util.StorageEngineHTML5.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                  > YAHOO.util.StorageEngineHTML5 
diff --git a/docs/YAHOO.util.StorageEngineKeyed.html b/docs/YAHOO.util.StorageEngineKeyed.html
index 1bc0f46..a7c0974 100644
--- a/docs/YAHOO.util.StorageEngineKeyed.html
+++ b/docs/YAHOO.util.StorageEngineKeyed.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                  > YAHOO.util.StorageEngineKeyed 
diff --git a/docs/YAHOO.util.StorageEngineSWF.html b/docs/YAHOO.util.StorageEngineSWF.html
index 2fdd14e..57e5060 100644
--- a/docs/YAHOO.util.StorageEngineSWF.html
+++ b/docs/YAHOO.util.StorageEngineSWF.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                  > YAHOO.util.StorageEngineSWF 
diff --git a/docs/YAHOO.util.StorageEvent.html b/docs/YAHOO.util.StorageEvent.html
index 643fd20..e52e4aa 100644
--- a/docs/YAHOO.util.StorageEvent.html
+++ b/docs/YAHOO.util.StorageEvent.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                  > YAHOO.util.StorageEvent 
diff --git a/docs/YAHOO.util.StorageManager.html b/docs/YAHOO.util.StorageManager.html
index 407ae3a..a0126d3 100644
--- a/docs/YAHOO.util.StorageManager.html
+++ b/docs/YAHOO.util.StorageManager.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                  > YAHOO.util.StorageManager 
diff --git a/docs/YAHOO.util.StyleSheet.html b/docs/YAHOO.util.StyleSheet.html
index ae32ceb..6aace25 100644
--- a/docs/YAHOO.util.StyleSheet.html
+++ b/docs/YAHOO.util.StyleSheet.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>stylesheet  <span class="subtitle">2.8.1</span></h3>
+        <h3>stylesheet  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_stylesheet.html" title="stylesheet">stylesheet</a>
                  > YAHOO.util.StyleSheet 
diff --git a/docs/YAHOO.util.Subscriber.html b/docs/YAHOO.util.Subscriber.html
index e263401..aa40898 100644
--- a/docs/YAHOO.util.Subscriber.html
+++ b/docs/YAHOO.util.Subscriber.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                  > YAHOO.util.Subscriber 
diff --git a/docs/YAHOO.util.UnexpectedError.html b/docs/YAHOO.util.UnexpectedError.html
index 89eab62..d8c89b0 100644
--- a/docs/YAHOO.util.UnexpectedError.html
+++ b/docs/YAHOO.util.UnexpectedError.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.UnexpectedError 
diff --git a/docs/YAHOO.util.UnexpectedValue.html b/docs/YAHOO.util.UnexpectedValue.html
index 91b5bb0..72407d1 100644
--- a/docs/YAHOO.util.UnexpectedValue.html
+++ b/docs/YAHOO.util.UnexpectedValue.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                  > YAHOO.util.UnexpectedValue 
diff --git a/docs/YAHOO.util.UserAction.html b/docs/YAHOO.util.UserAction.html
index 439771a..4b96e5d 100644
--- a/docs/YAHOO.util.UserAction.html
+++ b/docs/YAHOO.util.UserAction.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>event-simulate  <span class="subtitle">2.8.1</span></h3>
+        <h3>event-simulate  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event-simulate.html" title="event-simulate">event-simulate</a>
                  > YAHOO.util.UserAction 
diff --git a/docs/YAHOO.util.XHRDataSource.html b/docs/YAHOO.util.XHRDataSource.html
index 40627e4..6045b20 100644
--- a/docs/YAHOO.util.XHRDataSource.html
+++ b/docs/YAHOO.util.XHRDataSource.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                  > YAHOO.util.XHRDataSource 
diff --git a/docs/YAHOO.util.YUILoader.html b/docs/YAHOO.util.YUILoader.html
index 00b531d..071daf4 100644
--- a/docs/YAHOO.util.YUILoader.html
+++ b/docs/YAHOO.util.YUILoader.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuiloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuiloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuiloader.html" title="yuiloader">yuiloader</a>
                  > YAHOO.util.YUILoader 
diff --git a/docs/YAHOO.widget.AutoComplete.html b/docs/YAHOO.widget.AutoComplete.html
index 6a5df5a..6669b4b 100644
--- a/docs/YAHOO.widget.AutoComplete.html
+++ b/docs/YAHOO.widget.AutoComplete.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>AutoComplete Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>AutoComplete Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_autocomplete.html" title="autocomplete">autocomplete</a>
                  > YAHOO.widget.AutoComplete 
diff --git a/docs/YAHOO.widget.Axis.html b/docs/YAHOO.widget.Axis.html
index dd1f439..ab3e3d0 100644
--- a/docs/YAHOO.widget.Axis.html
+++ b/docs/YAHOO.widget.Axis.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.Axis 
diff --git a/docs/YAHOO.widget.BarChart.html b/docs/YAHOO.widget.BarChart.html
index df4c18f..89eb212 100644
--- a/docs/YAHOO.widget.BarChart.html
+++ b/docs/YAHOO.widget.BarChart.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.BarChart 
diff --git a/docs/YAHOO.widget.BarSeries.html b/docs/YAHOO.widget.BarSeries.html
index fd16997..8f0473d 100644
--- a/docs/YAHOO.widget.BarSeries.html
+++ b/docs/YAHOO.widget.BarSeries.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.BarSeries 
diff --git a/docs/YAHOO.widget.BaseCellEditor.html b/docs/YAHOO.widget.BaseCellEditor.html
index d9211c0..c948066 100644
--- a/docs/YAHOO.widget.BaseCellEditor.html
+++ b/docs/YAHOO.widget.BaseCellEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.BaseCellEditor 
diff --git a/docs/YAHOO.widget.Button.html b/docs/YAHOO.widget.Button.html
index dac71b5..d885a44 100644
--- a/docs/YAHOO.widget.Button.html
+++ b/docs/YAHOO.widget.Button.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Button  <span class="subtitle">2.8.1</span></h3>
+        <h3>Button  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_button.html" title="button">button</a>
                  > YAHOO.widget.Button 
diff --git a/docs/YAHOO.widget.ButtonGroup.html b/docs/YAHOO.widget.ButtonGroup.html
index 1c34182..9c443fe 100644
--- a/docs/YAHOO.widget.ButtonGroup.html
+++ b/docs/YAHOO.widget.ButtonGroup.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Button  <span class="subtitle">2.8.1</span></h3>
+        <h3>Button  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_button.html" title="button">button</a>
                  > YAHOO.widget.ButtonGroup 
diff --git a/docs/YAHOO.widget.Calendar.html b/docs/YAHOO.widget.Calendar.html
index 9950edc..1cf696c 100644
--- a/docs/YAHOO.widget.Calendar.html
+++ b/docs/YAHOO.widget.Calendar.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                  > YAHOO.widget.Calendar 
diff --git a/docs/YAHOO.widget.Calendar2up.html b/docs/YAHOO.widget.Calendar2up.html
index 819dfb5..d33ee1a 100644
--- a/docs/YAHOO.widget.Calendar2up.html
+++ b/docs/YAHOO.widget.Calendar2up.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                  > YAHOO.widget.Calendar2up 
diff --git a/docs/YAHOO.widget.CalendarGroup.html b/docs/YAHOO.widget.CalendarGroup.html
index e47e09c..2349ddf 100644
--- a/docs/YAHOO.widget.CalendarGroup.html
+++ b/docs/YAHOO.widget.CalendarGroup.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                  > YAHOO.widget.CalendarGroup 
diff --git a/docs/YAHOO.widget.CalendarNavigator.html b/docs/YAHOO.widget.CalendarNavigator.html
index 4431ae7..155bb41 100644
--- a/docs/YAHOO.widget.CalendarNavigator.html
+++ b/docs/YAHOO.widget.CalendarNavigator.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                  > YAHOO.widget.CalendarNavigator 
diff --git a/docs/YAHOO.widget.Calendar_Core.html b/docs/YAHOO.widget.Calendar_Core.html
index d5650cc..e94440b 100644
--- a/docs/YAHOO.widget.Calendar_Core.html
+++ b/docs/YAHOO.widget.Calendar_Core.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                  > YAHOO.widget.Calendar_Core 
diff --git a/docs/YAHOO.widget.Carousel.html b/docs/YAHOO.widget.Carousel.html
index 61c25a6..c57f0a9 100644
--- a/docs/YAHOO.widget.Carousel.html
+++ b/docs/YAHOO.widget.Carousel.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Carousel Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Carousel Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_carousel.html" title="carousel">carousel</a>
                  > YAHOO.widget.Carousel 
diff --git a/docs/YAHOO.widget.CartesianChart.html b/docs/YAHOO.widget.CartesianChart.html
index ae00880..851555e 100644
--- a/docs/YAHOO.widget.CartesianChart.html
+++ b/docs/YAHOO.widget.CartesianChart.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.CartesianChart 
diff --git a/docs/YAHOO.widget.CartesianSeries.html b/docs/YAHOO.widget.CartesianSeries.html
index a06d4ce..fd74436 100644
--- a/docs/YAHOO.widget.CartesianSeries.html
+++ b/docs/YAHOO.widget.CartesianSeries.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.CartesianSeries 
diff --git a/docs/YAHOO.widget.CategoryAxis.html b/docs/YAHOO.widget.CategoryAxis.html
index 73ef573..b212d9d 100644
--- a/docs/YAHOO.widget.CategoryAxis.html
+++ b/docs/YAHOO.widget.CategoryAxis.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.CategoryAxis 
diff --git a/docs/YAHOO.widget.CellEditor.html b/docs/YAHOO.widget.CellEditor.html
index 0cb6b9a..7a13faa 100644
--- a/docs/YAHOO.widget.CellEditor.html
+++ b/docs/YAHOO.widget.CellEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.CellEditor 
diff --git a/docs/YAHOO.widget.Chart.html b/docs/YAHOO.widget.Chart.html
index 8207ccd..06e3727 100644
--- a/docs/YAHOO.widget.Chart.html
+++ b/docs/YAHOO.widget.Chart.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.Chart 
diff --git a/docs/YAHOO.widget.CheckboxCellEditor.html b/docs/YAHOO.widget.CheckboxCellEditor.html
index 5defe63..63af2f4 100644
--- a/docs/YAHOO.widget.CheckboxCellEditor.html
+++ b/docs/YAHOO.widget.CheckboxCellEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.CheckboxCellEditor 
diff --git a/docs/YAHOO.widget.ColorPicker.html b/docs/YAHOO.widget.ColorPicker.html
index 39ae2ca..8149028 100644
--- a/docs/YAHOO.widget.ColorPicker.html
+++ b/docs/YAHOO.widget.ColorPicker.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>colorpicker  <span class="subtitle">2.8.1</span></h3>
+        <h3>colorpicker  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_colorpicker.html" title="colorpicker">colorpicker</a>
                  > YAHOO.widget.ColorPicker 
diff --git a/docs/YAHOO.widget.Column.html b/docs/YAHOO.widget.Column.html
index 8cbbc57..d8c2b90 100644
--- a/docs/YAHOO.widget.Column.html
+++ b/docs/YAHOO.widget.Column.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.Column 
diff --git a/docs/YAHOO.widget.ColumnChart.html b/docs/YAHOO.widget.ColumnChart.html
index 7272c29..95aabbd 100644
--- a/docs/YAHOO.widget.ColumnChart.html
+++ b/docs/YAHOO.widget.ColumnChart.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.ColumnChart 
diff --git a/docs/YAHOO.widget.ColumnSeries.html b/docs/YAHOO.widget.ColumnSeries.html
index d07f3f7..f8e4ea0 100644
--- a/docs/YAHOO.widget.ColumnSeries.html
+++ b/docs/YAHOO.widget.ColumnSeries.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.ColumnSeries 
diff --git a/docs/YAHOO.widget.ColumnSet.html b/docs/YAHOO.widget.ColumnSet.html
index 3f55d05..c964d02 100644
--- a/docs/YAHOO.widget.ColumnSet.html
+++ b/docs/YAHOO.widget.ColumnSet.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.ColumnSet 
diff --git a/docs/YAHOO.widget.ContainerEffect.html b/docs/YAHOO.widget.ContainerEffect.html
index c298014..b6daeee 100644
--- a/docs/YAHOO.widget.ContainerEffect.html
+++ b/docs/YAHOO.widget.ContainerEffect.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.widget.ContainerEffect 
diff --git a/docs/YAHOO.widget.ContextMenu.html b/docs/YAHOO.widget.ContextMenu.html
index 1148e8f..670cc26 100644
--- a/docs/YAHOO.widget.ContextMenu.html
+++ b/docs/YAHOO.widget.ContextMenu.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                  > YAHOO.widget.ContextMenu 
diff --git a/docs/YAHOO.widget.ContextMenuItem.html b/docs/YAHOO.widget.ContextMenuItem.html
index 572ac3e..392cd41 100644
--- a/docs/YAHOO.widget.ContextMenuItem.html
+++ b/docs/YAHOO.widget.ContextMenuItem.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                  > YAHOO.widget.ContextMenuItem 
diff --git a/docs/YAHOO.widget.DataTable.html b/docs/YAHOO.widget.DataTable.html
index 6fdcc8d..acc42c0 100644
--- a/docs/YAHOO.widget.DataTable.html
+++ b/docs/YAHOO.widget.DataTable.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.DataTable 
diff --git a/docs/YAHOO.widget.DateCellEditor.html b/docs/YAHOO.widget.DateCellEditor.html
index 89f022c..e0d306c 100644
--- a/docs/YAHOO.widget.DateCellEditor.html
+++ b/docs/YAHOO.widget.DateCellEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.DateCellEditor 
diff --git a/docs/YAHOO.widget.DateMath.html b/docs/YAHOO.widget.DateMath.html
index 920c51e..a703d4e 100644
--- a/docs/YAHOO.widget.DateMath.html
+++ b/docs/YAHOO.widget.DateMath.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>datemath  <span class="subtitle">2.8.1</span></h3>
+        <h3>datemath  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datemath.html" title="datemath">datemath</a>
                  > YAHOO.widget.DateMath 
diff --git a/docs/YAHOO.widget.DateNode.html b/docs/YAHOO.widget.DateNode.html
index 46cf963..9d9f125 100644
--- a/docs/YAHOO.widget.DateNode.html
+++ b/docs/YAHOO.widget.DateNode.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.DateNode 
diff --git a/docs/YAHOO.widget.Dialog.html b/docs/YAHOO.widget.Dialog.html
index e98e706..5d2ad53 100644
--- a/docs/YAHOO.widget.Dialog.html
+++ b/docs/YAHOO.widget.Dialog.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.widget.Dialog 
diff --git a/docs/YAHOO.widget.DropdownCellEditor.html b/docs/YAHOO.widget.DropdownCellEditor.html
index d77dc47..ba90e1a 100644
--- a/docs/YAHOO.widget.DropdownCellEditor.html
+++ b/docs/YAHOO.widget.DropdownCellEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.DropdownCellEditor 
diff --git a/docs/YAHOO.widget.DualSlider.html b/docs/YAHOO.widget.DualSlider.html
index 6fd7ccd..03995ad 100644
--- a/docs/YAHOO.widget.DualSlider.html
+++ b/docs/YAHOO.widget.DualSlider.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Slider Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Slider Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_slider.html" title="slider">slider</a>
                  > YAHOO.widget.DualSlider 
diff --git a/docs/YAHOO.widget.Editor.html b/docs/YAHOO.widget.Editor.html
index 9882b08..df98f66 100644
--- a/docs/YAHOO.widget.Editor.html
+++ b/docs/YAHOO.widget.Editor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                  > YAHOO.widget.Editor 
diff --git a/docs/YAHOO.widget.EditorInfo.html b/docs/YAHOO.widget.EditorInfo.html
index 42437b2..1110ed5 100644
--- a/docs/YAHOO.widget.EditorInfo.html
+++ b/docs/YAHOO.widget.EditorInfo.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                  > YAHOO.widget.EditorInfo 
diff --git a/docs/YAHOO.widget.EditorWindow.html b/docs/YAHOO.widget.EditorWindow.html
index a8d8b62..ed65de6 100644
--- a/docs/YAHOO.widget.EditorWindow.html
+++ b/docs/YAHOO.widget.EditorWindow.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                  > YAHOO.widget.EditorWindow 
diff --git a/docs/YAHOO.widget.FlashAdapter.html b/docs/YAHOO.widget.FlashAdapter.html
index 3c0e75a..7dbf719 100644
--- a/docs/YAHOO.widget.FlashAdapter.html
+++ b/docs/YAHOO.widget.FlashAdapter.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Uploader  <span class="subtitle">2.8.1</span></h3>
+        <h3>Uploader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_uploader.html" title="uploader">uploader</a>
                  > YAHOO.widget.FlashAdapter 
diff --git a/docs/YAHOO.widget.HTMLNode.html b/docs/YAHOO.widget.HTMLNode.html
index a47759d..651cc29 100644
--- a/docs/YAHOO.widget.HTMLNode.html
+++ b/docs/YAHOO.widget.HTMLNode.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.HTMLNode 
diff --git a/docs/YAHOO.widget.ImageCropper.html b/docs/YAHOO.widget.ImageCropper.html
index 0cd0553..8a55a6c 100644
--- a/docs/YAHOO.widget.ImageCropper.html
+++ b/docs/YAHOO.widget.ImageCropper.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imagecropper  <span class="subtitle">2.8.1</span></h3>
+        <h3>imagecropper  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imagecropper.html" title="imagecropper">imagecropper</a>
                  > YAHOO.widget.ImageCropper 
diff --git a/docs/YAHOO.widget.Layout.html b/docs/YAHOO.widget.Layout.html
index 24e2eb2..b3aa389 100644
--- a/docs/YAHOO.widget.Layout.html
+++ b/docs/YAHOO.widget.Layout.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>layout  <span class="subtitle">2.8.1</span></h3>
+        <h3>layout  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_layout.html" title="layout">layout</a>
                  > YAHOO.widget.Layout 
diff --git a/docs/YAHOO.widget.LayoutUnit.html b/docs/YAHOO.widget.LayoutUnit.html
index 4687195..c348626 100644
--- a/docs/YAHOO.widget.LayoutUnit.html
+++ b/docs/YAHOO.widget.LayoutUnit.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>layout  <span class="subtitle">2.8.1</span></h3>
+        <h3>layout  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_layout.html" title="layout">layout</a>
                  > YAHOO.widget.LayoutUnit 
diff --git a/docs/YAHOO.widget.LineChart.html b/docs/YAHOO.widget.LineChart.html
index d8f5aa1..fd9b92a 100644
--- a/docs/YAHOO.widget.LineChart.html
+++ b/docs/YAHOO.widget.LineChart.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.LineChart 
diff --git a/docs/YAHOO.widget.LineSeries.html b/docs/YAHOO.widget.LineSeries.html
index 9b6cf70..da2462a 100644
--- a/docs/YAHOO.widget.LineSeries.html
+++ b/docs/YAHOO.widget.LineSeries.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.LineSeries 
diff --git a/docs/YAHOO.widget.Logger.html b/docs/YAHOO.widget.Logger.html
index eb2debb..047fc60 100644
--- a/docs/YAHOO.widget.Logger.html
+++ b/docs/YAHOO.widget.Logger.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                  > YAHOO.widget.Logger 
diff --git a/docs/YAHOO.widget.Menu.html b/docs/YAHOO.widget.Menu.html
index a07f954..45396d6 100644
--- a/docs/YAHOO.widget.Menu.html
+++ b/docs/YAHOO.widget.Menu.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                  > YAHOO.widget.Menu 
diff --git a/docs/YAHOO.widget.MenuBar.html b/docs/YAHOO.widget.MenuBar.html
index 7d54058..1ddb3b7 100644
--- a/docs/YAHOO.widget.MenuBar.html
+++ b/docs/YAHOO.widget.MenuBar.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                  > YAHOO.widget.MenuBar 
diff --git a/docs/YAHOO.widget.MenuBarItem.html b/docs/YAHOO.widget.MenuBarItem.html
index 4d73f3a..7875c12 100644
--- a/docs/YAHOO.widget.MenuBarItem.html
+++ b/docs/YAHOO.widget.MenuBarItem.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                  > YAHOO.widget.MenuBarItem 
diff --git a/docs/YAHOO.widget.MenuItem.html b/docs/YAHOO.widget.MenuItem.html
index c20d45b..df92277 100644
--- a/docs/YAHOO.widget.MenuItem.html
+++ b/docs/YAHOO.widget.MenuItem.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                  > YAHOO.widget.MenuItem 
diff --git a/docs/YAHOO.widget.MenuManager.html b/docs/YAHOO.widget.MenuManager.html
index 043f223..dfeb0bb 100644
--- a/docs/YAHOO.widget.MenuManager.html
+++ b/docs/YAHOO.widget.MenuManager.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                  > YAHOO.widget.MenuManager 
diff --git a/docs/YAHOO.widget.MenuNode.html b/docs/YAHOO.widget.MenuNode.html
index 78e3fe6..bc92bfe 100644
--- a/docs/YAHOO.widget.MenuNode.html
+++ b/docs/YAHOO.widget.MenuNode.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.MenuNode 
diff --git a/docs/YAHOO.widget.Module.html b/docs/YAHOO.widget.Module.html
index 3c7eecc..a91a2c3 100644
--- a/docs/YAHOO.widget.Module.html
+++ b/docs/YAHOO.widget.Module.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.widget.Module 
diff --git a/docs/YAHOO.widget.Node.html b/docs/YAHOO.widget.Node.html
index 868d122..51ca3a7 100644
--- a/docs/YAHOO.widget.Node.html
+++ b/docs/YAHOO.widget.Node.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.Node 
diff --git a/docs/YAHOO.widget.NumericAxis.html b/docs/YAHOO.widget.NumericAxis.html
index f57a714..46dedd7 100644
--- a/docs/YAHOO.widget.NumericAxis.html
+++ b/docs/YAHOO.widget.NumericAxis.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.NumericAxis 
diff --git a/docs/YAHOO.widget.Overlay.html b/docs/YAHOO.widget.Overlay.html
index 486522c..48c8c07 100644
--- a/docs/YAHOO.widget.Overlay.html
+++ b/docs/YAHOO.widget.Overlay.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.widget.Overlay 
diff --git a/docs/YAHOO.widget.OverlayManager.html b/docs/YAHOO.widget.OverlayManager.html
index 0e3a642..6ed1248 100644
--- a/docs/YAHOO.widget.OverlayManager.html
+++ b/docs/YAHOO.widget.OverlayManager.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.widget.OverlayManager 
diff --git a/docs/YAHOO.widget.Paginator.html b/docs/YAHOO.widget.Paginator.html
index 31284b8..0a1aa5f 100644
--- a/docs/YAHOO.widget.Paginator.html
+++ b/docs/YAHOO.widget.Paginator.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator 
diff --git a/docs/YAHOO.widget.Paginator.ui.CurrentPageReport.html b/docs/YAHOO.widget.Paginator.ui.CurrentPageReport.html
index dbe69fa..1f8c4ed 100644
--- a/docs/YAHOO.widget.Paginator.ui.CurrentPageReport.html
+++ b/docs/YAHOO.widget.Paginator.ui.CurrentPageReport.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator.ui.CurrentPageReport 
diff --git a/docs/YAHOO.widget.Paginator.ui.FirstPageLink.html b/docs/YAHOO.widget.Paginator.ui.FirstPageLink.html
index 1831f58..a9ce05b 100644
--- a/docs/YAHOO.widget.Paginator.ui.FirstPageLink.html
+++ b/docs/YAHOO.widget.Paginator.ui.FirstPageLink.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator.ui.FirstPageLink 
diff --git a/docs/YAHOO.widget.Paginator.ui.LastPageLink.html b/docs/YAHOO.widget.Paginator.ui.LastPageLink.html
index 5a26065..72a4be4 100644
--- a/docs/YAHOO.widget.Paginator.ui.LastPageLink.html
+++ b/docs/YAHOO.widget.Paginator.ui.LastPageLink.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator.ui.LastPageLink 
diff --git a/docs/YAHOO.widget.Paginator.ui.NextPageLink.html b/docs/YAHOO.widget.Paginator.ui.NextPageLink.html
index 9bb0279..5e5f241 100644
--- a/docs/YAHOO.widget.Paginator.ui.NextPageLink.html
+++ b/docs/YAHOO.widget.Paginator.ui.NextPageLink.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator.ui.NextPageLink 
diff --git a/docs/YAHOO.widget.Paginator.ui.PageLinks.html b/docs/YAHOO.widget.Paginator.ui.PageLinks.html
index 84a58a3..4f0d165 100644
--- a/docs/YAHOO.widget.Paginator.ui.PageLinks.html
+++ b/docs/YAHOO.widget.Paginator.ui.PageLinks.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator.ui.PageLinks 
diff --git a/docs/YAHOO.widget.Paginator.ui.PreviousPageLink.html b/docs/YAHOO.widget.Paginator.ui.PreviousPageLink.html
index f2f793c..95be946 100644
--- a/docs/YAHOO.widget.Paginator.ui.PreviousPageLink.html
+++ b/docs/YAHOO.widget.Paginator.ui.PreviousPageLink.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator.ui.PreviousPageLink 
diff --git a/docs/YAHOO.widget.Paginator.ui.RowsPerPageDropdown.html b/docs/YAHOO.widget.Paginator.ui.RowsPerPageDropdown.html
index f3c88b2..6c290b3 100644
--- a/docs/YAHOO.widget.Paginator.ui.RowsPerPageDropdown.html
+++ b/docs/YAHOO.widget.Paginator.ui.RowsPerPageDropdown.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator.ui.RowsPerPageDropdown 
diff --git a/docs/YAHOO.widget.Paginator.ui.YourComponent.html b/docs/YAHOO.widget.Paginator.ui.YourComponent.html
index ea8b546..59f8aa5 100644
--- a/docs/YAHOO.widget.Paginator.ui.YourComponent.html
+++ b/docs/YAHOO.widget.Paginator.ui.YourComponent.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                  > YAHOO.widget.Paginator.ui.YourComponent 
diff --git a/docs/YAHOO.widget.Panel.html b/docs/YAHOO.widget.Panel.html
index c73051d..c07c9a2 100644
--- a/docs/YAHOO.widget.Panel.html
+++ b/docs/YAHOO.widget.Panel.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.widget.Panel 
diff --git a/docs/YAHOO.widget.PieChart.html b/docs/YAHOO.widget.PieChart.html
index ae0cb08..d28c8fb 100644
--- a/docs/YAHOO.widget.PieChart.html
+++ b/docs/YAHOO.widget.PieChart.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.PieChart 
diff --git a/docs/YAHOO.widget.PieSeries.html b/docs/YAHOO.widget.PieSeries.html
index e225100..79a7506 100644
--- a/docs/YAHOO.widget.PieSeries.html
+++ b/docs/YAHOO.widget.PieSeries.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.PieSeries 
diff --git a/docs/YAHOO.widget.ProfilerViewer.html b/docs/YAHOO.widget.ProfilerViewer.html
index bcfaea0..daa43f0 100644
--- a/docs/YAHOO.widget.ProfilerViewer.html
+++ b/docs/YAHOO.widget.ProfilerViewer.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>profilerviewer  <span class="subtitle">2.8.1</span></h3>
+        <h3>profilerviewer  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_profilerviewer.html" title="profilerviewer">profilerviewer</a>
                  > YAHOO.widget.ProfilerViewer 
diff --git a/docs/YAHOO.widget.ProgressBar.html b/docs/YAHOO.widget.ProgressBar.html
index e32a32c..d4b4d40 100644
--- a/docs/YAHOO.widget.ProgressBar.html
+++ b/docs/YAHOO.widget.ProgressBar.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>ProgressBar Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>ProgressBar Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_progressbar.html" title="progressbar">progressbar</a>
                  > YAHOO.widget.ProgressBar 
diff --git a/docs/YAHOO.widget.RadioCellEditor.html b/docs/YAHOO.widget.RadioCellEditor.html
index b535fa8..f29ec9a 100644
--- a/docs/YAHOO.widget.RadioCellEditor.html
+++ b/docs/YAHOO.widget.RadioCellEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.RadioCellEditor 
diff --git a/docs/YAHOO.widget.Record.html b/docs/YAHOO.widget.Record.html
index 7608f41..a60766c 100644
--- a/docs/YAHOO.widget.Record.html
+++ b/docs/YAHOO.widget.Record.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.Record 
diff --git a/docs/YAHOO.widget.RecordSet.html b/docs/YAHOO.widget.RecordSet.html
index 892afc5..5fd2c8d 100644
--- a/docs/YAHOO.widget.RecordSet.html
+++ b/docs/YAHOO.widget.RecordSet.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.RecordSet 
diff --git a/docs/YAHOO.widget.RootNode.html b/docs/YAHOO.widget.RootNode.html
index b6085b5..9e02f0b 100644
--- a/docs/YAHOO.widget.RootNode.html
+++ b/docs/YAHOO.widget.RootNode.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.RootNode 
diff --git a/docs/YAHOO.widget.SWF.html b/docs/YAHOO.widget.SWF.html
index 5a0c658..275568c 100644
--- a/docs/YAHOO.widget.SWF.html
+++ b/docs/YAHOO.widget.SWF.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>SWF Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>SWF Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swf.html" title="swf">swf</a>
                  > YAHOO.widget.SWF 
diff --git a/docs/YAHOO.widget.ScrollingDataTable.html b/docs/YAHOO.widget.ScrollingDataTable.html
index aaed902..4425ca4 100644
--- a/docs/YAHOO.widget.ScrollingDataTable.html
+++ b/docs/YAHOO.widget.ScrollingDataTable.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.ScrollingDataTable 
diff --git a/docs/YAHOO.widget.Series.html b/docs/YAHOO.widget.Series.html
index f32b7ae..e6003b0 100644
--- a/docs/YAHOO.widget.Series.html
+++ b/docs/YAHOO.widget.Series.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.Series 
diff --git a/docs/YAHOO.widget.SimpleDialog.html b/docs/YAHOO.widget.SimpleDialog.html
index e1656e5..d78bb53 100644
--- a/docs/YAHOO.widget.SimpleDialog.html
+++ b/docs/YAHOO.widget.SimpleDialog.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.widget.SimpleDialog 
diff --git a/docs/YAHOO.widget.SimpleEditor.html b/docs/YAHOO.widget.SimpleEditor.html
index 14db640..beaf743 100644
--- a/docs/YAHOO.widget.SimpleEditor.html
+++ b/docs/YAHOO.widget.SimpleEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                  > YAHOO.widget.SimpleEditor 
diff --git a/docs/YAHOO.widget.Slider.html b/docs/YAHOO.widget.Slider.html
index 6ae579c..8bcf1bc 100644
--- a/docs/YAHOO.widget.Slider.html
+++ b/docs/YAHOO.widget.Slider.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Slider Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Slider Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_slider.html" title="slider">slider</a>
                  > YAHOO.widget.Slider 
diff --git a/docs/YAHOO.widget.SliderThumb.html b/docs/YAHOO.widget.SliderThumb.html
index a06e213..bb64353 100644
--- a/docs/YAHOO.widget.SliderThumb.html
+++ b/docs/YAHOO.widget.SliderThumb.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Slider Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Slider Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_slider.html" title="slider">slider</a>
                  > YAHOO.widget.SliderThumb 
diff --git a/docs/YAHOO.widget.StackedBarChart.html b/docs/YAHOO.widget.StackedBarChart.html
index 751ca48..53c0005 100644
--- a/docs/YAHOO.widget.StackedBarChart.html
+++ b/docs/YAHOO.widget.StackedBarChart.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.StackedBarChart 
diff --git a/docs/YAHOO.widget.StackedBarSeries.html b/docs/YAHOO.widget.StackedBarSeries.html
index 5d10a8a..5d2507c 100644
--- a/docs/YAHOO.widget.StackedBarSeries.html
+++ b/docs/YAHOO.widget.StackedBarSeries.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.StackedBarSeries 
diff --git a/docs/YAHOO.widget.StackedColumnChart.html b/docs/YAHOO.widget.StackedColumnChart.html
index b2196a7..1d19540 100644
--- a/docs/YAHOO.widget.StackedColumnChart.html
+++ b/docs/YAHOO.widget.StackedColumnChart.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.StackedColumnChart 
diff --git a/docs/YAHOO.widget.StackedColumnSeries.html b/docs/YAHOO.widget.StackedColumnSeries.html
index 77edb5e..b4d40d8 100644
--- a/docs/YAHOO.widget.StackedColumnSeries.html
+++ b/docs/YAHOO.widget.StackedColumnSeries.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.StackedColumnSeries 
diff --git a/docs/YAHOO.widget.TVAnim.html b/docs/YAHOO.widget.TVAnim.html
index e9dae77..43b1496 100644
--- a/docs/YAHOO.widget.TVAnim.html
+++ b/docs/YAHOO.widget.TVAnim.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.TVAnim 
diff --git a/docs/YAHOO.widget.TVFadeIn.html b/docs/YAHOO.widget.TVFadeIn.html
index 553f23a..0479004 100644
--- a/docs/YAHOO.widget.TVFadeIn.html
+++ b/docs/YAHOO.widget.TVFadeIn.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.TVFadeIn 
diff --git a/docs/YAHOO.widget.TVFadeOut.html b/docs/YAHOO.widget.TVFadeOut.html
index ee321e4..dd6aa21 100644
--- a/docs/YAHOO.widget.TVFadeOut.html
+++ b/docs/YAHOO.widget.TVFadeOut.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.TVFadeOut 
diff --git a/docs/YAHOO.widget.Tab.html b/docs/YAHOO.widget.Tab.html
index e2850fa..d31a553 100644
--- a/docs/YAHOO.widget.Tab.html
+++ b/docs/YAHOO.widget.Tab.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>tabview  <span class="subtitle">2.8.1</span></h3>
+        <h3>tabview  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_tabview.html" title="tabview">tabview</a>
                  > YAHOO.widget.Tab 
diff --git a/docs/YAHOO.widget.TabView.html b/docs/YAHOO.widget.TabView.html
index a332135..ea220d7 100644
--- a/docs/YAHOO.widget.TabView.html
+++ b/docs/YAHOO.widget.TabView.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>tabview  <span class="subtitle">2.8.1</span></h3>
+        <h3>tabview  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_tabview.html" title="tabview">tabview</a>
                  > YAHOO.widget.TabView 
diff --git a/docs/YAHOO.widget.TextNode.html b/docs/YAHOO.widget.TextNode.html
index 1733264..a2f2810 100644
--- a/docs/YAHOO.widget.TextNode.html
+++ b/docs/YAHOO.widget.TextNode.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.TextNode 
diff --git a/docs/YAHOO.widget.TextareaCellEditor.html b/docs/YAHOO.widget.TextareaCellEditor.html
index 13519ca..036f65a 100644
--- a/docs/YAHOO.widget.TextareaCellEditor.html
+++ b/docs/YAHOO.widget.TextareaCellEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.TextareaCellEditor 
diff --git a/docs/YAHOO.widget.TextboxCellEditor.html b/docs/YAHOO.widget.TextboxCellEditor.html
index 7ed4fcb..6b8979a 100644
--- a/docs/YAHOO.widget.TextboxCellEditor.html
+++ b/docs/YAHOO.widget.TextboxCellEditor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                  > YAHOO.widget.TextboxCellEditor 
diff --git a/docs/YAHOO.widget.TimeAxis.html b/docs/YAHOO.widget.TimeAxis.html
index aa78976..d8c5766 100644
--- a/docs/YAHOO.widget.TimeAxis.html
+++ b/docs/YAHOO.widget.TimeAxis.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                  > YAHOO.widget.TimeAxis 
diff --git a/docs/YAHOO.widget.Toolbar.html b/docs/YAHOO.widget.Toolbar.html
index a43b6be..408e340 100644
--- a/docs/YAHOO.widget.Toolbar.html
+++ b/docs/YAHOO.widget.Toolbar.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                  > YAHOO.widget.Toolbar 
diff --git a/docs/YAHOO.widget.ToolbarButton.html b/docs/YAHOO.widget.ToolbarButton.html
index 9fb05d9..996cb74 100644
--- a/docs/YAHOO.widget.ToolbarButton.html
+++ b/docs/YAHOO.widget.ToolbarButton.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                  > YAHOO.widget.ToolbarButton 
diff --git a/docs/YAHOO.widget.ToolbarButtonAdvanced.html b/docs/YAHOO.widget.ToolbarButtonAdvanced.html
index 9f73508..bd81430 100644
--- a/docs/YAHOO.widget.ToolbarButtonAdvanced.html
+++ b/docs/YAHOO.widget.ToolbarButtonAdvanced.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                  > YAHOO.widget.ToolbarButtonAdvanced 
diff --git a/docs/YAHOO.widget.Tooltip.html b/docs/YAHOO.widget.Tooltip.html
index 15a4d22..b5950b4 100644
--- a/docs/YAHOO.widget.Tooltip.html
+++ b/docs/YAHOO.widget.Tooltip.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                  > YAHOO.widget.Tooltip 
diff --git a/docs/YAHOO.widget.TreeView.html b/docs/YAHOO.widget.TreeView.html
index 598cf90..bbcee78 100644
--- a/docs/YAHOO.widget.TreeView.html
+++ b/docs/YAHOO.widget.TreeView.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                  > YAHOO.widget.TreeView 
diff --git a/docs/YAHOO.widget.Uploader.html b/docs/YAHOO.widget.Uploader.html
index 599e904..868948c 100644
--- a/docs/YAHOO.widget.Uploader.html
+++ b/docs/YAHOO.widget.Uploader.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Uploader  <span class="subtitle">2.8.1</span></h3>
+        <h3>Uploader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_uploader.html" title="uploader">uploader</a>
                  > YAHOO.widget.Uploader 
diff --git a/docs/YAHOO_config.html b/docs/YAHOO_config.html
index 6570290..daca17c 100644
--- a/docs/YAHOO_config.html
+++ b/docs/YAHOO_config.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                  > YAHOO_config 
diff --git a/docs/button.js.html b/docs/button.js.html
index 76fcc57..d66f4c0 100644
--- a/docs/button.js.html
+++ b/docs/button.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Button  <span class="subtitle">2.8.1</span></h3>
+        <h3>Button  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_button.html" title="button">button</a>
                 
diff --git a/docs/buttongroup.js.html b/docs/buttongroup.js.html
index e17a242..de789c5 100644
--- a/docs/buttongroup.js.html
+++ b/docs/buttongroup.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Button  <span class="subtitle">2.8.1</span></h3>
+        <h3>Button  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_button.html" title="button">button</a>
                 
diff --git a/docs/connection_core.js.html b/docs/connection_core.js.html
index 2c5ce39..c97502f 100644
--- a/docs/connection_core.js.html
+++ b/docs/connection_core.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>connection  <span class="subtitle">2.8.1</span></h3>
+        <h3>connection  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_connection.html" title="connection">connection</a>
                 
diff --git a/docs/connection_xdr.js.html b/docs/connection_xdr.js.html
index 9f75a8e..02307b9 100644
--- a/docs/connection_xdr.js.html
+++ b/docs/connection_xdr.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>connection  <span class="subtitle">2.8.1</span></h3>
+        <h3>connection  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_connection.html" title="connection">connection</a>
                 
diff --git a/docs/connectionx.js.html b/docs/connectionx.js.html
index 4728683..334cfd0 100644
--- a/docs/connectionx.js.html
+++ b/docs/connectionx.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>connection  <span class="subtitle">2.8.1</span></h3>
+        <h3>connection  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_connection.html" title="connection">connection</a>
                 
diff --git a/docs/contextmenu.js.html b/docs/contextmenu.js.html
index 2806c2a..773ae89 100644
--- a/docs/contextmenu.js.html
+++ b/docs/contextmenu.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/contextmenuitem.js.html b/docs/contextmenuitem.js.html
index 4c45102..322d9a5 100644
--- a/docs/contextmenuitem.js.html
+++ b/docs/contextmenuitem.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/crop.js.html b/docs/crop.js.html
index f2bf4c0..399fc8d 100644
--- a/docs/crop.js.html
+++ b/docs/crop.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imagecropper  <span class="subtitle">2.8.1</span></h3>
+        <h3>imagecropper  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imagecropper.html" title="imagecropper">imagecropper</a>
                 
diff --git a/docs/editor.js.html b/docs/editor.js.html
index 745a6fb..b3d9a1c 100644
--- a/docs/editor.js.html
+++ b/docs/editor.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                 
diff --git a/docs/gears_init.js.html b/docs/gears_init.js.html
index bcfbbe1..9bd8a54 100644
--- a/docs/gears_init.js.html
+++ b/docs/gears_init.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/history.js.html b/docs/history.js.html
index 6eb6775..f3eee4a 100644
--- a/docs/history.js.html
+++ b/docs/history.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Browser History Manager  <span class="subtitle">2.8.1</span></h3>
+        <h3>Browser History Manager  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_history.html" title="history">history</a>
                 
diff --git a/docs/index.html b/docs/index.html
index e48966e..c621c80 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>  <span class="subtitle">2.8.1</span></h3>
+        <h3>  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
         <form onsubmit="return false">
             <div id="propertysearch">
diff --git a/docs/layout.js.html b/docs/layout.js.html
index decb764..0ce30d0 100644
--- a/docs/layout.js.html
+++ b/docs/layout.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>layout  <span class="subtitle">2.8.1</span></h3>
+        <h3>layout  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_layout.html" title="layout">layout</a>
                 
diff --git a/docs/layoutunit.js.html b/docs/layoutunit.js.html
index 2980016..e10f212 100644
--- a/docs/layoutunit.js.html
+++ b/docs/layoutunit.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>layout  <span class="subtitle">2.8.1</span></h3>
+        <h3>layout  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_layout.html" title="layout">layout</a>
                 
diff --git a/docs/menu.js.html b/docs/menu.js.html
index dc73fcb..4f06122 100644
--- a/docs/menu.js.html
+++ b/docs/menu.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/menuariaplugin.js.html b/docs/menuariaplugin.js.html
index 9a2f1cc..2f46b52 100644
--- a/docs/menuariaplugin.js.html
+++ b/docs/menuariaplugin.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/menubar.js.html b/docs/menubar.js.html
index bbfa49b..4d34dec 100644
--- a/docs/menubar.js.html
+++ b/docs/menubar.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/menubaritem.js.html b/docs/menubaritem.js.html
index 2f02783..cda8e51 100644
--- a/docs/menubaritem.js.html
+++ b/docs/menubaritem.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/menuitem.js.html b/docs/menuitem.js.html
index 14c7788..4973184 100644
--- a/docs/menuitem.js.html
+++ b/docs/menuitem.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/menumanager.js.html b/docs/menumanager.js.html
index 78da58a..f920ba8 100644
--- a/docs/menumanager.js.html
+++ b/docs/menumanager.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/module_animation.html b/docs/module_animation.html
index a34ad8c..80485c6 100644
--- a/docs/module_animation.html
+++ b/docs/module_animation.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>animation  <span class="subtitle">2.8.1</span></h3>
+        <h3>animation  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_animation.html" title="animation">animation</a>
                 
diff --git a/docs/module_autocomplete.html b/docs/module_autocomplete.html
index e84a585..696e838 100644
--- a/docs/module_autocomplete.html
+++ b/docs/module_autocomplete.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>AutoComplete Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>AutoComplete Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_autocomplete.html" title="autocomplete">autocomplete</a>
                 
diff --git a/docs/module_button.html b/docs/module_button.html
index d9b71a2..4a16ecc 100644
--- a/docs/module_button.html
+++ b/docs/module_button.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Button  <span class="subtitle">2.8.1</span></h3>
+        <h3>Button  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_button.html" title="button">button</a>
                 
diff --git a/docs/module_calendar.html b/docs/module_calendar.html
index d583083..cdf3f22 100644
--- a/docs/module_calendar.html
+++ b/docs/module_calendar.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Calendar  <span class="subtitle">2.8.1</span></h3>
+        <h3>Calendar  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_calendar.html" title="calendar">calendar</a>
                 
diff --git a/docs/module_carousel.html b/docs/module_carousel.html
index efb27c6..6cd0bf4 100644
--- a/docs/module_carousel.html
+++ b/docs/module_carousel.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Carousel Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Carousel Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_carousel.html" title="carousel">carousel</a>
                 
diff --git a/docs/module_charts.html b/docs/module_charts.html
index 439d388..88f4b3d 100644
--- a/docs/module_charts.html
+++ b/docs/module_charts.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Charts Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Charts Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_charts.html" title="charts">charts</a>
                 
diff --git a/docs/module_colorpicker.html b/docs/module_colorpicker.html
index a21790a..d8209f2 100644
--- a/docs/module_colorpicker.html
+++ b/docs/module_colorpicker.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>colorpicker  <span class="subtitle">2.8.1</span></h3>
+        <h3>colorpicker  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_colorpicker.html" title="colorpicker">colorpicker</a>
                 
diff --git a/docs/module_connection.html b/docs/module_connection.html
index 5769eaa..1d28723 100644
--- a/docs/module_connection.html
+++ b/docs/module_connection.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>connection  <span class="subtitle">2.8.1</span></h3>
+        <h3>connection  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_connection.html" title="connection">connection</a>
                 
diff --git a/docs/module_container.html b/docs/module_container.html
index d77aaf1..8a0da5f 100644
--- a/docs/module_container.html
+++ b/docs/module_container.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Container  <span class="subtitle">2.8.1</span></h3>
+        <h3>Container  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_container.html" title="container">container</a>
                 
diff --git a/docs/module_cookie.html b/docs/module_cookie.html
index 736ca52..a256b36 100644
--- a/docs/module_cookie.html
+++ b/docs/module_cookie.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>cookie  <span class="subtitle">2.8.1</span></h3>
+        <h3>cookie  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_cookie.html" title="cookie">cookie</a>
                 
diff --git a/docs/module_datasource.html b/docs/module_datasource.html
index d7c3e40..9405005 100644
--- a/docs/module_datasource.html
+++ b/docs/module_datasource.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataSource Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataSource Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datasource.html" title="datasource">datasource</a>
                 
diff --git a/docs/module_datatable.html b/docs/module_datatable.html
index 2b93416..ada7ff5 100644
--- a/docs/module_datatable.html
+++ b/docs/module_datatable.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>DataTable Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>DataTable Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datatable.html" title="datatable">datatable</a>
                 
diff --git a/docs/module_datemath.html b/docs/module_datemath.html
index 77ee327..18fba7e 100644
--- a/docs/module_datemath.html
+++ b/docs/module_datemath.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>datemath  <span class="subtitle">2.8.1</span></h3>
+        <h3>datemath  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_datemath.html" title="datemath">datemath</a>
                 
diff --git a/docs/module_dom.html b/docs/module_dom.html
index aa436c3..b470509 100644
--- a/docs/module_dom.html
+++ b/docs/module_dom.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>dom  <span class="subtitle">2.8.1</span></h3>
+        <h3>dom  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dom.html" title="dom">dom</a>
                 
diff --git a/docs/module_dragdrop.html b/docs/module_dragdrop.html
index de03cee..7ee38fc 100644
--- a/docs/module_dragdrop.html
+++ b/docs/module_dragdrop.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Drag and Drop  <span class="subtitle">2.8.1</span></h3>
+        <h3>Drag and Drop  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_dragdrop.html" title="dragdrop">dragdrop</a>
                 
diff --git a/docs/module_editor.html b/docs/module_editor.html
index db3fa77..70a2af4 100644
--- a/docs/module_editor.html
+++ b/docs/module_editor.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                 
diff --git a/docs/module_element-delegate.html b/docs/module_element-delegate.html
index 4497423..c922550 100644
--- a/docs/module_element-delegate.html
+++ b/docs/module_element-delegate.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Element Event Delegation Module  <span class="subtitle">2.8.1</span></h3>
+        <h3>Element Event Delegation Module  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element-delegate.html" title="element-delegate">element-delegate</a>
                 
diff --git a/docs/module_element.html b/docs/module_element.html
index a327673..64c2caa 100644
--- a/docs/module_element.html
+++ b/docs/module_element.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>element  <span class="subtitle">2.8.1</span></h3>
+        <h3>element  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_element.html" title="element">element</a>
                 
diff --git a/docs/module_event-delegate.html b/docs/module_event-delegate.html
index fb5876a..c2ab433 100644
--- a/docs/module_event-delegate.html
+++ b/docs/module_event-delegate.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility Event Delegation Module  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility Event Delegation Module  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event-delegate.html" title="event-delegate">event-delegate</a>
                 
diff --git a/docs/module_event-mouseenter.html b/docs/module_event-mouseenter.html
index a55c04a..f7ebcff 100644
--- a/docs/module_event-mouseenter.html
+++ b/docs/module_event-mouseenter.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility mouseenter and mouseout Module  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility mouseenter and mouseout Module  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event-mouseenter.html" title="event-mouseenter">event-mouseenter</a>
                 
diff --git a/docs/module_event-simulate.html b/docs/module_event-simulate.html
index 77cb945..d2a5520 100644
--- a/docs/module_event-simulate.html
+++ b/docs/module_event-simulate.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>event-simulate  <span class="subtitle">2.8.1</span></h3>
+        <h3>event-simulate  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event-simulate.html" title="event-simulate">event-simulate</a>
                 
diff --git a/docs/module_event.html b/docs/module_event.html
index 62ae12e..9bb7349 100644
--- a/docs/module_event.html
+++ b/docs/module_event.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Event Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Event Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_event.html" title="event">event</a>
                 
diff --git a/docs/module_get.html b/docs/module_get.html
index 155a273..a20a9bc 100644
--- a/docs/module_get.html
+++ b/docs/module_get.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>get  <span class="subtitle">2.8.1</span></h3>
+        <h3>get  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_get.html" title="get">get</a>
                 
diff --git a/docs/module_history.html b/docs/module_history.html
index 05a9c61..2a152a1 100644
--- a/docs/module_history.html
+++ b/docs/module_history.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Browser History Manager  <span class="subtitle">2.8.1</span></h3>
+        <h3>Browser History Manager  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_history.html" title="history">history</a>
                 
diff --git a/docs/module_imagecropper.html b/docs/module_imagecropper.html
index 452b2c3..a433d19 100644
--- a/docs/module_imagecropper.html
+++ b/docs/module_imagecropper.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imagecropper  <span class="subtitle">2.8.1</span></h3>
+        <h3>imagecropper  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imagecropper.html" title="imagecropper">imagecropper</a>
                 
diff --git a/docs/module_imageloader.html b/docs/module_imageloader.html
index 0209e3f..87167ba 100644
--- a/docs/module_imageloader.html
+++ b/docs/module_imageloader.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>imageloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>imageloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_imageloader.html" title="imageloader">imageloader</a>
                 
diff --git a/docs/module_json.html b/docs/module_json.html
index 6200b15..965a11f 100644
--- a/docs/module_json.html
+++ b/docs/module_json.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>json  <span class="subtitle">2.8.1</span></h3>
+        <h3>json  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_json.html" title="json">json</a>
                 
diff --git a/docs/module_layout.html b/docs/module_layout.html
index 5e995f8..e0793b4 100644
--- a/docs/module_layout.html
+++ b/docs/module_layout.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>layout  <span class="subtitle">2.8.1</span></h3>
+        <h3>layout  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_layout.html" title="layout">layout</a>
                 
diff --git a/docs/module_logger.html b/docs/module_logger.html
index aa8d21e..c4f7611 100644
--- a/docs/module_logger.html
+++ b/docs/module_logger.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Logger Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Logger Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_logger.html" title="logger">logger</a>
                 
diff --git a/docs/module_menu.html b/docs/module_menu.html
index 5135700..373c1f1 100644
--- a/docs/module_menu.html
+++ b/docs/module_menu.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Menu  <span class="subtitle">2.8.1</span></h3>
+        <h3>Menu  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_menu.html" title="menu">menu</a>
                 
diff --git a/docs/module_paginator.html b/docs/module_paginator.html
index 5971b40..319cea4 100644
--- a/docs/module_paginator.html
+++ b/docs/module_paginator.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>paginator  <span class="subtitle">2.8.1</span></h3>
+        <h3>paginator  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_paginator.html" title="paginator">paginator</a>
                 
diff --git a/docs/module_profiler.html b/docs/module_profiler.html
index cbca30d..459c76a 100644
--- a/docs/module_profiler.html
+++ b/docs/module_profiler.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>profiler  <span class="subtitle">2.8.1</span></h3>
+        <h3>profiler  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_profiler.html" title="profiler">profiler</a>
                 
diff --git a/docs/module_profilerviewer.html b/docs/module_profilerviewer.html
index 61fd59e..949de26 100644
--- a/docs/module_profilerviewer.html
+++ b/docs/module_profilerviewer.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>profilerviewer  <span class="subtitle">2.8.1</span></h3>
+        <h3>profilerviewer  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_profilerviewer.html" title="profilerviewer">profilerviewer</a>
                 
diff --git a/docs/module_progressbar.html b/docs/module_progressbar.html
index 3c04e73..f51b64a 100644
--- a/docs/module_progressbar.html
+++ b/docs/module_progressbar.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>ProgressBar Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>ProgressBar Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_progressbar.html" title="progressbar">progressbar</a>
                 
diff --git a/docs/module_resize.html b/docs/module_resize.html
index 9fb131e..055cc5a 100644
--- a/docs/module_resize.html
+++ b/docs/module_resize.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>resize  <span class="subtitle">2.8.1</span></h3>
+        <h3>resize  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_resize.html" title="resize">resize</a>
                 
diff --git a/docs/module_selector.html b/docs/module_selector.html
index da9c5ac..9e0a41f 100644
--- a/docs/module_selector.html
+++ b/docs/module_selector.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Selector Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>Selector Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_selector.html" title="selector">selector</a>
                 
diff --git a/docs/module_slider.html b/docs/module_slider.html
index 27e5152..1dd77e8 100644
--- a/docs/module_slider.html
+++ b/docs/module_slider.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Slider Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>Slider Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_slider.html" title="slider">slider</a>
                 
diff --git a/docs/module_storage.html b/docs/module_storage.html
index 16f4302..f48e1ed 100644
--- a/docs/module_storage.html
+++ b/docs/module_storage.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Storage  <span class="subtitle">2.8.1</span></h3>
+        <h3>Storage  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_storage.html" title="Storage">Storage</a>
                 
diff --git a/docs/module_stylesheet.html b/docs/module_stylesheet.html
index 33511a6..ec97f88 100644
--- a/docs/module_stylesheet.html
+++ b/docs/module_stylesheet.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>stylesheet  <span class="subtitle">2.8.1</span></h3>
+        <h3>stylesheet  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_stylesheet.html" title="stylesheet">stylesheet</a>
                 
diff --git a/docs/module_swf.html b/docs/module_swf.html
index dda2fd6..d2057e5 100644
--- a/docs/module_swf.html
+++ b/docs/module_swf.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>SWF Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>SWF Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swf.html" title="swf">swf</a>
                 
diff --git a/docs/module_swfdetect.html b/docs/module_swfdetect.html
index ece0702..3d35094 100644
--- a/docs/module_swfdetect.html
+++ b/docs/module_swfdetect.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>swfdetect  <span class="subtitle">2.8.1</span></h3>
+        <h3>swfdetect  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swfdetect.html" title="swfdetect">swfdetect</a>
                 
diff --git a/docs/module_swfstore.html b/docs/module_swfstore.html
index 957b240..99b28f5 100644
--- a/docs/module_swfstore.html
+++ b/docs/module_swfstore.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>swfstore  <span class="subtitle">2.8.1</span></h3>
+        <h3>swfstore  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swfstore.html" title="swfstore">swfstore</a>
                 
diff --git a/docs/module_tabview.html b/docs/module_tabview.html
index ee62c47..35ecc86 100644
--- a/docs/module_tabview.html
+++ b/docs/module_tabview.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>tabview  <span class="subtitle">2.8.1</span></h3>
+        <h3>tabview  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_tabview.html" title="tabview">tabview</a>
                 
diff --git a/docs/module_treeview.html b/docs/module_treeview.html
index c80b1bb..77e56c8 100644
--- a/docs/module_treeview.html
+++ b/docs/module_treeview.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>TreeView Widget  <span class="subtitle">2.8.1</span></h3>
+        <h3>TreeView Widget  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_treeview.html" title="treeview">treeview</a>
                 
diff --git a/docs/module_uploader.html b/docs/module_uploader.html
index c414b71..1315db2 100644
--- a/docs/module_uploader.html
+++ b/docs/module_uploader.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Uploader  <span class="subtitle">2.8.1</span></h3>
+        <h3>Uploader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_uploader.html" title="uploader">uploader</a>
                 
diff --git a/docs/module_yahoo.html b/docs/module_yahoo.html
index 25eae9e..984eb82 100644
--- a/docs/module_yahoo.html
+++ b/docs/module_yahoo.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>YAHOO Global  <span class="subtitle">2.8.1</span></h3>
+        <h3>YAHOO Global  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yahoo.html" title="yahoo">yahoo</a>
                 
diff --git a/docs/module_yuiloader.html b/docs/module_yuiloader.html
index de71a7a..e5ba05f 100644
--- a/docs/module_yuiloader.html
+++ b/docs/module_yuiloader.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuiloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuiloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuiloader.html" title="yuiloader">yuiloader</a>
                 
diff --git a/docs/module_yuitest.html b/docs/module_yuitest.html
index fdf0607..8e075ba 100644
--- a/docs/module_yuitest.html
+++ b/docs/module_yuitest.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuitest  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuitest  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuitest.html" title="yuitest">yuitest</a>
                 
diff --git a/docs/profilerviewer.js.html b/docs/profilerviewer.js.html
index 397f439..d08f952 100644
--- a/docs/profilerviewer.js.html
+++ b/docs/profilerviewer.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>profilerviewer  <span class="subtitle">2.8.1</span></h3>
+        <h3>profilerviewer  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_profilerviewer.html" title="profilerviewer">profilerviewer</a>
                 
diff --git a/docs/raw.json b/docs/raw.json
index 2389ddf..18bc099 100644
--- a/docs/raw.json
+++ b/docs/raw.json
@@ -1 +1 @@
-{"majorversion": 2, "filemap": {"Module.js": {"classlist": ["YAHOO.widget.Module"], "name": "Module.js", "module": "container"}, "TextNode.js": {"classlist": ["YAHOO.widget.TextNode"], "name": "TextNode.js", "module": "treeview"}, "button.js": {"classlist": ["YAHOO.widget.Button"], "name": "button.js", "module": "button"}, "OverlayManager.js": {"classlist": ["YAHOO.widget.OverlayManager"], "name": "OverlayManager.js", "module": "container"}, "StorageEngineGears.js": {"classlist": ["YAHOO.util.StorageEngineGears"], "name": "StorageEngineGears.js", "module": "Storage"}, "Dom.js": {"classlist": ["YAHOO.util.Dom"], "name": "Dom.js", "module": "dom"}, "StorageEvent.js": {"classlist": ["YAHOO.util.StorageEvent"], "name": "StorageEvent.js", "module": "Storage"}, "JSON.js": {"classlist": ["YAHOO.lang.JSON"], "name": "JSON.js", "module": "json"}, "Motion.js": {"classlist": ["YAHOO.util.Motion"], "name": "Motion.js", "module": "animation"}, "StorageEngineHTML5.js": {"classlist": ["YAHOO.util.StorageEngineHTML5"], "name": "StorageEngineHTML5.js", "module": "Storage"}, "DateNode.js": {"classlist": ["YAHOO.widget.DateNode"], "name": "DateNode.js", "module": "treeview"}, "Dialog.js": {"classlist": ["YAHOO.widget.Dialog"], "name": "Dialog.js", "module": "container"}, "DDTarget.js": {"classlist": ["YAHOO.util.DDTarget"], "name": "DDTarget.js", "module": "dragdrop"}, "Scroll.js": {"classlist": ["YAHOO.util.Scroll"], "name": "Scroll.js", "module": "animation"}, "swfdetect.js": {"classlist": ["YAHOO.util.SWFDetect"], "name": "swfdetect.js", "module": "swfdetect"}, "UIComponentTemplate.js": {"classlist": ["YAHOO.widget.Paginator.ui.YourComponent"], "name": "UIComponentTemplate.js", "module": "paginator"}, "MouseEnter.js": {"classlist": [], "name": "MouseEnter.js", "module": "event-mouseenter"}, "connection_xdr.js": {"classlist": [], "name": "connection_xdr.js", "module": "connection"}, "Carousel.js": {"classlist": ["YAHOO.widget.Carousel"], "name": "Carousel.js", "module": "carousel"}, "DragDrop.js": {"classlist": ["YAHOO.util.DragDrop"], "name": "DragDrop.js", "module": "dragdrop"}, "SimpleDialog.js": {"classlist": ["YAHOO.widget.SimpleDialog"], "name": "SimpleDialog.js", "module": "container"}, "Region.js": {"classlist": ["YAHOO.util.Region", "YAHOO.util.Point"], "name": "Region.js", "module": "dom"}, "Profiler.js": {"classlist": ["YAHOO.tool.Profiler"], "name": "Profiler.js", "module": "profiler"}, "Storage.js": {"classlist": ["YAHOO.util.Storage"], "name": "Storage.js", "module": "Storage"}, "TestManager.js": {"classlist": ["YAHOO.tool.TestManager"], "name": "TestManager.js", "module": "yuitest"}, "FirstPageLink.js": {"classlist": ["YAHOO.widget.Paginator.ui.FirstPageLink"], "name": "FirstPageLink.js", "module": "paginator"}, "Series.js": {"classlist": ["YAHOO.widget.Series", "YAHOO.widget.CartesianSeries", "YAHOO.widget.ColumnSeries", "YAHOO.widget.LineSeries", "YAHOO.widget.BarSeries", "YAHOO.widget.PieSeries", "YAHOO.widget.StackedBarSeries", "YAHOO.widget.StackedColumnSeries"], "name": "Series.js", "module": "charts"}, "StorageEngineSWF.js": {"classlist": ["YAHOO.util.StorageEngineSWF"], "name": "StorageEngineSWF.js", "module": "Storage"}, "ContainerEffect.js": {"classlist": ["YAHOO.widget.ContainerEffect"], "name": "ContainerEffect.js", "module": "container"}, "Type.js": {"classlist": ["YAHOO.util.Number", "YAHOO.util.Date", "YAHOO.util.DateLocale"], "name": "Type.js", "module": "datasource"}, "TestRunner.js": {"classlist": ["YAHOO.tool.TestNode", "YAHOO.tool.TestRunner"], "name": "TestRunner.js", "module": "yuitest"}, "contextmenu.js": {"classlist": ["YAHOO.widget.ContextMenu"], "name": "contextmenu.js", "module": "menu"}, "StorageEngineKeyed.js": {"classlist": ["YAHOO.util.StorageEngineKeyed"], "name": "StorageEngineKeyed.js", "module": "Storage"}, "DataSource.js": {"classlist": ["YAHOO.util.DataSourceBase", "YAHOO.util.LocalDataSource", "YAHOO.util.FunctionDataSource", "YAHOO.util.ScriptNodeDataSource", "YAHOO.util.XHRDataSource", "YAHOO.util.DataSource"], "name": "DataSource.js", "module": "datasource"}, "ScrollingDataTable.js": {"classlist": ["YAHOO.widget.ScrollingDataTable"], "name": "ScrollingDataTable.js", "module": "datatable"}, "StorageManager.js": {"classlist": ["YAHOO.util.StorageManager"], "name": "StorageManager.js", "module": "Storage"}, "TimeAxis.js": {"classlist": ["YAHOO.widget.TimeAxis"], "name": "TimeAxis.js", "module": "charts"}, "ObjectAssert.js": {"classlist": ["YAHOO.util.ObjectAssert"], "name": "ObjectAssert.js", "module": "yuitest"}, "ColorPicker.js": {"classlist": ["YAHOO.widget.ColorPicker"], "name": "ColorPicker.js", "module": "colorpicker"}, "Tab.js": {"classlist": ["YAHOO.widget.Tab"], "name": "Tab.js", "module": "tabview"}, "DataTable.js": {"classlist": ["YAHOO.widget.DataTable"], "name": "DataTable.js", "module": "datatable"}, "contextmenuitem.js": {"classlist": ["YAHOO.widget.ContextMenuItem"], "name": "contextmenuitem.js", "module": "menu"}, "gears_init.js": {"classlist": [], "name": "gears_init.js", "module": "Storage"}, "resize.js": {"classlist": ["YAHOO.util.Resize"], "name": "resize.js", "module": "resize"}, "RecordSet.js": {"classlist": ["YAHOO.widget.RecordSet", "YAHOO.widget.Record"], "name": "RecordSet.js", "module": "datatable"}, "Cookie.js": {"classlist": ["YAHOO.util.Cookie"], "name": "Cookie.js", "module": "cookie"}, "Env.js": {"classlist": ["YAHOO.env", "YAHOO.env.ua"], "name": "Env.js", "module": "yahoo"}, "CategoryAxis.js": {"classlist": ["YAHOO.widget.CategoryAxis"], "name": "CategoryAxis.js", "module": "charts"}, "DragDropMgr.js": {"classlist": ["YAHOO.util.DragDropMgr", "YAHOO.util.DragDropMgr.ElementWrapper"], "name": "DragDropMgr.js", "module": "dragdrop"}, "RowsPerPageDropDown.js": {"classlist": ["YAHOO.widget.Paginator.ui.RowsPerPageDropdown"], "name": "RowsPerPageDropDown.js", "module": "paginator"}, "menuitem.js": {"classlist": ["YAHOO.widget.MenuItem"], "name": "menuitem.js", "module": "menu"}, "Selector.js": {"classlist": ["YAHOO.util.Selector"], "name": "Selector.js", "module": "selector"}, "ArrayAssert.js": {"classlist": ["YAHOO.util.ArrayAssert"], "name": "ArrayAssert.js", "module": "yuitest"}, "Axis.js": {"classlist": ["YAHOO.widget.Axis"], "name": "Axis.js", "module": "charts"}, "TreeView.js": {"classlist": ["YAHOO.widget.TreeView"], "name": "TreeView.js", "module": "treeview"}, "KeyListener.js": {"classlist": ["YAHOO.util.KeyListener"], "name": "KeyListener.js", "module": "event"}, "Slider.js": {"classlist": ["YAHOO.widget.Slider"], "name": "Slider.js", "module": "slider"}, "CalendarNavigator.js": {"classlist": ["YAHOO.widget.CalendarNavigator"], "name": "CalendarNavigator.js", "module": "calendar"}, "Uploader.js": {"classlist": ["YAHOO.widget.Uploader"], "name": "Uploader.js", "module": "uploader"}, "Element.js": {"classlist": ["YAHOO.util.Element"], "name": "Element.js", "module": "element"}, "Tooltip.js": {"classlist": ["YAHOO.widget.Tooltip"], "name": "Tooltip.js", "module": "container"}, "history.js": {"classlist": ["YAHOO.util.History"], "name": "history.js", "module": "history"}, "Bezier.js": {"classlist": ["YAHOO.util.Bezier"], "name": "Bezier.js", "module": "animation"}, "UserAction.js": {"classlist": ["YAHOO.util.UserAction"], "name": "UserAction.js", "module": "event-simulate"}, "connectionx.js": {"classlist": [], "name": "connectionx.js", "module": "connection"}, "Node.js": {"classlist": ["YAHOO.widget.Node"], "name": "Node.js", "module": "treeview"}, "Get.js": {"classlist": ["YAHOO.util.Get"], "name": "Get.js", "module": "get"}, "menumanager.js": {"classlist": ["YAHOO.widget.MenuManager"], "name": "menumanager.js", "module": "menu"}, "CartesianChart.js": {"classlist": ["YAHOO.widget.CartesianChart"], "name": "CartesianChart.js", "module": "charts"}, "yuiloader.js": {"classlist": ["YAHOO.util.YUILoader"], "name": "yuiloader.js", "module": "yuiloader"}, "buttongroup.js": {"classlist": ["YAHOO.widget.ButtonGroup"], "name": "buttongroup.js", "module": "button"}, "DualSlider.js": {"classlist": ["YAHOO.widget.DualSlider"], "name": "DualSlider.js", "module": "slider"}, "EventProvider.js": {"classlist": ["YAHOO.util.EventProvider"], "name": "EventProvider.js", "module": "event"}, "YAHOO.js": {"classlist": ["YAHOO_config", "YAHOO"], "name": "YAHOO.js", "module": "yahoo"}, "PieChart.js": {"classlist": ["YAHOO.widget.PieChart"], "name": "PieChart.js", "module": "charts"}, "TabView.js": {"classlist": ["YAHOO.widget.TabView"], "name": "TabView.js", "module": "tabview"}, "MenuNode.js": {"classlist": ["YAHOO.widget.MenuNode"], "name": "MenuNode.js", "module": "treeview"}, "layoutunit.js": {"classlist": ["YAHOO.widget.LayoutUnit"], "name": "layoutunit.js", "module": "layout"}, "AutoComplete.js": {"classlist": ["YAHOO.widget.AutoComplete"], "name": "AutoComplete.js", "module": "autocomplete"}, "IEStyle.js": {"classlist": ["YAHOO.util.Dom.IEStyle"], "name": "IEStyle.js", "module": "dom"}, "stylesheet.js": {"classlist": ["YAHOO.util.StyleSheet"], "name": "stylesheet.js", "module": "stylesheet"}, "Element-Delegate.js": {"classlist": [], "name": "Element-Delegate.js", "module": "element-delegate"}, "crop.js": {"classlist": ["YAHOO.widget.ImageCropper"], "name": "crop.js", "module": "imagecropper"}, "AnimMgr.js": {"classlist": ["YAHOO.util.AnimMgr"], "name": "AnimMgr.js", "module": "animation"}, "menu.js": {"classlist": ["YAHOO.widget.Menu"], "name": "menu.js", "module": "menu"}, "DD.js": {"classlist": ["YAHOO.util.DD"], "name": "DD.js", "module": "dragdrop"}, "HTMLNode.js": {"classlist": ["YAHOO.widget.HTMLNode"], "name": "HTMLNode.js", "module": "treeview"}, "PreviousPageLink.js": {"classlist": ["YAHOO.widget.Paginator.ui.PreviousPageLink"], "name": "PreviousPageLink.js", "module": "paginator"}, "ProgressBar.js": {"classlist": ["YAHOO.widget.ProgressBar"], "name": "ProgressBar.js", "module": "progressbar"}, "TVFadeIn.js": {"classlist": ["YAHOO.widget.TVFadeIn"], "name": "TVFadeIn.js", "module": "treeview"}, "Attribute.js": {"classlist": ["YAHOO.util.Attribute"], "name": "Attribute.js", "module": "element"}, "ColorAnim.js": {"classlist": ["YAHOO.util.ColorAnim"], "name": "ColorAnim.js", "module": "animation"}, "Chart.js": {"classlist": ["YAHOO.widget.Chart"], "name": "Chart.js", "module": "charts"}, "Panel.js": {"classlist": ["YAHOO.widget.Panel"], "name": "Panel.js", "module": "container"}, "LogWriter.js": {"classlist": ["LogWriter"], "name": "LogWriter.js", "module": "logger"}, "TestSuite.js": {"classlist": ["YAHOO.tool.TestSuite"], "name": "TestSuite.js", "module": "yuitest"}, "LogMsg.js": {"classlist": ["LogMsg"], "name": "LogMsg.js", "module": "logger"}, "CalendarGroup.js": {"classlist": ["YAHOO.widget.CalendarGroup", "YAHOO.widget.Calendar2up"], "name": "CalendarGroup.js", "module": "calendar"}, "Paginator.js": {"classlist": ["YAHOO.widget.Paginator"], "name": "Paginator.js", "module": "paginator"}, "Lang.js": {"classlist": ["YAHOO.lang"], "name": "Lang.js", "module": "yahoo"}, "LogReader.js": {"classlist": ["LogReader"], "name": "LogReader.js", "module": "logger"}, "profilerviewer.js": {"classlist": ["YAHOO.widget.ProfilerViewer"], "name": "profilerviewer.js", "module": "profilerviewer"}, "CurrentPageReport.js": {"classlist": ["YAHOO.widget.Paginator.ui.CurrentPageReport"], "name": "CurrentPageReport.js", "module": "paginator"}, "layout.js": {"classlist": ["YAHOO.widget.Layout"], "name": "layout.js", "module": "layout"}, "DateMath.js": {"classlist": ["YAHOO.widget.DateMath"], "name": "DateMath.js", "module": "datemath"}, "RootNode.js": {"classlist": ["YAHOO.widget.RootNode"], "name": "RootNode.js", "module": "treeview"}, "Logger.js": {"classlist": ["YAHOO.widget.Logger"], "name": "Logger.js", "module": "logger"}, "TVAnim.js": {"classlist": ["YAHOO.widget.TVAnim"], "name": "TVAnim.js", "module": "treeview"}, "SliderThumb.js": {"classlist": ["YAHOO.widget.SliderThumb"], "name": "SliderThumb.js", "module": "slider"}, "Delegate.js": {"classlist": [], "name": "Delegate.js", "module": "event-delegate"}, "NextPageLink.js": {"classlist": ["YAHOO.widget.Paginator.ui.NextPageLink"], "name": "NextPageLink.js", "module": "paginator"}, "ChartTypes.js": {"classlist": ["YAHOO.widget.LineChart", "YAHOO.widget.ColumnChart", "YAHOO.widget.BarChart", "YAHOO.widget.StackedColumnChart", "YAHOO.widget.StackedBarChart"], "name": "ChartTypes.js", "module": "charts"}, "TestReporter.js": {"classlist": ["YAHOO.tool.TestReporter"], "name": "TestReporter.js", "module": "yuitest"}, "TestLogger.js": {"classlist": ["YAHOO.tool.TestLogger"], "name": "TestLogger.js", "module": "yuitest"}, "CellEditor.js": {"classlist": ["YAHOO.widget.BaseCellEditor", "YAHOO.widget.CheckboxCellEditor", "YAHOO.widget.DateCellEditor", "YAHOO.widget.DropdownCellEditor", "YAHOO.widget.RadioCellEditor", "YAHOO.widget.TextareaCellEditor", "YAHOO.widget.TextboxCellEditor", "YAHOO.widget.CellEditor"], "name": "CellEditor.js", "module": "datatable"}, "Assert.js": {"classlist": ["YAHOO.util.Assert", "YAHOO.util.AssertionError", "YAHOO.util.ComparisonFailure", "YAHOO.util.UnexpectedValue", "YAHOO.util.ShouldFail", "YAHOO.util.ShouldError", "YAHOO.util.UnexpectedError"], "name": "Assert.js", "module": "yuitest"}, "ColumnSet.js": {"classlist": ["YAHOO.widget.ColumnSet", "YAHOO.widget.Column", "YAHOO.util.Sort", "YAHOO.util.ColumnDD", "YAHOO.util.ColumnResizer"], "name": "ColumnSet.js", "module": "datatable"}, "menuariaplugin.js": {"classlist": [], "name": "menuariaplugin.js", "module": "menu"}, "Config.js": {"classlist": ["YAHOO.util.Config"], "name": "Config.js", "module": "container"}, "menubar.js": {"classlist": ["YAHOO.widget.MenuBar"], "name": "menubar.js", "module": "menu"}, "TVFadeOut.js": {"classlist": ["YAHOO.widget.TVFadeOut"], "name": "TVFadeOut.js", "module": "treeview"}, "TreeViewEd.js": {"classlist": [], "name": "TreeViewEd.js", "module": "treeview"}, "CustomEvent.js": {"classlist": ["YAHOO.util.CustomEvent", "YAHOO.util.Subscriber"], "name": "CustomEvent.js", "module": "event"}, "FlashAdapter.js": {"classlist": ["YAHOO.widget.FlashAdapter"], "name": "FlashAdapter.js", "module": "uploader"}, "PageLinks.js": {"classlist": ["YAHOO.widget.Paginator.ui.PageLinks"], "name": "PageLinks.js", "module": "paginator"}, "toolbar.js": {"classlist": ["YAHOO.widget.Toolbar"], "name": "toolbar.js", "module": "editor"}, "swf.js": {"classlist": ["YAHOO.widget.SWF"], "name": "swf.js", "module": "swf"}, "TestCase.js": {"classlist": ["YAHOO.tool.TestCase", "YAHOO.tool.TestCase.Wait"], "name": "TestCase.js", "module": "yuitest"}, "Anim.js": {"classlist": ["YAHOO.util.Anim"], "name": "Anim.js", "module": "animation"}, "Chain.js": {"classlist": ["YAHOO.util.Chain"], "name": "Chain.js", "module": "datatable"}, "LastPageLink.js": {"classlist": ["YAHOO.widget.Paginator.ui.LastPageLink"], "name": "LastPageLink.js", "module": "paginator"}, "Color.js": {"classlist": ["YAHOO.util.Dom.Color"], "name": "Color.js", "module": "dom"}, "simple-editor.js": {"classlist": ["YAHOO.widget.SimpleEditor", "YAHOO.widget.EditorInfo"], "name": "simple-editor.js", "module": "editor"}, "TestFormat.js": {"classlist": [], "name": "TestFormat.js", "module": "yuitest"}, "toolbar-button.js": {"classlist": ["YAHOO.widget.ToolbarButtonAdvanced", "YAHOO.widget.ToolbarButton"], "name": "toolbar-button.js", "module": "editor"}, "swfobject.js": {"classlist": [], "name": "swfobject.js", "module": "uploader"}, "Event.js": {"classlist": ["YAHOO.util.Event"], "name": "Event.js", "module": "event"}, "editor.js": {"classlist": ["YAHOO.widget.Editor", "YAHOO.widget.EditorWindow"], "name": "editor.js", "module": "editor"}, "Overlay.js": {"classlist": ["YAHOO.widget.Overlay"], "name": "Overlay.js", "module": "container"}, "AttributeProvider.js": {"classlist": ["YAHOO.util.AttributeProvider"], "name": "AttributeProvider.js", "module": "element"}, "Easing.js": {"classlist": ["YAHOO.util.Easing"], "name": "Easing.js", "module": "animation"}, "DateAssert.js": {"classlist": ["YAHOO.util.DateAssert"], "name": "DateAssert.js", "module": "yuitest"}, "menubaritem.js": {"classlist": ["YAHOO.widget.MenuBarItem"], "name": "menubaritem.js", "module": "menu"}, "connection_core.js": {"classlist": ["YAHOO.util.Connect"], "name": "connection_core.js", "module": "connection"}, "DDProxy.js": {"classlist": ["YAHOO.util.DDProxy"], "name": "DDProxy.js", "module": "dragdrop"}, "Calendar.js": {"classlist": ["YAHOO.widget.Calendar", "YAHOO.widget.Calendar_Core"], "name": "Calendar.js", "module": "calendar"}, "swfstore.js": {"classlist": ["YAHOO.util.SWFStore"], "name": "swfstore.js", "module": "swfstore"}, "NumericAxis.js": {"classlist": ["YAHOO.widget.NumericAxis"], "name": "NumericAxis.js", "module": "charts"}, "ImageLoader.js": {"classlist": ["YAHOO.util.ImageLoader.group", "YAHOO.util.ImageLoader.imgObj", "YAHOO.util.ImageLoader.bgImgObj", "YAHOO.util.ImageLoader.srcImgObj", "YAHOO.util.ImageLoader.pngBgImgObj"], "name": "ImageLoader.js", "module": "imageloader"}}, "modules": {"Storage": {"description": "The Storage module manages client-side data storage.", "submodules": [], "classlist": ["YAHOO.util.Storage", "YAHOO.util.StorageEngineGears", "YAHOO.util.StorageEngineHTML5", "YAHOO.util.StorageEngineKeyed", "YAHOO.util.StorageEngineSWF", "YAHOO.util.StorageEvent", "YAHOO.util.StorageManager"], "filelist": ["Storage.js", "StorageEngineGears.js", "StorageEngineHTML5.js", "StorageEngineKeyed.js", "StorageEngineSWF.js", "StorageEvent.js", "StorageManager.js", "gears_init.js"], "subdata": {}, "name": "Storage"}, "progressbar": {"name": "progressbar", "submodules": [], "classlist": ["YAHOO.widget.ProgressBar"], "title": "ProgressBar Widget", "requires": "yahoo, dom, event, element", "filelist": ["ProgressBar.js"], "subdata": {}, "optional": "animation"}, "imageloader": {"description": "The ImageLoader Utility is a framework to dynamically load images according to certain triggers,\nenabling faster load times and a more responsive UI.", "submodules": [], "classlist": ["YAHOO.util.ImageLoader.group", "YAHOO.util.ImageLoader.imgObj", "YAHOO.util.ImageLoader.bgImgObj", "YAHOO.util.ImageLoader.srcImgObj", "YAHOO.util.ImageLoader.pngBgImgObj"], "filelist": ["ImageLoader.js"], "subdata": {}, "requires": "yahoo, dom, event", "name": "imageloader"}, "event-delegate": {"description": "Augments the Event Utility with a <code>delegate</code> method that \nfacilitates easy creation of delegated event listeners.  (Note: Using CSS \nselectors as the filtering criteria for delegated event listeners requires \ninclusion of the Selector Utility.)", "submodules": [], "classlist": [], "title": "Event Utility Event Delegation Module", "filelist": ["Delegate.js"], "subdata": {}, "requires": "event", "name": "event-delegate"}, "calendar": {"description": "The Calendar component is a UI control that enables users to choose one or more dates from a graphical calendar presented in a one-month or\nmulti-month interface. Calendars are generated entirely via script and can be navigated without any page refreshes.", "submodules": [], "classlist": ["YAHOO.widget.Calendar", "YAHOO.widget.Calendar_Core", "YAHOO.widget.CalendarGroup", "YAHOO.widget.Calendar2up", "YAHOO.widget.CalendarNavigator"], "title": "Calendar", "filelist": ["Calendar.js", "CalendarGroup.js", "CalendarNavigator.js"], "subdata": {}, "requires": "yahoo,dom,event", "name": "calendar"}, "profiler": {"description": "The YUI JavaScript profiler.", "submodules": [], "classlist": ["YAHOO.tool.Profiler"], "filelist": ["Profiler.js"], "subdata": {}, "requires": "yahoo", "name": "profiler"}, "event": {"description": "The Event Utility provides utilities for managing DOM Events and tools\nfor building event systems", "submodules": [], "classlist": ["YAHOO.util.CustomEvent", "YAHOO.util.Subscriber", "YAHOO.util.Event", "YAHOO.util.EventProvider", "YAHOO.util.KeyListener"], "title": "Event Utility", "filelist": ["CustomEvent.js", "Event.js", "EventProvider.js", "KeyListener.js"], "subdata": {}, "requires": "yahoo", "name": "event"}, "datemath": {"description": "The datemath module provides utility methods for basic JavaScript Date object manipulation and \ncomparison.", "submodules": [], "classlist": ["YAHOO.widget.DateMath"], "filelist": ["DateMath.js"], "subdata": {}, "name": "datemath"}, "paginator": {"description": "The Paginator widget provides a set of controls to navigate through paged\ndata.", "submodules": [], "classlist": ["YAHOO.widget.Paginator.ui.CurrentPageReport", "YAHOO.widget.Paginator.ui.FirstPageLink", "YAHOO.widget.Paginator.ui.LastPageLink", "YAHOO.widget.Paginator.ui.NextPageLink", "YAHOO.widget.Paginator.ui.PageLinks", "YAHOO.widget.Paginator", "YAHOO.widget.Paginator.ui.PreviousPageLink", "YAHOO.widget.Paginator.ui.RowsPerPageDropdown", "YAHOO.widget.Paginator.ui.YourComponent"], "filelist": ["CurrentPageReport.js", "FirstPageLink.js", "LastPageLink.js", "NextPageLink.js", "PageLinks.js", "Paginator.js", "PreviousPageLink.js", "RowsPerPageDropDown.js", "UIComponentTemplate.js"], "subdata": {}, "uses": "YAHOO.util.EventProvider", "guessedname": "Dom", "guessedtype": "property", "name": "paginator"}, "container": {"description": "The Container family of components is designed to enable developers to \ncreate different kinds of content-containing modules on the web. Module \nand Overlay are the most basic containers, and they can be used directly \nor extended to build custom containers. Also part of the Container family \nare four UI controls that extend Module and Overlay: Tooltip, Panel, \nDialog, and SimpleDialog.", "submodules": [], "classlist": ["YAHOO.util.Config", "YAHOO.widget.ContainerEffect", "YAHOO.widget.Dialog", "YAHOO.widget.Module", "YAHOO.widget.Overlay", "YAHOO.widget.OverlayManager", "YAHOO.widget.Panel", "YAHOO.widget.SimpleDialog", "YAHOO.widget.Tooltip"], "title": "Container", "requires": "yahoo, dom, event", "filelist": ["Config.js", "ContainerEffect.js", "Dialog.js", "Module.js", "Overlay.js", "OverlayManager.js", "Panel.js", "SimpleDialog.js", "Tooltip.js"], "subdata": {}, "optional": "dragdrop, animation, button", "name": "container"}, "event-simulate": {"description": "DOM event simulation utility", "submodules": [], "classlist": ["YAHOO.util.UserAction"], "filelist": ["UserAction.js"], "subdata": {}, "requires": "yahoo,dom,event", "name": "event-simulate"}, "stylesheet": {"description": "The StyleSheet component is a utility for managing css rules at the\nstylesheet level", "submodules": [], "classlist": ["YAHOO.util.StyleSheet"], "filelist": ["stylesheet.js"], "subdata": {}, "beta": "", "requires": "yahoo", "name": "stylesheet"}, "charts": {"description": "The Charts widget provides a Flash control for displaying data\ngraphically by series across A-grade browsers with Flash Player installed.", "submodules": [], "classlist": ["YAHOO.widget.Axis", "YAHOO.widget.CartesianChart", "YAHOO.widget.CategoryAxis", "YAHOO.widget.Chart", "YAHOO.widget.LineChart", "YAHOO.widget.ColumnChart", "YAHOO.widget.BarChart", "YAHOO.widget.StackedColumnChart", "YAHOO.widget.StackedBarChart", "YAHOO.widget.NumericAxis", "YAHOO.widget.PieChart", "YAHOO.widget.Series", "YAHOO.widget.CartesianSeries", "YAHOO.widget.ColumnSeries", "YAHOO.widget.LineSeries", "YAHOO.widget.BarSeries", "YAHOO.widget.PieSeries", "YAHOO.widget.StackedBarSeries", "YAHOO.widget.StackedColumnSeries", "YAHOO.widget.TimeAxis"], "title": "Charts Widget", "filelist": ["Axis.js", "CartesianChart.js", "CategoryAxis.js", "Chart.js", "ChartTypes.js", "NumericAxis.js", "PieChart.js", "Series.js", "TimeAxis.js"], "subdata": {}, "requires": "yahoo, dom, event, datasource", "experimental": "", "name": "charts"}, "swf": {"description": "The SWF utility is a tool for embedding Flash applications in HTMl pages.", "submodules": [], "classlist": ["YAHOO.widget.SWF"], "title": "SWF Utility", "filelist": ["swf.js"], "subdata": {}, "requires": "yahoo, dom, event", "name": "swf"}, "json": {"description": "Provides methods to parse JSON strings and convert objects to JSON strings.", "submodules": [], "classlist": ["YAHOO.lang.JSON"], "filelist": ["JSON.js"], "subdata": {}, "name": "json"}, "animation": {"description": "The animation module provides allows effects to be added to HTMLElements.", "submodules": [], "classlist": ["YAHOO.util.Anim", "YAHOO.util.AnimMgr", "YAHOO.util.Bezier", "YAHOO.util.ColorAnim", "YAHOO.util.Easing", "YAHOO.util.Motion", "YAHOO.util.Scroll"], "filelist": ["Anim.js", "AnimMgr.js", "Bezier.js", "ColorAnim.js", "Easing.js", "Motion.js", "Scroll.js"], "subdata": {}, "requires": "yahoo, event, dom", "name": "animation"}, "event-mouseenter": {"description": "Augments the Event Utility with support for the mouseenter and mouseleave \nevents:  A mouseenter event fires the first time the mouse enters an \nelement; a mouseleave event first the first time the mouse leaves an \nelement.", "submodules": [], "classlist": [], "title": "Event Utility mouseenter and mouseout Module", "filelist": ["MouseEnter.js"], "subdata": {}, "requires": "event", "name": "event-mouseenter"}, "dragdrop": {"description": "The drag and drop utility provides a framework for building drag and drop\napplications.  In addition to enabling drag and drop for specific elements,\nthe drag and drop elements are tracked by the manager class, and the\ninteractions between the various elements are tracked during the drag and\nthe implementing code is notified about these important moments.", "submodules": [], "classlist": ["YAHOO.util.DD", "YAHOO.util.DDProxy", "YAHOO.util.DDTarget", "YAHOO.util.DragDrop", "YAHOO.util.DragDropMgr", "YAHOO.util.DragDropMgr.ElementWrapper"], "title": "Drag and Drop", "filelist": ["DD.js", "DDProxy.js", "DDTarget.js", "DragDrop.js", "DragDropMgr.js"], "subdata": {}, "requires": "yahoo,dom,event", "name": "dragdrop"}, "carousel": {"description": "The Carousel module provides a widget for browsing among a set of like\nobjects represented pictorially.", "submodules": [], "classlist": ["YAHOO.widget.Carousel"], "title": "Carousel Widget", "filelist": ["Carousel.js"], "subdata": {}, "beta": "", "optional": "animation", "requires": "yahoo, dom, event, element", "name": "carousel"}, "element-delegate": {"description": "Augments the Element Utility with a <code>delegate</code> method that \nfacilitates easy creation of delegated event listeners.  (Note: Using CSS \nselectors as the filtering criteria for delegated event listeners requires \ninclusion of the Selector Utility.)", "submodules": [], "classlist": [], "title": "Element Event Delegation Module", "filelist": ["Element-Delegate.js"], "subdata": {}, "requires": "element, event-delegate", "name": "element-delegate"}, "logger": {"description": "The Logger widget provides a simple way to read or write log messages in\nJavaScript code. Integration with the YUI Library's debug builds allow\nimplementers to access under-the-hood events, errors, and debugging messages.\nOutput may be read through a LogReader console and/or output to a browser\nconsole.", "submodules": [], "classlist": ["LogMsg", "LogReader", "LogWriter", "YAHOO.widget.Logger"], "title": "Logger Widget", "filelist": ["LogMsg.js", "LogReader.js", "LogWriter.js", "Logger.js"], "subdata": {}, "optional": "dragdrop", "requires": "yahoo, event, dom", "name": "logger"}, "editor": {"description": "<p>Creates a rich Toolbar widget based on Button. Primarily used with the Rich Text Editor</p>", "submodules": [], "classlist": ["YAHOO.widget.Editor", "YAHOO.widget.EditorWindow", "YAHOO.widget.SimpleEditor", "YAHOO.widget.EditorInfo", "YAHOO.widget.ToolbarButtonAdvanced", "YAHOO.widget.ToolbarButton", "YAHOO.widget.Toolbar"], "filelist": ["editor.js", "simple-editor.js", "toolbar-button.js", "toolbar.js"], "subdata": {}, "optional": "dragdrop, animation, menu, button, resize", "requires": "yahoo, dom, element, event, container_core, simpleeditor", "name": "editor"}, "colorpicker": {"description": "The colorpicker module provides a widget for selecting colors", "submodules": [], "classlist": ["YAHOO.util.Color", "YAHOO.widget.ColorPicker"], "filelist": ["Color.js", "ColorPicker.js"], "subdata": {}, "requires": "yahoo, dom, event, element, slider", "name": "colorpicker"}, "imagecropper": {"description": "<p>Creates a Image Cropper control.</p>", "submodules": [], "classlist": ["YAHOO.widget.ImageCropper"], "filelist": ["crop.js"], "subdata": {}, "beta": "", "requires": "yahoo, dom, dragdrop, element, event, resize", "name": "imagecropper"}, "get": {"description": "Provides a mechanism to fetch remote resources and\ninsert them into a document", "submodules": [], "classlist": ["YAHOO.util.Get"], "filelist": ["Get.js"], "subdata": {}, "requires": "yahoo", "name": "get"}, "yuitest": {"description": "The YUI test tool", "submodules": [], "classlist": ["YAHOO.util.ArrayAssert", "YAHOO.util.Assert", "YAHOO.util.AssertionError", "YAHOO.util.ComparisonFailure", "YAHOO.util.UnexpectedValue", "YAHOO.util.ShouldFail", "YAHOO.util.ShouldError", "YAHOO.util.UnexpectedError", "YAHOO.util.DateAssert", "YAHOO.util.ObjectAssert", "YAHOO.tool.TestCase", "YAHOO.tool.TestCase.Wait", "YAHOO.tool.TestLogger", "YAHOO.tool.TestManager", "YAHOO.tool.TestReporter", "YAHOO.tool.TestNode", "YAHOO.tool.TestRunner", "YAHOO.tool.TestSuite"], "filelist": ["ArrayAssert.js", "Assert.js", "DateAssert.js", "ObjectAssert.js", "TestCase.js", "TestFormat.js", "TestLogger.js", "TestManager.js", "TestReporter.js", "TestRunner.js", "TestSuite.js"], "subdata": {}, "optional": "event-simulte", "requires": "yahoo,dom,event,logger", "name": "yuitest"}, "yahoo": {"description": "The YAHOO object is the single global object used by YUI Library.  It\ncontains utility function for setting up namespaces, inheritance, and\nlogging.  YAHOO.util, YAHOO.widget, and YAHOO.example are namespaces\ncreated automatically for and used by the library.", "submodules": [], "classlist": ["YAHOO.env", "YAHOO.env.ua", "YAHOO.lang", "YAHOO_config", "YAHOO"], "title": "YAHOO Global", "filelist": ["Env.js", "Lang.js", "YAHOO.js"], "subdata": {}, "name": "yahoo"}, "selector": {"description": "The selector module provides helper methods allowing CSS3 Selectors to be used with DOM elements.", "submodules": [], "classlist": ["YAHOO.util.Selector"], "title": "Selector Utility", "filelist": ["Selector.js"], "subdata": {}, "requires": "yahoo, dom", "name": "selector"}, "slider": {"description": "The Slider component is a UI control that enables the user to adjust \nvalues in a finite range along one or two axes. Typically, the Slider \ncontrol is used in a web application as a rich, visual replacement \nfor an input box that takes a number as input. The Slider control can \nalso easily accommodate a second dimension, providing x,y output for \na selection point chosen from a rectangular region.", "submodules": [], "classlist": ["YAHOO.widget.DualSlider", "YAHOO.widget.Slider", "YAHOO.widget.SliderThumb"], "title": "Slider Widget", "requires": "yahoo,dom,dragdrop,event", "filelist": ["DualSlider.js", "Slider.js", "SliderThumb.js"], "subdata": {}, "optional": "animation", "name": "slider"}, "cookie": {"description": "Utilities for cookie management", "submodules": [], "classlist": ["YAHOO.util.Cookie"], "filelist": ["Cookie.js"], "subdata": {}, "name": "cookie"}, "uploader": {"description": "The YUI Uploader Control", "submodules": [], "classlist": ["YAHOO.widget.FlashAdapter", "YAHOO.widget.Uploader"], "title": "Uploader", "filelist": ["FlashAdapter.js", "Uploader.js", "swfobject.js"], "subdata": {}, "requires": "yahoo, dom, element, event", "name": "uploader"}, "layout": {"description": "<p>Provides a fixed layout containing, top, bottom, left, right and center layout units. It can be applied to either the body or an element.</p>", "submodules": [], "classlist": ["YAHOO.widget.Layout", "YAHOO.widget.LayoutUnit"], "filelist": ["layout.js", "layoutunit.js"], "subdata": {}, "requires": "yahoo, dom, element, event", "name": "layout"}, "profilerviewer": {"description": "The ProfilerViewer module provides a graphical display for viewing\nthe output of the YUI Profiler <http://developer.yahoo.com/yui/profiler>.", "submodules": [], "classlist": ["YAHOO.widget.ProfilerViewer"], "filelist": ["profilerviewer.js"], "subdata": {}, "requires": "yahoo, dom, event, element, profiler, yuiloader", "name": "profilerviewer"}, "datatable": {"description": "The DataTable widget provides a progressively enhanced DHTML control for\ndisplaying tabular data across A-grade browsers.", "submodules": [], "classlist": ["YAHOO.widget.BaseCellEditor", "YAHOO.widget.CheckboxCellEditor", "YAHOO.widget.DateCellEditor", "YAHOO.widget.DropdownCellEditor", "YAHOO.widget.RadioCellEditor", "YAHOO.widget.TextareaCellEditor", "YAHOO.widget.TextboxCellEditor", "YAHOO.widget.CellEditor", "YAHOO.util.Chain", "YAHOO.widget.ColumnSet", "YAHOO.widget.Column", "YAHOO.util.Sort", "YAHOO.util.ColumnDD", "YAHOO.util.ColumnResizer", "YAHOO.widget.DataTable", "YAHOO.widget.RecordSet", "YAHOO.widget.Record", "YAHOO.widget.ScrollingDataTable"], "title": "DataTable Widget", "requires": "yahoo, dom, event, element, datasource", "filelist": ["CellEditor.js", "Chain.js", "ColumnSet.js", "DataTable.js", "RecordSet.js", "ScrollingDataTable.js"], "subdata": {}, "optional": "dragdrop, dragdrop", "name": "datatable"}, "resize": {"description": "<p>Makes an element resizable</p>", "submodules": [], "classlist": ["YAHOO.util.Resize"], "filelist": ["resize.js"], "subdata": {}, "optional": "animation", "requires": "yahoo, dom, dragdrop, element, event", "name": "resize"}, "swfstore": {"description": "Provides a swf based storage implementation", "submodules": [], "classlist": ["YAHOO.util.SWFStore"], "filelist": ["swfstore.js"], "subdata": {}, "name": "swfstore"}, "swfdetect": {"description": "Utility for Flash version detection", "submodules": [], "classlist": ["YAHOO.util.SWFDetect"], "filelist": ["swfdetect.js"], "subdata": {}, "name": "swfdetect"}, "yuiloader": {"description": "Provides dynamic loading for the YUI library.  It includes the dependency\ninfo for the library, and will automatically pull in dependencies for\nthe modules requested.  It supports rollup files (such as utilities.js\nand yahoo-dom-event.js), and will automatically use these when\nappropriate in order to minimize the number of http connections\nrequired to load all of the dependencies.", "submodules": [], "classlist": ["YAHOO.util.YUILoader"], "filelist": ["yuiloader.js"], "subdata": {}, "name": "yuiloader"}, "dom": {"description": "Internal methods used to add style management functionality to DOM.", "submodules": [], "classlist": ["YAHOO.util.Dom.Color", "YAHOO.util.Dom", "YAHOO.util.Dom.IEStyle", "YAHOO.util.Region", "YAHOO.util.Point"], "filelist": ["Color.js", "Dom.js", "IEStyle.js", "Region.js"], "subdata": {}, "name": "dom"}, "tabview": {"description": "The tabview module provides a widget for managing content bound to tabs.", "submodules": [], "classlist": ["YAHOO.widget.Tab", "YAHOO.widget.TabView"], "filelist": ["Tab.js", "TabView.js"], "subdata": {}, "guessedname": "Y", "guessedtype": "property", "requires": "yahoo, dom, event, element", "name": "tabview"}, "button": {"description": "<p>The Button Control enables the creation of rich, graphical \nbuttons that function like traditional HTML form buttons.  <em>Unlike</em> \ntraditional HTML form buttons, buttons created with the Button Control can have \na label that is different from its value.  With the inclusion of the optional \n<a href=\"module_menu.html\">Menu Control</a>, the Button Control can also be\nused to create menu buttons and split buttons, controls that are not \navailable natively in HTML.  The Button Control can also be thought of as a \nway to create more visually engaging implementations of the browser's \ndefault radio-button and check-box controls.</p>\n<p>The Button Control supports the following types:</p>\n<dl>\n<dt>push</dt>\n<dd>Basic push button that can execute a user-specified command when \npressed.</dd>\n<dt>link</dt>\n<dd>Navigates to a specified url when pressed.</dd>\n<dt>submit</dt>\n<dd>Submits the parent form when pressed.</dd>\n<dt>reset</dt>\n<dd>Resets the parent form when pressed.</dd>\n<dt>checkbox</dt>\n<dd>Maintains a \"checked\" state that can be toggled on and off.</dd>\n<dt>radio</dt>\n<dd>Maintains a \"checked\" state that can be toggled on and off.  Use with \nthe ButtonGroup class to create a set of controls that are mutually \nexclusive; checking one button in the set will uncheck all others in \nthe group.</dd>\n<dt>menu</dt>\n<dd>When pressed will show/hide a menu.</dd>\n<dt>split</dt>\n<dd>Can execute a user-specified command or display a menu when pressed.</dd>\n</dl>", "submodules": [], "classlist": ["YAHOO.widget.Button", "YAHOO.widget.ButtonGroup"], "title": "Button", "requires": "yahoo, dom, element, event", "filelist": ["button.js", "buttongroup.js"], "subdata": {}, "optional": "container, menu", "name": "button"}, "element": {"description": "Element provides an wrapper object to simplify adding\nevent listeners, using dom methods, and managing attributes.", "submodules": [], "classlist": ["YAHOO.util.Attribute", "YAHOO.util.AttributeProvider", "YAHOO.util.Element"], "filelist": ["Attribute.js", "AttributeProvider.js", "Element.js"], "subdata": {}, "requires": "yahoo, dom, event", "name": "element"}, "autocomplete": {"description": "The AutoComplete control provides the front-end logic for text-entry suggestion and\ncompletion functionality.", "submodules": [], "classlist": ["YAHOO.widget.AutoComplete"], "title": "AutoComplete Widget", "filelist": ["AutoComplete.js"], "subdata": {}, "optional": "animation", "requires": "yahoo, dom, event, datasource", "name": "autocomplete"}, "connection": {"description": "The Connection Manager provides a simplified interface to the XMLHttpRequest\nobject.  It handles cross-browser instantiantion of XMLHttpRequest, negotiates the\ninteractive states and server response, returning the results to a pre-defined\ncallback you create.", "submodules": [], "classlist": ["YAHOO.util.Connect"], "filelist": ["connection_core.js", "connection_xdr.js", "connectionx.js"], "subdata": {}, "requires": "yahoo", "name": "connection"}, "datasource": {"description": "The DataSource utility provides a common configurable interface for widgets to\naccess a variety of data, from JavaScript arrays to online database servers.", "submodules": [], "classlist": ["YAHOO.util.DataSourceBase", "YAHOO.util.LocalDataSource", "YAHOO.util.FunctionDataSource", "YAHOO.util.ScriptNodeDataSource", "YAHOO.util.XHRDataSource", "YAHOO.util.DataSource", "YAHOO.util.Number", "YAHOO.util.Date", "YAHOO.util.DateLocale"], "title": "DataSource Utility", "requires": "yahoo, event", "filelist": ["DataSource.js", "Type.js"], "subdata": {}, "optional": "json, get, connection", "name": "datasource"}, "menu": {"description": "<p>The Menu family of components features a collection of \ncontrols that make it easy to add menus to your website or web application.  \nWith the Menu Controls you can create website fly-out menus, customized \ncontext menus, or application-style menu bars with just a small amount of \nscripting.</p><p>The Menu family of controls features:</p>\n<ul>\n<li>Keyboard and mouse navigation.</li>\n<li>A rich event model that provides access to all of a menu's \ninteresting moments.</li>\n<li>Support for \n<a href=\"http://en.wikipedia.org/wiki/Progressive_Enhancement\">Progressive\nEnhancement</a>; Menus can be created from simple, \nsemantic markup on the page or purely through JavaScript.</li>\n</ul>", "submodules": [], "classlist": ["YAHOO.widget.ContextMenu", "YAHOO.widget.ContextMenuItem", "YAHOO.widget.Menu", "YAHOO.widget.MenuBar", "YAHOO.widget.MenuBarItem", "YAHOO.widget.MenuItem", "YAHOO.widget.MenuManager"], "title": "Menu", "filelist": ["contextmenu.js", "contextmenuitem.js", "menu.js", "menuariaplugin.js", "menubar.js", "menubaritem.js", "menuitem.js", "menumanager.js"], "subdata": {}, "requires": "Event, Dom, Container", "name": "menu"}, "treeview": {"description": "The treeview widget is a generic tree building tool.", "submodules": [], "classlist": ["YAHOO.widget.DateNode", "YAHOO.widget.HTMLNode", "YAHOO.widget.MenuNode", "YAHOO.widget.Node", "YAHOO.widget.RootNode", "YAHOO.widget.TextNode", "YAHOO.widget.TreeView", "YAHOO.widget.TVAnim", "YAHOO.widget.TVFadeIn", "YAHOO.widget.TVFadeOut"], "title": "TreeView Widget", "filelist": ["DateNode.js", "HTMLNode.js", "MenuNode.js", "Node.js", "RootNode.js", "TextNode.js", "TreeView.js", "TreeViewEd.js", "TVAnim.js", "TVFadeIn.js", "TVFadeOut.js"], "subdata": {}, "optional": "animation, json, calendar", "requires": "yahoo, dom, event", "name": "treeview"}, "history": {"description": "The Browser History Manager provides the ability to use the back/forward\nnavigation buttons in a DHTML application. It also allows a DHTML\napplication to be bookmarked in a specific state.\nThis library requires the following static markup:\n<iframe id=\"yui-history-iframe\" src=\"path-to-real-asset-in-same-domain\"></iframe>\n<input id=\"yui-history-field\" type=\"hidden\">", "submodules": [], "classlist": ["YAHOO.util.History"], "title": "Browser History Manager", "filelist": ["history.js"], "subdata": {}, "requires": "yahoo,event", "name": "history"}}, "classmap": {"YAHOO.util.Storage": {"name": "YAHOO.util.Storage", "parm": "name {String} Required. The engine name.", "constructors": [{"params": [{"type": "String", "name": "location", "description": "  Required. The storage location."}, {"type": "Object", "name": "conf", "description": "  Required. A configuration object."}], "description": "The Storage class is an HTML 5 storage API clone, used to wrap individual storage implementations with a common API."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "Storage", "methods": {"getItem": {"return": {"type": "String|NULL", "description": "The value stored at the provided key (DOMString in HTML 5 spec)."}, "description": "Fetches the data stored and the provided key.", "params": [{"type": "String", "name": "key", "description": "  Required. The key used to reference this value (DOMString in HTML 5 spec)."}], "guessedname": "getItem", "guessedtype": "function", "public": ""}, "_clear": {"protected": "", "description": "Implementation of the clear login; should be overwritten by storage engine.", "guessedname": "_clear", "guessedtype": "function"}, "clear": {"description": "Clears any existing key/value pairs.", "public": "", "guessedname": "clear", "guessedtype": "function"}, "_createValue": {"protected": "", "params": [{"type": "Object", "name": "s", "description": "  Required. An object to store."}], "description": "Converts the object into a string, with meta data (type), so it can be restored later.", "guessedname": "_createValue", "guessedtype": "function"}, "_getItem": {"return": {"type": "String|NULL", "description": "The value stored at the provided key."}, "description": "Implementation of the getItem login; should be overwritten by storage engine.", "protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key used to reference this value."}], "guessedname": "_getItem", "guessedtype": "function"}, "_key": {"return": {"type": "String|NULL", "description": "Required. The key at the provided index (DOMString in HTML 5 spec)."}, "description": "Implementation of the key logic; should be overwritten by storage engine.", "protected": "", "params": [{"type": "Number", "name": "index", "description": "  Required. The index to retrieve (unsigned long in HTML 5 spec)."}], "guessedname": "_key", "guessedtype": "function"}, "setItem": {"description": "Remove an item from the data storage.", "param": "key {String} Required. The key used to reference this value (DOMString in HTML 5 spec).", "throws": "QUOTA_EXCEEDED_ERROR", "params": [{"type": "String", "name": "key", "description": "  Required. The key to remove (DOMString in HTML 5 spec)."}], "guessedname": "removeItem", "guessedtype": "function", "public": ""}, "_getValue": {"protected": "", "params": [{"type": "String", "name": "s", "description": "  Required. The stored value."}], "description": "Converts the stored value into its appropriate type.", "guessedname": "_getValue", "guessedtype": "function"}, "key": {"return": {"type": "String", "description": "Required. The key at the provided index (DOMString in HTML 5 spec)."}, "description": "Retrieve the key stored at the provided index; should be overwritten by storage engine.", "params": [{"type": "Number", "name": "index", "description": "  Required. The index to retrieve (unsigned long in HTML 5 spec)."}], "guessedname": "key", "guessedtype": "function", "public": ""}, "_removeItem": {"protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key to remove."}], "description": "Implementation of the removeItem login; should be overwritten by storage engine.", "guessedname": "_removeItem", "guessedtype": "function"}, "hasKey": {"return": {"type": "Boolean", "description": "True when key has been set."}, "description": "Tests if the key has been set (not in HTML 5 spec); should be overwritten by storage engine.", "params": [{"type": "String", "name": "key", "description": "  Required. The key to search for."}], "guessedname": "hasKey", "guessedtype": "function", "public": ""}, "_setItem": {"return": {"type": "Boolean", "description": "True when successful, false when size QUOTA exceeded."}, "description": "Implementation of the setItem login; should be overwritten by storage engine.", "protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key used to reference this value."}, {"type": "Object", "name": "data", "description": "  Required. The data to storage at key."}], "guessedname": "_setItem", "guessedtype": "function"}, "getName": {"public": "", "return": {"type": "String", "description": "The name of the data storage object."}, "description": "Fetches the storage object's name; should be overwritten by storage engine.", "guessedname": "getName", "guessedtype": "function"}}, "file": "Storage.js", "guessedtype": "function", "shortname": "Storage", "properties": {"CE_CHANGE": {"public": "", "type": "{String}", "description": "The event name for when the storage item has changed.", "guessedname": "CE_CHANGE", "guessedtype": "property"}, "_location": {"protected": "", "type": "{String}", "description": "The location for this instance.", "guessedname": "_location", "guessedtype": "property"}, "length": {"public": "", "type": "{Number}", "description": "The current length of the keys.", "guessedname": "length", "guessedtype": "property"}, "_name": {"protected": "", "type": "{String}", "description": "The name of this engine.", "guessedname": "_name", "guessedtype": "property"}, "CE_READY": {"public": "", "type": "{String}", "description": "The event name for when the storage item is ready.", "guessedname": "CE_READY", "guessedtype": "property"}, "DELIMITER": {"public": "", "type": "{String}", "description": "The delimiter uesed between the data type and the data.", "guessedname": "DELIMITER", "guessedtype": "property"}, "_cfg": {"protected": "", "type": "{Object}", "description": "The configuration of the engine.", "guessedname": "_cfg", "guessedtype": "property"}, "isReady": {"protected": "", "type": "{String}", "description": "This engine singleton has been initialized already.", "guessedname": "isReady", "guessedtype": "property"}}, "description": "The Storage class is an HTML 5 storage API clone, used to wrap individual storage implementations with a common API."}, "YAHOO.widget.Panel": {"name": "YAHOO.widget.Panel", "configs": {"keylisteners": {"default": "null", "type": "YAHOO.util.KeyListener[]", "description": "A KeyListener (or array of KeyListeners) that will be enabled \nwhen the Panel is shown, and disabled when the Panel is hidden."}, "draggable": {"default": "true", "type": "Boolean", "description": "Boolean specifying if the Panel should be draggable.  The default \nvalue is \"true\" if the Drag and Drop utility is included, \notherwise it is \"false.\" <strong>PLEASE NOTE:</strong> There is a \nknown issue in IE 6 (Strict Mode and Quirks Mode) and IE 7 \n(Quirks Mode) where Panels that either don't have a value set for \ntheir \"width\" configuration property, or their \"width\" \nconfiguration property is set to \"auto\" will only be draggable by\nplacing the mouse on the text of the Panel's header element.\nTo fix this bug, draggable Panels missing a value for their \n\"width\" configuration property, or whose \"width\" configuration \nproperty is set to \"auto\" will have it set to the value of \ntheir root HTML element's offsetWidth before they are made \nvisible.  The calculated width is then removed when the Panel is   \nhidden. <em>This fix is only applied to draggable Panels in IE 6 \n(Strict Mode and Quirks Mode) and IE 7 (Quirks Mode)</em>. For \nmore information on this issue see:\nYUILibrary bugs #1726972 and #1589210."}, "dragOnly": {"default": "false", "type": "Boolean", "description": "Boolean specifying if the draggable Panel should be drag only, not interacting with drop \ntargets on the page.\n<p>\nWhen set to true, draggable Panels will not check to see if they are over drop targets,\nor fire the DragDrop events required to support drop target interaction (onDragEnter, \nonDragOver, onDragOut, onDragDrop etc.).\nIf the Panel is not designed to be dropped on any target elements on the page, then this \nflag can be set to true to improve performance.\n</p>\n<p>\nWhen set to false, all drop target related events will be fired.\n</p>\n<p>\nThe property is set to false by default to maintain backwards compatibility but should be \nset to true if drop target interaction is not required for the Panel, to improve performance.</p>"}, "modal": {"default": "false", "type": "Boolean", "description": "True if the Panel should be displayed in a modal fashion, \nautomatically creating a transparent mask over the document that\nwill not be removed until the Panel is dismissed."}, "close": {"default": "true", "type": "Boolean", "description": "True if the Panel should display a \"close\" button"}, "underlay": {"default": "shadow", "type": "String", "description": "Sets the type of underlay to display for the Panel. Valid values \nare \"shadow,\" \"matte,\" and \"none\".  <strong>PLEASE NOTE:</strong> \nThe creation of the underlay element is deferred until the Panel \nis initially made visible.  For Gecko-based browsers on Mac\nOS X the underlay elment is always created as it is used as a \nshim to prevent Aqua scrollbars below a Panel instance from poking \nthrough it (See YUILibrary bug #1723530)."}, "strings": {"default": "An object literal with the properties shown below:\n<dl>\n<dt>close</dt><dd><em>String</em> : The string to use for the close icon. Defaults to \"Close\".</dd>\n</dl>", "type": "Object", "description": "UI Strings used by the Panel"}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Panel <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Panel"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this Panel. See configuration \ndocumentation for more details."}], "description": "Panel is an implementation of Overlay that behaves like an OS window, \nwith a draggable header and an optional close icon at the top right."}], "namespace": "YAHOO.widget", "module": "container", "events": {"showMaskEvent": {"description": "CustomEvent fired after the modality mask is shown", "guessedname": "showMaskEvent", "guessedtype": "property"}, "dragEvent": {"description": "CustomEvent when the Panel is dragged", "guessedname": "dragEvent", "guessedtype": "property"}, "hideMaskEvent": {"description": "CustomEvent fired after the modality mask is hidden", "guessedname": "hideMaskEvent", "guessedtype": "property"}}, "guessedname": "Panel", "methods": {"_removeFocusHandlers": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": "  Event type"}, {"type": "Array", "name": "p_aArgs", "description": "  Event Arguments"}], "description": "\"hideMask\" event handler that removes all \"focus\" event handlers added \nby the \"addFocusEventHandlers\" method.", "guessedname": "_removeFocusHandlers", "guessedtype": "function"}, "configClose": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"close\" property is changed.\nThe method controls the appending or hiding of the close icon at the \ntop right of the Panel.", "guessedname": "configClose", "guessedtype": "function"}, "render": {"return": {"type": "boolean", "description": "Success or failure of the render"}, "params": [{"type": "String", "name": "appendToNode", "description": " The element id to which the Module \nshould be appended to prior to rendering <em>OR</em>"}, {"type": "HTMLElement", "name": "appendToNode", "description": " The element to which the Module \nshould be appended to prior to rendering"}], "description": "Renders the Panel by inserting the elements that are not already in \nthe main Panel into their correct places. Optionally appends the \nPanel to the specified node prior to the render's execution. NOTE: \nFor Panels without existing markup, the appendToNode argument is \nREQUIRED. If this argument is ommitted and the current element is \nnot present in the document, the function will return false, \nindicating that the render was a failure.", "guessedname": "render", "guessedtype": "function"}, "_doClose": {"protected": "", "params": [{"type": "DOMEvent", "name": "e", "description": ""}], "description": "Event handler for the close icon", "guessedname": "_doClose", "guessedtype": "function"}, "stackMask": {"description": "Sets the zindex of the mask, if it exists, based on the zindex of \nthe Panel element. The zindex of the mask is set to be one less \nthan the Panel element's zindex.\n<p>NOTE: This method will not bump up the zindex of the Panel\nto ensure that the mask has a non-negative zindex. If you require the\nmask zindex to be 0 or higher, the zindex of the Panel \nshould be set to a value higher than 0, before this method is called.\n</p>", "guessedname": "stackMask", "guessedtype": "function"}, "_renderBody": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element."}], "description": "Renders the currently set body into it's proper position under the \nmodule element. If the module element is not provided, \"this.innerElement\" \nis used.", "guessedname": "_renderBody", "guessedtype": "function"}, "_createHiddenFocusElement": {"private": "", "description": "Creates a hidden focusable element, used to focus on,\nto enforce modality for browsers in which focus cannot\nbe applied to the container box.", "guessedname": "_createHiddenFocusElement", "guessedtype": "function"}, "sizeMask": {"description": "Sets the size of the modality mask to cover the entire scrollable \narea of the document", "guessedname": "sizeMask", "guessedtype": "function"}, "_renderHeader": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element"}], "description": "Renders the currently set header into it's proper position under the \nmodule element. If the module element is not provided, \"this.innerElement\" \nis used.", "guessedname": "_renderHeader", "guessedtype": "function"}, "hideMask": {"description": "Hides the modality mask.", "guessedname": "hideMask", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Module which are fired \nautomatically at appropriate times by the Module class.", "guessedname": "initEvents", "guessedtype": "function"}, "focusFirst": {"description": "Sets focus to the first element in the Panel.", "guessedname": "focusFirst", "guessedtype": "function"}, "configModal": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"modal\" property is \nchanged. This handler subscribes or unsubscribes to the show and hide\nevents to handle the display or hide of the modality mask.", "guessedname": "configModal", "guessedtype": "function"}, "configKeyListeners": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration\nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"keylisteners\" property \nis changed.", "guessedname": "configKeyListeners", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Overlay <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Overlay"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this Overlay. \nSee configuration documentation for more details."}], "description": "The Overlay initialization method, which is executed for Overlay and \nall of its subclasses. This method is automatically called by the \nconstructor, and  sets up all DOM references for pre-existing markup, \nand creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Panel."}, "description": "Returns a String representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "buildWrapper": {"description": "Builds the wrapping container around the Panel that is used for \npositioning the shadow and matte underlays. The container element is \nassigned to a  local instance variable called container, and the \nelement is reinserted inside of it.", "guessedname": "buildWrapper", "guessedtype": "function"}, "destroy": {"description": "Removes the Panel element from the DOM and sets all child elements\nto null.", "guessedname": "destroy", "guessedtype": "function"}, "removeMask": {"description": "Removes the modality mask.", "guessedname": "removeMask", "guessedtype": "function"}, "configHeight": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"height\" property is changed.", "guessedname": "configHeight", "guessedtype": "function"}, "registerDragDrop": {"description": "Registers the Panel's header for drag & drop capability.", "guessedname": "registerDragDrop", "guessedtype": "function"}, "showMask": {"description": "Shows the modality mask.", "guessedname": "showMask", "guessedtype": "function"}, "configStrings": {"description": "The default handler for the \"strings\" property", "guessedname": "configStrings", "guessedtype": "function"}, "_onElementFocus": {"guessedname": "_onElementFocus", "params": [{"type": "Event", "name": "e", "description": " The DOM event object"}], "description": "\"focus\" event handler for a focuable element. Used to automatically\nblur the element when it receives focus to ensure that a Panel\ninstance's modality is not compromised.", "private": "", "guessedtype": "function"}, "_addFocusHandlers": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": "  Custom event type"}, {"type": "Array", "name": "p_aArgs", "description": "  Custom event arguments"}], "description": "\"showMask\" event handler that adds a \"focus\" event handler to all\nfocusable elements in the document to enforce a Panel instance's \nmodality from being compromised.", "guessedname": "_addFocusHandlers", "guessedtype": "function"}, "forceUnderlayRedraw": {"description": "Forces the underlay element to be repainted through the application/removal \nof a yui-force-redraw class to the underlay element.", "guessedname": "forceUnderlayRedraw", "guessedtype": "function"}, "configUnderlay": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"underlay\" property \nis changed.", "guessedname": "configUnderlay", "guessedtype": "function"}, "focusLast": {"description": "Sets focus to the last element in the Panel.", "guessedname": "focusLast", "guessedtype": "function"}, "configWidth": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"width\" property is changed.", "guessedname": "configWidth", "guessedtype": "function"}, "configDraggable": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"draggable\" property \nis changed.", "guessedname": "configDraggable", "guessedtype": "function"}, "_renderFooter": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element"}], "description": "Renders the currently set footer into it's proper position under the \nmodule element. If the module element is not provided, \"this.innerElement\" \nis used.", "guessedname": "_renderFooter", "guessedtype": "function"}, "buildMask": {"description": "Builds the mask that is laid over the document when the Panel is \nconfigured to be modal.", "guessedname": "buildMask", "guessedtype": "function"}, "_autoFillOnHeightChange": {"protected": "", "params": [{"type": "String", "name": "type", "description": " The event type"}, {"type": "Array", "name": "args", "description": " The array of arguments passed to event subscribers"}, {"type": "HTMLElement", "name": "el", "description": " The header, body or footer element which is to be resized to fill\nout the containers height"}], "description": "The default custom event handler executed when the Panel's height is changed, \nif the autofillheight property has been set.", "guessedname": "_autoFillOnHeightChange", "guessedtype": "function"}, "setFirstLastFocusable": {"description": "Sets the firstElement and lastElement instance properties\nto the first and last focusable elements in the Panel.", "guessedname": "setFirstLastFocusable", "guessedtype": "function"}, "getFocusableElements": {"params": [{"type": "HTMLElement", "name": "root", "description": " element to start from."}], "description": "Returns an array of the currently focusable items which reside within\nPanel. The set of focusable elements the method looks for are defined\nin the Panel.FOCUSABLE static property", "guessedname": "getFocusableElements", "guessedtype": "function"}, "configzIndex": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"zIndex\" property is changed.", "guessedname": "configzIndex", "guessedtype": "function"}, "sizeUnderlay": {"description": "Adjusts the size of the shadow based on the size of the element.", "guessedname": "sizeUnderlay", "guessedtype": "function"}, "setTabLoop": {"params": [{"type": "HTMLElement", "name": "firstElement", "description": ""}, {"type": "HTMLElement", "name": "lastElement", "description": ""}], "description": "Sets up a tab, shift-tab loop between the first and last elements\nprovided. NOTE: Sets up the preventBackTab and preventTabOut KeyListener\ninstance properties, which are reset everytime this method is invoked.", "guessedname": "setTabLoop", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be changed \nusing the Panel's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Overlay", "superclass": "YAHOO.widget.Overlay", "file": "Panel.js", "guessedtype": "function", "shortname": "Panel", "properties": {"YAHOO.widget.Panel.CSS_PANEL_CONTAINER": {"description": "Constant representing the default CSS class used for a Panel's \nwrapping container", "static": "", "guessedname": "CSS_PANEL_CONTAINER", "guessedtype": "property", "type": "String", "final": ""}, "dd": {"type": "YAHOO.util.DD", "description": "The YAHOO.util.DD instance, used to implement the draggable header for the panel if draggable is enabled", "guessedname": "dd", "guessedtype": "property"}, "YAHOO.widget.Panel.CSS_PANEL": {"description": "Constant representing the default CSS class used for a Panel", "static": "", "guessedname": "CSS_PANEL", "guessedtype": "property", "type": "String", "final": ""}, "EVENT_TYPES": {"description": "Constant representing the name of the Panel's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "YAHOO.widget.Panel.FOCUSABLE": {"type": "Array", "static": "", "description": "Constant representing the default set of focusable elements \non the pagewhich Modal Panels will prevent access to, when\nthe modal mask is displayed", "guessedname": "FOCUSABLE", "guessedtype": "property"}, "DEFAULT_CONFIG": {"description": "Constant representing the Panel's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}}, "description": "Panel is an implementation of Overlay that behaves like an OS window, \nwith a draggable header and an optional close icon at the top right."}, "YAHOO.util.KeyListener": {"name": "YAHOO.util.KeyListener", "knownissue": "the \"keypress\" event is completely broken in Safari 2.x and below.\nthe workaround is use \"keydown\" for key listening.  However, if\nit is desired to prevent the default behavior of the keystroke,\nthat can only be done on the keypress event.  This makes key\nhandling quite ugly.", "constructors": [{"params": [{"type": "HTMLElement", "name": "attachTo", "description": " The element or element ID to which the key \nevent should be attached"}, {"type": "String", "name": "attachTo", "description": " The element or element ID to which the key\nevent should be attached"}, {"type": "Object", "name": "keyData", "description": "  The object literal representing the key(s) \nto detect. Possible attributes are \nshift(boolean), alt(boolean), ctrl(boolean) \nand keys(either an int or an array of ints \nrepresenting keycodes)."}, {"type": "Function", "name": "handler", "description": "  The CustomEvent handler to fire when the \nkey event is detected"}, {"type": "Object", "name": "handler", "description": "  An object literal representing the handler."}, {"type": "String", "name": "event", "description": "    Optional. The event (keydown or keyup) to \nlisten for. Defaults automatically to keydown."}], "description": "KeyListener is a utility that provides an easy interface for listening for\nkeydown/keyup events fired against DOM elements."}], "namespace": "YAHOO.util", "module": "event", "properties": {"YAHOO.util.KeyListener.KEYDOWN": {"description": "Constant representing the DOM \"keydown\" event.", "static": "", "guessedname": "KEYDOWN", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.util.KeyListener.KEYUP": {"description": "Constant representing the DOM \"keyup\" event.", "static": "", "guessedname": "KEYUP", "guessedtype": "property", "type": "String", "final": ""}, "enabled": {"type": "Boolean", "description": "Boolean indicating the enabled/disabled state of the Tooltip", "guessedname": "enabled", "guessedtype": "property"}, "KEY": {"final": "", "static": "", "description": "keycode constants for a subset of the special keys", "guessedname": "KEY", "guessedtype": "property"}}, "guessedname": "KeyListener", "methods": {"handleKeyPress": {"params": [{"type": "DOMEvent", "name": "e", "description": "   The keypress DOM event"}, {"type": "Object", "name": "obj", "description": " The DOM event scope object"}], "description": "Handles the key event when a key is pressed.", "private": ""}, "enable": {"description": "Enables the KeyListener by attaching the DOM event listeners to the \ntarget DOM element", "guessedname": "enable", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the KeyListener"}, "description": "Returns a String representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "disable": {"description": "Disables the KeyListener by removing the DOM event listeners from the \ntarget DOM element", "guessedname": "disable", "guessedtype": "function"}}, "file": "KeyListener.js", "guessedtype": "function", "shortname": "KeyListener", "events": {"enabledEvent": {"params": [{"type": "Object", "name": "keyData", "description": " The object literal representing the key(s) to \ndetect. Possible attributes are shift(boolean), \nalt(boolean), ctrl(boolean) and keys(either an \nint or an array of ints representing keycodes)."}], "description": "The CustomEvent fired when the KeyListener is enabled via the enable() \nfunction", "guessedname": "enabledEvent", "guessedtype": "property"}, "disabledEvent": {"params": [{"type": "Object", "name": "keyData", "description": " The object literal representing the key(s) to \ndetect. Possible attributes are shift(boolean), \nalt(boolean), ctrl(boolean) and keys(either an \nint or an array of ints representing keycodes)."}], "description": "The CustomEvent fired when the KeyListener is disabled via the \ndisable() function", "guessedname": "disabledEvent", "guessedtype": "property"}, "keyEvent": {"guessedname": "keyEvent", "params": [{"type": "Object", "name": "keyData", "description": " The object literal representing the key(s) to \ndetect. Possible attributes are shift(boolean), \nalt(boolean), ctrl(boolean) and keys(either an \nint or an array of ints representing keycodes)."}], "description": "The CustomEvent fired internally when a key is pressed", "private": "", "guessedtype": "property"}}, "description": "KeyListener is a utility that provides an easy interface for listening for\nkeydown/keyup events fired against DOM elements."}, "YAHOO.widget.Toolbar": {"name": "YAHOO.widget.Toolbar", "configs": {"disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the toolbar should be disabled. It will also disable the draggable attribute if it is on."}, "grouplabels": {"default": "true", "type": "Boolean", "description": "Boolean indicating if the toolbar should show the group label's text string."}, "cont": {"type": "HTMLElement", "description": "The container for the toolbar."}, "collapse": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the the titlebar should have a collapse button.\nThe collapse button will not remove the toolbar, it will minimize it to the titlebar"}, "buttonType": {"type": "String", "description": "The buttonType to use (advanced or basic)"}, "buttons": {"type": "Array", "description": "Object specifying the buttons to include in the toolbar\nExample:\n<code><pre>\n{\n{ id: 'b3', type: 'button', label: 'Underline', value: 'underline' },\n{ type: 'separator' },\n{ id: 'b4', type: 'menu', label: 'Align', value: 'align',\nmenu: [\n{ text: \"Left\", value: 'alignleft' },\n{ text: \"Center\", value: 'aligncenter' },\n{ text: \"Right\", value: 'alignright' }\n]\n}\n}\n</pre></code>"}, "draggable": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the toolbar should be draggable."}, "titlebar": {"default": "false", "type": "Boolean or String", "description": "Boolean indicating if the toolbar should have a titlebar. If\npassed a string, it will use that as the titlebar text"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to turn into a toolbar."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "Provides a rich toolbar widget based on the button and menu widgets"}], "namespace": "YAHOO.widget", "module": "editor", "events": {"buttonsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "buttonsChange", "description": "Fires when the value for the configuration attribute 'buttons' changes."}, "beforeDraggableChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDraggableChange", "description": "Fires before the value for the configuration attribute 'draggable' changes. Return false to cancel the attribute change."}, "toolbarCollapsed": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the toolbar is collapsed via the collapse button. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "grouplabelsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "grouplabelsChange", "description": "Fires when the value for the configuration attribute 'grouplabels' changes."}, "beforeTitlebarChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTitlebarChange", "description": "Fires before the value for the configuration attribute 'titlebar' changes. Return false to cancel the attribute change."}, "beforeCollapseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCollapseChange", "description": "Fires before the value for the configuration attribute 'collapse' changes. Return false to cancel the attribute change."}, "valueClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Object", "name": "o", "description": " The object passed to this handler is the button config used to create the button."}], "description": "This is a special dynamic event that is created and dispatched based on the value property\nof the button config. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.\nExample:\n<code><pre>\nbuttons : [\n{ type: 'button', value: 'test', value: 'testButton' }\n]</pre>\n</code>\nWith the valueClick event you could subscribe to this buttons click event with this:\ntbar.in('testButtonClick', function() { alert('test button clicked'); })"}, "buttonClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Object", "name": "o", "description": " The object passed to this handler is the button config used to create the button."}], "description": "Fires when any botton receives a click event. Passes back a single object representing the buttons config object. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "beforeButtonTypeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeButtonTypeChange", "description": "Fires before the value for the configuration attribute 'buttonType' changes. Return false to cancel the attribute change."}, "buttonTypeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "buttonTypeChange", "description": "Fires when the value for the configuration attribute 'buttonType' changes."}, "titlebarChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "titlebarChange", "description": "Fires when the value for the configuration attribute 'titlebar' changes."}, "toolbarExpanded": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the toolbar is expanded via the collapse button. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "draggableChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "draggableChange", "description": "Fires when the value for the configuration attribute 'draggable' changes."}, "beforeButtonsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeButtonsChange", "description": "Fires before the value for the configuration attribute 'buttons' changes. Return false to cancel the attribute change."}, "beforeGrouplabelsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGrouplabelsChange", "description": "Fires before the value for the configuration attribute 'grouplabels' changes. Return false to cancel the attribute change."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}, "collapseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "collapseChange", "description": "Fires when the value for the configuration attribute 'collapse' changes."}}, "guessedname": "Toolbar", "methods": {"getButtons": {"return": {"type": "Array", "description": ""}, "description": "Returns an array of buttons in the current toolbar", "guessedname": "getButtons", "guessedtype": "function"}, "enableButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Enable a button by it's id, index or value."}], "description": "Enables a button in the toolbar.", "guessedname": "enableButton", "guessedtype": "function"}, "destroyButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Destroy a button by it's id or index."}], "description": "Destroy a button in the toolbar.", "guessedname": "destroyButton", "guessedtype": "function"}, "_navigateButtons": {"guessedname": "_navigateButtons", "params": [{"type": "Event", "name": "ev", "description": " The Key Event"}], "description": "Handles the navigation/focus of toolbar buttons with the Arrow Keys", "private": "", "guessedtype": "function"}, "addButton": {"params": [{"type": "Object", "name": "oButton", "description": " Object literal reference to the Button's Config"}, {"type": "HTMLElement", "name": "after", "description": " Optional HTML element to insert this button after in the DOM."}], "description": "Add a new button to the toolbar. Buttons supported:\npush, split, menu, select, color, spin", "guessedname": "addButton", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the toolbar."}], "description": "Initializes all of the configuration attributes used to create \nthe toolbar.", "guessedname": "initAttributes", "guessedtype": "function"}, "enableAllButtons": {"return": {"type": "Boolean", "description": ""}, "description": "Enables all buttons in the toolbar.", "guessedname": "enableAllButtons", "guessedtype": "function"}, "selectButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Select a button by it's id, index or value."}, {"type": "String", "name": "value", "description": " If this is a Menu Button, check this item in the menu"}], "description": "Selects a button in the toolbar.", "guessedname": "selectButton", "guessedtype": "function"}, "_buttonClick": {"protected": "", "params": [{"type": "String", "name": "ev", "description": " The event that was passed in."}, {"type": "Object", "name": "info", "description": " Object literal of information about the button that was clicked."}], "description": "Click handler for all buttons in the toolbar.", "guessedname": "_buttonClick", "guessedtype": "function"}, "isSelected": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " A button by it's id, index or value."}], "description": "Tells if a button is selected or not.", "guessedname": "isSelected", "guessedtype": "function"}, "init": {"description": "The Toolbar class's initialization method", "guessedname": "init", "guessedtype": "function"}, "addButtonToGroup": {"params": [{"type": "Object", "name": "oButton", "description": " Object literal reference to the Button's Config"}, {"type": "String", "name": "group", "description": " The Group identifier passed into the initial config"}, {"type": "HTMLElement", "name": "after", "description": " Optional HTML element to insert this button after in the DOM."}], "description": "Add a new button to a toolbar group. Buttons supported:\npush, split, menu, select, color, spin", "guessedname": "addButtonToGroup", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the toolbar.", "guessedname": "toString", "guessedtype": "function"}, "_resetColorPicker": {"description": "Clears the currently selected color or mouseover color in the color picker.", "private": "", "guessedname": "_resetColorPicker", "guessedtype": "function"}, "destroy": {"return": {"type": "Boolean", "description": ""}, "description": "Destroys the toolbar, all of it's elements and objects.", "guessedname": "destroy", "guessedtype": "function"}, "_handleFocus": {"description": "Sets up the listeners for the arrow key navigation", "private": "", "guessedname": "_handleFocus", "guessedtype": "function"}, "collapse": {"params": [{"type": "Boolean", "name": "collapse", "description": " True to collapse, false to expand."}], "description": "Programatically collapse the toolbar.", "guessedname": "collapse", "guessedtype": "function"}, "addSeparator": {"params": [{"type": "HTMLElement", "name": "cont", "description": " Optional HTML element to insert this button into."}, {"type": "HTMLElement", "name": "after", "description": " Optional HTML element to insert this button after in the DOM."}], "description": "Add a new button separator to the toolbar.", "guessedname": "addSeparator", "guessedtype": "function"}, "getButtonByIndex": {"return": {"type": "<a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a>", "description": ""}, "params": [{"type": "Number", "name": "index", "description": " The index of the button in _buttonList."}], "description": "Gets a button instance from the toolbar by is index in _buttonList.", "guessedname": "getButtonByIndex", "guessedtype": "function"}, "getButtonById": {"return": {"type": "<a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a>", "description": ""}, "params": [{"type": "String", "name": "id", "description": " The Dom id to query for."}], "description": "Gets a button instance from the toolbar by is Dom id.", "guessedname": "getButtonById", "guessedtype": "function"}, "resetAllButtons": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "Object", "name": "_ex", "description": " Except these buttons"}], "description": "Resets all buttons to their initial state.", "guessedname": "resetAllButtons", "guessedtype": "function"}, "deselectAllButtons": {"return": {"type": "Boolean", "description": ""}, "description": "Deselects all buttons in the toolbar.", "guessedname": "deselectAllButtons", "guessedtype": "function"}, "disableButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Disable a button by it's id, index or value."}], "description": "Disables a button in the toolbar.", "guessedname": "disableButton", "guessedtype": "function"}, "_addMenuClasses": {"guessedname": "_addMenuClasses", "params": [{"type": "String", "name": "ev", "description": " The event that fired."}, {"type": "Array", "name": "na", "description": " Array of event information."}, {"type": "Object", "name": "o", "description": " Button config object."}], "description": "This method is called from Menu's renderEvent to add a few more classes to the menu items", "private": "", "guessedtype": "function"}, "_makeSpinButton": {"guessedname": "_makeSpinButton", "params": [{"type": "Object", "name": "_button", "description": " <a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a> reference"}, {"type": "Object", "name": "oButton", "description": " Object literal containing the buttons initial config"}], "description": "Create a button similar to an OS Spin button.. It has an up/down arrow combo to scroll through a range of int values.", "private": "", "guessedtype": "function"}, "deselectButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Deselect a button by it's id, index or value."}], "description": "Deselects a button in the toolbar.", "guessedname": "deselectButton", "guessedtype": "function"}, "addButtonGroup": {"params": [{"type": "Object", "name": "oGroup", "description": " Object literal reference to the Groups Config (contains an array of button configs as well as the group label)"}], "description": "Add a new button group to the toolbar. (uses addButton)", "guessedname": "addButtonGroup", "guessedtype": "function"}, "_createColorPicker": {"guessedname": "_createColorPicker", "params": [{"type": "String", "name": "id", "description": " the id of the toolbar to prefix this DOM container with."}], "description": "Creates the core DOM reference to the color picker menu item.", "private": "", "guessedtype": "function"}, "_makeColorButton": {"guessedname": "_makeColorButton", "params": [{"type": "Object", "name": "_oButton", "description": " <a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a> reference"}], "description": "Called to turn a \"color\" button into a menu button with an Overlay for the menu.", "private": "", "guessedtype": "function"}, "disableAllButtons": {"return": {"type": "Boolean", "description": ""}, "description": "Disables all buttons in the toolbar.", "guessedname": "disableAllButtons", "guessedtype": "function"}, "getButtonByValue": {"return": {"type": "<a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a> or <a href=\"YAHOO.widget.MenuItem.html\">YAHOO.widget.MenuItem</a>", "description": ""}, "params": [{"type": "String", "name": "value", "description": " The button value to query for."}], "description": "Gets a button instance or a menuitem instance from the toolbar by it's value.", "guessedname": "getButtonByValue", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "toolbar.js", "guessedtype": "function", "shortname": "Toolbar", "properties": {"_configuredButtons": {"protected": "", "type": "Array", "guessedname": "_configuredButtons", "guessedtype": "property"}, "STR_SPIN_LABEL": {"type": "String", "description": "String for spinbutton dynamic label. Note the {VALUE} will be replaced with YAHOO.lang.substitute", "guessedname": "STR_SPIN_LABEL", "guessedtype": "property"}, "_toolbarConfigs": {"protected": "", "type": "Object", "guessedname": "_toolbarConfigs", "guessedtype": "property"}, "STR_SPIN_UP": {"type": "String", "description": "String for spinbutton up", "guessedname": "STR_SPIN_UP", "guessedtype": "property"}, "_buttonList": {"protected": "", "type": "Array", "description": "Internal property list of current buttons in the toolbar", "guessedname": "_buttonList", "guessedtype": "property"}, "_colorPicker": {"type": "HTMLElement", "description": "The HTML Element containing the colorPicker", "guessedname": "_colorPicker", "guessedtype": "property"}, "STR_COLLAPSE": {"type": "String", "description": "String for Toolbar Collapse Button", "guessedname": "STR_COLLAPSE", "guessedtype": "property"}, "_navCounter": {"guessedname": "_navCounter", "type": "Number", "description": "Internal counter for walking the buttons in the toolbar with the arrow keys", "private": "", "guessedtype": "property"}, "CLASS_PREFIX": {"protected": "", "type": "String", "description": "Default prefix for dynamically created class names", "guessedname": "CLASS_PREFIX", "guessedtype": "property"}, "CLASS_DRAGHANDLE": {"protected": "", "type": "String", "description": "Default CSS class to apply to the toolbar's drag handle element", "guessedname": "CLASS_DRAGHANDLE", "guessedtype": "property"}, "_colorData": {"type": "Object", "description": "Object reference containing colors hex and text values.", "guessedname": "_colorData", "guessedtype": "property"}, "_sepCount": {"protected": "", "type": "Number", "description": "Internal refernce for counting separators, so we can give them a useful class name for styling", "guessedname": "_sepCount", "guessedtype": "property"}, "dd": {"type": "Object", "description": "The DragDrop instance associated with the Toolbar", "guessedname": "dd", "guessedtype": "property"}, "_keyNav": {"guessedname": "_keyNav", "type": "Boolean", "description": "Flag to determine if the arrow nav listeners have been attached", "private": "", "guessedtype": "property"}, "_titlebar": {"type": "HTMLElement", "description": "Object reference to the titlebar", "guessedname": "_titlebar", "guessedtype": "property"}, "CLASS_CONTAINER": {"protected": "", "type": "String", "description": "Default CSS class to apply to the toolbar container element", "guessedname": "CLASS_CONTAINER", "guessedtype": "property"}, "_buttonGroupList": {"protected": "", "type": "Array", "description": "Internal property list of current button groups in the toolbar", "guessedname": "_buttonGroupList", "guessedtype": "property"}, "CLASS_DISABLED": {"protected": "", "type": "String", "description": "Default CSS class to apply when the toolbar is disabled", "guessedname": "CLASS_DISABLED", "guessedtype": "property"}, "buttonType": {"type": "Object", "description": "The default button to use", "guessedname": "buttonType", "guessedtype": "property"}, "STR_EXPAND": {"type": "String", "description": "String for Toolbar Collapse Button - Expand", "guessedname": "STR_EXPAND", "guessedtype": "property"}, "_sep": {"protected": "", "type": "HTMLElement", "description": "Internal reference to the separator HTML Element for cloning", "guessedname": "_sep", "guessedtype": "property"}, "STR_SPIN_DOWN": {"type": "String", "description": "String for spinbutton down", "guessedname": "STR_SPIN_DOWN", "guessedtype": "property"}, "CLASS_SEPARATOR": {"protected": "", "type": "String", "description": "Default CSS class to apply to all separators in the toolbar", "guessedname": "CLASS_SEPARATOR", "guessedtype": "property"}, "draghandle": {"protected": "", "type": "HTMLElement", "guessedname": "_dragHandle", "guessedtype": "property"}, "browser": {"type": "Object", "description": "Standard browser detection", "guessedname": "browser", "guessedtype": "property"}}, "description": "Provides a rich toolbar widget based on the button and menu widgets"}, "YAHOO.widget.PieChart": {"name": "YAHOO.widget.PieChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "PieChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "events": {"beforeDataFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataFieldChange", "description": "Fires before the value for the configuration attribute 'dataField' changes. Return false to cancel the attribute change."}, "dataFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataFieldChange", "description": "Fires when the value for the configuration attribute 'dataField' changes."}, "beforeCategoryFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCategoryFieldChange", "description": "Fires before the value for the configuration attribute 'categoryField' changes. Return false to cancel the attribute change."}, "categoryFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "categoryFieldChange", "description": "Fires when the value for the configuration attribute 'categoryField' changes."}}, "guessedname": "PieChart", "methods": {"_setDataField": {"private": "", "description": "Setter for the dataField attribute.", "guessedname": "_setDataField", "guessedtype": "function"}, "_setCategoryField": {"private": "", "description": "Setter for the categoryField attribute.", "guessedname": "_setCategoryField", "guessedtype": "function"}, "_getCategoryField": {"private": "", "description": "Getter for the categoryField attribute.", "guessedname": "_getCategoryField", "guessedtype": "function"}, "_initAttributes": {"private": "", "description": "Initializes the attributes.", "guessedname": "_initAttributes", "guessedtype": "function"}, "_getDataField": {"private": "", "description": "Getter for the dataField attribute.", "guessedname": "_getDataField", "guessedtype": "function"}}, "uses": ["YAHOO.widget.Chart"], "file": "PieChart.js", "guessedtype": "function", "shortname": "PieChart", "configs": {"categoryField": {"type": "String", "description": "The field in each item that corresponds to the category value."}, "dataField": {"type": "String", "description": "The field in each item that corresponds to the data value."}}, "description": "PieChart class for the YUI Charts widget."}, "YAHOO.widget.CellEditor": {"name": "YAHOO.widget.CellEditor", "constructors": [{"params": [{"type": "String", "name": "sType", "description": "  Type indicator, to map to YAHOO.widget.DataTable.Editors."}, {"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "Factory class for instantiating a BaseCellEditor subclass."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "CellEditor", "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "CellEditor", "description": "Factory class for instantiating a BaseCellEditor subclass."}, "YAHOO.util.Resize": {"name": "YAHOO.util.Resize", "configs": {"maxX": {"type": "Number", "description": "The max x coord of the element"}, "maxY": {"type": "Number", "description": "The max y coord of the element"}, "maxWidth": {"type": "Number", "description": "The maximum width of the element"}, "animateEasing": {"type": "Object", "description": "The Easing to apply to the animation."}, "height": {"type": "Number", "description": "The height of the element"}, "yTicks": {"type": "Number or False", "description": "The number of y ticks to span the resize to."}, "wrap": {"type": "Boolean", "description": "Should we wrap the element"}, "animate": {"type": "Boolean", "description": "Should be use animation to resize the element (can only be used if we use proxy)."}, "knobHandles": {"type": "Boolean", "description": "Use the smaller handles, instead if the full size handles."}, "minWidth": {"type": "Number", "description": "The minimum width of the element"}, "ratio": {"type": "Boolean", "description": "Maintain the element's ratio when resizing."}, "width": {"type": "Number", "description": "The width of the element"}, "minX": {"type": "Number", "description": "The minimum x coord of the element"}, "minY": {"type": "Number", "description": "The minimum y coord of the element"}, "handles": {"type": "Array", "description": "The handles to use (any combination of): 't', 'b', 'r', 'l', 'bl', 'br', 'tl', 'tr'. Defaults to: ['r', 'b', 'br'].\nCan use a shortcut of All. Note: 8 way resizing should be done on an element that is absolutely positioned."}, "status": {"type": "Boolean", "description": "Show the status (new size) of the resize."}, "hover": {"type": "Boolean", "description": "Only show the handles when they are being moused over."}, "minHeight": {"type": "Number", "description": "The minimum height of the element"}, "xTicks": {"type": "Number or False", "description": "The number of x ticks to span the resize to."}, "proxy": {"type": "Boolean", "description": "Resize a proxy element instead of the real element."}, "hiddenHandles": {"type": "Boolean", "description": "Don't show the handles, just use the cursor to the user."}, "animateDuration": {"type": "Number", "description": "The Duration to apply to the animation."}, "ghost": {"type": "Boolean", "description": "Apply an opacity filter to the element being resized (only works with proxy)."}, "useShim": {"type": "Boolean", "description": "This setting will be passed to the DragDrop instances on the resize handles and for the draggable property.\nThis property should be used if you want the resize handles to work over iframe and other elements."}, "maxHeight": {"type": "Number", "description": "The maximum height of the element"}, "autoRatio": {"type": "Boolean", "description": "Using the shift key during a resize will toggle the ratio config."}, "draggable": {"type": "Boolean", "description": "A convienence method to make the element draggable"}, "setSize": {"type": "Boolean", "description": "Set the size of the resized element, if set to false the element will not be auto resized,\nthe resize event will contain the dimensions so the end user can resize it on their own.\nThis setting will only work with proxy set to true and animate set to false."}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to make resizable."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Makes an element resizable</p>"}], "namespace": "YAHOO.util", "module": "resize", "events": {"beforeXTicksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeXTicksChange", "description": "Fires before the value for the configuration attribute 'xTicks' changes. Return false to cancel the attribute change."}, "proxyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "proxyChange", "description": "Fires when the value for the configuration attribute 'proxy' changes."}, "beforeAutoRatioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAutoRatioChange", "description": "Fires before the value for the configuration attribute 'autoRatio' changes. Return false to cancel the attribute change."}, "beforeGhostChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGhostChange", "description": "Fires before the value for the configuration attribute 'ghost' changes. Return false to cancel the attribute change."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "beforeProxyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeProxyChange", "description": "Fires before the value for the configuration attribute 'proxy' changes. Return false to cancel the attribute change."}, "beforeAnimateEasingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateEasingChange", "description": "Fires before the value for the configuration attribute 'animateEasing' changes. Return false to cancel the attribute change."}, "beforeMaxHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxHeightChange", "description": "Fires before the value for the configuration attribute 'maxHeight' changes. Return false to cancel the attribute change."}, "minYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minYChange", "description": "Fires when the value for the configuration attribute 'minY' changes."}, "maxWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxWidthChange", "description": "Fires when the value for the configuration attribute 'maxWidth' changes."}, "maxYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxYChange", "description": "Fires when the value for the configuration attribute 'maxY' changes."}, "ratioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "ratioChange", "description": "Fires when the value for the configuration attribute 'ratio' changes."}, "animateDurationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateDurationChange", "description": "Fires when the value for the configuration attribute 'animateDuration' changes."}, "beforeRatioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRatioChange", "description": "Fires before the value for the configuration attribute 'ratio' changes. Return false to cancel the attribute change."}, "autoRatioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "autoRatioChange", "description": "Fires when the value for the configuration attribute 'autoRatio' changes."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "proxyResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires on every proxy resize (only fires when used with proxy config setting)."}, "beforeHiddenHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHiddenHandlesChange", "description": "Fires before the value for the configuration attribute 'hiddenHandles' changes. Return false to cancel the attribute change."}, "beforeMinWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinWidthChange", "description": "Fires before the value for the configuration attribute 'minWidth' changes. Return false to cancel the attribute change."}, "setSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "setSizeChange", "description": "Fires when the value for the configuration attribute 'setSize' changes."}, "statusChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "statusChange", "description": "Fires when the value for the configuration attribute 'status' changes."}, "beforeMinHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinHeightChange", "description": "Fires before the value for the configuration attribute 'minHeight' changes. Return false to cancel the attribute change."}, "maxHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxHeightChange", "description": "Fires when the value for the configuration attribute 'maxHeight' changes."}, "beforeStatusChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeStatusChange", "description": "Fires before the value for the configuration attribute 'status' changes. Return false to cancel the attribute change."}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "useShimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "useShimChange", "description": "Fires when the value for the configuration attribute 'useShim' changes."}, "hoverChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hoverChange", "description": "Fires when the value for the configuration attribute 'hover' changes."}, "draggableChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "draggableChange", "description": "Fires when the value for the configuration attribute 'draggable' changes."}, "beforeMaxXChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxXChange", "description": "Fires before the value for the configuration attribute 'maxX' changes. Return false to cancel the attribute change."}, "minWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minWidthChange", "description": "Fires when the value for the configuration attribute 'minWidth' changes."}, "beforeKnobHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeKnobHandlesChange", "description": "Fires before the value for the configuration attribute 'knobHandles' changes. Return false to cancel the attribute change."}, "ghostChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "ghostChange", "description": "Fires when the value for the configuration attribute 'ghost' changes."}, "hiddenHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hiddenHandlesChange", "description": "Fires when the value for the configuration attribute 'hiddenHandles' changes."}, "xTicksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "xTicksChange", "description": "Fires when the value for the configuration attribute 'xTicks' changes."}, "startResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires when a resize action is started."}, "beforeHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHandlesChange", "description": "Fires before the value for the configuration attribute 'handles' changes. Return false to cancel the attribute change."}, "animateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateChange", "description": "Fires when the value for the configuration attribute 'animate' changes."}, "beforeAnimateDurationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateDurationChange", "description": "Fires before the value for the configuration attribute 'animateDuration' changes. Return false to cancel the attribute change."}, "dragEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> dragEvent is fired for the config option draggable."}, "beforeMinYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinYChange", "description": "Fires before the value for the configuration attribute 'minY' changes. Return false to cancel the attribute change."}, "beforeWrapChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWrapChange", "description": "Fires before the value for the configuration attribute 'wrap' changes. Return false to cancel the attribute change."}, "beforeMinXChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinXChange", "description": "Fires before the value for the configuration attribute 'minX' changes. Return false to cancel the attribute change."}, "beforeDraggableChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDraggableChange", "description": "Fires before the value for the configuration attribute 'draggable' changes. Return false to cancel the attribute change."}, "knobHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "knobHandlesChange", "description": "Fires when the value for the configuration attribute 'knobHandles' changes."}, "beforeResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires before every element resize after the size calculations, returning false will stop the resize."}, "resize": {"type": "YAHOO.util.CustomEvent", "description": "Fires on every element resize (only fires once when used with proxy config setting)."}, "endResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the mouseUp event from the Drag Instance fires."}, "beforeSetSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSetSizeChange", "description": "Fires before the value for the configuration attribute 'setSize' changes. Return false to cancel the attribute change."}, "beforeAnimateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateChange", "description": "Fires before the value for the configuration attribute 'animate' changes. Return false to cancel the attribute change."}, "minHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minHeightChange", "description": "Fires when the value for the configuration attribute 'minHeight' changes."}, "beforeHoverChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHoverChange", "description": "Fires before the value for the configuration attribute 'hover' changes. Return false to cancel the attribute change."}, "beforeMaxWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxWidthChange", "description": "Fires before the value for the configuration attribute 'maxWidth' changes. Return false to cancel the attribute change."}, "animateEasingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateEasingChange", "description": "Fires when the value for the configuration attribute 'animateEasing' changes."}, "beforeUseShimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUseShimChange", "description": "Fires before the value for the configuration attribute 'useShim' changes. Return false to cancel the attribute change."}, "beforeMaxYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxYChange", "description": "Fires before the value for the configuration attribute 'maxY' changes. Return false to cancel the attribute change."}, "wrapChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "wrapChange", "description": "Fires when the value for the configuration attribute 'wrap' changes."}, "maxXChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxXChange", "description": "Fires when the value for the configuration attribute 'maxX' changes."}, "handlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "handlesChange", "description": "Fires when the value for the configuration attribute 'handles' changes."}, "beforeYTicksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeYTicksChange", "description": "Fires before the value for the configuration attribute 'yTicks' changes. Return false to cancel the attribute change."}, "yTicksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "yTicksChange", "description": "Fires when the value for the configuration attribute 'yTicks' changes."}, "minXChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minXChange", "description": "Fires when the value for the configuration attribute 'minX' changes."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "Resize", "methods": {"_handle_for_bl": {"guessedname": "_handle_for_bl", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Bottom Left handle.", "private": "", "guessedtype": "function"}, "_setHeight": {"return": {"type": "Number", "description": "The new value"}, "description": "Calculated the height based on the mouse event.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The mouse event."}, {"type": "Boolean", "name": "flip", "description": " Argument to determine the direction of the movement."}], "guessedname": "_setHeight", "guessedtype": "function"}, "lock": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "params": [{"type": "Boolean", "name": "dd", "description": " If the draggable config is set, lock it too"}], "description": "Lock the resize so it can't be resized", "guessedname": "lock", "guessedtype": "function"}, "_handleStartDrag": {"guessedname": "_handleStartDrag", "params": [{"type": "Object", "name": "args", "description": " The args passed from the CustomEvent."}, {"type": "Object", "name": "dd", "description": " The <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> object we are working with."}], "description": "Resizes the proxy, sets up the <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> handlers, updates the status div and preps the cache", "private": "", "guessedtype": "function"}, "getProxyEl": {"return": {"type": "HTMLElement", "description": "The proxy element"}, "description": "Get the HTML reference for the proxy, returns null if no proxy.", "guessedname": "getProxyEl", "guessedtype": "function"}, "_handle_for_tl": {"guessedname": "_handle_for_tl", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Top Left handle.", "private": "", "guessedtype": "function"}, "_snapTick": {"return": {"type": "Number", "description": "the new snapped position"}, "description": "Adjusts the number based on the ticks used.", "private": "", "params": [{"type": "Number", "name": "size", "description": " The size to tick against."}, {"type": "Number", "name": "pix", "description": " The tick pixels."}], "guessedname": "_snapTick", "guessedtype": "function"}, "unlock": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "params": [{"type": "Boolean", "name": "dd", "description": " If the draggable config is set, unlock it too"}], "description": "Unlock the resize so it can be resized", "guessedname": "unlock", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the utility."}], "description": "Initializes all of the configuration attributes used to create a resizable element.", "private": "", "guessedtype": "function"}, "_handle_for_tr": {"guessedname": "_handle_for_tr", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Top Right handle.", "private": "", "guessedtype": "function"}, "_handle_for_br": {"guessedname": "_handle_for_br", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Bottom Right handle.", "private": "", "guessedtype": "function"}, "getResizeById": {"static": "", "return": {"type": "Object", "description": "The Resize Object"}, "description": "Get's a resize object by the HTML id of the element associated with the Resize object.", "guessedname": "getResizeById", "guessedtype": "function"}, "_createProxy": {"description": "Creates the proxy element if the proxy config is true", "private": "", "guessedname": "_createProxy", "guessedtype": "function"}, "_setCache": {"description": "Sets up the this._cache hash table.", "private": "", "guessedname": "_setCache", "guessedtype": "function"}, "init": {"description": "The Resize class's initialization method", "private": "", "guessedname": "init", "guessedtype": "function"}, "isLocked": {"return": {"type": "Boolean", "description": ""}, "description": "Check the locked status of the resize instance", "guessedname": "isLocked", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the Resize Object.", "guessedname": "toString", "guessedtype": "function"}, "_createHandles": {"description": "Creates the handles as specified in the config", "private": "", "guessedname": "_createHandles", "guessedtype": "function"}, "destroy": {"description": "Destroys the resize object and all of it's elements & listeners.", "guessedname": "destroy", "guessedtype": "function"}, "_setAutoRatio": {"guessedname": "_setAutoRatio", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "This method checks to see if the \"autoRatio\" config is set. If it is, we will check to see if the \"Shift Key\" is pressed. If so, we will set the config ratio to true.", "private": "", "guessedtype": "function"}, "_ieSelectFix": {"description": "The function we use as the onselectstart handler when we start a drag in Internet Explorer", "private": "", "guessedname": "_ieSelectFix", "guessedtype": "function"}, "_checkWidth": {"return": {"type": "Number", "description": "the new value"}, "description": "Checks the value passed against the maxWidth and minWidth.", "private": "", "params": [{"type": "Number", "name": "w", "description": " The width to check."}], "guessedname": "_checkWidth", "guessedtype": "function"}, "_handleMouseDown": {"guessedname": "_handleMouseDown", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "This method preps the autoRatio on MouseDown.", "private": "", "guessedtype": "function"}, "_createWrap": {"description": "Creates the wrap element if the wrap config is true. It will auto wrap the following element types: img, textarea, input, iframe, select", "private": "", "guessedname": "_createWrap", "guessedtype": "function"}, "getStatusEl": {"return": {"type": "HTMLElement", "description": "The status element"}, "description": "Get the HTML reference for the status element.", "guessedname": "getStatusEl", "guessedtype": "function"}, "getWrapEl": {"return": {"type": "HTMLElement", "description": "The wrap element"}, "description": "Get the HTML reference for the wrap element, returns the current element if not wrapped.", "guessedname": "getWrapEl", "guessedtype": "function"}, "_setupDragDrop": {"description": "Setup the <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> instance on the element", "private": "", "guessedname": "_setupDragDrop", "guessedtype": "function"}, "_handleMouseOver": {"guessedname": "_handleMouseOver", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "Adds CSS class names to the handles", "private": "", "guessedtype": "function"}, "resize": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "description": "Resizes the element, wrapper or proxy based on the data from the handlers.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The mouse event."}, {"type": "Number", "name": "h", "description": " The new height setting."}, {"type": "Number", "name": "w", "description": " The new width setting."}, {"type": "Number", "name": "t", "description": " The new top setting."}, {"type": "Number", "name": "l", "description": " The new left setting."}, {"type": "Boolean", "name": "force", "description": " Resize the element (used for proxy resize)."}, {"type": "Boolean", "name": "silent", "description": " Don't fire the beforeResize Event."}], "guessedname": "resize", "guessedtype": "function"}, "_handleMouseUp": {"guessedname": "_handleMouseUp", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "Cleans up listeners, hides proxy element and removes class names.", "private": "", "guessedtype": "function"}, "reset": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "description": "Resets the element to is start state.", "guessedname": "reset", "guessedtype": "function"}, "_setRatio": {"return": {"type": "Array", "description": "The new Height, Width, Top & Left settings"}, "description": "Using the Height, Width, Top & Left, it recalcuates them based on the original element size.", "private": "", "params": [{"type": "Number", "name": "h", "description": " The height offset."}, {"type": "Number", "name": "w", "description": " The with offset."}, {"type": "Number", "name": "t", "description": " The top offset."}, {"type": "Number", "name": "l", "description": " The left offset."}], "guessedname": "_setRatio", "guessedtype": "function"}, "_setWidth": {"return": {"type": "Number", "description": "The new value"}, "description": "Calculates the width based on the mouse event.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The mouse event."}, {"type": "Boolean", "name": "flip", "description": " Argument to determine the direction of the movement."}], "guessedname": "_setWidth", "guessedtype": "function"}, "_checkHeight": {"return": {"type": "Number", "description": "The new value"}, "description": "Checks the value passed against the maxHeight and minHeight.", "private": "", "params": [{"type": "Number", "name": "h", "description": " The height to check."}], "guessedname": "_checkHeight", "guessedtype": "function"}, "getActiveHandleEl": {"return": {"type": "HTMLElement", "description": "The handle element that is active"}, "description": "Get the HTML reference for the currently active resize handle.", "guessedname": "getActiveHandleEl", "guessedtype": "function"}, "_handle_for_r": {"guessedname": "_handle_for_r", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Right handle.", "private": "", "guessedtype": "function"}, "_handle_for_t": {"guessedname": "_handle_for_t", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Top handle.", "private": "", "guessedtype": "function"}, "_updateStatus": {"guessedname": "_updateStatus", "params": [{"type": "Number", "name": "h", "description": " The new height setting."}, {"type": "Number", "name": "w", "description": " The new width setting."}, {"type": "Number", "name": "t", "description": " The new top setting."}, {"type": "Number", "name": "l", "description": " The new left setting."}], "description": "Using the Height, Width, Top & Left, it updates the status element with the elements sizes.", "private": "", "guessedtype": "function"}, "isActive": {"return": {"type": "Boolean", "description": ""}, "description": "Returns true or false if a resize operation is currently active on the element.", "guessedname": "isActive", "guessedtype": "function"}, "_handle_for_l": {"guessedname": "_handle_for_l", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Left handle.", "private": "", "guessedtype": "function"}, "_handleMouseOut": {"guessedname": "_handleMouseOut", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "Removes CSS class names to the handles", "private": "", "guessedtype": "function"}, "_handle_for_b": {"guessedname": "_handle_for_b", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Bottom handle.", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "resize.js", "guessedtype": "function", "shortname": "Resize", "properties": {"CSS_RESIZING": {"guessedname": "CSS_RESIZING", "type": "String", "description": "Class name given to the wrap element when a resize action is taking place.", "private": "", "guessedtype": "property"}, "_cache": {"guessedname": "_cache", "type": "Object", "description": "An lookup table containing key information for the element being resized. e.g. height, width, x position, y position, etc..", "private": "", "guessedtype": "property"}, "_dds": {"guessedname": "_dds", "type": "Object", "description": "An Object containing references to all of the <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> instances used for the resize handles", "private": "", "guessedtype": "property"}, "CSS_HIDDEN": {"guessedname": "CSS_HIDDEN", "type": "String", "description": "Class name given to the wrap element to make all handles hidden", "private": "", "guessedtype": "property"}, "_handles": {"guessedname": "_handles", "type": "Object", "description": "An object containing references to all of the resize handles.", "private": "", "guessedtype": "property"}, "_ieSelectBack": {"private": "", "description": "We will hold a copy of the current \"onselectstart\" method on this property, and reset it after we are done using it.", "guessedname": "_ieSelectBack", "guessedtype": "property"}, "CSS_STATUS": {"guessedname": "CSS_STATUS", "type": "String", "description": "Class name given to the status element", "private": "", "guessedtype": "property"}, "CSS_RESIZE": {"guessedname": "CSS_RESIZE", "type": "String", "description": "Base CSS class name", "private": "", "guessedtype": "property"}, "CSS_WRAP": {"guessedname": "CSS_WRAP", "type": "String", "description": "Class name given to the wrap element", "private": "", "guessedtype": "property"}, "_instances": {"description": "Internal hash table for all resize instances", "private": "", "static": "", "guessedname": "_instances", "guessedtype": "property", "type": "Object"}, "CSS_DRAG": {"guessedname": "CSS_DRAG", "type": "String", "description": "Class name added when dragging is enabled", "private": "", "guessedtype": "property"}, "_resizeEvent": {"guessedname": "_resizeEvent", "type": "Event", "description": "The mouse event used to resize with", "private": "", "guessedtype": "property"}, "_proxy": {"guessedname": "_proxy", "type": "HTMLElement", "description": "The HTML reference of the element proxy", "private": "", "guessedtype": "property"}, "dd": {"guessedname": "dd", "type": "Object", "description": "The <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> instance used if draggable is true", "private": "", "guessedtype": "property"}, "CSS_HANDLE": {"guessedname": "CSS_HANDLE", "type": "String", "description": "Class name given to all handles, used as a base for single handle names as well.. Handle \"t\" will get this.CSS_HANDLE + '-t' as well as this.CSS_HANDLE", "private": "", "guessedtype": "property"}, "CSS_PROXY": {"guessedname": "CSS_PROXY", "type": "String", "description": "Class name given to the proxy element", "private": "", "guessedtype": "property"}, "CSS_GHOST": {"guessedname": "CSS_GHOST", "type": "String", "description": "Class name given to the wrap element when the ghost property is active", "private": "", "guessedtype": "property"}, "CSS_HOVER": {"guessedname": "CSS_HOVER", "type": "String", "description": "Class name used for hover only handles", "private": "", "guessedtype": "property"}, "_positioned": {"guessedname": "_positioned", "type": "Boolean", "description": "A flag to show if the element is absolutely positioned", "private": "", "guessedtype": "property"}, "_wrap": {"guessedname": "_wrap", "type": "HTMLElement", "description": "The HTML reference of the element wrapper", "private": "", "guessedtype": "property"}, "_active": {"guessedname": "_active", "type": "Boolean", "description": "Flag to show if the resize is active. Used for events.", "private": "", "guessedtype": "property"}, "_locked": {"guessedname": "_locked", "type": "Boolean", "description": "A flag to show if the resize is locked", "private": "", "guessedtype": "property"}, "CSS_KNOB": {"guessedname": "CSS_KNOB", "type": "String", "description": "Class name used to make the knob style handles", "private": "", "guessedtype": "property"}, "_currentHandle": {"guessedname": "_currentHandle", "type": "String", "description": "The string identifier of the currently active handle. e.g. 'r', 'br', 'tl'", "private": "", "guessedtype": "property"}, "_currentDD": {"guessedname": "_currentDD", "type": "Object", "description": "A link to the currently active DD object", "private": "", "guessedtype": "property"}, "browser": {"guessedname": "browser", "type": "Object", "description": "A copy of the YAHOO.env.ua property", "private": "", "guessedtype": "property"}}, "description": "<p>Makes an element resizable</p>"}, "YAHOO.widget.StackedBarChart": {"name": "YAHOO.widget.StackedBarChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "StackedBarChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "StackedBarChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "StackedBarChart", "description": "StackedBarChart class for the YUI Charts widget."}, "YAHOO.util.Config": {"name": "YAHOO.util.Config", "constructors": [{"params": [{"type": "Object", "name": "owner", "description": " The owner Object to which this Config Object belongs"}], "description": "Config is a utility used within an Object to allow the implementer to\nmaintain a list of local configuration properties and listen for changes \nto those properties dynamically using CustomEvent. The initial values are \nalso maintained so that the configuration can be reset at any given point \nto its initial state."}], "namespace": "YAHOO.util", "module": "container", "events": {"configChangedEvent": {"description": "Custom Event, notifying subscribers when Config properties are set \n(setProperty is called without the silent flag", "guessedname": "configChangedEvent", "guessedtype": "property"}}, "guessedname": "Config", "methods": {"fireQueue": {"description": "Fires the normalized list of queued property change events", "guessedname": "fireQueue", "guessedtype": "function"}, "YAHOO.util.Config.alreadySubscribed": {"return": {"type": "Boolean", "description": "true, if the function/Object pair is already subscribed \nto the CustomEvent passed in"}, "description": "Checks to determine if a particular function/Object pair are already \nsubscribed to the specified CustomEvent", "static": "", "guessedname": "alreadySubscribed", "guessedtype": "function", "params": [{"type": "YAHOO.util.CustomEvent", "name": "evt", "description": " The CustomEvent for which to check \nthe subscriptions"}, {"type": "Function", "name": "fn", "description": " The function to look for in the subscribers list"}, {"type": "Object", "name": "obj", "description": " The execution scope Object for the subscription"}]}, "getProperty": {"return": {"type": "Object", "description": "The value of the specified property"}, "params": [{"type": "String", "name": "key", "description": " The name of the property"}], "description": "Returns the value of specified property.", "guessedname": "getProperty", "guessedtype": "function"}, "addProperty": {"params": [{"type": "String", "name": "key", "description": " The configuration property's name"}, {"type": "Object", "name": "propertyObject", "description": " The Object containing all of this \nproperty's arguments"}], "description": "Adds a property to the Config Object's private config hash.", "guessedname": "addProperty", "guessedtype": "function"}, "queueProperty": {"return": {"type": "Boolean", "description": "true, if the set was successful, false if \nit failed."}, "params": [{"type": "String", "name": "key", "description": " The name of the property"}, {"type": "String", "name": "value", "description": " The value to set the property to"}], "description": "Sets the value of a property and queues its event to execute. If the \nevent is already scheduled to execute, it is\nmoved from its current position to the end of the queue.", "guessedname": "queueProperty", "guessedtype": "function"}, "checkNumber": {"return": {"type": "Boolean", "description": "true, if the value is valid"}, "params": [{"type": "Object", "name": "val", "description": " The value to validate"}], "description": "Validates that the value passed in is a number.", "guessedname": "checkNumber", "guessedtype": "function"}, "outputEventQueue": {"return": {"type": "String", "description": "The string list of CustomEvents currently queued \nfor execution"}, "description": "Returns a string representation of the Config object's current \nCustomEvent queue", "guessedname": "outputEventQueue", "guessedtype": "function"}, "resetProperty": {"return": {"type": "Boolean", "description": "True is the property was reset, false if not"}, "params": [{"type": "String", "name": "key", "description": " The name of the property"}], "description": "Resets the specified property's value to its initial value.", "guessedname": "resetProperty", "guessedtype": "function"}, "applyConfig": {"params": [{"type": "Object", "name": "userConfig", "description": " The configuration Object literal"}, {"type": "Boolean", "name": "init", "description": "  When set to true, the initialConfig will \nbe set to the userConfig passed in, so that calling a reset will \nreset the properties to the passed values."}], "description": "Applies a key-value Object literal to the configuration, replacing  \nany existing values, and queueing the property events.\nAlthough the values will be set, fireQueue() must be called for their \nassociated events to execute.", "guessedname": "applyConfig", "guessedtype": "function"}, "refresh": {"description": "Refires the events for all configuration properties using their \ncurrent values.", "guessedname": "refresh", "guessedtype": "function"}, "subscribeToConfigEvent": {"return": {"type": "Boolean", "description": "True, if the subscription was successful, \notherwise false."}, "params": [{"type": "String", "name": "key", "description": " The property name"}, {"type": "Function", "name": "handler", "description": " The handler function to use subscribe to \nthe property's event"}, {"type": "Object", "name": "obj", "description": " The Object to use for scoping the event handler \n(see CustomEvent documentation)"}, {"type": "Boolean", "name": "overrideContext", "description": " Optional. If true, will override\n\"this\" within the handler to map to the scope Object passed into the\nmethod."}], "description": "Subscribes an external handler to the change event for any \ngiven property.", "guessedname": "subscribeToConfigEvent", "guessedtype": "function"}, "checkBoolean": {"return": {"type": "Boolean", "description": "true, if the value is valid"}, "params": [{"type": "Object", "name": "val", "description": " The value to validate"}], "description": "Validates that the value passed in is a Boolean.", "guessedname": "checkBoolean", "guessedtype": "function"}, "init": {"params": [{"type": "Object", "name": "owner", "description": " The owner Object to which this Config \nObject belongs"}], "description": "Initializes the configuration Object and all of its local members.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The Config object in string format."}, "description": "Returns a string representation of the Config object", "guessedname": "toString", "guessedtype": "function"}, "refireEvent": {"params": [{"type": "String", "name": "key", "description": " The name of the property"}], "description": "Fires the event for a property using the property's current value.", "guessedname": "refireEvent", "guessedtype": "function"}, "getConfig": {"return": {"type": "Object", "description": "The current config, represented in a key-value map"}, "description": "Returns a key-value configuration map of the values currently set in  \nthe Config Object.", "guessedname": "getConfig", "guessedtype": "function"}, "setProperty": {"return": {"type": "Boolean", "description": "True, if the set was successful, false if it failed."}, "params": [{"type": "String", "name": "key", "description": " The name of the property"}, {"type": "String", "name": "value", "description": " The value to set the property to"}, {"type": "Boolean", "name": "silent", "description": " Whether the value should be set silently, \nwithout firing the property event."}], "description": "Sets the value of a property. If the silent property is passed as \ntrue, the property's event will not be fired.", "guessedname": "setProperty", "guessedtype": "function"}, "destroy": {"description": "Sets all properties to null, unsubscribes all listeners from each \nproperty's change event and all listeners from the configChangedEvent.", "guessedname": "destroy", "guessedtype": "function"}, "fireEvent": {"guessedname": "fireEvent", "params": [{"type": "String", "name": "key", "description": " The configuration property's name"}, {"type": "value", "name": "Object", "description": " The value of the correct type for the property"}], "description": "Fires a configuration property event using the specified value.", "private": "", "guessedtype": "function"}, "unsubscribeFromConfigEvent": {"return": {"type": "Boolean", "description": "True, if the unsubscription was successful, \notherwise false."}, "params": [{"type": "String", "name": "key", "description": " The property name"}, {"type": "Function", "name": "handler", "description": " The handler function to use subscribe to \nthe property's event"}, {"type": "Object", "name": "obj", "description": " The Object to use for scoping the event \nhandler (see CustomEvent documentation)"}], "description": "Unsubscribes an external handler from the change event for any \ngiven property.", "guessedname": "unsubscribeFromConfigEvent", "guessedtype": "function"}}, "file": "Config.js", "guessedtype": "function", "shortname": "Config", "properties": {"YAHOO.util.Config.CONFIG_CHANGED_EVENT": {"description": "Constant representing the CustomEvent type for the config changed event.", "private": "", "static": "", "guessedname": "CONFIG_CHANGED_EVENT", "guessedtype": "property", "final": ""}, "eventQueue": {"guessedname": "eventQueue", "type": "Object", "description": "Maintains the local, normalized CustomEvent queue", "private": "", "guessedtype": "property"}, "owner": {"type": "Object", "description": "Object reference to the owner of this Config Object", "guessedname": "owner", "guessedtype": "property"}, "queueInProgress": {"type": "Boolean", "description": "Boolean flag that specifies whether a queue is currently \nbeing executed", "guessedname": "queueInProgress", "guessedtype": "property"}, "initialConfig": {"guessedname": "initialConfig", "type": "Object", "description": "Maintains the local collection of configuration property objects as \nthey were initially applied.\nThis object is used when resetting a property.", "private": "", "guessedtype": "property"}, "config": {"guessedname": "config", "type": "Object", "description": "Maintains the local collection of configuration property objects and \ntheir specified values", "private": "", "guessedtype": "property"}, "YAHOO.util.Config.BOOLEAN_TYPE": {"description": "Constant representing the boolean type string", "private": "", "static": "", "guessedname": "BOOLEAN_TYPE", "guessedtype": "property", "final": ""}}, "description": "Config is a utility used within an Object to allow the implementer to\nmaintain a list of local configuration properties and listen for changes \nto those properties dynamically using CustomEvent. The initial values are \nalso maintained so that the configuration can be reset at any given point \nto its initial state."}, "YAHOO.widget.Node": {"name": "YAHOO.widget.Node", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node, and any custom attributes that should be\nstored with the node (which is available in noderef.data).\nAll values in oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private or functions,\nthe rest of the values will be stored in noderef.data"}, {"type": "Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated, use oData.expanded)"}], "description": "The base class for all tree nodes.  The node's presentation and behavior in\nresponse to mouse events is handled in Node subclasses."}], "namespace": "YAHOO.widget", "module": "treeview", "events": {"parentChange": {"type": "CustomEvent", "description": "The parentChange event is fired when a parent element is applied\nto the node.  This is useful if you need to apply tree-level\nproperties to a tree that need to happen if a node is moved from\none tree to another."}}, "guessedname": "Node", "methods": {"setNodesProperty": {"params": [{"type": "string", "name": "name", "description": "  Name of the property to be set"}, {"type": "any", "name": "value", "description": "  value to be set"}, {"type": "boolean", "name": "refresh", "description": "  if present and true, it does a refresh"}], "description": "Sets the value of property for this node and all loaded descendants.  \nOnly public and defined properties can be set, not methods.  \nValues for unknown properties will be assigned to the refNode.data object", "guessedname": "setNodesProperty", "guessedtype": "function"}, "appendChild": {"return": {"type": "Node", "description": "the child node"}, "description": "Appends a node to the child collection.", "private": "", "params": [{"type": "Node", "name": "childNode", "description": "  the new node"}], "guessedname": "appendChild", "guessedtype": "function"}, "setDynamicLoad": {"params": [{"type": "function", "name": "fmDataLoader", "description": "  the function that will be used to get the data."}, {"type": "int", "name": "iconMode", "description": "  configures the icon that is displayed when a dynamic\nload node is expanded the first time without children.  By default, the \n\"collapse\" icon will be used.  If set to 1, the leaf node icon will be\ndisplayed."}], "description": "Configures this node for dynamically obtaining the child data\nwhen the node is first expanded.  Calling it without the callback\nwill turn off dynamic load for the node.", "guessedname": "setDynamicLoad", "guessedtype": "function"}, "unhighlight": {"params": [{"type": "boolean", "name": "_silent", "description": "  optional, don't fire the highlightEvent"}], "description": "Turns highlighting off a node.", "guessedname": "unhighlight", "guessedtype": "function"}, "_childrenHighlighted": {"private": "", "description": "Checks whether all or part of the children of a node are highlighted and\nsets the node highlight to full, none or partial highlight.\nIf set to propagate it will further call the parent", "guessedname": "_childrenHighlighted", "guessedtype": "function"}, "getChildrenEl": {"return": {"type": "HTMLElement", "description": "this node's children div"}, "description": "Returns the div that was generated for this node's children", "guessedname": "getChildrenEl", "guessedtype": "function"}, "_removeFocus": {"private": "", "description": "Removes the focus of previously selected Node", "guessedname": "_removeFocus", "guessedtype": "function"}, "toggle": {"description": "Expands if node is collapsed, collapses otherwise.", "guessedname": "toggle", "guessedtype": "function"}, "getEditorValue": {"return": {"type": "any", "description": "value entered"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Returns the value(s) from the input element(s) .\nShould be overridden by each node type.", "guessedname": "getEditorValue", "guessedtype": "function"}, "saveEditorValue": {"return": {"type": "false or none", "description": "a return of exactly false will prevent the editor from closing"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Saves the value entered into the editor.", "guessedname": "saveEditorValue", "guessedtype": "function"}, "getToggleLink": {"return": {"type": "string", "description": "the javascript url for toggling this node"}, "description": "Generates the link that will invoke this node's toggle method", "guessedname": "getToggleLink", "guessedtype": "function"}, "getToggleEl": {"return": {"type": "HTMLElement", "description": "this node's toggle html element"}, "description": "Returns the element that is being used for this node's toggle.", "guessedname": "getToggleEl", "guessedtype": "function"}, "toggleHighlight": {"description": "Toggles the highlighted state of a Node", "guessedname": "toggleHighlight", "guessedtype": "function"}, "getHtml": {"return": {"type": "string", "description": "the markup for this node and its expanded children."}, "description": "Returns the markup for this node and its children.", "guessedname": "getHtml", "guessedtype": "function"}, "insertBefore": {"return": {"type": "Node", "description": "the inserted node"}, "params": [{"type": "Node", "name": "node", "description": "  the node to insert this node before"}], "description": "Inserts this node before this supplied node", "guessedname": "insertBefore", "guessedtype": "function"}, "hasChildren": {"return": {"type": "boolean", "description": "true if this has children or if it might and we are\nchecking for this condition."}, "params": [{"type": "boolean", "name": "checkForLazyLoad", "description": "  should we check for unloaded children?"}], "description": "Checks if this node has children.  If this node is lazy-loading and the\nchildren have not been rendered, we do not know whether or not there\nare actual children.  In most cases, we need to assume that there are\nchildren (for instance, the toggle needs to show the expandable \npresentation state).  In other times we want to know if there are rendered\nchildren.  For the latter, \"checkForLazyLoad\" should be false.", "guessedname": "hasChildren", "guessedtype": "function"}, "isDynamic": {"return": {"type": "boolean", "description": "true if this node's children are to be loaded dynamically"}, "description": "Evaluates if this node's children should be loaded dynamically.  Looks for\nthe property both in this instance and the root node.  If the tree is\ndefined to load all children dynamically, the data callback function is\ndefined in the root node", "guessedname": "isDynamic", "guessedtype": "function"}, "init": {"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node"}, {"type": "Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state"}], "description": "Initializes this node, gets some of the properties from the parent", "guessedname": "init", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": "the container html element"}, "description": "Returns this node's container html element", "guessedname": "getEl", "guessedtype": "function"}, "appendTo": {"return": {"type": "Node", "description": "The appended node"}, "params": [{"type": "Node", "name": "parentNode", "description": "  the node to append to."}], "description": "Appends this node to the supplied node's child collection", "guessedname": "appendTo", "guessedtype": "function"}, "getContentEl": {"return": {"type": "HTMLElement", "description": "the element"}, "description": "Returns the outer html element for this node's content", "guessedname": "getContentEl", "guessedtype": "function"}, "showChildren": {"description": "Shows this node's children", "guessedname": "showChildren", "guessedtype": "function"}, "insertAfter": {"return": {"type": "Node", "description": "the inserted node"}, "params": [{"type": "Node", "name": "node", "description": "  the node to insert after"}], "description": "Inserts this node after the supplied node", "guessedname": "insertAfter", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the node"}, "description": "Node toString", "guessedname": "toString", "guessedtype": "function"}, "getChildrenElId": {"return": {"type": "string", "description": "the element id for this node's children div"}, "description": "Returns the id for this node's children div", "guessedname": "getChildrenElId", "guessedtype": "function"}, "getDepthStyle": {"return": {"type": "string", "description": "the css class for the spacer"}, "params": [{"type": "int", "name": "depth", "description": " the depth of the ancestor."}], "description": "Returns the css class for the spacer at the specified depth for\nthis node.  If this node's ancestor at the specified depth\nhas a next sibling the presentation is different than if it\ndoes not have a next sibling", "guessedname": "getDepthStyle", "guessedtype": "function"}, "_canHaveFocus": {"guessedname": "_canHaveFocus", "return": {"type": "boolean", "description": "success"}, "description": "Returns true if there are any elements in the node that can \naccept the real actual browser focus", "private": "", "guessedtype": "function"}, "expandAll": {"description": "Recursively expands all of this node's children.", "guessedname": "expandAll", "guessedtype": "function"}, "getNodeCount": {"return": {"type": "int", "description": "number of nodes in the branch"}, "description": "Count of nodes in a branch", "guessedname": "getNodeCount", "guessedtype": "function"}, "collapse": {"description": "Hides this nodes children (creating them if necessary), changes the toggle style.", "guessedname": "collapse", "guessedtype": "function"}, "getSiblings": {"return": {"type": "", "description": "Node[]"}, "description": "Returns a node array of this node's siblings, null if none.", "guessedname": "getSiblings", "guessedtype": "function"}, "editNode": {"description": "pops up the contents editor, if there is one and the node is declared editable", "guessedname": "editNode", "guessedtype": "function"}, "getContentHtml": {"return": {"type": "string", "description": "The HTML that will render the content of this node."}, "description": "Get the markup for the contents of the node.  This is designed to be overrided so that we can\nsupport different types of nodes.", "guessedname": "getContentHtml", "guessedtype": "function"}, "focus": {"return": {"type": "boolean", "description": "success"}, "description": "Sets the focus on the node element.\nIt will only be able to set the focus on nodes that have anchor elements in it.  \nToggle or branch icons have anchors and can be focused on.  \nIf will fail in nodes that have no anchor", "guessedname": "focus", "guessedtype": "function"}, "displayEditedValue": {"params": [{"type": "any", "name": "value", "description": "  value to be displayed and stored in the node"}, {"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Finally displays the newly edited value(s) in the tree.\nShould be overridden by each node type.", "guessedname": "displayEditedValue", "guessedtype": "function"}, "getStyle": {"return": {"type": "string", "description": "the css class for this node's toggle"}, "description": "Returns the css style name for the toggle", "guessedname": "getStyle", "guessedtype": "function"}, "getNodeHtml": {"return": {"type": "string", "description": "The HTML that will render this node."}, "description": "Get the markup for the node.  This may be overrided so that we can\nsupport different types of nodes.", "guessedname": "getNodeHtml", "guessedtype": "function"}, "getIconMode": {"return": {"type": "int", "description": "0 for collapse style, 1 for leaf node style"}, "description": "Returns the current icon mode.  This refers to the way childless dynamic\nload nodes appear (this comes into play only after the initial dynamic\nload request produced no children).", "guessedname": "getIconMode", "guessedtype": "function"}, "_setHighlightClassName": {"private": "", "description": "Changes the classNames on the toggle and content containers to reflect the current highlighting", "guessedname": "_setHighlightClassName", "guessedtype": "function"}, "hideChildren": {"description": "Hides this node's children", "guessedname": "hideChildren", "guessedtype": "function"}, "destroyEditorContents": {"params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Node-specific destroy function to empty the contents of the inline editor panel.\nThis function is the worst case alternative that will purge all possible events and remove the editor contents.\nMethod Event.purgeElement is somewhat costly so if it can be replaced by specifc Event.removeListeners, it is better to do so.", "guessedname": "destroyEditorContents", "guessedtype": "function"}, "getAncestor": {"return": {"type": "Node", "description": "the ancestor"}, "params": [{"type": "int", "name": "depth", "description": " the depth of the ancestor."}], "description": "Returns this node's ancestor at the specified depth.", "guessedname": "getAncestor", "guessedtype": "function"}, "loadComplete": {"description": "Load complete is the callback function we pass to the data provider\nin dynamic load situations.", "guessedname": "loadComplete", "guessedtype": "function"}, "expand": {"description": "Shows this nodes children (creating them if necessary), changes the\ntoggle style, and collapses its siblings if multiExpand is not set.", "guessedname": "expand", "guessedtype": "function"}, "getElId": {"return": {"type": "string", "description": "the element id"}, "description": "Returns the id for this node's container div", "guessedname": "getElId", "guessedtype": "function"}, "isRoot": {"return": {"type": "boolean", "description": "true if this is the root node"}, "description": "Evaluates if this node is the root node of the tree", "guessedname": "isRoot", "guessedtype": "function"}, "fillEditorContainer": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Placeholder for a function that should provide the inline node label editor.\nLeaving it set to null will indicate that this node type is not editable.\nIt should be overridden by nodes that provide inline editing.\nThe Node-specific editing element (input box, textarea or whatever) should be inserted into editorData.inputContainer.", "guessedname": "fillEditorContainer", "guessedtype": "property"}, "completeRender": {"return": {"type": "string", "description": "children html"}, "description": "Called when we know we have all the child data.", "guessedname": "completeRender", "guessedtype": "function"}, "isChildOf": {"return": {"type": "boolean", "description": "The node index if this Node is a child of \nsupplied Node, else -1."}, "description": "Returns true if the Node is a child of supplied Node", "private": "", "params": [{"type": "Node", "name": "parentNode", "description": "  the Node to check"}], "guessedname": "isChildOf", "guessedtype": "function"}, "getChildrenHtml": {"guessedname": "getChildrenHtml", "return": {"type": "string", "description": "the children container div html and any expanded children"}, "description": "Called when first rendering the tree.  We always build the div that will\ncontain this nodes children, but we don't render the children themselves\nunless this node is expanded.", "private": "", "guessedtype": "function"}, "refresh": {"description": "Regenerates the html for this node and its children.  To be used when the\nnode is expanded and new children have been added.", "guessedname": "refresh", "guessedtype": "function"}, "getToggleElId": {"return": {"type": "string", "description": "the toggel element id"}, "description": "Returns the id for this node's toggle element", "guessedname": "getToggleElId", "guessedtype": "function"}, "getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if the node or any children is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nIt will return false if the node or any children loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getNodeDefinition", "guessedtype": "function"}, "highlight": {"params": [{"type": "boolean", "name": "_silent", "description": "  optional, don't fire the highlightEvent"}], "description": "Turns highlighting on node.", "guessedname": "highlight", "guessedtype": "function"}, "renderChildren": {"guessedname": "renderChildren", "return": {"type": "string", "description": "the html for this node's children"}, "description": "Generates the markup for the child nodes.  This is not done until the node\nis expanded.", "private": "", "guessedtype": "function"}, "getHoverStyle": {"return": {"type": "string", "description": "the css class hover state"}, "description": "Returns the hover style for the icon", "guessedname": "getHoverStyle", "guessedtype": "function"}, "collapseAll": {"description": "Recursively collapses all of this node's children.", "guessedname": "collapseAll", "guessedtype": "function"}, "applyParent": {"return": {"type": "boolean", "description": "true if the application was successful"}, "params": [{"type": "Node", "name": "parentNode", "description": " this node's parent node"}], "description": "Certain properties for the node cannot be set until the parent\nis known. This is called after the node is inserted into a tree.\nthe parent is also applied to this node's children in order to\nmake it possible to move a branch from one tree to another.", "guessedname": "applyParent", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "Node.js", "guessedtype": "function", "shortname": "Node", "properties": {"childrenRendered": {"type": "boolean", "description": "This flag is set to true when the html is generated for this node's\nchildren, and set to false when new children are added.", "guessedname": "childrenRendered", "guessedtype": "property"}, "_focusedItem": {"guessedname": "_focusedItem", "type": "DOM element", "description": "DOM element that actually got the browser focus", "private": "", "guessedtype": "property"}, "nextSibling": {"type": "Node", "description": "This node's next sibling", "guessedname": "nextSibling", "guessedtype": "property"}, "renderHidden": {"type": "boolean", "description": "Should we render children for a collapsed node?  It is possible that the\nimplementer will want to render the hidden data...  @todo verify that we \nneed this, and implement it if we do.", "guessedname": "renderHidden", "guessedtype": "property"}, "className": {"default": "null", "type": "string", "description": "User-defined className to be added to the Node", "guessedname": "className", "guessedtype": "property"}, "iconMode": {"type": "int", "description": "Used to configure what happens when a dynamic load node is expanded\nand we discover that it does not have children.  By default, it is\ntreated as if it still could have children (plus/minus icon).  Set\niconMode to have it display like a leaf node instead.", "guessedname": "iconMode", "guessedtype": "property"}, "isLoading": {"type": "boolean", "description": "This is true for dynamically loading nodes while waiting for the\ncallback to return.", "guessedname": "isLoading", "guessedtype": "property"}, "nowrap": {"default": "false", "type": "boolean", "description": "Specifies whether or not the content area of the node should be allowed\nto wrap.", "guessedname": "nowrap", "guessedtype": "property"}, "children": {"type": "Node[]", "description": "This node's child node collection.", "guessedname": "children", "guessedtype": "property"}, "multiExpand": {"type": "boolean", "description": "Can multiple children be expanded at once?", "guessedname": "multiExpand", "guessedtype": "property"}, "index": {"type": "int", "description": "The index for this instance obtained from global counter in YAHOO.widget.TreeView.", "guessedname": "index", "guessedtype": "property"}, "_focusHighlightedItems": {"guessedname": "_focusHighlightedItems", "type": "Array of DOM elements", "description": "array of items that had the focus set on them\nso that they can be cleaned when focus is lost", "private": "", "guessedtype": "property"}, "propagateHighlightDown": {"default": "false", "type": "boolean", "description": "Tells whether highlighting will be propagated down to the children of the clicked node", "guessedname": "propagateHighlightDown", "guessedtype": "property"}, "_dynLoad": {"guessedname": "_dynLoad", "type": "boolean", "description": "We can set the node up to call an external method to get the child\ndata dynamically.", "private": "", "guessedtype": "property"}, "previousSibling": {"type": "Node", "description": "This node's previous sibling", "guessedname": "previousSibling", "guessedtype": "property"}, "contentStyle": {"type": "string", "description": "The CSS class for the html content container.  Defaults to ygtvhtml, but \ncan be overridden to provide a custom presentation for a specific node.", "guessedname": "contentStyle", "guessedtype": "property"}, "_type": {"description": "The node type", "default": "\"Node\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}, "propagateHighlightUp": {"default": "false", "type": "boolean", "description": "Tells whether highlighting will be propagated up to the parents of the clicked node", "guessedname": "propagateHighlightUp", "guessedtype": "property"}, "parent": {"type": "Node", "description": "Parent node", "guessedname": "parent", "guessedtype": "property"}, "highlightState": {"default": "0", "type": "integer", "description": "Stores the highlight state.  Can be any of:\n<ul>\n<li>0 - not highlighted</li>\n<li>1 - highlighted</li>\n<li>2 - some children highlighted</li>\n</ul>", "guessedname": "highlightState", "guessedtype": "property"}, "dataLoader": {"type": "function", "description": "Function to execute when we need to get this node's child data.", "guessedname": "dataLoader", "guessedtype": "property"}, "editable": {"type": "boolean", "description": "Signals if the label is editable.  (Ignored on TextNodes with href set.)", "guessedname": "editable", "guessedtype": "property"}, "data": {"type": "object", "description": "The data linked to this node.  This can be any object or primitive\nvalue, and the data can be used in getNodeHtml().", "guessedname": "data", "guessedtype": "property"}, "dynamicLoadComplete": {"type": "boolean", "description": "Dynamically loaded nodes only fetch the data the first time they are\nexpanded.  This flag is set to true once the data has been fetched.", "guessedname": "dynamicLoadComplete", "guessedtype": "property"}, "isLeaf": {"default": "false", "type": "boolean", "description": "If true, the node will alway be rendered as a leaf node.  This can be\nused to override the presentation when dynamically loading the entire\ntree.  Setting this to true also disables the dynamic load call for the\nnode.", "guessedname": "isLeaf", "guessedtype": "property"}, "hasIcon": {"type": "boolean", "description": "The toggle/branch icon will not show if this is set to false.  This\ncould be useful if the implementer wants to have the child contain\nextra info about the parent, rather than an actual node.", "guessedname": "hasIcon", "guessedtype": "property"}, "contentElId": {"type": "string", "description": "The generated id that will contain the data passed in by the implementer.", "guessedname": "contentElId", "guessedtype": "property"}, "expanded": {"type": "boolean", "description": "The node's expanded/collapsed state", "guessedname": "expanded", "guessedtype": "property"}, "tree": {"type": "TreeView", "description": "Tree instance this node is part of", "guessedname": "tree", "guessedtype": "property"}, "enableHighlight": {"default": "true", "type": "boolean", "description": "Enables node highlighting.  If true, the node can be highlighted and/or propagate highlighting", "guessedname": "enableHighlight", "guessedtype": "property"}, "depth": {"type": "int", "description": "The depth of this node.  We start at -1 for the root node.", "guessedname": "depth", "guessedtype": "property"}}, "description": "The base class for all tree nodes.  The node's presentation and behavior in\nresponse to mouse events is handled in Node subclasses."}, "YAHOO.widget.ColumnSeries": {"name": "YAHOO.widget.ColumnSeries", "constructors": [{"description": "ColumnSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "ColumnSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "ColumnSeries", "description": "ColumnSeries class for the YUI Charts widget."}, "YAHOO.widget.ColumnChart": {"name": "YAHOO.widget.ColumnChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "ColumnChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "ColumnChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "ColumnChart", "description": "ColumnChart class for the YUI Charts widget."}, "YAHOO.util.YUILoader": {"name": "YAHOO.util.YUILoader", "namespace": "YAHOO.util", "module": "yuiloader", "methods": {"_pushEvents": {"guessedname": "_pushEvents", "params": [{"type": "Function", "name": "optional", "description": " function reference"}], "description": "In IE, the onAvailable/onDOMReady events need help when Event is\nloaded dynamically", "private": "", "guessedtype": "function"}, "getRequires": {"params": [{"type": "", "name": "mod", "description": " The module definition from moduleInfo"}], "description": "Returns an object containing properties for all modules required\nin order to load the requested module", "guessedname": "getRequires", "guessedtype": "function"}, "onProgress": {"type": "function", "description": "Callback that will be executed each time a new module is loaded", "guessedname": "onProgress", "guessedtype": "property"}, "onTimeout": {"type": "function", "description": "Callback that will be executed if a timeout occurs", "guessedname": "onTimeout", "guessedtype": "property"}, "getProvides": {"return": {"type": "", "description": "what this module provides"}, "params": [{"type": "string", "name": "name", "description": " The name of the module"}, {"type": "string", "name": "notMe", "description": "  don't add this module name, only include superseded modules"}], "description": "Returns an object literal of the modules the supplied module satisfies", "guessedname": "getProvides", "guessedtype": "function"}, "_reduce": {"private": "", "description": "Remove superceded modules and loaded modules.  Called by\ncalculate() after we have the mega list of all dependencies", "guessedname": "_reduce", "guessedtype": "function"}, "calculate": {"params": [{"type": "", "name": "o", "description": " optional options object"}], "description": "Calculates the dependency tree, the result is stored in the sorted \nproperty", "guessedname": "calculate", "guessedtype": "function"}, "_filter": {"guessedname": "_filter", "return": {"type": "string", "description": "the filtered string"}, "description": "Applies filter\nmethod _filter", "private": "", "guessedtype": "function"}, "_addSkin": {"return": {"type": "string", "description": "the module name for the skin"}, "description": "Adds the skin def to the module info", "private": "", "params": [{"type": "string", "name": "skin", "description": "  the name of the skin"}, {"type": "string", "name": "mod", "description": "  the name of the module"}], "guessedname": "_addSkin", "guessedtype": "function"}, "_explode": {"private": "", "description": "Inspects the required modules list looking for additional \ndependencies.  Expands the required list to include all \nrequired modules.  Called by calculate()", "guessedname": "_explode", "guessedtype": "function"}, "formatSkin": {"return": {"type": "string", "description": "the full skin module name"}, "params": [{"type": "string", "name": "skin", "description": "  the name of the skin"}, {"type": "string", "name": "mod", "description": "  optional: the name of a module to skin"}], "description": "Returns the skin module name for the specified skin name.  If a\nmodule name is supplied, the returned skin module name is \nspecific to the module passed in.", "guessedname": "formatSkin", "guessedtype": "function"}, "parseSkin": {"return": {"type": "skin: string, module: string", "description": "the parsed skin name \nand module name, or null if the supplied string does not match\nthe skin pattern"}, "params": [{"type": "string", "name": "mod", "description": "  the module name to parse"}], "description": "Reverses <code>formatSkin</code>, providing the skin name and\nmodule name if the string matches the pattern for skins.", "guessedname": "parseSkin", "guessedtype": "function"}, "addModule": {"return": {"type": "boolean", "description": "true if the module was added, false if \nthe object passed in did not provide all required attributes"}, "params": [{"type": "", "name": "o", "description": " An object containing the module data"}], "description": "Add a new module to the component metadata.         \n<dl>\n<dt>name:</dt>       <dd>required, the component name</dd>\n<dt>type:</dt>       <dd>required, the component type (js or css)</dd>\n<dt>path:</dt>       <dd>required, the path to the script from \"base\"</dd>\n<dt>requires:</dt>   <dd>array of modules required by this component</dd>\n<dt>optional:</dt>   <dd>array of optional modules for this component</dd>\n<dt>supersedes:</dt> <dd>array of the modules this component replaces</dd>\n<dt>after:</dt>      <dd>array of modules the components which, if present, should be sorted above this one</dd>\n<dt>rollup:</dt>     <dd>the number of superseded modules required for automatic rollup</dd>\n<dt>fullpath:</dt>   <dd>If fullpath is specified, this is used instead of the configured base + path</dd>\n<dt>skinnable:</dt>  <dd>flag to determine if skin assets should automatically be pulled in</dd>\n</dl>", "guessedname": "addModule", "guessedtype": "function"}, "loadNext": {"params": [{"type": "string", "name": "mname", "description": "  optional the name of the module that has\nbeen loaded (which is usually why it is time to load the next\none)"}], "description": "Executed every time a module is loaded, and if we are in a load\ncycle, we attempt to load the next script.  Public so that it\nis possible to call this if using a method other than\nYAHOO.register to determine when scripts are fully loaded", "guessedname": "loadNext", "guessedtype": "function"}, "_rollup": {"private": "", "description": "Look for rollup packages to determine if all of the modules a\nrollup supersedes are required.  If so, include the rollup to\nhelp reduce the total number of connections required.  Called\nby calculate()", "guessedname": "_rollup", "guessedtype": "function"}, "insert": {"params": [{"type": "", "name": "o", "description": " optional options object"}, {"type": "string", "name": "type", "description": "  the type of dependency to insert"}], "description": "inserts the requested modules and their dependencies.  \n<code>type</code> can be \"js\" or \"css\".  Both script and \ncss are inserted if type is not provided.", "guessedname": "insert", "guessedtype": "function"}, "_sort": {"private": "", "description": "Sorts the dependency tree.  The last step of calculate()", "guessedname": "_sort", "guessedtype": "function"}, "onFailure": {"type": "function", "description": "Callback that will be executed if there is a failure", "guessedname": "onFailure", "guessedtype": "property"}, "require": {"params": [{"type": "string[] | string*", "name": "what", "description": "  the modules to load"}], "description": "Add a requirement for one or more module", "guessedname": "require", "guessedtype": "function"}, "_setup": {"private": "", "description": "Investigates the current YUI configuration on the page.  By default,\nmodules already detected will not be loaded again unless a force\noption is encountered.  Called by calculate()", "guessedname": "_setup", "guessedtype": "function"}, "onSuccess": {"type": "function", "description": "Callback that will be executed when the loader is finished\nwith an insert", "guessedname": "onSuccess", "guessedtype": "property"}, "sandbox": {"params": [{"type": "Function", "name": "callback", "description": "  the callback to exectued when the load is\ncomplete."}], "description": "Interns the script for the requested modules.  The callback is\nprovided a reference to the sandboxed YAHOO object.  This only\napplies to the script: css can not be sandboxed; css will be\nloaded into the page normally if specified.", "guessedname": "sandbox", "guessedtype": "function"}, "_url": {"return": {"type": "string", "description": "the full url"}, "description": "Generates the full url for a module\nmethod _url", "private": "", "params": [{"type": "string", "name": "path", "description": "  the path fragment"}], "guessedname": "_url", "guessedtype": "function"}}, "file": "yuiloader.js", "shortname": "YUILoader", "todo": "version management, automatic sandboxing", "properties": {"force": {"type": "string[]", "description": "A list of modules that should always be loaded, even\nif they have already been inserted into the page.", "guessedname": "force", "guessedtype": "property"}, "varName": {"type": "string", "description": "The name of the variable in a sandbox or script node \n(for external script support in Safari 2.x and earlier)\nto reference when the load is complete.  If this variable \nis not available in the specified scripts, the operation will \nfail.", "guessedname": "Name", "guessedtype": "property"}, "rollups": {"description": "List of rollup files found in the library metadata", "guessedname": "rollups", "guessedtype": "property"}, "allowRollup": {"default": "true", "type": "boolean", "description": "Should we allow rollups", "guessedname": "allowRollup", "guessedtype": "property"}, "skin": {"description": "Provides the information used to skin the skinnable components.\nThe following skin definition would result in 'skin1' and 'skin2'\nbeing loaded for calendar (if calendar was requested), and\n'sam' for all other skinnable components:\n<code>\nskin: {\n// The default skin, which is automatically applied if not\n// overriden by a component-specific skin definition.\n// Change this in to apply a different skin globally\ndefaultSkin: 'sam', \n// This is combined with the loader base property to get\n// the default root directory for a skin. ex:\n// http://yui.yahooapis.com/2.3.0/build/assets/skins/sam/\nbase: 'assets/skins/',\n// The name of the rollup css file for the skin\npath: 'skin.css',\n// The number of skinnable components requested that are\n// required before using the rollup file rather than the\n// individual component css files\nrollup: 3,\n// Any component-specific overrides can be specified here,\n// making it possible to load different skins for different\n// components.  It is possible to load more than one skin\n// for a given component as well.\noverrides: {\ncalendar: ['skin1', 'skin2']\n}\n}\n</code>", "guessedname": "self", "guessedtype": "property"}, "loaded": {"type": "{string: boolean}", "propery": "loaded", "description": "Set when beginning to compute the dependency tree. \nComposed of what YAHOO reports to be loaded combined\nwith what has been loaded by the tool", "guessedname": "loaded", "guessedtype": "property"}, "_internalCallback": {"private": "", "description": "Internal callback to handle multiple internal insert() calls\nso that css is inserted prior to js", "guessedname": "_internalCallback", "guessedtype": "property"}, "inserted": {"type": "{string: boolean}", "description": "List of modules inserted by the utility", "guessedname": "inserted", "guessedtype": "property"}, "charset": {"default": "utf-8", "type": "string", "description": "The charset attribute for inserted nodes", "guessedname": "charset", "guessedtype": "property"}, "loadOptional": {"default": "false", "type": "boolean", "description": "Whether or not to load optional dependencies for \nthe requested modules", "guessedname": "loadOptional", "guessedtype": "property"}, "combine": {"default": "false", "type": "boolean", "description": "If configured, YUI will use the the combo handler on the\nYahoo! CDN to pontentially reduce the number of http requests\nrequired."}, "moduleInfo": {"description": "The library metadata", "guessedname": "moduleInfo", "guessedtype": "property"}, "scope": {"default": "this", "description": "The execution scope for all callbacks", "guessedname": "scope", "guessedtype": "property"}, "filter": {"type": "string|{searchExp: string, replaceStr: string}", "description": "A filter to apply to result urls.  This filter will modify the default\npath for all modules.  The default path for the YUI library is the\nminified version of the files (e.g., event-min.js).  The filter property\ncan be a predefined filter or a custom filter.  The valid predefined \nfilters are:\n<dl>\n<dt>DEBUG</dt>\n<dd>Selects the debug versions of the library (e.g., event-debug.js).\nThis option will automatically include the logger widget</dd>\n<dt>RAW</dt>\n<dd>Selects the non-minified version of the library (e.g., event.js).\n</dl>\nYou can also define a custom filter, which must be an object literal \ncontaining a search expression and a replace string:\n<pre>\nmyFilter: { \n'searchExp': \"-min\\\\.js\", \n'replaceStr': \"-debug.js\"\n}\n</pre>", "guessedname": "filter", "guessedtype": "property"}, "comboBase": {"default": "http://yui.yahooapis.com/combo?", "type": "string", "description": "Base path for the combo service", "guessedname": "comboBase", "guessedtype": "property"}, "insertBefore": {"type": "string|HTMLElement", "description": "Node reference or id where new nodes should be inserted before", "guessedname": "insertBefore", "guessedtype": "property"}, "base": {"default": "http://yui.yahooapis.com/[YUI VERSION]/build/", "type": "string", "description": "The base directory.", "guessedname": "base", "guessedtype": "property"}, "sorted": {"type": "string[]", "description": "All of the derived dependencies in sorted order, which\nwill be populated when either calculate() or insert()\nis called", "guessedname": "sorted", "guessedtype": "property"}, "data": {"description": "Data that is passed to all callbacks", "guessedname": "data", "guessedtype": "property"}, "_useYahooListener": {"private": "", "description": "Use the YAHOO environment listener to detect script load.  This\nis only switched on for Safari 2.x and below.", "guessedname": "_useYahooListener", "guessedtype": "property"}, "required": {"type": "{string: boolean}", "description": "The list of requested modules", "guessedname": "required", "guessedtype": "property"}, "ignore": {"type": "string[]", "description": "A list of modules that should not be loaded, even if\nthey turn up in the dependency tree", "guessedname": "ignore", "guessedtype": "property"}, "dirty": {"default": "true", "type": "boolean", "description": "Flag to indicate the dependency tree needs to be recomputed\nif insert is called again.", "guessedname": "dirty", "guessedtype": "property"}, "timeout": {"type": "int", "description": "Timeout value in milliseconds.  If set, this value will be used by\nthe get utility.  the timeout event will fire if\na timeout occurs.", "guessedname": "timeout", "guessedtype": "property"}, "root": {"default": "[YUI VERSION]/build/", "type": "string", "description": "Root path to prepend to module path for the combo\nservice", "guessedname": "root", "guessedtype": "property"}}, "description": "YUILoader provides dynamic loading for YUI."}, "YAHOO.util.Region": {"name": "YAHOO.util.Region", "constructors": [{"params": [{"type": "Int", "name": "t", "description": " the top extent"}, {"type": "Int", "name": "r", "description": " the right extent"}, {"type": "Int", "name": "b", "description": " the bottom extent"}, {"type": "Int", "name": "l", "description": " the left extent"}], "description": "A region is a representation of an object on a grid.  It is defined\nby the top, right, bottom, left extents, so is rectangular by default.  If \nother shapes are required, this class could be extended to support it."}], "namespace": "YAHOO.util", "module": "dom", "guessedname": "Region", "methods": {"getArea": {"return": {"type": "Int", "description": "the region's area"}, "description": "Returns the area of the region", "guessedname": "getArea", "guessedtype": "function"}, "getRegion": {"return": {"type": "Region", "description": "The region that the element occupies"}, "description": "Returns a region that is occupied by the DOM element", "static": "", "guessedname": "getRegion", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": " The element"}]}, "contains": {"return": {"type": "Boolean", "description": "True if the region is contained with this region, \nelse false"}, "params": [{"type": "Region", "name": "region", "description": " The region to evaluate"}], "description": "Returns true if this region contains the region passed in", "guessedname": "contains", "guessedtype": "function"}, "union": {"return": {"type": "Region", "description": "The union region"}, "params": [{"type": "Region", "name": "region", "description": " The region that to create the union with"}], "description": "Returns the region representing the smallest region that can contain both\nthe passed in region and this region.", "guessedname": "union", "guessedtype": "function"}, "toString": {"return": {"type": "", "description": "string the region properties"}, "description": "toString", "guessedname": "toString", "guessedtype": "function"}, "intersect": {"return": {"type": "Region", "description": "The overlap region, or null if there is no overlap"}, "params": [{"type": "Region", "name": "region", "description": " The region that intersects"}], "description": "Returns the region where the passed in region overlaps with this one", "guessedname": "intersect", "guessedtype": "function"}}, "file": "Region.js", "guessedtype": "function", "shortname": "Region", "properties": {"right": {"type": "int", "description": "The region's right extent", "guessedname": "right", "guessedtype": "property"}, "bottom": {"type": "Int", "description": "The region's bottom extent", "guessedname": "bottom", "guessedtype": "property"}, "top": {"type": "Int", "description": "The region's top extent", "guessedname": "top", "guessedtype": "property"}, "height": {"type": "Int", "description": "The region's total height", "guessedname": "height", "guessedtype": "property"}, "1": {"type": "Int", "description": "The region's top extent as index, for symmetry with set/getXY"}, "0": {"type": "Int", "description": "The region's left extent as index, for symmetry with set/getXY"}, "y": {"type": "Int", "description": "The region's top extent", "guessedname": "y", "guessedtype": "property"}, "x": {"type": "Int", "description": "The region's left extent", "guessedname": "x", "guessedtype": "property"}, "width": {"type": "Int", "description": "The region's total width", "guessedname": "width", "guessedtype": "property"}, "left": {"type": "Int", "description": "The region's left extent", "guessedname": "left", "guessedtype": "property"}}, "description": "A region is a representation of an object on a grid.  It is defined\nby the top, right, bottom, left extents, so is rectangular by default.  If \nother shapes are required, this class could be extended to support it."}, "YAHOO.widget.ContainerEffect": {"name": "YAHOO.widget.ContainerEffect", "constructors": [{"params": [{"type": "YAHOO.widget.Overlay", "name": "overlay", "description": " The Overlay that the animation \nshould be associated with"}, {"type": "Object", "name": "attrIn", "description": " The object literal representing the animation \narguments to be used for the animate-in transition. The arguments for \nthis literal are: attributes(object, see YAHOO.util.Anim for description), \nduration(Number), and method(i.e. Easing.easeIn)."}, {"type": "Object", "name": "attrOut", "description": " The object literal representing the animation \narguments to be used for the animate-out transition. The arguments for  \nthis literal are: attributes(object, see YAHOO.util.Anim for description), \nduration(Number), and method(i.e. Easing.easeIn)."}, {"type": "HTMLElement", "name": "targetElement", "description": " Optional. The target element that  \nshould be animated during the transition. Defaults to overlay.element."}, {"type": "class", "name": "Optional.", "description": " The animation class to instantiate. Defaults to \nYAHOO.util.Anim. Other options include YAHOO.util.Motion."}], "description": "ContainerEffect encapsulates animation transitions that are executed when \nan Overlay is shown or hidden."}], "namespace": "YAHOO.widget", "module": "container", "guessedname": "ContainerEffect", "methods": {"handleTweenAnimateOut": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onTween handler for the out-animation.", "guessedname": "handleTweenAnimateOut", "guessedtype": "function"}, "handleStartAnimateIn": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onStart handler for the in-animation.", "guessedname": "handleStartAnimateIn", "guessedtype": "function"}, "handleStartAnimateOut": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onStart handler for the out-animation.", "guessedname": "handleStartAnimateOut", "guessedtype": "function"}, "animateOut": {"description": "Triggers the out-animation.", "guessedname": "animateOut", "guessedtype": "function"}, "handleCompleteAnimateOut": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onComplete handler for the out-animation.", "guessedname": "handleCompleteAnimateOut", "guessedtype": "function"}, "init": {"description": "Initializes the animation classes and events.", "guessedname": "init", "guessedtype": "function"}, "handleTweenAnimateIn": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onTween handler for the in-animation.", "guessedname": "handleTweenAnimateIn", "guessedtype": "function"}, "SLIDE": {"return": {"type": "YAHOO.widget.ContainerEffect", "description": "The configured ContainerEffect object"}, "description": "A pre-configured ContainerEffect instance that can be used for sliding an \noverlay in and out.", "static": "", "guessedname": "SLIDE", "guessedtype": "function", "params": [{"type": "YAHOO.widget.Overlay", "name": "overlay", "description": " The Overlay object to animate"}, {"type": "Number", "name": "dur", "description": " The duration of the animation"}]}, "toString": {"return": {"type": "String", "description": "The string representation of the ContainerEffect"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "FADE": {"return": {"type": "YAHOO.widget.ContainerEffect", "description": "The configured ContainerEffect object"}, "description": "A pre-configured ContainerEffect instance that can be used for fading \nan overlay in and out.", "static": "", "guessedname": "FADE", "guessedtype": "function", "params": [{"type": "YAHOO.widget.Overlay", "name": "overlay", "description": " The Overlay object to animate"}, {"type": "Number", "name": "dur", "description": " The duration of the animation"}]}, "handleCompleteAnimateIn": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onComplete handler for the in-animation.", "guessedname": "handleCompleteAnimateIn", "guessedtype": "function"}, "animateIn": {"description": "Triggers the in-animation.", "guessedname": "animateIn", "guessedtype": "function"}}, "file": "ContainerEffect.js", "guessedtype": "function", "shortname": "ContainerEffect", "properties": {"attrOut": {"type": "Object", "description": "The animation attributes to use when transitioning out of view", "guessedname": "attrOut", "guessedtype": "property"}, "animClass": {"type": "class", "description": "The animation class to use for animating the overlay", "guessedname": "animClass", "guessedtype": "property"}, "targetElement": {"type": "HTMLElement", "description": "The target element to be animated", "guessedname": "targetElement", "guessedtype": "property"}, "attrIn": {"type": "Object", "description": "The animation attributes to use when transitioning into view", "guessedname": "attrIn", "guessedtype": "property"}, "overlay": {"type": "YAHOO.widget.Overlay", "description": "The overlay to animate", "guessedname": "overlay", "guessedtype": "property"}}, "description": "ContainerEffect encapsulates animation transitions that are executed when \nan Overlay is shown or hidden."}, "YAHOO.util.Motion": {"name": "YAHOO.util.Motion", "constructors": [{"params": [{"type": "String | HTMLElement", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.  \nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.  \nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").  \nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Anim subclass for moving elements along a path defined by the \"points\" \nmember of \"attributes\".  All \"points\" are arrays with x, y coordinates.\n<p>Usage: <code>var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>"}], "namespace": "YAHOO.util", "module": "animation", "guessedname": "Motion", "extends": "YAHOO.util.ColorAnim", "superclass": "YAHOO.util.ColorAnim", "file": "Motion.js", "guessedtype": "function", "shortname": "Motion", "requires": "YAHOO.util.Anim", "description": "Anim subclass for moving elements along a path defined by the \"points\" \nmember of \"attributes\".  All \"points\" are arrays with x, y coordinates.\n<p>Usage: <code>var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>"}, "YAHOO.widget.LineSeries": {"name": "YAHOO.widget.LineSeries", "constructors": [{"description": "LineSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "LineSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "LineSeries", "description": "LineSeries class for the YUI Charts widget."}, "YAHOO.widget.BarChart": {"name": "YAHOO.widget.BarChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "BarChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "BarChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "BarChart", "description": "BarChart class for the YUI Charts widget."}, "YAHOO.widget.TimeAxis": {"name": "YAHOO.widget.TimeAxis", "constructors": [{"description": "A type of axis whose units are measured in time-based values."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "TimeAxis", "file": "TimeAxis.js", "guessedtype": "function", "shortname": "TimeAxis", "properties": {"stackingEnabled": {"type": "Boolean", "description": "Series that are stackable will only stack when this value is set to true.", "guessedname": "stackingEnabled", "guessedtype": "property"}, "calculateByLabelSize": {"type": "Boolean", "description": "Indicates whether to factor in the size of the labels when calculating a major unit.", "guessedname": "calculateByLabelSize", "guessedtype": "property"}, "minimum": {"type": "Date", "description": "The minimum value drawn by the axis. If not set explicitly, the axis minimum\nwill be calculated automatically.", "guessedname": "minimum", "guessedtype": "property"}, "maximum": {"type": "Number", "description": "The maximum value drawn by the axis. If not set explicitly, the axis maximum\nwill be calculated automatically.", "guessedname": "maximum", "guessedtype": "property"}, "majorTimeUnit": {"type": "String", "description": "The time unit used by the majorUnit.", "guessedname": "majorTimeUnit", "guessedtype": "property"}, "majorUnit": {"type": "Number", "description": "The spacing between major intervals on this axis.", "guessedname": "majorUnit", "guessedtype": "property"}, "snapToUnits": {"type": "Boolean", "description": "If true, the labels, ticks, gridlines, and other objects will snap to\nthe nearest major or minor unit. If false, their position will be based\non the minimum value.", "guessedname": "snapToUnits", "guessedtype": "property"}}, "description": "A type of axis whose units are measured in time-based values."}, "YAHOO.util.CustomEvent": {"name": "YAHOO.util.CustomEvent", "constructors": [{"params": [{"type": "String", "name": "type", "description": " The type of event, which is passed to the callback\nwhen the event fires"}, {"type": "Object", "name": "context", "description": " The context the event will fire from.  \"this\" will\nrefer to this object in the callback.  Default value: \nthe window object.  The listener can override this."}, {"type": "boolean", "name": "silent", "description": " pass true to prevent the event from writing to\nthe debugsystem"}, {"type": "int", "name": "signature", "description": " the signature that the custom event subscriber\nwill receive. YAHOO.util.CustomEvent.LIST or \nYAHOO.util.CustomEvent.FLAT.  The default is\nYAHOO.util.CustomEvent.LIST."}, {"type": "boolean", "name": "fireOnce", "description": "  If configured to fire once, the custom event \nwill only notify subscribers a single time regardless of how many times \nthe event is fired.  In addition, new subscribers will be notified \nimmediately if the event has already been fired."}], "description": "The CustomEvent class lets you define events for your application\nthat can be subscribed to by one or more independent component."}], "namespace": "YAHOO.util", "module": "event", "events": {"subscribeEvent": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Function", "name": "fn", "description": "  The function to execute"}, {"type": "", "name": "obj", "description": " <Object> An object to be passed along when the event fires. \nDefaults to the custom event."}, {"type": "", "name": "override", "description": " <boolean|Object> If true, the obj passed in becomes the \nexecution context of the listener. If an object, that object becomes \nthe execution context. Defaults to the custom event."}], "description": "Custom events provide a custom event that fires whenever there is\na new subscriber to the event.  This provides an opportunity to\nhandle the case where there is a non-repeating event that has\nalready fired has a new subscriber.", "guessedname": "subscribeEvent", "guessedtype": "property"}}, "guessedname": "CustomEvent", "methods": {"_delete": {"private": "", "guessedname": "_delete", "guessedtype": "function"}, "fire": {"return": {"type": "boolean", "description": "false if one of the subscribers returned false, \ntrue otherwise"}, "params": [{"type": "Object*", "name": "arguments", "description": " an arbitrary set of parameters to pass to \nthe handler."}], "description": "Notifies the subscribers.  The callback functions will be executed\nfrom the context specified when the event was created, and with the \nfollowing parameters:\n<ul>\n<li>The type of event</li>\n<li>All of the arguments fire() was executed with as an array</li>\n<li>The custom object (if any) that was passed into the subscribe() \nmethod</li>\n</ul>", "guessedname": "fire", "guessedtype": "function"}, "unsubscribeAll": {"return": {"type": "int", "description": "The number of listeners unsubscribed"}, "description": "Removes all listeners", "guessedname": "unsubscribeAll", "guessedtype": "function"}, "subscribe": {"params": [{"type": "Function", "name": "fn", "description": "        The function to execute"}, {"type": "Object", "name": "obj", "description": "       An object to be passed along when the event fires.\noverrideContext <boolean|Object> If true, the obj passed in becomes the execution \ncontext of the listener. If an object, that object becomes the execution context."}], "description": "Subscribes the caller to this event", "guessedname": "subscribe", "guessedtype": "function"}, "toString": {"guessedname": "toString", "guessedtype": "function"}, "unsubscribe": {"return": {"type": "boolean", "description": "True if the subscriber was found and detached."}, "params": [{"type": "Function", "name": "fn", "description": "  The subscribed function to remove, if not supplied\nall will be removed"}, {"type": "Object", "name": "obj", "description": "  The custom object passed to subscribe.  This is\noptional, but if supplied will be used to\ndisambiguate multiple listeners that are the same\n(e.g., you subscribe many object using a function\nthat lives on the prototype)"}], "description": "Unsubscribes subscribers.", "guessedname": "unsubscribe", "guessedtype": "function"}}, "file": "CustomEvent.js", "guessedtype": "function", "shortname": "CustomEvent", "properties": {"fired": {"default": "false", "type": "boolean", "description": "Indicates whether or not this event has ever been fired.", "guessedname": "fired", "guessedtype": "property"}, "fireOnce": {"default": "false", "type": "boolean", "description": "If configured to fire once, the custom event will only notify subscribers\na single time regardless of how many times the event is fired.  In addition,\nnew subscribers will be notified immediately if the event has already been\nfired.", "guessedname": "fireOnce", "guessedtype": "property"}, "YAHOO.util.CustomEvent.FLAT": {"type": "int", "static": "", "description": "Subscriber listener sigature constant.  The FLAT type returns two\nparameters: the first argument passed to fire and the optional \ncustom object", "guessedname": "FLAT", "guessedtype": "property"}, "firedWith": {"type": "Array", "description": "For fireOnce events the arguments the event was fired with are stored\nso that new subscribers get the proper payload.", "guessedname": "firedWith", "guessedtype": "property"}, "subscribers": {"type": "Subscriber[]", "description": "The subscribers to this event", "guessedname": "subscribers", "guessedtype": "property"}, "signature": {"type": "int", "description": "Custom events support two styles of arguments provided to the event\nsubscribers.  \n<ul>\n<li>YAHOO.util.CustomEvent.LIST: \n<ul>\n<li>param1: event name</li>\n<li>param2: array of arguments sent to fire</li>\n<li>param3: <optional> a custom object supplied by the subscriber</li>\n</ul>\n</li>\n<li>YAHOO.util.CustomEvent.FLAT\n<ul>\n<li>param1: the first argument passed to fire.  If you need to\npass multiple parameters, use and array or object literal</li>\n<li>param2: <optional> a custom object supplied by the subscriber</li>\n</ul>\n</li>\n</ul>", "guessedname": "signature", "guessedtype": "property"}, "YAHOO.util.CustomEvent.LIST": {"type": "int", "static": "", "description": "Subscriber listener sigature constant.  The LIST type returns three\nparameters: the event type, the array of args passed to fire, and\nthe optional custom object", "guessedname": "LIST", "guessedtype": "property"}, "scope": {"type": "object", "description": "The context the event will fire from by default. Defaults to the window obj.", "guessedname": "scope", "guessedtype": "property"}, "lastError": {"type": "Error", "description": "In order to make it possible to execute the rest of the subscriber\nstack when one thows an exception, the subscribers exceptions are\ncaught.  The most recent exception is stored in this property", "guessedname": "lastError", "guessedtype": "property"}, "type": {"type": "string", "description": "The type of event, returned to subscribers when the event fires", "guessedname": "type", "guessedtype": "property"}, "silent": {"type": "boolean", "description": "By default all custom events are logged in the debug build. Set silent to true \nto disable debug output for this event.", "guessedname": "silent", "guessedtype": "property"}}, "description": "The CustomEvent class lets you define events for your application\nthat can be subscribed to by one or more independent component."}, "YAHOO.widget.MenuBarItem": {"name": "YAHOO.widget.MenuBarItem", "constructors": [{"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying the \n<code><li></code> element of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><option></code> element of the menu bar item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu bar item. See configuration class documentation \nfor more details."}], "description": "Creates an item for a menu bar."}], "namespace": "YAHOO.widget", "module": "menu", "guessedname": "MenuBarItem", "methods": {"init": {"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying the \n<code><li></code> element of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><option></code> element of the menu bar item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu bar item. See configuration class documentation \nfor more details."}], "description": "The MenuBarItem class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references for \npre-existing markup, and creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu bar item.", "guessedname": "toString", "guessedtype": "function"}}, "extends": "YAHOO.widget.MenuItem", "superclass": "YAHOO.widget.MenuItem", "file": "menubaritem.js", "guessedtype": "function", "shortname": "MenuBarItem", "properties": {"CSS_LABEL_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \nmenu bar item's <code><a></code> element.", "default": "\"yuimenubaritemlabel\"", "guessedname": "CSS_LABEL_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \n<code><li></code> element of the menu bar item.", "default": "\"yuimenubaritem\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Creates an item for a menu bar."}, "YAHOO.widget.Module": {"name": "YAHOO.widget.Module", "configs": {"appendtodocumentbody": {"default": "false", "type": "Boolean", "description": "Specifies if the module should be rendered as the first child \nof document.body or appended as the last child when render is called\nwith document.body as the \"appendToNode\".\n<p>\nAppending to the body while the DOM is still being constructed can \nlead to Operation Aborted errors in IE hence this flag is set to \nfalse by default.\n</p>"}, "visible": {"default": "true", "type": "Boolean", "description": "Specifies whether the Module is visible on the page."}, "monitorresize": {"default": "true", "type": "Boolean", "description": "Specifies whether to create a special proxy iframe to monitor \nfor user font resizing in the document"}, "effect": {"default": "null", "type": "Object", "description": "<p>\nObject or array of objects representing the ContainerEffect \nclasses that are active for animating the container.\n</p>\n<p>\n<strong>NOTE:</strong> Although this configuration \nproperty is introduced at the Module level, an out of the box\nimplementation is not shipped for the Module class so setting\nthe proroperty on the Module class has no effect. The Overlay \nclass is the first class to provide out of the box ContainerEffect \nsupport.\n</p>"}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Module <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Module"}, {"type": "Object", "name": "userConfig", "description": " The configuration Object literal containing \nthe configuration that should be set for this module. See configuration \ndocumentation for more details."}], "description": "Module is a JavaScript representation of the Standard Module Format. \nStandard Module Format is a simple standard for markup containers where \nchild nodes representing the header, body, and footer of the content are \ndenoted using the CSS classes \"hd\", \"bd\", and \"ft\" respectively. \nModule is the base class for all other classes in the YUI \nContainer package."}], "namespace": "YAHOO.widget", "module": "container", "events": {"initEvent": {"params": [{"type": "class", "name": "classRef", "description": " class reference of the initializing \nclass, such as this.beforeInitEvent.fire(Module)"}], "description": "CustomEvent fired after class initalization.", "guessedname": "initEvent", "guessedtype": "property"}, "YAHOO.widget.Module.textResizeEvent": {"description": "Singleton CustomEvent fired when the font size is changed in the browser.\nOpera's \"zoom\" functionality currently does not support text \nsize detection.", "guessedname": "textResizeEvent", "guessedtype": "property"}, "hideEvent": {"description": "CustomEvent fired after the Module is hidden", "guessedname": "hideEvent", "guessedtype": "property"}, "beforeHideEvent": {"description": "CustomEvent fired before the Module is hidden", "guessedname": "beforeHideEvent", "guessedtype": "property"}, "changeBodyEvent": {"params": [{"type": "String/HTMLElement", "name": "content", "description": " String/element representing \nthe new body content"}], "description": "CustomEvent fired when the body content of the Module is modified", "guessedname": "changeBodyEvent", "guessedtype": "property"}, "beforeRenderEvent": {"description": "CustomEvent fired before the Module is rendered", "guessedname": "beforeRenderEvent", "guessedtype": "property"}, "changeContentEvent": {"description": "CustomEvent fired when the content of the Module is modified", "guessedname": "changeContentEvent", "guessedtype": "property"}, "beforeShowEvent": {"description": "CustomEvent fired before the Module is shown", "guessedname": "beforeShowEvent", "guessedtype": "property"}, "changeFooterEvent": {"params": [{"type": "String/HTMLElement", "name": "content", "description": " String/element representing \nthe new footer content"}], "description": "CustomEvent fired when the footer content of the Module \nis modified", "guessedname": "changeFooterEvent", "guessedtype": "property"}, "renderEvent": {"description": "CustomEvent fired after the Module is rendered", "guessedname": "renderEvent", "guessedtype": "property"}, "showEvent": {"description": "CustomEvent fired after the Module is shown", "guessedname": "showEvent", "guessedtype": "property"}, "beforeInitEvent": {"params": [{"type": "class", "name": "classRef", "description": " class reference of the initializing \nclass, such as this.beforeInitEvent.fire(Module)"}], "description": "CustomEvent fired prior to class initalization.", "guessedname": "beforeInitEvent", "guessedtype": "property"}, "appendEvent": {"description": "CustomEvent fired when the Module is appended to the DOM", "guessedname": "appendEvent", "guessedtype": "property"}, "changeHeaderEvent": {"params": [{"type": "String/HTMLElement", "name": "content", "description": " String/element representing \nthe new header content"}], "description": "CustomEvent fired when the header content of the Module \nis modified", "guessedname": "changeHeaderEvent", "guessedtype": "property"}, "destroyEvent": {"description": "CustomEvent fired when the Module is destroyed", "guessedname": "destroyEvent", "guessedtype": "property"}}, "guessedname": "Module", "methods": {"render": {"return": {"type": "Boolean", "description": "Success or failure of the render"}, "params": [{"type": "String", "name": "appendToNode", "description": " The element id to which the Module \nshould be appended to prior to rendering <em>OR</em>"}, {"type": "HTMLElement", "name": "appendToNode", "description": " The element to which the Module \nshould be appended to prior to rendering"}, {"type": "HTMLElement", "name": "moduleElement", "description": " OPTIONAL. The element that \nrepresents the actual Standard Module container."}], "description": "Renders the Module by inserting the elements that are not already \nin the main Module into their correct places. Optionally appends \nthe Module to the specified node prior to the render's execution. \n<p>\nFor Modules without existing markup, the appendToNode argument \nis REQUIRED. If this argument is ommitted and the current element is \nnot present in the document, the function will return false, \nindicating that the render was a failure.\n</p>\n<p>\nNOTE: As of 2.3.1, if the appendToNode is the document's body element\nthen the module is rendered as the first child of the body element, \nand not appended to it, to avoid Operation Aborted errors in IE when \nrendering the module before window's load event is fired. You can \nuse the appendtodocumentbody configuration property to change this \nto append to document.body if required.\n</p>", "guessedname": "render", "guessedtype": "function"}, "show": {"description": "Shows the Module element by setting the visible configuration \nproperty to true. Also fires two events: beforeShowEvent prior to \nthe visibility change, and showEvent after.", "guessedname": "show", "guessedtype": "function"}, "_renderBody": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element."}], "description": "Renders the currently set body into it's proper position under the \nmodule element. If the module element is not provided, \"this.element\" \nis used.", "guessedname": "_renderBody", "guessedtype": "function"}, "_renderHeader": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element"}], "description": "Renders the currently set header into it's proper position under the \nmodule element. If the module element is not provided, \"this.element\" \nis used.", "guessedname": "_renderHeader", "guessedtype": "function"}, "setBody": {"params": [{"type": "String", "name": "bodyContent", "description": " The HTML used to set the body. \nAs a convenience, non HTMLElement objects can also be passed into \nthe method, and will be treated as strings, with the body innerHTML\nset to their default toString implementations.\n<em>OR</em>"}, {"type": "HTMLElement", "name": "bodyContent", "description": " The HTMLElement to add as the first and only\nchild of the body element.\n<em>OR</em>"}, {"type": "DocumentFragment", "name": "bodyContent", "description": " The document fragment \ncontaining elements which are to be added to the body"}], "description": "Sets the Module's body content to the HTML specified. \nIf no body is present, one will be automatically created. \nAn empty string can be passed to the method to clear the contents of the body.", "guessedname": "setBody", "guessedtype": "function"}, "hide": {"description": "Hides the Module element by setting the visible configuration \nproperty to false. Also fires two events: beforeHideEvent prior to \nthe visibility change, and hideEvent after.", "guessedname": "hide", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Module which are fired \nautomatically at appropriate times by the Module class.", "guessedname": "initEvents", "guessedtype": "function"}, "initResizeMonitor": {"description": "Initialize an empty IFRAME that is placed out of the visible area \nthat can be used to detect text resize.", "guessedname": "initResizeMonitor", "guessedtype": "function"}, "_supportsCWResize": {"private": "", "description": "Text resize monitor helper method.\nDetermines if the browser supports resize events on iframe content windows.", "guessedname": "_supportsCWResize", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Module <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Module"}, {"type": "Object", "name": "userConfig", "description": " The configuration Object literal \ncontaining the configuration that should be set for this module. \nSee configuration documentation for more details."}], "description": "The Module class's initialization method, which is executed for\nModule and all of its subclasses. This method is automatically \ncalled by the constructor, and  sets up all DOM references for \npre-existing markup, and creates required markup if it is not \nalready present.\n<p>\nIf the element passed in does not have an id, one will be generated\nfor it.\n</p>", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Module"}, "description": "Returns a String representation of the Object.", "guessedname": "toString", "guessedtype": "function"}, "destroy": {"description": "Removes the Module element from the DOM and sets all child elements \nto null.", "guessedname": "destroy", "guessedtype": "function"}, "_renderFooter": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element"}], "description": "Renders the currently set footer into it's proper position under the \nmodule element. If the module element is not provided, \"this.element\" \nis used.", "guessedname": "_renderFooter", "guessedtype": "function"}, "appendToHeader": {"params": [{"type": "HTMLElement | DocumentFragment", "name": "element", "description": " The element to \nappend to the header. In the case of a document fragment, the\nchildren of the fragment will be appended to the header."}], "description": "Appends the passed element to the header. If no header is present, \none will be automatically created.", "guessedname": "appendToHeader", "guessedtype": "function"}, "onDomResize": {"params": [{"type": "DOMEvent", "name": "e", "description": " The DOM resize event"}, {"type": "Object", "name": "obj", "description": " The scope object passed to the handler"}], "description": "Event handler fired when the resize monitor element is resized.", "guessedname": "onDomResize", "guessedtype": "function"}, "setFooter": {"params": [{"type": "String", "name": "footerContent", "description": " The HTML used to set the footer \nAs a convenience, non HTMLElement objects can also be passed into \nthe method, and will be treated as strings, with the footer innerHTML\nset to their default toString implementations.\n<em>OR</em>"}, {"type": "HTMLElement", "name": "footerContent", "description": " The HTMLElement to append to \nthe footer\n<em>OR</em>"}, {"type": "DocumentFragment", "name": "footerContent", "description": " The document fragment containing \nelements which are to be added to the footer"}], "description": "Sets the Module's footer content to the HTML specified, or appends \nthe passed element to the footer. If no footer is present, one will \nbe automatically created. An empty string can be passed to the method\nto clear the contents of the footer.", "guessedname": "setFooter", "guessedtype": "function"}, "YAHOO.widget.Module.forceDocumentRedraw": {"static": "", "description": "Helper utility method, which forces a document level \nredraw for Opera, which can help remove repaint\nirregularities after applying DOM changes.", "guessedname": "forceDocumentRedraw", "guessedtype": "function"}, "configMonitorResize": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "Default event handler for the \"monitorresize\" configuration property", "guessedname": "configMonitorResize", "guessedtype": "function"}, "appendToFooter": {"params": [{"type": "HTMLElement | DocumentFragment", "name": "element", "description": " The element to \nappend to the footer. In the case of a document fragment, the\nchildren of the fragment will be appended to the footer"}], "description": "Appends the passed element to the footer. If no footer is present, \none will be automatically created.", "guessedname": "appendToFooter", "guessedtype": "function"}, "configVisible": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "Default event handler for changing the visibility property of a \nModule. By default, this is achieved by switching the \"display\" style \nbetween \"block\" and \"none\".\nThis method is responsible for firing showEvent and hideEvent.", "guessedname": "configVisible", "guessedtype": "function"}, "_addToParent": {"protected": "", "params": [{"type": "parentNode", "name": "The", "description": " HTML element to which the element will be added"}, {"type": "element", "name": "The", "description": " HTML element to be added to parentNode's children"}], "description": "This method is a protected helper, used when constructing the DOM structure for the module \nto account for situations which may cause Operation Aborted errors in IE. It should not \nbe used for general DOM construction.\n<p>\nIf the parentNode is not document.body, the element is appended as the last element.\n</p>\n<p>\nIf the parentNode is document.body the element is added as the first child to help\nprevent Operation Aborted errors in IE.\n</p>", "guessedname": "_addToParent", "guessedtype": "function"}, "appendToBody": {"params": [{"type": "HTMLElement | DocumentFragment", "name": "element", "description": " The element to \nappend to the body. In the case of a document fragment, the\nchildren of the fragment will be appended to the body."}], "description": "Appends the passed element to the body. If no body is present, one \nwill be automatically created.", "guessedname": "appendToBody", "guessedtype": "function"}, "_initResizeMonitor": {"protected": "", "description": "Create and initialize the text resize monitoring iframe.", "guessedname": "_initResizeMonitor", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the custom events for Module which are fired \nautomatically at appropriate times by the Module class.", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "setHeader": {"params": [{"type": "String", "name": "headerContent", "description": " The string used to set the header.\nAs a convenience, non HTMLElement objects can also be passed into \nthe method, and will be treated as strings, with the header innerHTML\nset to their default toString implementations.\n<em>OR</em>"}, {"type": "HTMLElement", "name": "headerContent", "description": " The HTMLElement to append to \n<em>OR</em>"}, {"type": "DocumentFragment", "name": "headerContent", "description": " The document fragment \ncontaining elements which are to be added to the header"}], "description": "Sets the Module's header content to the string specified, or appends \nthe passed element to the header. If no header is present, one will \nbe automatically created. An empty string can be passed to the method\nto clear the contents of the header.", "guessedname": "setHeader", "guessedtype": "function"}}, "file": "Module.js", "guessedtype": "function", "shortname": "Module", "properties": {"body": {"type": "HTMLElement", "description": "The body element, denoted with CSS class \"bd\"", "guessedname": "body", "guessedtype": "property"}, "isSecure": {"type": "Boolean", "description": "Boolean representing whether or not the current browsing context is \nsecure (https)", "guessedname": "isSecure", "guessedtype": "function"}, "YAHOO.widget.Module.CSS_MODULE": {"description": "Constant for the default CSS class name that represents a Module", "static": "", "guessedname": "CSS_MODULE", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Module.CSS_HEADER": {"description": "Constant representing the module header", "static": "", "guessedname": "CSS_HEADER", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Module.CSS_FOOTER": {"description": "Constant representing the module footer", "static": "", "guessedname": "CSS_FOOTER", "guessedtype": "property", "type": "String", "final": ""}, "contructor": {"type": "Function", "description": "The class's constructor function", "guessedname": "constructor", "guessedtype": "property"}, "platform": {"type": "String", "description": "String representing the current user-agent platform", "guessedname": "platform", "guessedtype": "function"}, "element": {"type": "HTMLElement", "description": "The main module element that contains the header, body, and footer", "guessedname": "element", "guessedtype": "property"}, "YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL": {"description": "Constant representing the url for the \"src\" attribute of the iframe \nused to monitor changes to the browser's base font size", "static": "", "guessedname": "RESIZE_MONITOR_SECURE_URL", "guessedtype": "property", "type": "String", "final": ""}, "header": {"type": "HTMLElement", "description": "The header element, denoted with CSS class \"hd\"", "guessedname": "header", "guessedtype": "property"}, "YAHOO.widget.Module.CSS_BODY": {"description": "Constant representing the module body", "static": "", "guessedname": "CSS_BODY", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Module.IMG_ROOT": {"description": "Constant representing the prefix path to use for non-secure images", "static": "", "guessedname": "IMG_ROOT", "guessedtype": "property", "type": "String", "final": ""}, "EVENT_TYPES": {"description": "Constant representing the name of the Module's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "imageRoot": {"deprecated": "It is recommend that any images for a Module be applied\nvia CSS using the \"background-image\" property.", "type": "String", "description": "A string representing the root path for all images created by\na Module instance.", "guessedname": "imageRoot", "guessedtype": "property"}, "cfg": {"type": "YAHOO.util.Config", "description": "The Module's Config object used for monitoring \nconfiguration properties.", "guessedname": "cfg", "guessedtype": "property"}, "id": {"type": "String", "description": "The id of the element", "guessedname": "id", "guessedtype": "property"}, "footer": {"type": "HTMLElement", "description": "The footer element, denoted with CSS class \"ft\"", "guessedname": "footer", "guessedtype": "property"}, "YAHOO.widget.Module.RESIZE_MONITOR_BUFFER": {"static": "", "type": "Number", "description": "Constant representing the buffer amount (in pixels) to use when positioning\nthe text resize monitor offscreen. The resize monitor is positioned\noffscreen by an amount eqaul to its offsetHeight + the buffer value."}, "YAHOO.widget.Module.IMG_ROOT_SSL": {"description": "Constant representing the prefix path to use for securely served images", "static": "", "guessedname": "IMG_ROOT_SSL", "guessedtype": "property", "type": "String", "final": ""}, "DEFAULT_CONFIG": {"description": "Constant representing the Module's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "browser": {"deprecated": "Use YAHOO.env.ua", "type": "String", "description": "String representing the user-agent of the browser", "guessedname": "browser", "guessedtype": "function"}}, "description": "Module is a JavaScript representation of the Standard Module Format. \nStandard Module Format is a simple standard for markup containers where \nchild nodes representing the header, body, and footer of the content are \ndenoted using the CSS classes \"hd\", \"bd\", and \"ft\" respectively. \nModule is the base class for all other classes in the YUI \nContainer package."}, "YAHOO.widget.Paginator.ui.FirstPageLink": {"properties": {"current": {"guessedname": "current", "type": "HTMLElement", "description": "The currently placed HTMLElement node", "private": "", "guessedtype": "property"}, "span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node (inactive link)", "private": "", "guessedtype": "property"}, "link": {"guessedname": "link", "type": "HTMLElement", "description": "Link node", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.FirstPageLink", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the link to jump to the first page."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforeFirstPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFirstPageLinkClassChange", "description": "Fires before the value for the configuration attribute 'firstPageLinkClass' changes. Return false to cancel the attribute change."}, "firstPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "firstPageLinkLabelChange", "description": "Fires when the value for the configuration attribute 'firstPageLinkLabel' changes."}, "beforeFirstPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFirstPageLinkLabelChange", "description": "Fires before the value for the configuration attribute 'firstPageLinkLabel' changes. Return false to cancel the attribute change."}, "firstPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "firstPageLinkClassChange", "description": "Fires when the value for the configuration attribute 'firstPageLinkClass' changes."}}, "guessedname": "FirstPageLink", "methods": {"onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the link's onclick event.  Pass new value to setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the link/span node and clears event listeners\nremoval.", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Swap the link and span nodes if appropriate.", "guessedname": "update", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}}, "file": "FirstPageLink.js", "guessedtype": "function", "shortname": "FirstPageLink", "configs": {"firstPageLinkLabel": {"default": "'<< first'", "description": "Used as innerHTML for the first page link/span."}, "firstPageLinkClass": {"default": "'yui-pg-first'", "description": "CSS class assigned to the link/span"}}, "description": "ui Component to generate the link to jump to the first page."}, "YAHOO.tool.TestCase.Wait": {"name": "YAHOO.tool.TestCase.Wait", "constructors": [{"params": [{"type": "Function", "name": "segment", "description": " A function to run when the wait is over."}, {"type": "int", "name": "delay", "description": " The number of milliseconds to wait before running the code."}], "description": "Represents a stoppage in test execution to wait for an amount of time before\ncontinuing."}], "namespace": "YAHOO.tool.TestCase", "module": "yuitest", "guessedname": "Wait", "methods": {"XML": {"return": {"type": "String", "description": "An XML-formatted string of results."}, "description": "Returns test results formatted as an XML string.", "static": "", "guessedname": "XML", "guessedtype": "function", "params": [{"type": "Object", "name": "result", "description": " The results object created by TestRunner."}]}, "JSON": {"return": {"type": "String", "description": "An XML-formatted string of results."}, "description": "Returns test results formatted as a JSON string. Requires JSON utility.", "static": "", "guessedname": "JSON", "guessedtype": "function", "params": [{"type": "Object", "name": "result", "description": " The results object created by TestRunner."}]}}, "file": "TestCase.js", "guessedtype": "function", "shortname": "Wait", "properties": {"delay": {"type": "int", "description": "The delay before running the segment of code."}, "segment": {"type": "Function", "description": "The segment of code to run when the wait is over."}}, "description": "Represents a stoppage in test execution to wait for an amount of time before\ncontinuing."}, "YAHOO.lang": {"description": "Provides the language utilites and extensions used by the library", "namespace": "", "module": "yahoo", "guessedname": "lang", "methods": {"isArray": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines wheather or not the provided object is an array.", "guessedname": "isArray", "guessedtype": "function"}, "trim": {"return": {"type": "string", "description": "the trimmed string"}, "description": "Returns a string without any leading or trailing whitespace.  If \nthe input is not a string, the input will be returned untouched.", "since": "2.3.0", "params": [{"type": "string", "name": "s", "description": "  the string to trim"}], "guessedname": "trim", "guessedtype": "function"}, "isString": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is a string", "guessedname": "isString", "guessedtype": "function"}, "hasOwnProperty": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}, {"type": "string", "name": "prop", "description": "  the name of the property to test"}], "description": "Determines whether or not the property was added\nto the object instance.  Returns false if the property is not present\nin the object, or was inherited from the prototype.\nThis abstraction is provided to enable hasOwnProperty for Safari 1.3.x.\nThere is a discrepancy between YAHOO.lang.hasOwnProperty and\nObject.prototype.hasOwnProperty when the property is a primitive added to\nboth the instance AND prototype with the same value:\n<pre>\nvar A = function() {};\nA.prototype.foo = 'foo';\nvar a = new A();\na.foo = 'foo';\nalert(a.hasOwnProperty('foo')); // true\nalert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback\n</pre>", "guessedname": "hasOwnProperty", "guessedtype": "property"}, "isBoolean": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is a boolean", "guessedname": "isBoolean", "guessedtype": "function"}, "extend": {"static": "", "params": [{"type": "Function", "name": "subc", "description": "   the object to modify"}, {"type": "Function", "name": "superc", "description": " the object to inherit"}, {"type": "Object", "name": "overrides", "description": "  additional properties/methods to add to the\nsubclass prototype.  These will override the\nmatching items obtained from the superclass \nif present."}], "description": "Utility to set up the prototype, constructor and superclass properties to\nsupport an inheritance strategy that can chain constructors and methods.\nStatic members will not be inherited.", "guessedname": "extend", "guessedtype": "function"}, "merge": {"return": {"type": "", "description": "the new merged object"}, "description": "Returns a new object containing all of the properties of\nall the supplied objects.  The properties from later objects\nwill overwrite those in earlier objects.", "since": "2.3.0", "params": [{"type": "Object*", "name": "arguments", "description": "  the objects to merge"}], "guessedname": "merge", "guessedtype": "function"}, "later": {"return": {"type": "", "description": "a timer object. Call the cancel() method on this object to \nstop the timer."}, "description": "Executes the supplied function in the context of the supplied \nobject 'when' milliseconds later.  Executes the function a \nsingle time unless periodic is set to true.", "since": "2.4.0", "params": [{"type": "int", "name": "when", "description": "  the number of milliseconds to wait until the fn \nis executed"}, {"type": "", "name": "o", "description": " the context object"}, {"type": "Function|String", "name": "fn", "description": "  the function to execute or the name of \nthe method in the 'o' object to execute"}, {"type": "", "name": "data", "description": " [Array] data that is provided to the function.  This accepts\neither a single item or an array.  If an array is provided, the\nfunction is executed with one parameter for each array item.  If\nyou need to pass a single array parameter, it needs to be wrapped in\nan array [myarray]"}, {"type": "boolean", "name": "periodic", "description": "  if true, executes continuously at supplied \ninterval until canceled"}], "guessedname": "later", "guessedtype": "function"}, "substitute": {"return": {"type": "String", "description": "the substituted string"}, "description": "Does variable substitution on a string. It scans through the string \nlooking for expressions enclosed in { } braces. If an expression \nis found, it is used a key on the object.  If there is a space in\nthe key, the first word is used for the key and the rest is provided\nto an optional function to be used to programatically determine the\nvalue (the extra information might be used for this decision). If \nthe value for the key in the object, or what is returned from the\nfunction has a string value, number value, or object value, it is \nsubstituted for the bracket expression and it repeats.  If this\nvalue is an object, it uses the Object's toString() if this has\nbeen overridden, otherwise it does a shallow dump of the key/value\npairs.", "since": "2.3.0", "params": [{"type": "String", "name": "s", "description": "  The string that will be modified."}, {"type": "Object", "name": "o", "description": "  An object containing the replacement values"}, {"type": "Function", "name": "f", "description": "  An optional function that can be used to\nprocess each match.  It receives the key,\nvalue, and any extra metadata included with\nthe key inside of the braces."}], "guessedname": "substitute", "guessedtype": "function"}, "isNull": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is null", "guessedname": "isNull", "guessedtype": "function"}, "isValue": {"return": {"type": "boolean", "description": "true if it is not null/undefined/NaN || false"}, "description": "A convenience method for detecting a legitimate non-null value.\nReturns false for null/undefined/NaN, true for other values, \nincluding 0/false/''", "since": "2.3.0", "params": [{"type": "any", "name": "o", "description": "  the item to test"}], "guessedname": "isValue", "guessedtype": "function"}, "augmentObject": {"description": "Applies all properties in the supplier to the receiver if the\nreceiver does not have these properties yet.  Optionally, one or \nmore methods/properties can be specified (as additional \nparameters).  This option will overwrite the property if receiver \nhas it already.  If true is passed as the third parameter, all \nproperties will be applied and _will_ overwrite properties in \nthe receiver.", "since": "2.3.0", "static": "", "guessedname": "augmentObject", "guessedtype": "function", "params": [{"type": "Function", "name": "r", "description": "  the object to receive the augmentation"}, {"type": "Function", "name": "s", "description": "  the object that supplies the properties to augment"}, {"type": "String*|boolean", "name": "arguments", "description": " zero or more properties methods \nto augment the receiver with.  If none specified, everything\nin the supplier will be used unless it would\noverwrite an existing property in the receiver. If true\nis specified as the third parameter, all properties will\nbe applied and will overwrite an existing property in\nthe receiver"}]}, "augment": {"description": "Same as YAHOO.lang.augmentObject, except it only applies prototype \nproperties.  This is an alias for augmentProto.", "see": "YAHOO.lang.augmentObject", "static": "", "guessedname": "augment", "guessedtype": "property", "params": [{"type": "Function", "name": "r", "description": "  the object to receive the augmentation"}, {"type": "Function", "name": "s", "description": "  the object that supplies the properties to augment"}, {"type": "String*|boolean", "name": "arguments", "description": " zero or more properties methods to \naugment the receiver with.  If none specified, everything\nin the supplier will be used unless it would\noverwrite an existing property in the receiver.  if true\nis specified as the third parameter, all properties will\nbe applied and will overwrite an existing property in\nthe receiver"}]}, "augmentProto": {"description": "Same as YAHOO.lang.augmentObject, except it only applies prototype properties", "see": "YAHOO.lang.augmentObject", "static": "", "guessedname": "augmentProto", "guessedtype": "function", "params": [{"type": "Function", "name": "r", "description": "  the object to receive the augmentation"}, {"type": "Function", "name": "s", "description": "  the object that supplies the properties to augment"}, {"type": "String*|boolean", "name": "arguments", "description": " zero or more properties methods \nto augment the receiver with.  If none specified, everything \nin the supplier will be used unless it would overwrite an existing \nproperty in the receiver.  if true is specified as the third \nparameter, all properties will be applied and will overwrite an \nexisting property in the receiver"}]}, "isFunction": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is a function.\nNote: Internet Explorer thinks certain functions are objects:\nvar obj = document.createElement(\"object\");\nYAHOO.lang.isFunction(obj.getAttribute) // reports false in IE\nvar input = document.createElement(\"input\"); // append to body\nYAHOO.lang.isFunction(input.focus) // reports false in IE\nYou will have to implement additional tests if these functions\nmatter to you.", "guessedname": "isFunction", "guessedtype": "function"}, "isNumber": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is a legal number", "guessedname": "isNumber", "guessedtype": "function"}, "isObject": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is of type object\nor function", "guessedname": "isObject", "guessedtype": "function"}, "dump": {"return": {"type": "String", "description": "the dump result"}, "description": "Returns a simple string representation of the object or array.\nOther types of objects will be returned unprocessed.  Arrays\nare expected to be indexed.  Use object notation for\nassociative arrays.", "since": "2.3.0", "params": [{"type": "Object", "name": "o", "description": "  The object to dump"}, {"type": "int", "name": "d", "description": "  How deep to recurse child objects, default 3"}], "guessedname": "dump", "guessedtype": "function"}, "isUndefined": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is undefined", "guessedname": "isUndefined", "guessedtype": "function"}}, "file": "Lang.js", "guessedtype": "property", "shortname": "YAHOO.lang", "properties": {"_IEEnumFix": {"description": "IE will not enumerate native functions in a derived object even if the\nfunction was overridden.  This is a workaround for specific functions \nwe care about on the Object prototype.", "param": "{Function} r  the object to receive the augmentation", "static": "", "private": "", "guessedname": "_IEEnumFix", "guessedtype": "function"}}, "name": "YAHOO.lang"}, "YAHOO.widget.DataTable": {"name": "YAHOO.widget.DataTable", "configs": {"paginator": {"default": "null", "type": "{Object|YAHOO.widget.Paginator}", "description": "An instance of YAHOO.widget.Paginator."}, "numberOptions": {"default": "{decimalPlaces:0, thousandsSeparator:\",\"}", "type": "Object", "description": "Default config passed to YAHOO.util.Number.format() by the 'number' Column formatter."}, "initialLoad": {"default": "true", "type": "Boolean | Object", "description": "Determines whether or not to load data at instantiation. By\ndefault, will trigger a sendRequest() to the DataSource and pass in the\nrequest defined by initialRequest. If set to false, data will not load\nat instantiation. Alternatively, implementers who wish to work with a \ncustom payload may pass in an object literal with the following values:\n<dl>\n<dt>request (MIXED)</dt>\n<dd>Request value.</dd>\n<dt>argument (MIXED)</dt>\n<dd>Custom data that will be passed through to the callback function.</dd>\n</dl>"}, "initialRequest": {"default": "null", "type": "MIXED", "description": "Defines the initial request that gets sent to the DataSource\nduring initialization. Value is ignored if initialLoad is set to any value\nother than true."}, "formatRow": {"default": "null", "type": "function", "description": "A function that accepts a TR element and its associated Record\nfor custom formatting. The function must return TRUE in order to automatically\ncontinue formatting of child TD elements, else TD elements will not be\nautomatically formatted."}, "renderLoopSize": {"default": "0", "type": "Number", "description": "A value greater than 0 enables DOM rendering of rows to be\nexecuted from a non-blocking timeout queue and sets how many rows to be\nrendered per timeout. Recommended for very large data sets."}, "sortedBy": {"type": "Object | null", "description": "Object literal provides metadata for initial sort values if\ndata will arrive pre-sorted:\n<dl>\n<dt>sortedBy.key</dt>\n<dd>{String} Key of sorted Column</dd>\n<dt>sortedBy.dir</dt>\n<dd>{String} Initial sort direction, either YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTable.CLASS_DESC</dd>\n</dl>"}, "currencySymbol": {"deprecated": ""}, "summary": {"default": "\"\"", "type": "String", "description": "Value for the SUMMARY attribute."}, "dynamicData": {"default": "false", "type": "Boolean", "description": "If true, sorting and pagination are relegated to the DataSource\nfor handling, using the request returned by the \"generateRequest\" function.\nEach new DataSource response blows away all previous Records. False by default, so \nsorting and pagination will be handled directly on the client side, without\ncausing any new requests for data from the DataSource."}, "caption": {"type": "String", "description": "Value for the CAPTION element. NB: Not supported in\nScrollingDataTable."}, "draggableColumns": {"default": "false", "type": "Boolean", "description": "True if Columns are draggable to reorder, false otherwise.\nThe Drag & Drop Utility is required to enable this feature. Only top-level\nand non-nested Columns are draggable. Write once."}, "currencyOptions": {"default": "{prefix: $, decimalPlaces:2, decimalSeparator:\".\", thousandsSeparator:\",\"}", "type": "Object", "description": "Default config passed to YAHOO.util.Number.format() by the 'currency' Column formatter."}, "MSG_SORTDESC": {"default": "\"Click to sort descending\"", "type": "String", "description": "Message to display in tooltip to sort Column in descending order."}, "MSG_LOADING": {"default": "\"Loading...\"", "type": "String", "description": "Message to display while DataTable is loading data."}, "dateOptions": {"default": "{format:\"%m/%d/%Y\", locale:\"en\"}", "type": "Object", "description": "Default config passed to YAHOO.util.Date.format() by the 'date' Column formatter."}, "selectionMode": {"default": "\"standard\"", "type": "String", "description": "Specifies row or cell selection mode. Accepts the following strings:\n<dl>\n<dt>\"standard\"</dt>\n<dd>Standard row selection with support for modifier keys to enable\nmultiple selections.</dd>\n<dt>\"single\"</dt>\n<dd>Row selection with modifier keys disabled to not allow\nmultiple selections.</dd>\n<dt>\"singlecell\"</dt>\n<dd>Cell selection with modifier keys disabled to not allow\nmultiple selections.</dd>\n<dt>\"cellblock\"</dt>\n<dd>Cell selection with support for modifier keys to enable multiple\nselections in a block-fashion, like a spreadsheet.</dd>\n<dt>\"cellrange\"</dt>\n<dd>Cell selection with support for modifier keys to enable multiple\nselections in a range-fashion, like a calendar.</dd>\n</dl>"}, "MSG_EMPTY": {"default": "\"No records found.\"", "type": "String", "description": "Message to display if DataTable has no data."}, "MSG_ERROR": {"default": "\"Data error.\"", "type": "String", "description": "Message to display while DataTable has data error."}, "MSG_SORTASC": {"default": "\"Click to sort ascending\"", "type": "String", "description": "Message to display in tooltip to sort Column in ascending order."}, "generateRequest": {"default": "HTMLFunction", "type": "function", "description": "A function that converts an object literal of desired DataTable\nstates into a request value which is then passed to the DataSource's\nsendRequest method in order to retrieve data for those states. This\nfunction is passed an object literal of state data and a reference to the\nDataTable instance:\n<dl>\n<dt>pagination<dt>\n<dd>        \n<dt>offsetRecord</dt>\n<dd>{Number} Index of the first Record of the desired page</dd>\n<dt>rowsPerPage</dt>\n<dd>{Number} Number of rows per page</dd>\n</dd>\n<dt>sortedBy</dt>\n<dd>                \n<dt>key</dt>\n<dd>{String} Key of sorted Column</dd>\n<dt>dir</dt>\n<dd>{String} Sort direction, either YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTable.CLASS_DESC</dd>\n</dd>\n<dt>self</dt>\n<dd>The DataTable instance</dd>\n</dl>\nand by default returns a String of syntax:\n\"sort={sortColumn}&dir={sortDir}&startIndex={pageStartIndex}&results={rowsPerPage}\""}}, "constructors": [{"params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Container element for the TABLE."}, {"type": "Object[]", "name": "aColumnDefs", "description": "  Array of object literal Column definitions."}, {"type": "YAHOO.util.DataSource", "name": "oDataSource", "description": "  DataSource instance."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "DataTable class for the YUI DataTable widget."}], "namespace": "YAHOO.widget", "module": "datatable", "events": {"cellUnselectEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The unselected TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the unselected cell."}], "description": "Fired when a cell is unselected."}, "tableFocusEvent": {"description": "Fired when the DataTable has a focus event."}, "tableKeyEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a key event."}, "beforeInitialLoadChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitialLoadChange", "description": "Fires before the value for the configuration attribute 'initialLoad' changes. Return false to cancel the attribute change."}, "rowAddEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The added Record."}], "description": "Fired when a row is added."}, "beforeGenerateRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGenerateRequestChange", "description": "Fires before the value for the configuration attribute 'generateRequest' changes. Return false to cancel the attribute change."}, "rowDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a dblclick."}, "initialLoadChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initialLoadChange", "description": "Fires when the value for the configuration attribute 'initialLoad' changes."}, "tableBlurEvent": {"description": "Fired when the DataTable has a blur event."}, "MSG_ERRORChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_ERRORChange", "description": "Fires when the value for the configuration attribute 'MSG_ERROR' changes."}, "beforeMSG_SORTASCChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_SORTASCChange", "description": "Fires before the value for the configuration attribute 'MSG_SORTASC' changes. Return false to cancel the attribute change."}, "currencySymbolChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "currencySymbolChange", "description": "Fires when the value for the configuration attribute 'currencySymbol' changes."}, "initEvent": {"description": "Fired when the DataTable's rows are rendered from an initialized state."}, "headerCellClickEvent": {"deprecated": "Use theadCellClickEvent."}, "disableEvent": {"description": "Fired when the DataTable is disabled."}, "rowClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a click."}, "tableMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a mouseout."}, "rowUpdateEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The updated Record."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Object literal of the old data."}], "description": "Fired when a row is updated."}, "editorUnblockEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor is unblocked."}, "theadLabelMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a mousedown."}, "tableMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a mouseup."}, "columnSortEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "String", "name": "oArgs.dir", "description": "  Sort direction: YAHOO.widget.DataTable.CLASS_ASC\nor YAHOO.widget.DataTable.CLASS_DESC."}], "description": "Fired when a column is sorted."}, "beforeCurrencySymbolChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCurrencySymbolChange", "description": "Fires before the value for the configuration attribute 'currencySymbol' changes. Return false to cancel the attribute change."}, "captionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "captionChange", "description": "Fires when the value for the configuration attribute 'caption' changes."}, "tableMsgShowEvent": {"params": [{"type": "String", "name": "oArgs.html", "description": "  The HTML displayed."}, {"type": "String", "name": "oArgs.className", "description": "  The className assigned."}], "description": "Fired when a message is shown in the DataTable's message element."}, "beforeDynamicDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDynamicDataChange", "description": "Fires before the value for the configuration attribute 'dynamicData' changes. Return false to cancel the attribute change."}, "theadLabelClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a click."}, "cellSelectEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The selected TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record instance."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the selected cell."}], "description": "Fired when a cell is selected."}, "columnUnhighlightEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The unhighlighted Column."}], "description": "Fired when a column is unhighlighted."}, "theadRowMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a mouseup."}, "headerRowMousedownEvent": {"deprecated": "Use theadRowMousedownEvent."}, "columnHighlightEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The highlighted Column."}], "description": "Fired when a column is highlighted."}, "beforeRenderEvent": {"description": "Fired before the DataTable's DOM is rendered or modified."}, "theadRowMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a mousedown."}, "cellMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a mouseout."}, "linkClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The A element."}], "description": "Fired when a link is clicked."}, "tableMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a mousedown."}, "theadCellMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a mousedown."}, "rowMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a mouseover."}, "renderLoopSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "renderLoopSizeChange", "description": "Fires when the value for the configuration attribute 'renderLoopSize' changes."}, "headerLabelClickEvent": {"deprecated": "Use theadLabelClickEvent."}, "theadRowMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a mouseout."}, "columnSelectEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is selected."}, "headerCellMouseoverEvent": {"deprecated": "Use theadCellMouseoverEvent."}, "numberOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "numberOptionsChange", "description": "Fires when the value for the configuration attribute 'numberOptions' changes."}, "theadKeyEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable THEAD element has a key event."}, "columnResizeEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}, {"type": "Number", "name": "oArgs.width", "description": "  Width in pixels."}], "description": "Fired when a column is drag-resized."}, "theadLabelMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a mouseover."}, "MSG_SORTDESCChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_SORTDESCChange", "description": "Fires when the value for the configuration attribute 'MSG_SORTDESC' changes."}, "editorKeydownEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}], "description": "Fired when a CellEditor has a keydown."}, "headerLabelMouseoutEvent": {"deprecated": "Use theadLabelMouseoutEvent."}, "theadFocusEvent": {"description": "Fired when the DataTable THEAD element has a focus event."}, "editorRevertEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is reverted."}, "cellClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a click."}, "editorBlockEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor is blocked."}, "headerCellMousedownEvent": {"deprecated": "Use theadCellMousedownEvent."}, "beforeMSG_ERRORChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_ERRORChange", "description": "Fires before the value for the configuration attribute 'MSG_ERROR' changes. Return false to cancel the attribute change."}, "columnSetWidthEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "Number", "name": "oArgs.width", "description": "  The width in pixels."}], "description": "Fired when a column width is set."}, "dropdownChangeEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SELECT element."}], "description": "Fired when a SELECT element is changed."}, "paginatorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "paginatorChange", "description": "Fires when the value for the configuration attribute 'paginator' changes."}, "undisableEvent": {"description": "Fired when the DataTable is undisabled."}, "beforePaginatorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePaginatorChange", "description": "Fires before the value for the configuration attribute 'paginator' changes. Return false to cancel the attribute change."}, "checkboxClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The CHECKBOX element."}], "description": "Fired when a CHECKBOX element is clicked."}, "columnReorderEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "Number", "name": "oArgs.oldIndex", "description": "  The previous index position."}], "description": "Fired when a Column is moved to a new index."}, "headerLabelMouseoverEvent": {"deprecated": "Use theadLabelMouseoverEvent."}, "currencyOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "currencyOptionsChange", "description": "Fires when the value for the configuration attribute 'currencyOptions' changes."}, "radioClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The RADIO element."}], "description": "Fired when a RADIO element is clicked."}, "headerCellDblclickEvent": {"deprecated": "Use theadCellDblclickEvent."}, "cellUpdateEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The updated Record."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The updated Column."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Original data value of the updated cell."}], "description": "Fired when a cell is updated."}, "headerRowMouseoutEvent": {"deprecated": "Use theadRowMouseoutEvent."}, "tbodyKeyEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable TBODY element has a key event."}, "beforeFormatRowChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFormatRowChange", "description": "Fires before the value for the configuration attribute 'formatRow' changes. Return false to cancel the attribute change."}, "rowsDeleteEvent": {"params": [{"type": "Object[]", "name": "oArgs.oldData", "description": "  Array of object literals of the deleted data."}, {"type": "Number", "name": "oArgs.recordIndex", "description": "  Index of the first deleted Record."}, {"type": "Number", "name": "oArgs.count", "description": "  Number of deleted Records."}], "description": "Fired when rows are deleted."}, "cellFormatEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The formatted TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record instance."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the formatted cell."}], "description": "Fired when a cell is formatted."}, "editorUpdateEvent": {"deprecated": "Use CellEditor class."}, "headerLabelMousedownEvent": {"deprecated": "Use theadLabelMousedownEvent."}, "theadRowClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a click."}, "theadRowDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a dblclick."}, "columnRemoveEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is removed."}, "theadCellMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a mouseover."}, "editorCancelEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor input is canceled."}, "cellDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a dblclick."}, "cellUnhighlightEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The unhighlighted TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record instance."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the unhighlighted cell."}], "description": "Fired when a cell is unhighlighted."}, "columnInsertEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "Number", "name": "oArgs.index", "description": "  The index position."}], "description": "Fired when a column is inserted."}, "tableDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a dblclick."}, "summaryChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "summaryChange", "description": "Fires when the value for the configuration attribute 'summary' changes."}, "cellMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a mouseup."}, "theadCellMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a mouseup."}, "rowUnselectEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The unselected TR element, if applicable."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The unselected Record."}], "description": "Fired when a row is unselected."}, "buttonClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The BUTTON element."}], "description": "Fired when a BUTTON element or INPUT element of type \"button\", \"image\",\n\"submit\", \"reset\" is clicked."}, "generateRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "generateRequestChange", "description": "Fires when the value for the configuration attribute 'generateRequest' changes."}, "beforeRenderLoopSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRenderLoopSizeChange", "description": "Fires before the value for the configuration attribute 'renderLoopSize' changes. Return false to cancel the attribute change."}, "MSG_LOADINGChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_LOADINGChange", "description": "Fires when the value for the configuration attribute 'MSG_LOADING' changes."}, "beforeSortedByChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSortedByChange", "description": "Fires before the value for the configuration attribute 'sortedBy' changes. Return false to cancel the attribute change."}, "columnUnsetWidthEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column width is unset."}, "beforeMSG_LOADINGChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_LOADINGChange", "description": "Fires before the value for the configuration attribute 'MSG_LOADING' changes. Return false to cancel the attribute change."}, "rowMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a mouseout."}, "tableClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a click."}, "headerRowClickEvent": {"deprecated": "Use theadRowClickEvent."}, "rowsAddEvent": {"params": [{"type": "YAHOO.widget.Record[]", "name": "oArgs.record", "description": "  The added Records."}], "description": "Fired when rows are added."}, "dateOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dateOptionsChange", "description": "Fires when the value for the configuration attribute 'dateOptions' changes."}, "theadRowMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a mouseover."}, "theadCellClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a click."}, "theadLabelMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a mouseout."}, "tbodyFocusEvent": {"description": "Fired when the DataTable TBODY element has a focus event."}, "columnUnselectEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is unselected."}, "editorShowEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor is shown."}, "columnHideEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is hidden."}, "beforeDateOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDateOptionsChange", "description": "Fires before the value for the configuration attribute 'dateOptions' changes. Return false to cancel the attribute change."}, "editorBlurEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor has a blur event."}, "rowMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a mouseup."}, "headerLabelDbllickEvent": {"deprecated": "Use theadLabelDblclickEvent."}, "draggableColumnsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "draggableColumnsChange", "description": "Fires when the value for the configuration attribute 'draggableColumns' changes."}, "theadCellMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a mouseout."}, "initialRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initialRequestChange", "description": "Fires when the value for the configuration attribute 'initialRequest' changes."}, "theadCellDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a dblclick."}, "cellHighlightEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The highlighted TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record instance."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the highlighted cell."}], "description": "Fired when a cell is highlighted."}, "headerCellMouseoutEvent": {"deprecated": "Use theadCellMouseoutEvent."}, "headerRowDblclickEvent": {"deprecated": "Use theadRowDblclickEvent."}, "beforeNumberOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNumberOptionsChange", "description": "Fires before the value for the configuration attribute 'numberOptions' changes. Return false to cancel the attribute change."}, "MSG_EMPTYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_EMPTYChange", "description": "Fires when the value for the configuration attribute 'MSG_EMPTY' changes."}, "cellMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a mouseover."}, "rowMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a mousedown."}, "theadLabelMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a mouseup."}, "beforeCurrencyOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCurrencyOptionsChange", "description": "Fires before the value for the configuration attribute 'currencyOptions' changes. Return false to cancel the attribute change."}, "tableMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a mouseover."}, "dataReturnEvent": {"params": [{"type": "String", "name": "oArgs.request", "description": "  Original request."}, {"type": "Object", "name": "oArgs.response", "description": "  Response object."}], "description": "Fired when data is returned from DataSource but before it is consumed by\nDataTable."}, "headerRowMouseoverEvent": {"deprecated": "Use theadRowMouseoverEvent."}, "sortedByChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "sortedByChange", "description": "Fires when the value for the configuration attribute 'sortedBy' changes."}, "columnShowEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is shown."}, "renderEvent": {"description": "Fired when the DataTable's DOM is rendered or modified."}, "formatRowChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "formatRowChange", "description": "Fires when the value for the configuration attribute 'formatRow' changes."}, "rowHighlightEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The highlighted TR element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The highlighted Record."}], "description": "Fired when a row is highlighted."}, "cellMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a mousedown."}, "tableMsgHideEvent": {"description": "Fired when the DataTable's message element is hidden."}, "beforeCaptionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCaptionChange", "description": "Fires before the value for the configuration attribute 'caption' changes. Return false to cancel the attribute change."}, "beforeSummaryChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSummaryChange", "description": "Fires before the value for the configuration attribute 'summary' changes. Return false to cancel the attribute change."}, "rowDeleteEvent": {"params": [{"type": "Object", "name": "oArgs.oldData", "description": "  Object literal of the deleted data."}, {"type": "Number", "name": "oArgs.recordIndex", "description": "  Index of the deleted Record."}, {"type": "Number", "name": "oArgs.trElIndex", "description": "  Index of the deleted TR element, if on current page."}], "description": "Fired when a row is deleted."}, "beforeInitialRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitialRequestChange", "description": "Fires before the value for the configuration attribute 'initialRequest' changes. Return false to cancel the attribute change."}, "rowUnhighlightEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The highlighted TR element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The highlighted Record."}], "description": "Fired when a row is unhighlighted."}, "beforeSelectionModeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSelectionModeChange", "description": "Fires before the value for the configuration attribute 'selectionMode' changes. Return false to cancel the attribute change."}, "rowSelectEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The selected TR element, if applicable."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The selected Record."}], "description": "Fired when a row is selected."}, "beforeMSG_SORTDESCChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_SORTDESCChange", "description": "Fires before the value for the configuration attribute 'MSG_SORTDESC' changes. Return false to cancel the attribute change."}, "postRenderEvent": {"description": "Fired when the DataTable's post-render routine is complete, including\nColumn width validations."}, "editorSaveEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is saved."}, "unselectAllRowsEvent": {"description": "Fired when all row selections are cleared."}, "MSG_SORTASCChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_SORTASCChange", "description": "Fires when the value for the configuration attribute 'MSG_SORTASC' changes."}, "unselectAllCellsEvent": {"description": "Fired when all cell selections are cleared."}, "beforeDraggableColumnsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDraggableColumnsChange", "description": "Fires before the value for the configuration attribute 'draggableColumns' changes. Return false to cancel the attribute change."}, "beforeMSG_EMPTYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_EMPTYChange", "description": "Fires before the value for the configuration attribute 'MSG_EMPTY' changes. Return false to cancel the attribute change."}, "theadLabelDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a dblclick."}, "dynamicDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dynamicDataChange", "description": "Fires when the value for the configuration attribute 'dynamicData' changes."}, "selectionModeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "selectionModeChange", "description": "Fires when the value for the configuration attribute 'selectionMode' changes."}}, "guessedname": "DataTable", "methods": {"sortColumn": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sDir", "description": "  (Optional) YAHOO.widget.DataTable.CLASS_ASC or\nYAHOO.widget.DataTable.CLASS_DESC"}], "description": "Sorts given Column. If \"dynamicData\" is true, current selections are purged before\na request is sent to the DataSource for data for the new state (using the\nrequest returned by \"generateRequest()\").", "guessedname": "sortColumn", "guessedtype": "function"}, "_unselectAllTdEls": {"private": "", "description": "Convenience method to remove the class YAHOO.widget.DataTable.CLASS_SELECTED\nfrom all TD elements in the internal tracker.", "guessedname": "_unselectAllTdEls", "guessedtype": "function"}, "getColumnById": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "params": [{"type": "String", "name": "column", "description": "  Column ID string."}], "description": "For the given Column ID, returns the associated Column instance. Note: For\ngetting Columns by key, please use the method getColumn().", "guessedname": "getColumnById", "guessedtype": "function"}, "onEventSortColumn": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to sort Column.", "guessedname": "onEventSortColumn", "guessedtype": "function"}, "renderPaginator": {"description": "Renders the Paginator to the DataTable UI", "guessedname": "renderPaginator", "guessedtype": "function"}, "_onTableFocus": {"guessedname": "_onTableFocus", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The focus event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles focus events on the DataTable instance.", "private": "", "guessedtype": "function"}, "_handleCellRangeSelectionByKey": {"guessedname": "_handleCellRangeSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"cellrange\".", "private": "", "guessedtype": "function"}, "updateCell": {"params": [{"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column | String | Number", "name": "oColumn", "description": "  A Column key, or a ColumnSet key index."}, {"type": "Object", "name": "oData", "description": "  New data value for the cell."}], "description": "For the given row and column, updates the Record with the given data. If the\ncell is on current page, the corresponding DOM elements are also updated.", "guessedname": "updateCell", "guessedtype": "function"}, "DataTable._cloneObject": {"description": "Clones object literal or array of object literals.", "private": "", "static": "", "guessedname": "_cloneObject", "guessedtype": "function", "params": [{"type": "Object", "name": "o", "description": "  Object."}]}, "setColumnWidth": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "nWidth", "description": "  New width in pixels. A null value auto-sizes Column,\nsubject to minWidth and maxAutoWidth validations."}], "description": "Sets given Column to given pixel width. If new width is less than minimum\nwidth, sets to minimum width. Updates oColumn.width value.", "guessedname": "setColumnWidth", "guessedtype": "function"}, "focus": {"description": "Brings focus to the TBODY element. Alias to focusTbodyEl.", "guessedname": "focus", "guessedtype": "function"}, "_handleSingleCellSelectionByMouse": {"guessedname": "_handleSingleCellSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"singlecell\".", "private": "", "guessedtype": "function"}, "_setColumnWidthDynStyles": {"guessedname": "_setColumnWidthDynStyles", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sWidth", "description": "  New width value."}], "description": "Updates width of a Column's liner DIV elements by dynamically creating a\nSTYLE node and writing and updating CSS style rules to it. If this fails during\nruntime, the fallback method _setColumnWidthDynFunction() will be called.\nNotes: This technique is not performant in IE6. IE7 crashes if DataTable is\nnested within another TABLE element. For these cases, it is recommended to\nuse the method _setColumnWidthDynFunction by setting _bDynStylesFallback to TRUE.", "private": "", "guessedtype": "function"}, "DataTable.formatTextarea": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Formats TEXTAREA elements.", "guessedname": "formatTextarea", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal definition of configuration values."}], "description": "Implementation of Element's abstract method. Sets up config values.", "private": "", "guessedtype": "function"}, "onEventSelectCell": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to select cell.", "guessedname": "onEventSelectCell", "guessedtype": "function"}, "getRow": {"deprecated": "Use getTrEl().", "guessedname": "getRow", "guessedtype": "function"}, "_repaintGecko": {"guessedname": "_repaintGecko", "el": "{HTMLElement} (Optional) Element to repaint, otherwise entire document body.", "description": "Forces Gecko repaint.", "private": "", "guessedtype": "property"}, "_initColgroupEl": {"guessedname": "_initColgroupEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create COLGROUP."}], "description": "Initializes COLGROUP and COL elements for managing minWidth.", "private": "", "guessedtype": "function"}, "_formatTdEl": {"return": {"type": "HTMLElement", "description": "A formatted TD element."}, "description": "Formats a basic TD element.", "private": "", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Associated Column instance."}, {"type": "HTMLElement", "name": "elTd", "description": "  An unformatted TD element."}, {"type": "Number", "name": "index", "description": "  Column key index."}, {"type": "Boolean", "name": "isLast", "description": "  True if Column is last key of the ColumnSet."}], "guessedname": "_formatTdEl", "guessedtype": "function"}, "focusTbodyEl": {"description": "Brings focus to the TBODY element.", "guessedname": "focusTbodyEl", "guessedtype": "function"}, "getTrIndex": {"return": {"type": "Number", "description": "Page row index, or null if row does not exist or is not on current page."}, "params": [{"type": "HTMLElement | String | YAHOO.widget.Record | Number", "name": "row", "description": "  DOM or ID\nstring reference to an element within the DataTable page, a Record instance,\nor a Record's RecordSet index."}], "description": "Returns the page row index of given row. Returns null if the row is not on the\ncurrent DataTable page.", "guessedname": "getTrIndex", "guessedtype": "function"}, "_onTheadClick": {"guessedname": "_onTheadClick", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The click event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles click events on the THEAD element.", "private": "", "guessedtype": "function"}, "_handleSingleCellSelectionByKey": {"guessedname": "_handleSingleCellSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"singlecell\".", "private": "", "guessedtype": "function"}, "_onTbodyClick": {"guessedname": "_onTbodyClick", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The click event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles click events on the primary TBODY element.", "private": "", "guessedtype": "function"}, "isSelected": {"return": {"type": "Boolean", "description": "True if item is selected."}, "params": [{"type": "String | HTMLElement | YAHOO.widget.Record | Number\n{record:YAHOO.widget.Record, column:YAHOO.widget.Column} ", "name": "o", "description": "  TR or TD element by\nreference or ID string, a Record instance, a RecordSet position index,\nor an object literal representation\nof a cell."}], "description": "Returns true if given item is selected, false otherwise.", "guessedname": "isSelected", "guessedtype": "function"}, "onEventSaveCellEditor": {"description": "Overridable custom event handler to save active CellEditor input.", "guessedname": "onEventSaveCellEditor", "guessedtype": "function"}, "_initTheadEl": {"guessedname": "_initTheadEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create COLGROUP."}, {"type": "HTMLElement", "name": "Initialized", "description": " THEAD element."}], "description": "Initializes THEAD element.", "private": "", "guessedtype": "function"}, "_insertColgroupColEl": {"guessedname": "_insertColgroupColEl", "params": [{"type": "Number", "name": "index", "description": "  Index of new COL element."}], "description": "Adds a COL element to COLGROUP at given index.", "private": "", "guessedtype": "function"}, "deleteRow": {"params": [{"type": "HTMLElement | String | Number", "name": "row", "description": "  DOM element reference or ID string\nto DataTable page element or RecordSet index."}], "description": "Deletes the given row's Record from the RecordSet. If the row is on current page,\nthe corresponding DOM elements are also deleted.", "guessedname": "deleteRow", "guessedtype": "function"}, "showTableMessage": {"params": [{"type": "String", "name": "sHTML", "description": "  (optional) Value for innerHTMlang."}, {"type": "String", "name": "sClassName", "description": "  (optional) Classname."}], "description": "Displays message within secondary TBODY.", "guessedname": "showTableMessage", "guessedtype": "function"}, "selectRow": {"params": [{"type": "HTMLElement | String | YAHOO.widget.Record | Number", "name": "row", "description": "  HTML element\nreference or ID string, Record instance, or RecordSet position index."}], "description": "Sets given row to the selected state.", "guessedname": "selectRow", "guessedtype": "function"}, "onDataReturnAppendRows": {"params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Callback function receives data from DataSource and appends to an existing\nDataTable new Records and, if applicable, creates or updates\ncorresponding TR elements.", "guessedname": "onDataReturnAppendRows", "guessedtype": "function"}, "unhighlightCell": {"params": [{"type": "HTMLElement | String", "name": "cell", "description": "  DOM element reference or ID string."}], "description": "Removes the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED from the given cell.", "guessedname": "unhighlightCell", "guessedtype": "function"}, "getCell": {"deprecated": "Use getTdEl().", "guessedname": "getCell", "guessedtype": "function"}, "getTableEl": {"return": {"type": "HTMLElement", "description": "Reference to TABLE element."}, "description": "Returns DOM reference to the DataTable's TABLE element.", "guessedname": "getTableEl", "guessedtype": "function"}, "_onEditorCancelEvent": {"guessedname": "_onEditorCancelEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through cancelEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "DataTable.editTextarea": {"deprecated": "Use YAHOO.widget.TextareaCellEditor", "guessedname": "editTextarea", "guessedtype": "function"}, "_onTheadKeydown": {"guessedname": "_onTheadKeydown", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The key event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles keydown events on the THEAD element.", "private": "", "guessedtype": "function"}, "clearTextSelection": {"description": "Clears browser text selection. Useful to call on rowSelectEvent or\ncellSelectEvent to prevent clicks or dblclicks from selecting text in the\nbrowser.", "guessedname": "clearTextSelection", "guessedtype": "function"}, "DataTable.editCheckbox": {"deprecated": "Use YAHOO.widget.CheckboxCellEditor.", "guessedname": "editCheckbox", "guessedtype": "function"}, "getBelowTdEl": {"return": {"type": "HTMLElement", "description": "Reference to previous TD element, or null."}, "params": [{"type": "HTMLElement | String | Object} DOM element reference or string ID, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": "  from which to get previous TD element."}], "description": "Returns DOM reference to the below TD element from the given cell, or null.", "guessedname": "getBelowTdEl", "guessedtype": "function"}, "getFirstTdEl": {"return": {"type": "HTMLElement", "description": "Reference to TD element."}, "params": [{"type": "HTMLElement", "name": "row", "description": "  (optional) row from which to get first TD"}], "description": "Returns DOM reference to the first TD element in the DataTable page (by default),\nthe first TD element of the optionally given row, or null.", "guessedname": "getFirstTdEl", "guessedtype": "function"}, "DataTable.formatRadio": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Formats INPUT TYPE=RADIO elements.", "guessedname": "formatRadio", "guessedtype": "function"}, "_onEditorRevertEvent": {"guessedname": "_onEditorRevertEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through revertEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "_handleStandardSelectionByMouse": {"guessedname": "_handleStandardSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"standard\".", "private": "", "guessedtype": "function"}, "_destroyTbodyEl": {"private": "", "description": "Destroy's the DataTable TBODY element, if available.", "guessedname": "_destroyTbodyEl", "guessedtype": "function"}, "_updatePaginator": {"guessedname": "_updatePaginator", "params": [{"type": "Paginator", "name": "newPag", "description": "  Paginator instance (or null) for DataTable to use"}], "description": "Method executed during set() operation for the \"paginator\" attribute.\nAdds and/or severs event listeners between DataTable and Paginator", "private": "", "guessedtype": "function"}, "_onTbodyKeydown": {"guessedname": "_onTbodyKeydown", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The key event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles keydown events on the TBODY element. Handles selection behavior,\nprovides hooks for ENTER to edit functionality.", "private": "", "guessedtype": "function"}, "_initCaptionEl": {"guessedname": "_initCaptionEl", "params": [{"type": "String", "name": "sCaption", "description": "  Text for caption."}], "description": "Creates HTML markup CAPTION element.", "private": "", "guessedtype": "function"}, "removeColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Removed Column instance."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}], "description": "Removes given Column. NOTE: You cannot remove nested Columns. You can only remove\nnon-nested Columns, and top-level parent Columns (which will remove all\nchildren Columns).", "guessedname": "removeColumn", "guessedtype": "function"}, "onEventHighlightRow": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to highlight row. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventHighlightRow", "guessedtype": "function"}, "_initCellEditorEl": {"guessedname": "_initCellEditorEl", "deprecated": "", "description": "Backward compatibility.", "private": "", "guessedtype": "function"}, "_clearMinWidth": {"guessedname": "_clearMinWidth", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Which Column."}], "description": "Clears minWidth.", "private": "", "guessedtype": "function"}, "showCellEditor": {"params": [{"type": "HTMLElement | String", "name": "elCell", "description": "  Cell to edit."}], "description": "Activates and shows CellEditor instance for the given cell while deactivating and\ncanceling previous CellEditor. It is baked into DataTable that only one CellEditor\ncan be active at any given time.", "guessedname": "showCellEditor", "guessedtype": "function"}, "showColumn": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}], "description": "Shows given Column. NOTE: You cannot hide/show nested Columns. You can only\nhide/show non-nested Columns, and top-level parent Columns (which will\nhide/show all children Columns).", "guessedname": "showColumn", "guessedtype": "function"}, "_setColumnWidth": {"guessedname": "_setColumnWidth", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sWidth", "description": "  New width value."}, {"type": "String", "name": "sOverflow", "description": "  Should be \"hidden\" when Column width is explicitly\nbeing set to a value, but should be \"visible\" when Column is meant to auto-fit content."}], "description": "Sets liner DIV elements of given Column to given width. When value should be\nauto-calculated to fit content overflow is set to visible, otherwise overflow\nis set to hidden. No validations against minimum width and no updating\nColumn.width value.", "private": "", "guessedtype": "function"}, "getSelectedRows": {"return": {"type": "String[]", "description": "Array of selected rows by Record ID."}, "description": "Returns selected rows as an array of Record IDs.", "guessedname": "getSelectedRows", "guessedtype": "function"}, "getTdEl": {"return": {"type": "HTMLElement", "description": "Reference to TD element."}, "params": [{"type": "HTMLElement | String | Object} TD element or child of a TD element, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": " ."}], "description": "Returns DOM reference to a TD element.", "guessedname": "getTdEl", "guessedtype": "function"}, "onDataReturnReplaceRows": {"params": [{"type": "MIXED", "name": "oRequest", "description": "  Original generated request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Callback function receives reponse from DataSource, replaces all existing\nRecords in  RecordSet, updates TR elements with new data, and updates state\nUI for pagination and sorting from payload data, if necessary.", "guessedname": "onDataReturnReplaceRows", "guessedtype": "function"}, "addRows": {"params": [{"type": "Object[]", "name": "aData", "description": "  Array of object literal data for the rows."}, {"type": "Number", "name": "index", "description": "  (optional) RecordSet position index at which to add data."}], "description": "Convenience method to add multiple rows.", "guessedname": "addRows", "guessedtype": "function"}, "onEventHighlightCell": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to highlight cell. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventHighlightCell", "guessedtype": "function"}, "_defaultPaginatorContainers": {"guessedname": "_defaultPaginatorContainers", "params": [{"type": "boolean", "name": "create", "description": "  Create the default containers if not found"}], "description": "Returns the default containers used for Paginators.  If create param is\npassed, the containers will be created and added to the DataTable container.", "private": "", "guessedtype": "function"}, "onEventSelectRow": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to manage selection according to desktop paradigm.", "guessedname": "onEventSelectRow", "guessedtype": "function"}, "_initContainerEl": {"guessedname": "_initContainerEl", "params": [{"type": "HTMLElement | String", "name": "elContainer", "description": "  HTML DIV element by reference or ID."}], "description": "Initializes the DataTable outer container element, including a mask.", "private": "", "guessedtype": "function"}, "_onEditorSaveEvent": {"guessedname": "_onEditorSaveEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through saveEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "_onTableMousedown": {"guessedname": "_onTableMousedown", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The mousedown event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles mousedown events on the DataTable instance.", "private": "", "guessedtype": "function"}, "onPaginatorChangeRequest": {"params": [{"type": "Object", "name": "oPaginatorState", "description": "  An object literal describing the proposed pagination state."}], "description": "Responds to new Pagination states. By default, updates the UI to reflect the\nnew state. If \"dynamicData\" is true, current selections are purged before\na request is sent to the DataSource for data for the new state (using the\nrequest returned by \"generateRequest()\").", "guessedname": "onPaginatorChangeRequest", "guessedtype": "function"}, "_initDataSource": {"guessedname": "_initDataSource", "params": [{"type": "YAHOO.util.DataSource", "name": "oDataSource", "description": "  DataSource instance."}], "description": "Initializes DataSource.", "private": "", "guessedtype": "function"}, "_onDropdownChange": {"guessedname": "_onDropdownChange", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The change event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles change events on SELECT elements within DataTable.", "private": "", "guessedtype": "function"}, "onEventUnhighlightColumn": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to unhighlight Column. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventUnhighlightColumn", "guessedtype": "function"}, "DataTable._destroyColumnResizerProxyEl": {"return": {"type": "HTMLElement", "description": "Reference to Column resizer proxy."}, "description": "Destroys shared Column resizer proxy.", "private": "", "static": "", "guessedname": "_destroyColumnResizerProxyEl", "guessedtype": "function"}, "_initEvents": {"private": "", "description": "Initialize internal event listeners", "guessedname": "_initEvents", "guessedtype": "function"}, "updateRows": {"params": [{"type": "YAHOO.widget.Record | Number | HTMLElement | String", "name": "startrow", "description": " \nStarting row to update: By Record instance, by Record's RecordSet\nposition index, by HTMLElement reference to the TR element, or by ID string\nof the TR element."}, {"type": "Object[]", "name": "aData", "description": "  Array of object literal of data for the rows."}], "description": "Starting with the given row, updates associated Records with the given data.\nThe number of rows to update are determined by the array of data provided.\nUndefined data (i.e., not an object literal) causes a row to be skipped. If\nany of the rows are on current page, the corresponding DOM elements are also\nupdated.", "guessedname": "updateRows", "guessedtype": "function"}, "deleteRows": {"params": [{"type": "HTMLElement | String | Number", "name": "row", "description": "  DOM element reference or ID string\nto DataTable page element or RecordSet index."}, {"type": "Number", "name": "count", "description": "  (optional) How many rows to delete. A negative value\nwill delete towards the beginning."}], "description": "Convenience method to delete multiple rows.", "guessedname": "deleteRows", "guessedtype": "function"}, "onEventCancelCellEditor": {"description": "Overridable custom event handler to cancel active CellEditor.", "guessedname": "onEventCancelCellEditor", "guessedtype": "function"}, "_initColumnSort": {"private": "", "description": "Initializes Column sorting.", "guessedname": "_initColumnSort", "guessedtype": "function"}, "highlightColumn": {"params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  DOM reference or ID string to a\nTH/TD element (or child of a TH/TD element), a Column key, or a ColumnSet key index."}], "description": "Assigns the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED to cells of the given Column.\nNOTE: You cannot highlight/unhighlight nested Columns. You can only\nhighlight/unhighlight non-nested Columns, and bottom-level key Columns.", "guessedname": "highlightColumn", "guessedtype": "function"}, "onEditorBlurEvent": {"params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Public handler of the editorBlurEvent. By default, saves on blur if\ndisableBtns is true, otherwise cancels on blur.", "guessedname": "onEditorBlurEvent", "guessedtype": "function"}, "onEventEditCell": {"deprecated": "Use onEventShowCellEditor.", "guessedname": "onEventEditCell", "guessedtype": "function"}, "getThLinerEl": {"return": {"type": "HTMLElement", "description": "Reference to TH liner element."}, "params": [{"type": "YAHOO.widget.Column | HTMLElement | String", "name": "theadCell", "description": "  Column instance,\nDOM element reference, or string ID."}], "description": "Returns DOM reference to a TH liner element. Needed to normalize for resizeable \nColumns, which have an additional resizer liner DIV element between the TH\nelement and the liner DIV element.", "guessedname": "getThLinerEl", "guessedtype": "function"}, "getRecordSet": {"return": {"type": "YAHOO.widget.RecordSet", "description": "RecordSet instance."}, "description": "Returns the DataTable instance's RecordSet instance.", "guessedname": "getRecordSet", "guessedtype": "function"}, "updateRow": {"params": [{"type": "YAHOO.widget.Record | Number | HTMLElement | String", "name": "row", "description": " \nWhich row to update: By Record instance, by Record's RecordSet\nposition index, by HTMLElement reference to the TR element, or by ID string\nof the TR element."}, {"type": "Object", "name": "oData", "description": "  Object literal of data for the row."}], "description": "For the given row, updates the associated Record with the given data. If the\nrow is on current page, the corresponding DOM elements are also updated.", "guessedname": "updateRow", "guessedtype": "function"}, "getPreviousTrEl": {"return": {"type": "HTMLElement", "description": "Reference to previous TR element."}, "params": [{"type": "HTMLElement | String | Number | YAHOO.widget.Record", "name": "row", "description": "  Element\nreference, ID string, page row index, or Record from which to get previous TR element."}], "description": "Returns DOM reference to the previous TR element from the given TR element, or null.", "guessedname": "getPreviousTrEl", "guessedtype": "function"}, "_initColumnHelpers": {"private": "", "description": "Initializes elements associated with Column functionality: ColumnDD and ColumnResizers.", "guessedname": "_initColumnHelpers", "guessedtype": "function"}, "hideTableMessage": {"description": "Hides secondary TBODY.", "guessedname": "hideTableMessage", "guessedtype": "function"}, "_getColumnClassnames": {"return": {"type": "String", "description": "A String of classnames to be assigned to TH or TD elements\nfor given Column."}, "description": "Retruns classnames to represent current Column states.", "private": "", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String[]", "name": "aAddClasses", "description": "  An array of additional classnames to add to the\nreturn value."}], "guessedname": "_getColumnClassNames", "guessedtype": "function"}, "onEventUnhighlightCell": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to unhighlight cell. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventUnhighlightCell", "guessedtype": "function"}, "onEventSelectColumn": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to select Column.", "guessedname": "onEventSelectColumn", "guessedtype": "function"}, "_initTbodyEl": {"guessedname": "_initTbodyEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create TBODY ."}], "description": "Initializes TBODY element for data.", "private": "", "guessedtype": "function"}, "DataTable.formatCurrency": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "oData", "description": "  Data value for the cell."}], "description": "Formats currency. Default unit is USD.", "guessedname": "formatCurrency", "guessedtype": "function"}, "unselectRow": {"params": [{"type": "HTMLElement | String | YAHOO.widget.Record | Number", "name": "row", "description": "  HTML element\nreference or ID string, Record instance, or RecordSet position index."}], "description": "Sets given row to the unselected state.", "guessedname": "unselectRow", "guessedtype": "function"}, "DataTable.formatTheadCell": {"deprecated": "Use formatTheadCell.", "params": [{"type": "HTMLElement", "name": "elCellLabel", "description": "  The label SPAN element within the TH liner,\nnot the liner DIV element."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oSortedBy", "description": "  Sort state object literal."}], "description": "Outputs markup into the given TH based on given Column.", "guessedname": "formatTheadCell", "guessedtype": "function"}, "_onRenderChainEnd": {"private": "", "description": "Validates minWidths whenever the render chain ends.", "guessedname": "_onRenderChainEnd", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the DataSource instance."}, "description": "DataSource instance name, for logging.", "guessedname": "toString", "guessedtype": "function"}, "getTbodyEl": {"return": {"type": "HTMLElement", "description": "Reference to TBODY element."}, "description": "Returns DOM reference to the DataTable's primary TBODY element.", "guessedname": "getTbodyEl", "guessedtype": "function"}, "DataTable.formatLink": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats links.", "guessedname": "formatLink", "guessedtype": "function"}, "getTdLinerEl": {"return": {"type": "HTMLElement", "description": "Reference to TD liner element."}, "params": [{"type": "HTMLElement | Object} TD element or child of a TD element, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": " ."}], "description": "Returns DOM reference to a TD liner element.", "guessedname": "getTdLinerEl", "guessedtype": "function"}, "getColumnSet": {"return": {"type": "YAHOO.widget.ColumnSet", "description": "ColumnSet instance."}, "description": "Returns the DataTable instance's ColumnSet instance.", "guessedname": "getColumnSet", "guessedtype": "function"}, "addRow": {"params": [{"type": "Object", "name": "oData", "description": "  Object literal of data for the row."}, {"type": "Number", "name": "index", "description": "  (optional) RecordSet position index at which to add data."}], "description": "Adds one new Record of data into the RecordSet at the index if given,\notherwise at the end. If the new Record is in page view, the\ncorresponding DOM elements are also updated.", "guessedname": "addRow", "guessedtype": "function"}, "onEventShowCellEditor": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to edit cell.", "guessedname": "onEventShowCellEditor", "guessedtype": "function"}, "_initColumnSet": {"guessedname": "_initColumnSet", "params": [{"type": "Object[]", "name": "aColumnDefs", "description": "  Array of object literal Column definitions."}], "description": "Initializes ColumnSet.", "private": "", "guessedtype": "function"}, "DataTable._destroyColumnDragTargetEl": {"guessedname": "_destroyColumnDragTargetEl", "static": "", "description": "Destroys shared Column drag target.", "private": "", "guessedtype": "function"}, "getMsgTdEl": {"return": {"type": "HTMLElement", "description": "Reference to TD element."}, "description": "Returns DOM reference to the TD element within the secondary TBODY that is\nused to display messages.", "guessedname": "getMsgTdEl", "guessedtype": "function"}, "DataTable.formatEmail": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats emails.", "guessedname": "formatEmail", "guessedtype": "function"}, "unselectCell": {"params": [{"type": "HTMLElement | String", "name": "cell", "description": "  DOM element reference or ID string\nto DataTable page element or RecordSet index."}], "description": "Sets given cell to the unselected state.", "guessedname": "unselectCell", "guessedtype": "function"}, "_onTableMouseout": {"guessedname": "_onTableMouseout", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The mouseout event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles mouseout events on the DataTable instance.", "private": "", "guessedtype": "function"}, "getCellEditor": {"return": {"type": "YAHOO.widget.CellEditor", "description": "CellEditor instance."}, "description": "Returns current CellEditor instance, or null.", "guessedname": "getCellEditor", "guessedtype": "function"}, "_destroyColumnHelpers": {"private": "", "description": "Destroys elements associated with Column functionality: ColumnDD and ColumnResizers.", "guessedname": "_destroyColumnHelpers", "guessedtype": "function"}, "getAboveTdEl": {"return": {"type": "HTMLElement", "description": "Reference to next TD element, or null."}, "params": [{"type": "HTMLElement | String | Object} DOM element reference or string ID, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": "  from which to get next TD element."}], "description": "Returns DOM reference to the above TD element from the given cell, or null.", "guessedname": "getAboveTdEl", "guessedtype": "function"}, "onEventFormatCell": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to format cell.", "guessedname": "onEventFormatCell", "guessedtype": "function"}, "_onEditorKeydownEvent": {"guessedname": "_onEditorKeydownEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through keydownEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "_setRowStripes": {"guessedname": "_setRowStripes", "params": [{"type": "HTMLElement | String | Number", "name": "row", "description": "  (optional) HTML TR element reference\nor string ID, or page row index of where to start striping."}, {"type": "Number", "name": "range", "description": "  (optional) If given, how many rows to stripe, otherwise\nstripe all the rows until the end."}], "description": "Assigns the classes DT.CLASS_EVEN and DT.CLASS_ODD to one, many, or all TR elements.", "private": "", "guessedtype": "function"}, "_deleteTrEl": {"return": {"type": "Boolean", "description": "Returns true if successful, else returns false."}, "description": "Deletes TR element by DOM reference or by DataTable page row index.", "private": "", "params": [{"type": "HTMLElement | Number", "name": "row", "description": "  TR element reference or Datatable page row index."}], "guessedname": "_deleteTrEl", "guessedtype": "function"}, "_destroyPaginator": {"private": "", "description": "Calls Paginator's destroy() method", "guessedname": "_destroyPaginator", "guessedtype": "function"}, "_clearTrTemplateEl": {"private": "", "description": "Clears TR element template in response to any Column state change.", "guessedname": "_clearTrTemplateEl", "guessedtype": "function"}, "onEventUnhighlightRow": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to unhighlight row. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventUnhighlightRow", "guessedtype": "function"}, "getPreviousTdEl": {"return": {"type": "HTMLElement", "description": "Reference to previous TD element, or null."}, "params": [{"type": "HTMLElement | String | Object} DOM element reference or string ID, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": "  from which to get previous TD element."}], "description": "Returns DOM reference to the previous TD element from the given cell, or null.", "guessedname": "getPreviousTdEl", "guessedtype": "function"}, "_destroyContainerEl": {"guessedname": "_destroyContainerEl", "params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Reference to the container element."}], "description": "Destroy's the DataTable outer container element, if available.", "private": "", "guessedtype": "function"}, "_getTrTemplateEl": {"guessedname": "_getTrTemplateEl", "return": {"type": "HTMLElement", "description": "A TR element to be cloned and added to the DOM."}, "description": "Returns a new TR element template with TD elements classed with current\nColumn states.", "private": "", "guessedtype": "function"}, "unselectAllRows": {"description": "Clears out all row selections.", "guessedname": "unselectAllRows", "guessedtype": "function"}, "getSelectedTdEls": {"return": {"type": "HTMLElement[]", "description": "Array of selected TD elements."}, "description": "Returns array of selected TD elements on the page.", "guessedname": "getSelectedTdEls", "guessedtype": "function"}, "destroyCellEditor": {"description": "Destroys active CellEditor instance and UI.", "guessedname": "destroyCellEditor", "guessedtype": "function"}, "onDataReturnInitializeTable": {"params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Callback function receives data from DataSource and populates an entire\nDataTable with Records and TR elements, clearing previous Records, if any.", "guessedname": "onDataReturnInitializeTable", "guessedtype": "function"}, "doBeforeShowCellEditor": {"return": {"type": "Boolean", "description": "Return true to continue showing CellEditor."}, "params": [{"type": "YAHOO.widget.CellEditor", "name": "oCellEditor", "description": "  The CellEditor instance."}], "description": "Overridable abstract method to customize CellEditor before showing.", "guessedname": "doBeforeShowCellEditor", "guessedtype": "function"}, "_setFirstRow": {"private": "", "description": "Assigns the class YAHOO.widget.DataTable.CLASS_FIRST to the first TR element\nof the DataTable page and updates internal tracker.", "guessedname": "_setFirstRow", "guessedtype": "function"}, "reorderColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Reordered Column instance."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "index", "description": "  New tree index."}], "description": "Removes given Column and inserts into given tree index. NOTE: You\ncan only reorder non-nested Columns and top-level parent Columns. You cannot\nreorder a nested Column to an existing parent.", "guessedname": "reorderColumn", "guessedtype": "function"}, "_restoreMinWidth": {"guessedname": "_restoreMinWidth", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Which Column."}], "description": "Restores minWidth.", "private": "", "guessedtype": "function"}, "_onDocumentClick": {"guessedname": "_onDocumentClick", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The click event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles click events on the DOCUMENT.", "private": "", "guessedtype": "function"}, "DataTable.validateNumber": {"static": "", "params": [{"type": "Object", "name": "oData", "description": "  Data to validate."}], "description": "Validates data value to type Number, doing type conversion as\nnecessary. A valid Number value is return, else null is returned\nif input value does not validate.", "guessedname": "validateNumber", "guessedtype": "function"}, "DataTable._initColumnDragTargetEl": {"return": {"type": "HTMLElement", "description": "Reference to Column drag target."}, "description": "Creates HTML markup for shared Column drag target.", "private": "", "static": "", "guessedname": "_initColumnDragTargetEl", "guessedtype": "function"}, "undisable": {"description": "Undisables DataTable UI.", "guessedname": "undisable", "guessedtype": "function"}, "_destroyTheadEl": {"private": "", "description": "Destroy's the DataTable THEAD element, if available.", "guessedname": "_destroyTheadEl", "guessedtype": "function"}, "DataTable.formatCheckbox": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object | Boolean} Data value for the cell. Can be a simple\nBoolean to indicate whether checkbox is checked or not. Can be object literal\n{checked:bBoolean, label:sLabel", "name": "oData", "description": " . Other forms of oData require a custom\nformatter."}], "description": "Formats a CHECKBOX element.", "guessedname": "formatCheckbox", "guessedtype": "function"}, "getColumn": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  TH/TD element (or child of a\nTH/TD element), a Column key, or a ColumnSet key index."}], "description": "For the given identifier, returns the associated Column instance. Note: For\ngetting Columns by Column ID string, please use the method getColumnById().", "guessedname": "getColumn", "guessedtype": "function"}, "DataTable.formatNumber": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats numbers.", "guessedname": "formatNumber", "guessedtype": "function"}, "_handleCellBlockSelectionByMouse": {"guessedname": "_handleCellBlockSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"cellblock\".", "private": "", "guessedtype": "function"}, "validateColumnWidths": {"params": [{"type": "YAHOO.widget.Column", "name": "oArg.column", "description": "  (optional) One Column to validate. If null, all Columns' widths are validated."}], "description": "For one or all Columns, when Column is not hidden, width is not set, and minWidth\nand/or maxAutoWidth is set, validates auto-width against minWidth and maxAutoWidth.", "guessedname": "validateColumnWidths", "guessedtype": "function"}, "_onTheadFocus": {"guessedname": "_onTheadFocus", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The focus event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles focus events on the THEAD element.", "private": "", "guessedtype": "function"}, "getDataSource": {"return": {"type": "YAHOO.util.DataSource", "description": "DataSource instance."}, "description": "Returns the DataTable instance's DataSource instance.", "guessedname": "getDataSource", "guessedtype": "function"}, "getColumnSortDir": {"return": {"type": "String", "description": "YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTableCLASS_DESC."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oSortedBy", "description": "  (optional) Specify the state, or use current state."}], "description": "For the given Column instance, returns next direction to sort.", "guessedname": "getColumnSortDir", "guessedtype": "function"}, "_handleCellBlockSelectionByKey": {"guessedname": "_handleCellBlockSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"cellblock\".", "private": "", "guessedtype": "function"}, "DataTable.formatDefault": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Default cell formatter", "guessedname": "formatDefault", "guessedtype": "function"}, "select": {"deprecated": "Use selectRow.", "guessedname": "select", "guessedtype": "function"}, "_initRecordSet": {"private": "", "description": "Initializes RecordSet.", "guessedname": "_initRecordSet", "guessedtype": "function"}, "getNextTrEl": {"return": {"type": "HTMLElement", "description": "Reference to next TR element."}, "params": [{"type": "HTMLElement | String | Number | YAHOO.widget.Record", "name": "row", "description": "  Element\nreference, ID string, page row index, or Record from which to get next TR element."}], "description": "Returns DOM reference to the next TR element from the given TR element, or null.", "guessedname": "getNextTrEl", "guessedtype": "function"}, "_updateTrEl": {"return": {"type": "HTMLElement", "description": "DOM reference to the new TR element."}, "description": "Formats the contents of the given TR's TD elements with data from the given\nRecord. Only innerHTML should change, nothing structural.", "private": "", "params": [{"type": "HTMLElement", "name": "elTr", "description": "  The TR element to update."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  The associated Record instance."}], "guessedname": "_updateTrEl", "guessedtype": "function"}, "_initTableEl": {"guessedname": "_initTableEl", "params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Container element into which to create TABLE."}], "description": "Creates HTML markup for TABLE, COLGROUP, THEAD and TBODY elements in outer\ncontainer element.", "private": "", "guessedtype": "function"}, "unhighlightColumn": {"params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  DOM reference or ID string to a\nTH/TD element (or child of a TH/TD element), a Column key, or a ColumnSet key index."}], "description": "Removes the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED to cells of the given Column.\nNOTE: You cannot highlight/unhighlight nested Columns. You can only\nhighlight/unhighlight non-nested Columns, and bottom-level key Columns.", "guessedname": "unhighlightColumn", "guessedtype": "function"}, "DataTable.editDropdown": {"deprecated": "Use YAHOO.widget.DropdownCellEditor.", "guessedname": "editDropdown", "guessedtype": "function"}, "_getSelectionAnchor": {"guessedname": "_getSelectionAnchor", "params": [{"type": "Object", "name": "oTrigger", "description": "  (Optional) Object literal of selection trigger values\n(for key events)."}], "description": "Returns object literal of values that represent the selection anchor. Used\nto determine selection behavior resulting from a user event.", "private": "", "guessedtype": "function"}, "_onEditorBlurEvent": {"guessedname": "_onEditorBlurEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through blurEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "getNextTdEl": {"return": {"type": "HTMLElement", "description": "Reference to next TD element, or null."}, "params": [{"type": "HTMLElement | String | Object} DOM element reference or string ID, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": "  from which to get next TD element."}], "description": "Returns DOM reference to the next TD element from the given cell, or null.", "guessedname": "getNextTdEl", "guessedtype": "function"}, "_destroyResizeableColumns": {"private": "", "description": "Disables resizeability on key Column TH elements.", "guessedname": "_destroyResizeableColumns", "guessedtype": "function"}, "onDataReturnInsertRows": {"params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  Argument payload, looks in oPayload.insertIndex."}], "description": "Callback function receives data from DataSource and inserts new records\nstarting at the index specified in oPayload.insertIndex. The value for\noPayload.insertIndex can be populated when sending the request to the DataSource,\nor by accessing oPayload.insertIndex with the doBeforeLoadData() method at runtime.\nIf applicable, creates or updates corresponding TR elements.", "guessedname": "onDataReturnInsertRows", "guessedtype": "function"}, "saveCellEditor": {"description": "Saves active CellEditor input to Record and upates DOM UI.", "guessedname": "saveCellEditor", "guessedtype": "function"}, "unhighlightRow": {"params": [{"type": "HTMLElement | String", "name": "row", "description": "  DOM element reference or ID string."}], "description": "Removes the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED from the given row.", "guessedname": "unhighlightRow", "guessedtype": "function"}, "_setSelections": {"private": "", "description": "Assigns the class DT.CLASS_SELECTED to TR and TD elements.", "guessedname": "_setSelections", "guessedtype": "function"}, "_unsetLastRow": {"private": "", "description": "Removes the class YAHOO.widget.DataTable.CLASS_LAST from the last TR element\nof the DataTable page and updates internal tracker.", "guessedname": "_unsetLastRow", "guessedtype": "function"}, "getSelectedCells": {"return": {"type": "Object[]", "description": "Array of selected cells by Record ID and Column ID."}, "description": "Returns selected cells as an array of object literals:\n{recordId:sRecordId, columnKey:sColumnKey}.", "guessedname": "getSelectedCells", "guessedtype": "function"}, "unselectColumn": {"params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  DOM reference or ID string to a\nTH/TD element (or child of a TH/TD element), a Column key, or a ColumnSet key index."}], "description": "Unselects given Column. NOTE: You cannot select/unselect nested Columns. You can only\nselect/unselect non-nested Columns, and bottom-level key Columns.", "guessedname": "unselectColumn", "guessedtype": "function"}, "DataTable.formatTextbox": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Formats INPUT TYPE=TEXT elements.", "guessedname": "formatTextbox", "guessedtype": "function"}, "_setLastRow": {"private": "", "description": "Assigns the class YAHOO.widget.DataTable.CLASS_LAST to the last TR element\nof the DataTable page and updates internal tracker.", "guessedname": "_setLastRow", "guessedtype": "function"}, "_destroyColgroupEl": {"private": "", "description": "Destroy's the DataTable COLGROUP element, if available.", "guessedname": "_destroyColgroupEl", "guessedtype": "function"}, "_initDraggableColumns": {"private": "", "description": "Initializes top-level Column TH elements into DD instances.", "guessedname": "_initDraggableColumns", "guessedtype": "function"}, "DataTable._initColumnResizerProxyEl": {"return": {"type": "HTMLElement", "description": "Reference to Column resizer proxy."}, "description": "Creates HTML markup for shared Column resizer proxy.", "private": "", "static": "", "guessedname": "_initColumnResizerProxyEl", "guessedtype": "function"}, "_onTbodyFocus": {"guessedname": "_onTbodyFocus", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The focus event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles focus events on the TBODY element.", "private": "", "guessedtype": "function"}, "getLastSelectedCell": {"return": {"type": "Object", "description": "Object literal representation of a cell."}, "description": "Returns last selected cell as an object literal:\n{recordId:sRecordId, columnKey:sColumnKey}.", "guessedname": "getLastSelectedCell", "guessedtype": "function"}, "onDataReturnUpdateRows": {"params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  Argument payload, looks in oPayload.updateIndex."}], "description": "Callback function receives data from DataSource and incrementally updates Records\nstarting at the index specified in oPayload.updateIndex. The value for\noPayload.updateIndex can be populated when sending the request to the DataSource,\nor by accessing oPayload.updateIndex with the doBeforeLoadData() method at runtime.\nIf applicable, creates or updates corresponding TR elements.", "guessedname": "onDataReturnUpdateRows", "guessedtype": "function"}, "DataTable.editRadio": {"deprecated": "Use YAHOO.widget.RadioCellEditor.", "guessedname": "editRadio", "guessedtype": "function"}, "_reorderColgroupColEl": {"guessedname": "_reorderColgroupColEl", "params": [{"type": "Number[]", "name": "aKeyIndexes", "description": "  Array of indexes of removed COL element."}, {"type": "Number", "name": "newIndex", "description": "  New index."}], "description": "Reorders a COL element from old index(es) to new index.", "private": "", "guessedtype": "function"}, "_runRenderChain": {"private": "", "description": "Internal wrapper calls run() on render Chain instance.", "guessedname": "_runRenderChain", "guessedtype": "function"}, "_getSelectionTrigger": {"private": "", "description": "Returns object literal of values that represent the selection trigger. Used\nto determine selection behavior resulting from a key event.", "guessedname": "_getSelectionTrigger", "guessedtype": "function"}, "_createTrEl": {"return": {"type": "HTMLElement", "description": "The new TR element.  This must be added to the DOM."}, "description": "Create a new TR element for a given Record and appends it with the correct\nnumber of Column-state-classed TD elements. Striping is the responsibility of\nthe calling function, which may decide to stripe the single row, a subset of\nrows, or all the rows.", "private": "", "params": [{"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance"}], "guessedname": "_addTrEl", "guessedtype": "function"}, "getLastTrEl": {"return": {"type": "HTMLElement", "description": "Reference to last TR element."}, "description": "Returns DOM reference to the last TR element in the DataTable page, or null.", "guessedname": "getLastTrEl", "guessedtype": "function"}, "selectColumn": {"params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  DOM reference or ID string to a\nTH/TD element (or child of a TH/TD element), a Column key, or a ColumnSet key index."}], "description": "Selects given Column. NOTE: You cannot select/unselect nested Columns. You can only\nselect/unselect non-nested Columns, and bottom-level key Columns.", "guessedname": "selectColumn", "guessedtype": "function"}, "onEventHighlightColumn": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to highlight Column. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventHighlightColumn", "guessedtype": "function"}, "DataTable.formatText": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Formats text strings.", "guessedname": "formatText", "guessedtype": "function"}, "_initCellEditing": {"private": "", "description": "Initializes CellEditor integration.", "guessedname": "_initCellEditing", "guessedtype": "function"}, "_setColumnWidthDynFunction": {"guessedname": "_setColumnWidthDynFunction", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sWidth", "description": "  New width value."}], "description": "Updates width of a Column's liner DIV elements by dynamically creating a\nfunction to update all element style properties in one pass. Note: This\ntechnique is not supported in sandboxed environments that prohibit EVALs.", "private": "", "guessedtype": "function"}, "_destroyDraggableColumns": {"private": "", "description": "Disables DD from top-level Column TH elements.", "guessedname": "_destroyDraggableColumns", "guessedtype": "function"}, "_initConfigs": {"guessedname": "_initConfigs", "params": [{"type": "Object", "name": "oConfig", "description": "  Object literal of config values."}], "description": "Initializes object literal of config values.", "private": "", "guessedtype": "function"}, "_initThEl": {"guessedname": "_initThEl", "params": [{"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column object."}], "description": "Populates TH element as defined by Column.", "private": "", "guessedtype": "function"}, "getTrEl": {"return": {"type": "HTMLElement", "description": "Reference to TR element, or null."}, "params": [{"type": "HTMLElement | String | Number | YAHOO.widget.Record", "name": "row", "description": "  Which row to\nget: by element reference, ID string, page row index, or Record."}], "description": "Returns the corresponding TR reference for a given DOM element, ID string or\ndirectly page row index. If the given identifier is a child of a TR element,\nthen DOM tree is traversed until a parent TR element is returned, otherwise\nnull.", "guessedname": "getTrEl", "guessedtype": "function"}, "resetCellEditor": {"deprecated": "Use destroyCellEditor", "guessedname": "resetCellEditor", "guessedtype": "function"}, "onPaginatorChange": {"deprecated": "Use onPaginatorChangeRequest", "description": "Alias for onPaginatorChange for backward compatibility", "guessedname": "onPaginatorChange", "guessedtype": "property"}, "doBeforeSortColumn": {"return": {"type": "Boolean", "description": "Return true to continue sorting Column."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sSortDir", "description": "  YAHOO.widget.DataTable.CLASS_ASC or\nYAHOO.widget.DataTable.CLASS_DESC."}], "description": "Overridable method gives implementers a hook to show loading message before\nsorting Column.", "guessedname": "doBeforeSortColumn", "guessedtype": "function"}, "onShow": {"description": "Setting display:none on DataTable or any parent may impact width validations.\nAfter setting display back to \"\", implementers should call this method to \nmanually perform those validations.", "guessedname": "onShow", "guessedtype": "function"}, "getLastSelectedRecord": {"return": {"type": "String", "description": "Record ID of last selected row."}, "description": "Returns last selected Record ID.", "guessedname": "getLastSelectedRecord", "guessedtype": "function"}, "getTheadEl": {"return": {"type": "HTMLElement", "description": "Reference to THEAD element."}, "description": "Returns DOM reference to the DataTable's THEAD element.", "guessedname": "getTheadEl", "guessedtype": "function"}, "_repaintWebkit": {"guessedname": "_repaintWebkit", "el": "{HTMLElement} (Optional) Element to repaint, otherwise entire document body.", "description": "Forces Webkit repaint.", "private": "", "guessedtype": "property"}, "_handleStandardSelectionByKey": {"guessedname": "_handleStandardSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"standard\".", "private": "", "guessedtype": "function"}, "DataTable.editTextbox": {"deprecated": "Use YAHOO.widget.TextboxCellEditor", "guessedname": "editTextbox", "guessedtype": "function"}, "insertColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Inserted Column instance."}, "params": [{"type": "Object | YAHOO.widget.Column", "name": "oColumn", "description": "  Object literal Column\ndefinition or a Column instance."}, {"type": "Number", "name": "index", "description": "  (optional) New tree index."}], "description": "Inserts given Column at the index if given, otherwise at the end. NOTE: You\ncan only add non-nested Columns and top-level parent Columns. You cannot add\na nested Column to an existing parent.", "guessedname": "insertColumn", "guessedtype": "function"}, "getState": {"return": {"type": "Object", "description": "DataTable instance state object literal values."}, "description": "Returns on object literal representing the DataTable instance's current\nstate with the following properties:\n<dl>\n<dt>pagination</dt>\n<dd>Instance of YAHOO.widget.Paginator</dd>\n<dt>sortedBy</dt>\n<dd>\n<dl>\n<dt>sortedBy.key</dt>\n<dd>{String} Key of sorted Column</dd>\n<dt>sortedBy.dir</dt>\n<dd>{String} Initial sort direction, either YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTable.CLASS_DESC</dd>\n</dl>\n</dd>\n<dt>selectedRows</dt>\n<dd>Array of selected rows by Record ID.</dd>\n<dt>selectedCells</dt>\n<dd>Selected cells as an array of object literals:\n{recordId:sRecordId, columnKey:sColumnKey}</dd>\n</dl>", "guessedname": "getState", "guessedtype": "function"}, "onEditorUnblockEvent": {"params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Public handler of the editorUnblockEvent. By default, undisables DataTable UI.", "guessedname": "onEditorUnblockEvent", "guessedtype": "function"}, "getSelectedTrEls": {"return": {"type": "HTMLElement[]", "description": "Array of selected TR elements."}, "description": "Returns array of selected TR elements on the page.", "guessedname": "getSelectedTrEls", "guessedtype": "function"}, "getThEl": {"return": {"type": "HTMLElement", "description": "Reference to TH element."}, "params": [{"type": "YAHOO.widget.Column | HTMLElement | String", "name": "theadCell", "description": "  Column instance,\nDOM element reference, or string ID."}], "description": "Returns DOM reference to a TH element.", "guessedname": "getThEl", "guessedtype": "function"}, "_handleCellRangeSelectionByMouse": {"guessedname": "_handleCellRangeSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"cellrange\".", "private": "", "guessedtype": "function"}, "_focusEl": {"guessedname": "_focusEl", "params": [{"type": "HTMLElement", "name": "el", "description": "  Element."}], "description": "Sets focus on the given element.", "private": "", "guessedtype": "function"}, "getFirstTrEl": {"return": {"type": "HTMLElement", "description": "Reference to TR element."}, "description": "Returns DOM reference to the first TR element in the DataTable page, or null.", "guessedname": "getFirstTrEl", "guessedtype": "function"}, "_onEditorUnblockEvent": {"guessedname": "_onEditorUnblockEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through unblockEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "hideColumn": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}], "description": "Hides given Column. NOTE: You cannot hide/show nested Columns. You can only\nhide/show non-nested Columns, and top-level parent Columns (which will\nhide/show all children Columns).", "guessedname": "hideColumn", "guessedtype": "function"}, "onDataReturnSetRecords": {"deprecated": "Use onDataReturnSetRows", "description": "Alias for onDataReturnSetRows for backward compatibility", "guessedname": "onDataReturnSetRecords", "guessedtype": "property"}, "_onTableKeypress": {"guessedname": "_onTableKeypress", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The key event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles keypress events on the TABLE. Mainly to support stopEvent on Mac.", "private": "", "guessedtype": "function"}, "refreshView": {"deprecated": "Use render.", "guessedname": "refreshView", "guessedtype": "function"}, "focusTheadEl": {"description": "Brings focus to the THEAD element.", "guessedname": "focusTheadEl", "guessedtype": "function"}, "getRecord": {"return": {"type": "YAHOO.widget.Record", "description": "Record instance."}, "params": [{"type": "HTMLElement | Number | String", "name": "row", "description": "  DOM reference to a TR element (or\nchild of a TR element), RecordSet position index, or Record ID."}], "description": "For the given identifier, returns the associated Record instance.", "guessedname": "getRecord", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique ID of the DataSource instance."}, "description": "Returns unique id assigned to instance, which is a useful prefix for\ngenerating unique DOM ID strings.", "guessedname": "getId", "guessedtype": "function"}, "_destroyMsgTbodyEl": {"private": "", "description": "Destroy's the DataTable message TBODY element, if available.", "guessedname": "_destroyMsgTbodyEl", "guessedtype": "function"}, "initializeTable": {"description": "Resets a RecordSet with the given data and populates the page view\nwith the new data. Any previous data, and selection and sort states are\ncleared. New data should be added as a separate step.", "guessedname": "initializeTable", "guessedtype": "function"}, "_onEditorShowEvent": {"guessedname": "_onEditorShowEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through showEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "highlightCell": {"params": [{"type": "HTMLElement | String", "name": "cell", "description": "  DOM element reference or ID string."}], "description": "Assigns the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED to the given cell.", "guessedname": "highlightCell", "guessedtype": "function"}, "_initResizeableColumns": {"private": "", "description": "Initializes resizeability on key Column TH elements.", "guessedname": "_initResizeableColumns", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire DataTable instance and related objects, removes attached\nevent listeners, and clears out DOM elements inside the container. After\ncalling this method, the instance reference should be expliclitly nulled by\nimplementer, as in myDataTable = null. Use with caution!", "guessedname": "destroy", "guessedtype": "function"}, "_handlePaginatorChange": {"guessedname": "_handlePaginatorChange", "params": [{"type": "Object", "name": "e", "description": "  Change event object containing keys 'type','newValue',\nand 'prevValue'"}], "description": "Update the UI infrastructure in response to a \"paginator\" attribute change.", "private": "", "guessedtype": "function"}, "DataTable.formatButton": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object | Boolean", "name": "oData", "description": "  Data value for the cell. By default, the value\nis what gets written to the BUTTON."}], "description": "Formats a BUTTON element.", "guessedname": "formatButton", "guessedtype": "function"}, "DataTable.formatDropdown": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats SELECT elements.", "guessedname": "formatDropdown", "guessedtype": "function"}, "_onTableMouseup": {"guessedname": "_onTableMouseup", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The mouseup event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles mouseup events on the DataTable instance.", "private": "", "guessedtype": "function"}, "_handleSingleSelectionByMouse": {"guessedname": "_handleSingleSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"single\".", "private": "", "guessedtype": "function"}, "selectCell": {"params": [{"type": "HTMLElement | String", "name": "cell", "description": "  DOM element reference or ID string\nto DataTable page element or RecordSet index."}], "description": "Sets given cell to the selected state.", "guessedname": "selectCell", "guessedtype": "function"}, "onEditorBlockEvent": {"params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Public handler of the editorBlockEvent. By default, disables DataTable UI.", "guessedname": "onEditorBlockEvent", "guessedtype": "function"}, "cancelCellEditor": {"description": "Cancels active CellEditor.", "guessedname": "cancelCellEditor", "guessedtype": "function"}, "_unselectAllTrEls": {"private": "", "description": "Convenience method to remove the class YAHOO.widget.DataTable.CLASS_SELECTED\nfrom all TR elements on the page.", "guessedname": "_unselectAllTrEls", "guessedtype": "function"}, "_removeColgroupColEl": {"guessedname": "_removeColgroupColEl", "params": [{"type": "Number", "name": "index", "description": "  Index of removed COL element."}], "description": "Removes a COL element to COLGROUP at given index.", "private": "", "guessedtype": "function"}, "_initDomElements": {"guessedname": "_initDomElements", "params": [{"type": "HTMLElement | String} HTML DIV element by reference or ID. \nreturn {Boolean", "name": "elContainer", "description": "  False in case of error, otherwise true"}], "description": "Initializes DOM elements.", "private": "", "guessedtype": "function"}, "DataTable.editDate": {"deprecated": "Use YAHOO.widget.DateCellEditor.", "guessedname": "editDate", "guessedtype": "function"}, "render": {"description": "Renders the view with existing Records from the RecordSet while\nmaintaining sort, pagination, and selection states. For performance, reuses\nexisting DOM elements when possible while deleting extraneous elements.", "guessedname": "render", "guessedtype": "function"}, "disable": {"description": "Disables DataTable UI.", "guessedname": "disable", "guessedtype": "function"}, "_destroyTableEl": {"private": "", "description": "Destroy's the DataTable TABLE element, if available.", "guessedname": "_destroyTableEl", "guessedtype": "function"}, "getBody": {"deprecated": "Use getTbodyEl().", "guessedname": "getBody", "guessedtype": "function"}, "doBeforePaginatorChange": {"return": {"type": "Boolean", "description": "Return true to continue changing Paginator value."}, "params": [{"type": "Object", "name": "oPaginatorState", "description": "  An object literal describing the proposed pagination state."}], "description": "Overridable method gives implementers a hook to show loading message before\nchanging Paginator value.", "guessedname": "doBeforePaginatorChange", "guessedtype": "function"}, "_unsetFirstRow": {"private": "", "description": "Removes the class YAHOO.widget.DataTable.CLASS_FIRST from the first TR element\nof the DataTable page and updates internal tracker.", "guessedname": "_unsetFirstRow", "guessedtype": "function"}, "getRecordIndex": {"return": {"type": "Number", "description": "Record's RecordSet index, or null."}, "params": [{"type": "YAHOO.widget.Record | HTMLElement | Number", "name": "row", "description": "  Record instance, TR\nelement reference or page row index."}], "description": "Returns Record index for given TR element or page row index.", "guessedname": "getRecordIndex", "guessedtype": "function"}, "_repaintOpera": {"private": "", "description": "Forces Opera repaint.", "guessedname": "_repaintOpera", "guessedtype": "property"}, "handleDataReturnPayload": {"return": {"type": "MIXED", "description": "oPayload  State values."}, "description": "Hook to update oPayload before consumption.", "param": "oRequest {MIXED} Original generated request.", "params": [{"type": "MIXED", "name": "oRequest", "description": "  Original generated request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  State values."}], "guessedname": "handleDataReturnPayload", "guessedtype": "function"}, "doBeforeLoadData": {"return": {"type": "Boolean", "description": "Return true to continue loading data into RecordSet and\nupdating DataTable with new Records, false to cancel."}, "params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  additional arguments"}], "description": "Overridable method gives implementers a hook to access data before\nit gets added to RecordSet and rendered to the TBODY.", "guessedname": "doBeforeLoadData", "guessedtype": "function"}, "onDataReturnSetRows": {"params": [{"type": "MIXED", "name": "oRequest", "description": "  Original generated request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Callback function receives reponse from DataSource and populates the\nRecordSet with the results.", "guessedname": "onDataReturnSetRows", "guessedtype": "function"}, "getContainerEl": {"return": {"type": "HTMLElement", "description": "Reference to DIV element."}, "description": "Returns DOM reference to the DataTable's container element.", "guessedname": "getContainerEl", "guessedtype": "function"}, "_onTableDblclick": {"guessedname": "_onTableDblclick", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The dblclick event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles dblclick events on the DataTable instance.", "private": "", "guessedtype": "function"}, "getMsgTbodyEl": {"return": {"type": "HTMLElement", "description": "Reference to TBODY element."}, "description": "Returns DOM reference to the DataTable's secondary TBODY element that is\nused to display messages.", "guessedname": "getMsgTbodyEl", "guessedtype": "function"}, "getLastTdEl": {"return": {"type": "HTMLElement", "description": "Reference to last TD element."}, "description": "Returns DOM reference to the last TD element in the DataTable page (by default),\nthe first TD element of the optionally given row, or null.", "guessedname": "getLastTdEl", "guessedtype": "function"}, "getSelectedColumns": {"return": {"type": "YAHOO.widget.Column[]", "description": "Array of Column instances."}, "description": "Returns an array selected Column instances.", "guessedname": "getSelectedColumns", "guessedtype": "function"}, "_onTableMouseover": {"guessedname": "_onTableMouseover", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The mouseover event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles mouseover events on the DataTable instance.", "private": "", "guessedtype": "function"}, "DataTable.formatDate": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats JavaScript Dates.", "guessedname": "formatDate", "guessedtype": "function"}, "_syncColWidths": {"deprecated": "Use validateColumnWidths.", "guessedname": "_syncColWidths", "guessedtype": "function"}, "_initMsgTbodyEl": {"guessedname": "_initMsgTbodyEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create TBODY"}], "description": "Initializes TBODY element for messaging.", "private": "", "guessedtype": "function"}, "formatCell": {"params": [{"type": "HTMLElement", "name": "elLiner", "description": "  The liner DIV element within the TD."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  (Optional) Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  (Optional) Column instance."}], "description": "Outputs markup into the given TD based on given Record.", "guessedname": "formatCell", "guessedtype": "function"}, "_handleSingleSelectionByKey": {"guessedname": "_handleSingleSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"single\".", "private": "", "guessedtype": "function"}, "highlightRow": {"params": [{"type": "HTMLElement | String", "name": "row", "description": "  DOM element reference or ID string."}], "description": "Assigns the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED to the given row.", "guessedname": "highlightRow", "guessedtype": "function"}, "unselectAllCells": {"description": "Clears out all cell selections.", "guessedname": "unselectAllCells", "guessedtype": "function"}, "_onEditorBlockEvent": {"guessedname": "_onEditorBlockEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through blockEvent of the active CellEditor.", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "DataTable.js", "guessedtype": "function", "shortname": "DataTable", "properties": {"DataTable.CLASS_MASK": {"description": "Class name assigned to mask element when DataTable is disabled.", "default": "\"yui-dt-mask\"", "static": "", "guessedname": "CLASS_MASK", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_LABEL": {"description": "Class name assigned to display label elements.", "default": "\"yui-dt-label\"", "static": "", "guessedname": "CLASS_LABEL", "guessedtype": "property", "type": "String", "final": ""}, "_sFirstTrId": {"guessedname": "_sFirstTrId", "type": "String", "description": "ID string of first TR element of the current DataTable page.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_LINER": {"description": "Class name assigned to liner DIV elements.", "default": "\"yui-dt-liner\"", "static": "", "guessedname": "CLASS_LINER", "guessedtype": "property", "type": "String", "final": ""}, "DataTable._elDynStyleNode": {"description": "Reference to the STYLE node that is dynamically created and updated\nin order to manage Column widths.", "private": "", "static": "", "guessedname": "_elDynStyleNode", "guessedtype": "property", "type": "HTMLElement"}, "_oColumnSet": {"guessedname": "_oColumnSet", "type": "YAHOO.widget.ColumnSet", "description": "ColumnSet instance for the DataTable instance.", "private": "", "guessedtype": "property"}, "_elMsgTbody": {"guessedname": "_elMsgTbody", "type": "HTMLElement", "description": "DOM reference to the secondary TBODY element used to display DataTable messages.", "private": "", "guessedtype": "property"}, "DataTable._oDynStyles": {"description": "Object literal hash of Columns and their dynamically create style rules.", "private": "", "static": "", "guessedname": "_oDynStyles", "guessedtype": "property", "type": "Object"}, "_bInit": {"description": "True if instance is initialized, so as to fire the initEvent after render.", "default": "true", "private": "", "guessedname": "_bInit", "guessedtype": "property", "type": "Boolean"}, "_elCaption": {"guessedname": "_elCaption", "type": "HTMLElement", "description": "DOM reference to the CAPTION element for the DataTable instance.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_DISABLED": {"description": "Class name assigned to disabled elements.", "default": "\"yui-dt-disabled\"", "static": "", "guessedname": "CLASS_DISABLED", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.Formatter": {"type": "Object", "static": "", "description": "Cell formatting functions.", "guessedname": "Formatter", "guessedtype": "property"}, "DataTable.CLASS_CHECKBOX": {"description": "Class name assigned to INPUT TYPE=CHECKBOX elements and/or container elements.", "default": "\"yui-dt-checkbox\"", "static": "", "guessedname": "CLASS_CHECKBOX", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_PAGINATOR": {"description": "Class name assigned to paginator container elements.", "default": "\"yui-dt-paginator\"", "static": "", "guessedname": "CLASS_PAGINATOR", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_ERROR": {"description": "Class name assigned to error indicators.", "default": "\"yui-dt-error\"", "static": "", "guessedname": "CLASS_ERROR", "guessedtype": "property", "type": "String", "final": ""}, "_oRecordSet": {"guessedname": "_oRecordSet", "type": "YAHOO.widget.RecordSet", "description": "RecordSet instance for the DataTable instance.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_DESC": {"description": "Class name assigned to descending elements.", "default": "\"yui-dt-desc\"", "static": "", "guessedname": "CLASS_DESC", "guessedtype": "property", "type": "String", "final": ""}, "DataTable._nCurrentCount": {"description": "Internal class variable tracking current number of DataTable instances,\nso that certain class values can be reset when all instances are destroyed.", "private": "", "static": "", "guessedname": "_nCurrentCount", "guessedtype": "property", "type": "Number"}, "DataTable.CLASS_HIGHLIGHTED": {"description": "Class name assigned to highlighted elements.", "default": "\"yui-dt-highlighted\"", "static": "", "guessedname": "CLASS_HIGHLIGHTED", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_EVEN": {"description": "Class name assigned to even elements.", "default": "\"yui-dt-even\"", "static": "", "guessedname": "CLASS_EVEN", "guessedtype": "property", "type": "String", "final": ""}, "DataTable._bDynStylesFallback": {"description": "Set to true if _elDynStyleNode cannot be populated due to browser incompatibility.", "private": "", "static": "", "guessedname": "_bDynStylesFallback", "guessedtype": "property", "type": "boolean"}, "_elContainer": {"guessedname": "_elContainer", "type": "HTMLElement", "description": "DOM reference to the container element for the DataTable instance into which\nall other elements get created.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_HIDDEN": {"description": "Class name assigned to hidden elements.", "default": "\"yui-dt-hidden\"", "static": "", "guessedname": "CLASS_HIDDEN", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_NEXT": {"description": "Class name assigned next indicators.", "default": "\"yui-dt-next\"", "static": "", "guessedname": "CLASS_NEXT", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_RESIZERPROXY": {"description": "Class name assigned to resizer proxy elements.", "default": "\"yui-dt-resizerproxy\"", "static": "", "guessedname": "CLASS_RESIZERPROXY", "guessedtype": "property", "type": "String", "final": ""}, "_oAnchorCell": {"guessedname": "_oAnchorCell", "type": "Object", "description": "Object literal representing cell selection anchor:\n{recordId:sRecordId, columnKey:sColumnKey}.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_RESIZER": {"description": "Class name assigned to resizer handle elements.", "default": "\"yui-dt-resizer\"", "static": "", "guessedname": "CLASS_RESIZER", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_RADIO": {"description": "Class name assigned to INPUT TYPE=RADIO elements and/or container elements.", "default": "\"yui-dt-radio\"", "static": "", "guessedname": "CLASS_RADIO", "guessedtype": "property", "type": "String", "final": ""}, "_oCellEditor": {"guessedname": "_oCellEditor", "type": "YAHOO.widget.CellEditor", "description": "The active CellEditor instance for the DataTable instance.", "private": "", "guessedtype": "property"}, "DataTable._elColumnResizerProxy": {"description": "Element reference to shared Column resizer proxy.", "private": "", "static": "", "guessedname": "_elColumnResizerProxy", "guessedtype": "property", "type": "HTMLElement"}, "DataTable.CLASS_MESSAGE": {"description": "Class name assigned to messaging elements.", "default": "\"yui-dt-message\"", "static": "", "guessedname": "CLASS_MESSAGE", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_PREVIOUS": {"description": "Class name assigned to previous indicators.", "default": "\"yui-dt-previous\"", "static": "", "guessedname": "CLASS_PREVIOUS", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_DEFAULT": {"description": "Class name assigned to default indicators.", "default": "\"yui-dt-default\"", "static": "", "guessedname": "CLASS_DEFAULT", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_DATA": {"description": "Class name assigned to data elements.", "default": "\"yui-dt-data\"", "static": "", "guessedname": "CLASS_DATA", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_RESIZERLINER": {"description": "Class name assigned to resizer liner elements.", "default": "\"yui-dt-resizerliner\"", "static": "", "guessedname": "CLASS_RESIZERLINER", "guessedtype": "property", "type": "String", "final": ""}, "_elMsgTr": {"guessedname": "_elMsgTr", "type": "HTMLElement", "description": "DOM reference to the secondary TBODY element's single TR element used to display DataTable messages.", "private": "", "guessedtype": "property"}, "_sLastTrId": {"guessedname": "_sLastTrId", "type": "String", "description": "ID string of the last TR element of the current DataTable page.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_BUTTON": {"description": "Class name assigned to BUTTON elements and/or container elements.", "default": "\"yui-dt-button\"", "static": "", "guessedname": "CLASS_BUTTON", "guessedtype": "property", "type": "String", "final": ""}, "DataTable._elColumnDragTarget": {"description": "Element reference to shared Column drag target.", "private": "", "static": "", "guessedname": "_elColumnDragTarget", "guessedtype": "property", "type": "HTMLElement"}, "DataTable.CLASS_RESIZEABLE": {"description": "Class name assigned to resizeable elements.", "default": "\"yui-dt-resizeable\"", "static": "", "guessedname": "CLASS_RESIZEABLE", "guessedtype": "property", "type": "String", "final": ""}, "_oChainRender": {"guessedname": "_oChainRender", "type": "YAHOO.util.Chain", "description": "Render chain.", "private": "", "guessedtype": "property"}, "DataTable._nCount": {"description": "Internal class variable for indexing multiple DataTable instances.", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}, "DataTable.CLASS_PAGE": {"description": "Class name assigned to page number indicators.", "default": "\"yui-dt-page\"", "static": "", "guessedname": "CLASS_PAGE", "guessedtype": "property", "type": "String", "final": ""}, "_aSelections": {"guessedname": "_aSelections", "type": "Object[]", "description": "Array to track row selections (by sRecordId) and/or cell selections\n(by {recordId:sRecordId, columnKey:sColumnKey})", "private": "", "guessedtype": "property"}, "DataTable.CLASS_ASC": {"description": "Class name assigned to ascending elements.", "default": "\"yui-dt-asc\"", "static": "", "guessedname": "CLASS_ASC", "guessedtype": "property", "type": "String", "final": ""}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique id assigned to instance \"yui-dtN\", useful prefix for generating unique\nDOM ID strings and log messages.", "private": "", "guessedtype": "property"}, "configs": {"default": "{}", "type": "Object", "description": "Returns object literal of initial configs.", "guessedname": "configs", "guessedtype": "property"}, "_oDataSource": {"guessedname": "_oDataSource", "type": "YAHOO.util.DataSource", "description": "DataSource instance for the DataTable instance.", "private": "", "guessedtype": "property"}, "_elMask": {"guessedname": "_elMask", "type": "HTMLElement", "description": "DOM reference to the mask element for the DataTable instance which disables it.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_EMPTY": {"description": "Class name assigned to empty indicators.", "default": "\"yui-dt-empty\"", "static": "", "guessedname": "CLASS_EMPTY", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_DATATABLE": {"description": "Class name assigned to outer DataTable container.", "default": "\"yui-dt\"", "static": "", "guessedname": "CLASS_DATATABLE", "guessedtype": "property", "type": "String", "final": ""}, "_elTable": {"guessedname": "_elTable", "type": "HTMLElement", "description": "DOM reference to the TABLE element for the DataTable instance.", "private": "", "guessedtype": "property"}, "_elColgroup": {"guessedname": "_elColgroup", "type": "HTMLElement", "description": "DOM reference to the COLGROUP element for the DataTable instance.", "private": "", "guessedtype": "property"}, "_nIndex": {"guessedname": "_nIndex", "type": "Number", "description": "Index assigned to instance.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_DRAGGABLE": {"description": "Class name assigned to draggable elements.", "default": "\"yui-dt-draggable\"", "static": "", "guessedname": "CLASS_DRAGGABLE", "guessedtype": "property", "type": "String", "final": ""}, "_elThead": {"guessedname": "_elThead", "type": "HTMLElement", "description": "DOM reference to the THEAD element for the DataTable instance.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_DROPDOWN": {"description": "Class name assigned to SELECT elements and/or container elements.", "default": "\"yui-dt-dropdown\"", "static": "", "guessedname": "CLASS_DROPDOWN", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_SCROLLABLE": {"description": "Class name assigned to scrollable elements.", "default": "\"yui-dt-scrollable\"", "static": "", "guessedname": "CLASS_SCROLLABLE", "guessedtype": "property", "type": "String", "final": ""}, "_nTdCount": {"guessedname": "_nTdCount", "type": "Number", "description": "Counter for IDs assigned to TD elements.", "private": "", "guessedtype": "property"}, "_oAnchorRecord": {"guessedname": "_oAnchorRecord", "type": "YAHOO.widget.Record", "description": "Record instance of the row selection anchor.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_EDITOR": {"description": "Class name assigned to CellEditor container elements.", "default": "\"yui-dt-editor\"", "static": "", "guessedname": "CLASS_EDITOR", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_LAST": {"description": "Class name assigned to last elements.", "default": "\"yui-dt-last\"", "static": "", "guessedname": "CLASS_LAST", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_ODD": {"description": "Class name assigned to odd elements.", "default": "\"yui-dt-odd\"", "static": "", "guessedname": "CLASS_ODD", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_FIRST": {"description": "Class name assigned to first elements.", "default": "\"yui-dt-first\"", "static": "", "guessedname": "CLASS_FIRST", "guessedtype": "property", "type": "String", "final": ""}, "_aDynFunctions": {"guessedname": "_aDynFunctions", "type": "Array", "description": "Sparse array of custom functions to set column widths for browsers that don't\nsupport dynamic CSS rules.  Functions are added at the index representing\nthe number of rows they update.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_COLTARGET": {"description": "Class name assigned to Column drag target.", "default": "\"yui-dt-coltarget\"", "static": "", "guessedname": "CLASS_COLTARGET", "guessedtype": "property", "type": "String", "final": ""}, "_elTbody": {"guessedname": "_elTbody", "type": "HTMLElement", "description": "DOM reference to the primary TBODY element for the DataTable instance.", "private": "", "guessedtype": "property"}, "_elTrTemplate": {"guessedname": "_elTrTemplate", "type": "{HTMLElement}", "description": "Template row to create all new rows from.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_SELECTED": {"description": "Class name assigned to selected elements.", "default": "\"yui-dt-selected\"", "static": "", "guessedname": "CLASS_SELECTED", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_LOADING": {"description": "Class name assigned to loading indicatorx.", "default": "\"yui-dt-loading\"", "static": "", "guessedname": "CLASS_LOADING", "guessedtype": "property", "type": "String", "final": ""}, "_nTrCount": {"guessedname": "_nTrCount", "type": "Number", "description": "Counter for IDs assigned to TR elements.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_EDITABLE": {"description": "Class name assigned to editable elements.", "default": "\"yui-dt-editable\"", "static": "", "guessedname": "CLASS_EDITABLE", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_SORTABLE": {"description": "Class name assigned to sortable elements.", "default": "\"yui-dt-sortable\"", "static": "", "guessedname": "CLASS_SORTABLE", "guessedtype": "property", "type": "String", "final": ""}, "_elMsgTd": {"guessedname": "_elMsgTd", "type": "HTMLElement", "description": "DOM reference to the secondary TBODY element's single TD element used to display DataTable messages.", "private": "", "guessedtype": "property"}}, "description": "DataTable class for the YUI DataTable widget."}, "YAHOO.widget.Paginator.ui.PreviousPageLink": {"properties": {"current": {"guessedname": "current", "type": "HTMLElement", "description": "Currently placed HTMLElement node", "private": "", "guessedtype": "property"}, "span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node (inactive link)", "private": "", "guessedtype": "property"}, "link": {"guessedname": "link", "type": "HTMLElement", "description": "Link node", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.PreviousPageLink", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the link to jump to the previous page."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforePreviousPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePreviousPageLinkLabelChange", "description": "Fires before the value for the configuration attribute 'previousPageLinkLabel' changes. Return false to cancel the attribute change."}, "beforePreviousPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePreviousPageLinkClassChange", "description": "Fires before the value for the configuration attribute 'previousPageLinkClass' changes. Return false to cancel the attribute change."}, "previousPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "previousPageLinkClassChange", "description": "Fires when the value for the configuration attribute 'previousPageLinkClass' changes."}, "previousPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "previousPageLinkLabelChange", "description": "Fires when the value for the configuration attribute 'previousPageLinkLabel' changes."}}, "guessedname": "PreviousPageLink", "methods": {"onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the link's onclick event.  Passes to setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the link/span node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Swap the link and span nodes if appropriate.", "guessedname": "update", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}}, "file": "PreviousPageLink.js", "guessedtype": "function", "shortname": "PreviousPageLink", "configs": {"previousPageLinkLabel": {"default": "'< prev'", "description": "Used as innerHTML for the previous page link/span."}, "previousPageLinkClass": {"default": "'yui-pg-previous'", "description": "CSS class assigned to the link/span"}}, "description": "ui Component to generate the link to jump to the previous page."}, "YAHOO.util.ColorAnim": {"name": "YAHOO.util.ColorAnim", "constructors": [{"params": [{"type": "HTMLElement | String", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.\nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.\nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").\nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Anim subclass for color transitions.\n<p>Usage: <code>var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut);</code> Color values can be specified with either 112233, #112233, \n[255,255,255], or rgb(255,255,255)</p>"}], "namespace": "YAHOO.util", "module": "animation", "guessedname": "ColorAnim", "methods": {"parseColor": {"return": {"type": "Array", "description": "The 3-tuple of rgb values."}, "params": [{"type": "String", "name": "s", "description": " The string to parse."}], "description": "Attempts to parse the given string and return a 3-tuple.", "guessedname": "parseColor", "guessedtype": "function"}}, "extends": "YAHOO.util.Anim", "superclass": "YAHOO.util.Anim", "file": "ColorAnim.js", "guessedtype": "function", "shortname": "ColorAnim", "requires": "YAHOO.util.Anim", "description": "Anim subclass for color transitions.\n<p>Usage: <code>var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut);</code> Color values can be specified with either 112233, #112233, \n[255,255,255], or rgb(255,255,255)</p>"}, "YAHOO.lang.JSON": {"name": "YAHOO.lang.JSON", "namespace": "YAHOO.lang", "module": "json", "methods": {"stringify": {"return": {"type": "string", "description": "JSON string representation of the input"}, "description": "<p>Converts an arbitrary value to a JSON string representation.</p>\n<p>Objects with cyclical references will trigger an exception.</p>\n<p>If a whitelist is provided, only matching object keys will be\nincluded.  Alternately, a replacer function may be passed as the\nsecond parameter.  This function is executed on every value in the\ninput, and its return value will be used in place of the original value.\nThis is useful to serialize specialized objects or class instances.</p>\n<p>If a positive integer or non-empty string is passed as the third\nparameter, the output will be formatted with carriage returns and\nindentation for readability.  If a String is passed (such as \"\\t\") it\nwill be used once for each indentation level.  If a number is passed,\nthat number of spaces will be used.</p>\n<p>When lang.JSON.useNativeStringify is true, this will defer to the\nnative JSON.stringify if the browser has a native implementation.\nOtherwise, a JavaScript implementation is used.</p>", "static": "", "guessedname": "stringify", "guessedtype": "function", "params": [{"type": "MIXED", "name": "o", "description": "  any arbitrary object to convert to JSON string"}, {"type": "Array|Function", "name": "w", "description": "  (optional) whitelist of acceptable object keys\nto include OR a function(value,key) to alter values\nbefore serialization"}, {"type": "Number|String", "name": "space", "description": "  (optional) indentation character(s) or\ndepthy of spaces to format the output"}], "throws": "Error"}, "_prepare": {"return": {"type": "String", "description": "sanitized JSON string ready to be validated/parsed"}, "params": [{"type": "String", "name": "s", "description": "  parse input"}], "description": "Replace certain Unicode characters that may be handled incorrectly by\nsome browser implementations.", "private": ""}, "isValid": {"return": {"type": "boolean", "description": "is the string safe for eval?"}, "description": "<p>Four step determination whether a string is safe to eval. In three steps,\nescape sequences, safe values, and properly placed open square brackets\nare replaced with placeholders or removed.  Then in the final step, the\nresult of all these replacements is checked for invalid characters.</p>\n<p>This is an alias for isSafe.</p>", "deprecated": "use isSafe", "static": "", "guessedname": "isValid", "guessedtype": "property", "params": [{"type": "String", "name": "str", "description": "  JSON string to be tested"}]}, "dateToString": {"return": {"type": "String", "description": "stringified Date in UTC format YYYY-MM-DDTHH:mm:SSZ"}, "description": "Serializes a Date instance as a UTC date string.  Used internally by\nthe JavaScript implementation of stringify.  If you need a different\nDate serialization format, override this method.  If you change this,\nyou should also set useNativeStringify to false, since native JSON\nimplementations serialize Dates per the ECMAScript 5 spec.  You've been\nwarned.", "static": "", "guessedname": "dateToString", "guessedtype": "function", "params": [{"type": "Date", "name": "d", "description": "  The Date to serialize"}]}, "parse": {"return": {"type": "MIXED", "description": "the native JavaScript representation of the JSON string"}, "description": "<p>Parse a JSON string, returning the native JavaScript\nrepresentation.</p>\n<p>When lang.JSON.useNativeParse is true, this will defer to the native\nJSON.parse if the browser has a native implementation.  Otherwise, a\nJavaScript implementation based on http://www.json.org/json2.js\nis used.</p>", "static": "", "guessedname": "parse", "guessedtype": "function", "params": [{"type": "string", "name": "s", "description": "  JSON string data"}, {"type": "function", "name": "reviver", "description": "  (optional) function(k,v) passed each key:value\npair of object literals, allowing pruning or altering values"}], "throws": "SyntaxError"}, "isSafe": {"return": {"type": "boolean", "description": "is the string safe for eval?"}, "description": "Four step determination whether a string is safe to eval. In three steps,\nescape sequences, safe values, and properly placed open square brackets\nare replaced with placeholders or removed.  Then in the final step, the\nresult of all these replacements is checked for invalid characters.", "static": "", "guessedname": "isSafe", "guessedtype": "function", "params": [{"type": "String", "name": "str", "description": "  JSON string to be tested"}]}, "stringToDate": {"return": {"type": "Date", "description": ""}, "params": [{"type": "String", "name": "str", "description": "  String serialization of a Date"}], "description": "Reconstitute Date instances from the default JSON UTC serialization.\nReference this from a reviver function to rebuild Dates during the\nparse operation.", "guessedname": "stringToDate", "guessedtype": "function"}, "_revive": {"return": {"type": "MIXED", "description": "The results of the filtered/mutated data structure"}, "params": [{"type": "MIXED", "name": "data", "description": "  Any JavaScript data"}, {"type": "Function", "name": "reviver", "description": "  filter or mutation function"}], "description": "Traverses nested objects, applying a filter or reviver function to\neach value.  The value returned from the function will replace the\noriginal value in the key:value pair.  If the value returned is\nundefined, the key will be omitted from the returned object.", "private": ""}}, "static": "", "file": "JSON.js", "shortname": "JSON", "properties": {"_BRACKETS": {"description": "Third step in the safety evaluation.  Regex used to remove all open\nsquare brackets following a colon, comma, or at the beginning of the\nstring.", "private": "", "static": "", "guessedname": "_BRACKETS", "guessedtype": "property", "type": "{RegExp}"}, "_VALUES": {"description": "Second step in the safety evaluation.  Regex used to replace all simple\nvalues with ']' characters.", "private": "", "static": "", "guessedname": "_VALUES", "guessedtype": "property", "type": "{RegExp}"}, "useNativeStringify": {"description": "Leverage native JSON stringify if the browser has a native\nimplementation.  In general, this is a good idea.  See the Known Issues\nsection in the JSON user guide for caveats.  The default value is true\nfor browsers with native JSON support.", "default": "true", "static": "", "guessedname": "useNativeStringify", "guessedtype": "property", "type": "Boolean"}, "useNativeParse": {"description": "Leverage native JSON parse if the browser has a native implementation.\nIn general, this is a good idea.  See the Known Issues section in the\nJSON user guide for caveats.  The default value is true for browsers with\nnative JSON support.", "default": "true", "static": "", "guessedname": "useNativeParse", "guessedtype": "property", "type": "Boolean"}, "_SPECIAL_CHARS": {"description": "Regex used to replace special characters in strings for JSON\nstringification.", "private": "", "static": "", "guessedname": "_SPECIAL_CHARS", "guessedtype": "property", "type": "{RegExp}"}, "_CHARS": {"description": "Character substitution map for common escapes and special characters.", "private": "", "static": "", "guessedname": "_CHARS", "guessedtype": "property", "type": "{Object}"}, "_UNSAFE": {"description": "Final step in the safety evaluation.  Regex used to test the string left\nafter all previous replacements for invalid characters.", "private": "", "static": "", "guessedname": "_UNSAFE", "guessedtype": "property", "type": "{RegExp}"}, "_ESCAPES": {"description": "First step in the safety evaluation.  Regex used to replace all escape\nsequences (i.e. \"\\\\\", etc) with '@' characters (a non-JSON character).", "private": "", "static": "", "guessedname": "_ESCAPES", "guessedtype": "property", "type": "{RegExp}"}, "_UNICODE_EXCEPTIONS": {"guessedname": "_UNICODE_EXCEPTIONS", "type": "{RegExp}", "description": "Replace certain Unicode characters that JavaScript may handle incorrectly\nduring eval--either by deleting them or treating them as line\nendings--with escape sequences.\nIMPORTANT NOTE: This regex will be used to modify the input if a match is\nfound.", "private": "", "guessedtype": "property"}}, "description": "Provides methods to parse JSON strings and convert objects to JSON strings."}, "YAHOO.util.ImageLoader.srcImgObj": {"name": "YAHOO.util.ImageLoader.srcImgObj", "constructors": [{"params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}, {"type": "Int", "name": "width", "description": "\tpixel width of the image - defaults to image's natural size"}, {"type": "Int", "name": "height", "description": "\tpixel height of the image - defaults to image's natural size"}], "description": "Source image object. A source image is one whose URL is specified by a src attribute in the DOM element"}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "srcImgObj", "methods": {"_applyUrl": {"guessedname": "_applyUrl", "params": [{"type": "Object", "name": "el", "description": "\tHTML DOM element"}], "description": "Inserts the image URL into the DOM so that the image is displayed.\nSets src", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.ImageLoader.imgObj", "superclass": "YAHOO.util.ImageLoader.imgObj", "file": "ImageLoader.js", "guessedtype": "function", "shortname": "srcImgObj", "description": "Source image object. A source image is one whose URL is specified by a src attribute in the DOM element"}, "LogMsg": {"name": "LogMsg", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  Object literal of configuration params."}], "description": "The LogMsg class defines a single log message."}], "namespace": "", "module": "logger", "guessedname": "LogMsg", "file": "LogMsg.js", "guessedtype": "function", "shortname": "LogMsg", "properties": {"msg": {"type": "String", "description": "Log message.", "guessedname": "msg", "guessedtype": "property"}, "category": {"type": "String", "description": "Log category.", "guessedname": "category", "guessedtype": "property"}, "sourceDetail": {"type": "String", "description": "Log source detail. The remainder of the string passed in as the source argument, not\nincluding the first word (if any).", "guessedname": "sourceDetail", "guessedtype": "property"}, "source": {"type": "String", "description": "Log source. The first word passed in as the source argument.", "guessedname": "source", "guessedtype": "property"}, "time": {"type": "Date", "description": "Log timestamp.", "guessedname": "time", "guessedtype": "property"}}, "description": "The LogMsg class defines a single log message."}, "YAHOO.widget.CartesianChart": {"name": "YAHOO.widget.CartesianChart", "configs": {"yField": {"type": "String", "description": "The field in each item that corresponds to a value on the x axis."}, "constrainViewport": {"type": "Boolean", "description": "Determines whether the viewport is constrained to prevent series data from overflow."}, "yAxis": {"type": "Axis", "description": "A custom configuration for the vertical y axis."}, "xAxes": {"type": "Array", "description": "Custom configurations for the horizontal x axes."}, "yAxes": {"type": "Array", "description": "Custom configurations for the vertical y axes."}, "xAxis": {"type": "Axis", "description": "A custom configuration for the horizontal x axis."}, "xField": {"type": "String", "description": "The field in each item that corresponds to a value on the x axis."}}, "constructors": [{"params": [{"type": "String", "name": "type", "description": "  The char type. May be \"line\", \"column\", or \"bar\""}, {"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "CartesianChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "events": {"beforeYFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeYFieldChange", "description": "Fires before the value for the configuration attribute 'yField' changes. Return false to cancel the attribute change."}, "xAxesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "xAxesChange", "description": "Fires when the value for the configuration attribute 'xAxes' changes."}, "beforeXAxisChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeXAxisChange", "description": "Fires before the value for the configuration attribute 'xAxis' changes. Return false to cancel the attribute change."}, "xAxisChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "xAxisChange", "description": "Fires when the value for the configuration attribute 'xAxis' changes."}, "yAxesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "yAxesChange", "description": "Fires when the value for the configuration attribute 'yAxes' changes."}, "constrainViewportChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "constrainViewportChange", "description": "Fires when the value for the configuration attribute 'constrainViewport' changes."}, "yAxisChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "yAxisChange", "description": "Fires when the value for the configuration attribute 'yAxis' changes."}, "xFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "xFieldChange", "description": "Fires when the value for the configuration attribute 'xField' changes."}, "yFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "yFieldChange", "description": "Fires when the value for the configuration attribute 'yField' changes."}, "beforeYAxisChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeYAxisChange", "description": "Fires before the value for the configuration attribute 'yAxis' changes. Return false to cancel the attribute change."}, "beforeYAxesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeYAxesChange", "description": "Fires before the value for the configuration attribute 'yAxes' changes. Return false to cancel the attribute change."}, "beforeConstrainViewportChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeConstrainViewportChange", "description": "Fires before the value for the configuration attribute 'constrainViewport' changes. Return false to cancel the attribute change."}, "beforeXAxesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeXAxesChange", "description": "Fires before the value for the configuration attribute 'xAxes' changes. Return false to cancel the attribute change."}, "beforeXFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeXFieldChange", "description": "Fires before the value for the configuration attribute 'xField' changes. Return false to cancel the attribute change."}}, "guessedname": "CartesianChart", "methods": {"_setYAxis": {"private": "", "description": "Setter for the yAxis attribute.", "guessedname": "_setYAxis", "guessedtype": "function"}, "_removeAxisFunctions": {"private": "", "description": "Removes axis functions contained in an array", "guessedname": "_removeAxisFunctions", "guessedtype": "function"}, "setSeriesStylesByIndex": {"params": [{"type": "Number", "name": "index", "description": "  The position within the series definition to apply the style"}, {"type": "object", "name": "style", "description": "  Style object to be applied to the selected series"}], "description": "Sets the style object for a single series based on its index", "guessedname": "setSeriesStylesByIndex", "guessedtype": "function"}, "_setXAxes": {"private": "", "description": "Setter for the xAxes attribute", "guessedname": "_setXAxes", "guessedtype": "function"}, "_setConstrainViewport": {"private": "", "description": "Setter for the constrainViewport attribute", "guessedname": "_setConstrainViewport", "guessedtype": "function"}, "_getYField": {"private": "", "description": "Getter for the yField attribute.", "guessedname": "_getYField", "guessedtype": "function"}, "_setYAxes": {"private": "", "description": "Setter for the yAxes attribute.", "guessedname": "_setYAxes", "guessedtype": "function"}, "_initAttributes": {"private": "", "description": "Initializes the attributes.", "guessedname": "_initAttributes", "guessedtype": "function"}, "_setXAxis": {"private": "", "description": "Setter for the xAxis attribute.", "guessedname": "_setXAxis", "guessedtype": "function"}, "_getXField": {"private": "", "description": "Getter for the xField attribute.", "guessedname": "_getXField", "guessedtype": "function"}, "_setXField": {"private": "", "description": "Setter for the xField attribute.", "guessedname": "_setXField", "guessedtype": "function"}, "_setYField": {"private": "", "description": "Setter for the yField attribute.", "guessedname": "_setYField", "guessedtype": "function"}, "_getClonedAxis": {"private": "", "description": "Receives an axis object, creates a proxy function for \nthe labelFunction and returns the updated object.", "guessedname": "_getClonedAxis", "guessedtype": "function"}}, "uses": ["YAHOO.widget.Chart"], "file": "CartesianChart.js", "guessedtype": "function", "shortname": "CartesianChart", "properties": {"_yAxisLabelFunctions": {"guessedname": "_yAxisLabelFunctions", "type": "Array", "description": "Stores a reference to the yAxis labelFunctions created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}, "_xAxisLabelFunctions": {"guessedname": "_xAxisLabelFunctions", "type": "String", "description": "Stores a reference to the xAxis labelFunction created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}}, "description": "CartesianChart class for the YUI Charts widget."}, "YAHOO.widget.Layout": {"name": "YAHOO.widget.Layout", "configs": {"parent": {"type": "Object YAHOO.widget.Layout", "description": "If this layout is to be used as a child of another Layout instance, this config will bind the resize events together."}, "minHeight": {"type": "Number", "description": "The minimum height in pixels"}, "height": {"type": "Number", "description": "The height in pixels"}, "minWidth": {"type": "Number", "description": "The minimum width in pixels"}, "width": {"type": "Number", "description": "The width in pixels"}, "units": {"type": "Array", "description": "An array of config definitions for the LayoutUnits to add to this layout"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to make contain a layout."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Provides a fixed layout containing, top, bottom, left, right and center layout units. It can be applied to either the body or an element.</p>"}], "namespace": "YAHOO.widget", "module": "layout", "events": {"beforeMinWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinWidthChange", "description": "Fires before the value for the configuration attribute 'minWidth' changes. Return false to cancel the attribute change."}, "minHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minHeightChange", "description": "Fires when the value for the configuration attribute 'minHeight' changes."}, "startResize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the Resize Utility for a Unit fires it's startResize Event."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "unitsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "unitsChange", "description": "Fires when the value for the configuration attribute 'units' changes."}, "beforeMinHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinHeightChange", "description": "Fires before the value for the configuration attribute 'minHeight' changes. Return false to cancel the attribute change."}, "render": {"type": "YAHOO.util.CustomEvent", "description": "Fired after the render method completes.", "guessedname": "Layout", "guessedtype": "property"}, "resize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when this.resize is called"}, "parentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "parentChange", "description": "Fires when the value for the configuration attribute 'parent' changes."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "beforeUnitsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUnitsChange", "description": "Fires before the value for the configuration attribute 'units' changes. Return false to cancel the attribute change."}, "beforeParentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeParentChange", "description": "Fires before the value for the configuration attribute 'parent' changes. Return false to cancel the attribute change."}, "beforeResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires at the beginning of the resize method. If you return false, the resize is cancelled."}, "minWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minWidthChange", "description": "Fires when the value for the configuration attribute 'minWidth' changes."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "Layout", "methods": {"_stamp": {"description": "Stamps the root node with a secure classname for ease of use. Also sets the this.browser.standardsMode variable.", "private": "", "guessedname": "_stamp", "guessedtype": "function"}, "_setupElements": {"description": "Sets up the main doc element when not using the body as the main element.", "private": "", "guessedname": "_setupElements", "guessedtype": "function"}, "addUnit": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "params": [{"type": "Object", "name": "cfg", "description": " The config for the LayoutUnit that you want to add"}], "description": "Add a unit to this layout and if the layout is rendered, resize the layout.", "guessedname": "addUnit", "guessedtype": "function"}, "render": {"return": {"type": "<a href=\"YAHOO.widget.Layout.html\">YAHOO.widget.Layout</a>", "description": "The Layout instance"}, "description": "This method starts the render process, applying classnames and creating elements", "guessedname": "render", "guessedtype": "function"}, "removeUnit": {"params": [{"type": "Object", "name": "unit", "description": " The LayoutUnit that you want to remove"}], "description": "Remove the unit from this layout and resize the layout.", "guessedname": "removeUnit", "guessedtype": "function"}, "getUnitByPosition": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "params": [{"type": "String", "name": "pos", "description": " The position of the unit in this layout"}], "description": "Get the LayoutUnit by it's position in this layout", "guessedname": "getUnitByPosition", "guessedtype": "function"}, "_setBodySize": {"guessedname": "_setBodySize", "params": [{"type": "Boolean", "name": "set", "description": " If set to false, it will NOT set the size, just perform the calculations (used for collapsing units)"}], "description": "Used to set the body size of the layout, sets the height and width of the parent container", "private": "", "guessedtype": "function"}, "getLayoutById": {"static": "", "return": {"type": "Object", "description": "The Layout Object"}, "description": "Get's a layout object by the HTML id of the element associated with the Layout object.", "guessedname": "getLayoutById", "guessedtype": "function"}, "_setCenter": {"guessedname": "_setCenter", "params": [{"type": "Boolean", "name": "set", "description": " If set to false, it will NOT set the size, just perform the calculations (used for collapsing units)"}], "description": "Used to set the size and position of the center unit", "private": "", "guessedtype": "function"}, "_createUnits": {"description": "Private method to create units from the config that was passed in.", "private": "", "guessedname": "_createUnits", "guessedtype": "function"}, "init": {"description": "The Layout class' initialization method", "private": "", "guessedname": "init", "guessedtype": "function"}, "initAttributes": {"description": "Processes the config", "private": "", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the Layout.", "guessedname": "toString", "guessedtype": "function"}, "resize": {"return": {"type": "<a href=\"YAHOO.widget.Layout.html\">YAHOO.widget.Layout</a>", "description": "The Layout instance"}, "params": [{"type": "", "name": "Boolean/Event", "description": " set If set to false, it will NOT set the size, just perform the calculations (used for collapsing units). This can also have an attribute event passed to it."}], "description": "Starts the chain of resize routines that will resize all the units.", "guessedname": "resize", "guessedtype": "function"}, "destroy": {"description": "Removes this layout from the page and destroys all units that it contains. This will destroy all data inside the layout and it's children.", "guessedname": "destroy", "guessedtype": "function"}, "getUnitById": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "params": [{"type": "String", "name": "id", "description": " The HTML element id of the unit"}], "description": "Get the LayoutUnit by it's HTML id", "guessedname": "getUnitById", "guessedtype": "function"}, "_setupBodyElements": {"description": "Sets up the main doc element when using the body as the main element.", "private": "", "guessedname": "_setupBodyElements", "guessedtype": "function"}, "_setSides": {"guessedname": "_setSides", "params": [{"type": "Boolean", "name": "set", "description": " If set to false, it will NOT set the size, just perform the calculations (used for collapsing units)"}], "description": "Used to set the size and position of the left, right, top and bottom units", "private": "", "guessedtype": "function"}, "getSizes": {"return": {"type": "Object", "description": "An object of the layout unit sizes"}, "description": "Get a reference to the internal Layout Unit sizes object used to build the layout wireframe", "guessedname": "getSizes", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "layout.js", "guessedtype": "function", "shortname": "Layout", "properties": {"_sizes": {"guessedname": "_sizes", "type": "Object", "description": "A collection of the current sizes of all usable LayoutUnits to be used for calculations", "private": "", "guessedtype": "property"}, "_units": {"guessedname": "_units", "type": "Object", "description": "An object literal that contains a list of units in the layout", "private": "", "guessedtype": "property"}, "_doc": {"guessedname": "_doc", "type": "HTMLElement", "description": "Reference to the root element", "private": "", "guessedtype": "property"}, "_rendered": {"guessedname": "_rendered", "type": "Boolean", "description": "Set to true when the layout is rendered", "private": "", "guessedtype": "property"}, "_zIndex": {"guessedname": "_zIndex", "type": "Number", "description": "The zIndex to set all LayoutUnits to", "private": "", "guessedtype": "property"}, "_instances": {"description": "Internal hash table for all layout instances", "private": "", "static": "", "guessedname": "_instances", "guessedtype": "property", "type": "Object"}, "_isBody": {"guessedname": "_isBody", "type": "Boolean", "description": "Flag to determine if we are using the body as the root element.", "private": "", "guessedtype": "property"}, "browser": {"type": "Object", "description": "A modified version of the YAHOO.env.ua object", "guessedname": "browser", "guessedtype": "function"}}, "description": "<p>Provides a fixed layout containing, top, bottom, left, right and center layout units. It can be applied to either the body or an element.</p>"}, "YAHOO.util.DDProxy": {"name": "YAHOO.util.DDProxy", "constructors": [{"params": [{"type": "String", "name": "id", "description": " the id of the linked html element"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop objects"}, {"type": "object", "name": "config", "description": " an object containing configurable attributes\nValid properties for DDProxy in addition to those in DragDrop: \nresizeFrame, centerFrame, dragElId"}], "description": "A DragDrop implementation that inserts an empty, bordered div into\nthe document that follows the cursor during drag operations.  At the time of\nthe click, the frame div is resized to the dimensions of the linked html\nelement, and moved to the exact location of the linked element.\nReferences to the \"frame\" element refer to the single proxy element that\nwas created to be dragged in place of all DDProxy elements on the\npage."}], "namespace": "YAHOO.util", "module": "dragdrop", "events": {"startDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs after a mouse down and the drag threshold has been met. The drag threshold default is either 3 pixels of mouse movement or 1 full second of holding the mousedown."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fired from inside DragDropMgr when the drag operation is finished."}, "dragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs every mousemove event while dragging."}, "dragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires every mousemove event while over a drag and drop object."}, "dragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when a dragged object is no longer over an object that had the onDragEnter fire."}, "b4EndDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the endDragEvent. Returning false will cancel."}, "b4StartDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the startDragEvent, returning false will cancel the startDrag Event."}, "b4DragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOutEvent"}, "endDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires on the mouseup event after a drag has been initiated (startDrag fired)."}, "b4DragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOverEvent."}, "dragEnterEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs when the dragged object first interacts with another targettable drag and drop object."}, "b4DragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragDropEvent"}, "b4DragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragEvent."}, "dragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped on another."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event. The mousedown does not always result in a drag operation."}, "invalidDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped in a location that contains no drop targets."}, "b4MouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event, before the mouseDownEvent gets fired. Returning false will cancel the drag."}}, "guessedname": "DDProxy", "methods": {"createFrame": {"description": "Creates the proxy element if it does not yet exist", "guessedname": "createFrame", "guessedtype": "function"}, "initFrame": {"description": "Initialization for the drag frame element.  Must be called in the\nconstructor of all subclasses", "guessedname": "initFrame", "guessedtype": "function"}, "_resizeProxy": {"private": "", "description": "The proxy is automatically resized to the dimensions of the linked\nelement when a drag is initiated, unless resizeFrame is set to false", "guessedname": "_resizeProxy", "guessedtype": "function"}, "showFrame": {"guessedname": "showFrame", "params": [{"type": "int", "name": "iPageX", "description": " X click position"}, {"type": "int", "name": "iPageY", "description": " Y click position"}], "description": "Resizes the drag frame to the dimensions of the clicked object, positions \nit over the object, and finally displays it", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.DD", "superclass": "YAHOO.util.DD", "file": "DDProxy.js", "guessedtype": "function", "shortname": "DDProxy", "properties": {"YAHOO.util.DDProxy.dragElId": {"type": "String", "static": "", "description": "The default drag frame div id", "guessedname": "dragElId", "guessedtype": "property"}, "resizeFrame": {"type": "boolean", "description": "By default we resize the drag frame to be the same size as the element\nwe want to drag (this is to get the frame effect).  We can turn it off\nif we want a different behavior.", "guessedname": "resizeFrame", "guessedtype": "property"}, "centerFrame": {"type": "boolean", "description": "By default the frame is positioned exactly where the drag element is, so\nwe use the cursor offset provided by YAHOO.util.DD.  Another option that works only if\nyou do not have constraints on the obj is to have the drag frame centered\naround the cursor.  Set centerFrame to true for this effect.", "guessedname": "centerFrame", "guessedtype": "property"}}, "description": "A DragDrop implementation that inserts an empty, bordered div into\nthe document that follows the cursor during drag operations.  At the time of\nthe click, the frame div is resized to the dimensions of the linked html\nelement, and moved to the exact location of the linked element.\nReferences to the \"frame\" element refer to the single proxy element that\nwas created to be dragged in place of all DDProxy elements on the\npage."}, "YAHOO.widget.RecordSet": {"name": "YAHOO.widget.RecordSet", "constructors": [{"params": [{"type": "Object || Object[]", "name": "data", "description": "  An object literal or an array of data."}], "description": "A RecordSet defines and manages a set of Records."}], "namespace": "YAHOO.widget", "module": "datatable", "events": {"resetEvent": {"description": "Fired when all Records are deleted from the RecordSet at once."}, "recordDeleteEvent": {"params": [{"type": "Object", "name": "oArgs.data", "description": "  A copy of the data held by the Record,\nor an array of data object literals if multiple Records were deleted at once."}, {"type": "Object", "name": "oArgs.index", "description": "  Index of the deleted Record."}], "description": "Fired when a Record is deleted from the RecordSet."}, "recordSetEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The Record instance."}, {"type": "Object", "name": "oArgs.data", "description": "  Data added."}], "description": "Fired when a Record is set in the RecordSet."}, "recordAddEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The Record instance."}, {"type": "Object", "name": "oArgs.data", "description": "  Data added."}], "description": "Fired when a new Record is added to the RecordSet."}, "recordsDeleteEvent": {"params": [{"type": "Object[]", "name": "oArgs.data", "description": "  An array of data object literals copied\nfrom the Records."}, {"type": "Object", "name": "oArgs.index", "description": "  Index of the first deleted Record."}], "description": "Fired when multiple Records are deleted from the RecordSet at once."}, "keyUpdateEvent": {"deprecated": "Use recordValueUpdateEvent"}, "recordUpdateEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The Record instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data."}], "description": "Fired when a Record is updated with new data."}, "recordValueUpdateEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The Record instance."}, {"type": "String", "name": "oArgs.key", "description": "  The updated key."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data."}], "description": "Fired when a Record value is updated with new data."}, "recordsAddEvent": {"params": [{"type": "YAHOO.widget.Record[]", "name": "oArgs.records", "description": "  An array of Record instances."}, {"type": "Object[]", "name": "oArgs.data", "description": "  Data added."}], "description": "Fired when multiple Records are added to the RecordSet at once."}, "recordsSetEvent": {"params": [{"type": "YAHOO.widget.Record[]", "name": "oArgs.records", "description": "  An array of Record instances."}, {"type": "Object[]", "name": "oArgs.data", "description": "  Data added."}], "description": "Fired when multiple Records are set in the RecordSet at once."}}, "guessedname": "RecordSet", "methods": {"hasRecords": {"return": {"type": "Boolean", "description": "true if all indices are populated in the RecordSet"}, "params": [{"type": "", "name": "index", "description": ""}, {"type": "", "name": "range", "description": ""}], "description": "Returns a boolean indicating whether Records exist in the RecordSet at the\nspecified index range.  Returns true if and only if a Record exists at each\nindex in the range.", "guessedname": "hasRecords", "guessedtype": "function"}, "updateRecord": {"return": {"type": "YAHOO.widget.Record", "description": "Updated Record, or null."}, "params": [{"type": "YAHOO.widget.Record | Number | String", "name": "record", "description": "  A Record instance,\na RecordSet position index, or a Record ID."}, {"type": "Object", "name": "oData", "description": "  Object literal of new data."}], "description": "Updates given Record with given data.", "guessedname": "updateRecord", "guessedtype": "function"}, "replaceRecords": {"return": {"type": "YAHOO.widget.Record || YAHOO.widget.Record[]", "description": "A Record instance or\nan array of Records."}, "params": [{"type": "Object || Object[]", "name": "data", "description": "  An object literal of data or an array of\ndata object literals."}], "description": "Replaces all Records in RecordSet with new object literal data.", "guessedname": "replaceRecords", "guessedtype": "function"}, "addRecord": {"return": {"type": "YAHOO.widget.Record", "description": "A Record instance."}, "params": [{"type": "Object", "name": "oData", "description": "  An object literal of data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "description": "Adds one Record to the RecordSet at the given index. If index is null,\nthen adds the Record to the end of the RecordSet.", "guessedname": "addRecord", "guessedtype": "function"}, "updateKey": {"deprecated": "Use updateRecordValue", "guessedname": "updateKey", "guessedtype": "function"}, "deleteRecord": {"return": {"type": "Object", "description": "A copy of the data held by the deleted Record."}, "params": [{"type": "Number", "name": "index", "description": "  Record's RecordSet position index."}, {"type": "Number", "name": "range", "description": "  (optional) How many Records to delete."}], "description": "Removes the Record at the given position index from the RecordSet. If a range\nis also provided, removes that many Records, starting from the index. Length\nof RecordSet is correspondingly shortened.", "guessedname": "deleteRecord", "guessedtype": "function"}, "_setRecord": {"return": {"type": "YAHOO.widget.Record", "description": "A Record instance."}, "description": "Sets/replaces one Record to the RecordSet at the given index.  Existing\nRecords with higher indexes are not shifted.  If no index specified, the\nRecord is added to the end of the RecordSet.", "private": "", "params": [{"type": "Object", "name": "oData", "description": "  An object literal of data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "guessedname": "_setRecord", "guessedtype": "function"}, "getLength": {"return": {"type": "Number", "description": "Number of records in the RecordSet."}, "description": "Returns the number of Records held in the RecordSet.", "guessedname": "getLength", "guessedtype": "function"}, "getRecord": {"return": {"type": "YAHOO.widget.Record", "description": "Record object."}, "params": [{"type": "YAHOO.widget.Record | Number | String", "name": "record", "description": "  Record instance,\nRecordSet position index, or Record ID."}], "description": "Returns Record by ID or RecordSet position index.", "guessedname": "getRecord", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique name of the RecordSet instance."}, "description": "Returns unique name of the RecordSet instance.", "guessedname": "getId", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the RecordSet instance."}, "description": "Public accessor to the unique name of the RecordSet instance.", "guessedname": "toString", "guessedtype": "function"}, "reverseRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "Reverse-sorted array of Records."}, "description": "Reverses all Records, so [\"one\", \"two\", \"three\"] becomes [\"three\", \"two\", \"one\"].", "guessedname": "reverseRecords", "guessedtype": "function"}, "addRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "An array of Record instances."}, "params": [{"type": "Object[]", "name": "aData", "description": "  An object literal data or an array of data object literals."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "description": "Adds multiple Records at once to the RecordSet at the given index with the\ngiven object literal data. If index is null, then the new Records are\nadded to the end of the RecordSet.", "guessedname": "addRecords", "guessedtype": "function"}, "setRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "An array of Record instances."}, "params": [{"type": "Object[]", "name": "aData", "description": "  An array of object literal data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "description": "Sets or replaces multiple Records at once to the RecordSet with the given\ndata, starting at the given index. If index is not specified, then the new\nRecords are added to the end of the RecordSet.", "guessedname": "setRecords", "guessedtype": "function"}, "reset": {"description": "Deletes all Records from the RecordSet.", "guessedname": "reset", "guessedtype": "function"}, "getRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "Array of Records starting at given index and\nlength equal to given range. If index is not given, all Records are returned."}, "params": [{"type": "Number", "name": "index", "description": "  (optional) Recordset position index of which Record to\nstart at."}, {"type": "Number", "name": "range", "description": "  (optional) Number of Records to get."}], "description": "Returns an array of Records from the RecordSet.", "guessedname": "getRecords", "guessedtype": "function"}, "sortRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "Sorted array of Records."}, "params": [{"type": "Function", "name": "fnSort", "description": "  Reference to a sort function."}, {"type": "Boolean", "name": "desc", "description": "  True if sort direction is descending, false if sort\ndirection is ascending."}, {"type": "String", "name": "field", "description": "  The field to sort by, from sortOptions.field"}], "description": "Sorts all Records by given function. Records keep their unique IDs but will\nhave new RecordSet position indexes.", "guessedname": "sortRecords", "guessedtype": "function"}, "updateRecordValue": {"params": [{"type": "YAHOO.widget.Record | Number | String", "name": "record", "description": "  A Record instance,\na RecordSet position index, or a Record ID."}, {"type": "String", "name": "sKey", "description": "  Key name."}, {"type": "Object", "name": "oData", "description": "  New data."}], "description": "Sets given Record at given key to given data.", "guessedname": "updateRecordValue", "guessedtype": "function"}, "getRecordIndex": {"return": {"type": "Number", "description": "Record's RecordSet position index."}, "params": [{"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}], "description": "Returns current position index for the given Record.", "guessedname": "getRecordIndex", "guessedtype": "function"}, "setRecord": {"return": {"type": "YAHOO.widget.Record", "description": "A Record instance."}, "params": [{"type": "Object", "name": "oData", "description": "  An object literal of data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "description": "Sets or replaces one Record to the RecordSet at the given index. Unlike\naddRecord, an existing Record at that index is not shifted to preserve it.\nIf no index is specified, it adds the Record to the end of the RecordSet.", "guessedname": "setRecord", "guessedtype": "function"}, "_deleteRecord": {"guessedname": "_deleteRecord", "params": [{"type": "Number", "name": "index", "description": "  Position index."}, {"type": "Number", "name": "range", "description": "  (optional) How many Records to delete"}], "description": "Deletes Records from the RecordSet at the given index. If range is null,\nthen only one Record is deleted.", "private": "", "guessedtype": "function"}, "deleteRecords": {"return": {"type": "Object[]", "description": "An array of copies of the data held by the deleted Records."}, "params": [{"type": "Number", "name": "index", "description": "  Record's RecordSet position index."}, {"type": "Number", "name": "range", "description": "  (optional) How many Records to delete."}], "description": "Removes the Record at the given position index from the RecordSet. If a range\nis also provided, removes that many Records, starting from the index. Length\nof RecordSet is correspondingly shortened.", "guessedname": "deleteRecords", "guessedtype": "function"}, "_addRecord": {"return": {"type": "YAHOO.widget.Record", "description": "A Record instance."}, "description": "Adds one Record to the RecordSet at the given index. If index is null,\nthen adds the Record to the end of the RecordSet.", "private": "", "params": [{"type": "Object", "name": "oData", "description": "  An object literal of data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "guessedname": "_addRecord", "guessedtype": "function"}}, "file": "RecordSet.js", "guessedtype": "function", "shortname": "RecordSet", "properties": {"_length": {"deprecated": "No longer used", "type": "Number", "description": "Internal counter of how many Records are in the RecordSet.", "private": ""}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique String identifier assigned at instantiation.", "private": "", "guessedtype": "property"}, "RecordSet._nCount": {"description": "Internal class variable to name multiple Recordset instances.", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}}, "description": "A RecordSet defines and manages a set of Records."}, "YAHOO.widget.TextNode": {"name": "YAHOO.widget.TextNode", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node.\nProviding a string is the same as providing an object with a single property named label.\nAll values in the oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private or functions.\nAll attributes are made available in noderef.data, which\ncan be used to store custom attributes.  TreeView.getNode(s)ByProperty\ncan be used to retrieve a node by one of the attributes."}, {"type": "YAHOO.widget.Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated; use oData.expanded)"}], "description": "The default node presentation.  The first parameter should be\neither a string that will be used as the node's label, or an object\nthat has at least a string property called label.  By default,  clicking the\nlabel will toggle the expanded/collapsed state of the node.  By\nsetting the href property of the instance, this behavior can be\nchanged so that the label will go to the specified href."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "TextNode", "methods": {"getEditorValue": {"return": {"type": "string", "description": "value entered"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Returns the value from the input element.\nOverrides Node.getEditorValue.", "guessedname": "getEditorValue", "guessedtype": "function"}, "fillEditorContainer": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Places an <input>  textbox in the input container and loads the label text into it.", "guessedname": "fillEditorContainer", "guessedtype": "function"}, "displayEditedValue": {"params": [{"type": "string", "name": "value", "description": "  value to be displayed and stored in the node"}, {"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Finally displays the newly edited value in the tree.\nOverrides Node.displayEditedValue.", "guessedname": "displayEditedValue", "guessedtype": "function"}, "getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if this node or any descendant is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nIt will return false if the node or any descendant loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getNodeDefinition", "guessedtype": "function"}, "destroyEditorContents": {"params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Destroys the contents of the inline editor panel.\nOverrides Node.destroyEditorContent.\nSince we didn't set any event listeners on this inline editor, it is more efficient to avoid the generic method in Node.", "guessedname": "destroyEditorContents", "guessedtype": "function"}, "getLabelEl": {"return": {"type": "object", "description": "the element"}, "description": "Returns the label element", "guessedname": "getLabelEl", "guessedtype": "function"}, "setUpLabel": {"params": [{"type": "", "name": "oData", "description": " string containing the label, or an object with a label property"}], "description": "Sets up the node label", "guessedname": "setUpLabel", "guessedtype": "function"}}, "extends": "YAHOO.widget.Node", "superclass": "YAHOO.widget.Node", "file": "TextNode.js", "guessedtype": "function", "shortname": "TextNode", "properties": {"_type": {"description": "The node type", "default": "\"TextNode\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}, "target": {"type": "string", "description": "The label href target, defaults to current window", "guessedname": "target", "guessedtype": "property"}, "title": {"type": "string", "description": "The text for the title (tooltip) for the label element", "guessedname": "title", "guessedtype": "property"}, "labelStyle": {"type": "string", "description": "The CSS class for the label href.  Defaults to ygtvlabel, but can be\noverridden to provide a custom presentation for a specific node.", "guessedname": "labelStyle", "guessedtype": "property"}, "label": {"type": "string", "description": "The text for the label.  It is assumed that the oData parameter will\neither be a string that will be used as the label, or an object that\nhas a property called \"label\" that we will use.", "guessedname": "label", "guessedtype": "property"}, "href": {"type": "string", "description": "The href for the node's label.  If one is not specified, the href will\nbe set so that it toggles the node.", "guessedname": "href", "guessedtype": "property"}, "labelElId": {"type": "string", "description": "The derived element id of the label for this node", "guessedname": "labelElId", "guessedtype": "property"}}, "description": "The default node presentation.  The first parameter should be\neither a string that will be used as the node's label, or an object\nthat has at least a string property called label.  By default,  clicking the\nlabel will toggle the expanded/collapsed state of the node.  By\nsetting the href property of the instance, this behavior can be\nchanged so that the label will go to the specified href."}, "YAHOO.util.ImageLoader.imgObj": {"name": "YAHOO.util.ImageLoader.imgObj", "constructors": [{"params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}], "description": "Base class for image objects to be registered with the groups"}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "imgObj", "methods": {"fetch": {"description": "Displays the image; puts the URL into the DOM", "guessedname": "fetch", "guessedtype": "function"}, "_applyUrl": {"guessedname": "_applyUrl", "params": [{"type": "Object", "name": "el", "description": "\tHTML DOM element"}], "description": "Inserts the image URL into the DOM so that the image is displayed.\nMust be overridden by child class", "private": "", "guessedtype": "function"}}, "file": "ImageLoader.js", "guessedtype": "function", "shortname": "imgObj", "properties": {"_fetched": {"guessedname": "_fetched", "type": "Boolean", "description": "Whether the image has already been fetched. In the case of a foldCondional group, keeps track for when the trigger is fired so images aren't fetched twice", "private": "", "guessedtype": "property"}, "url": {"type": "String", "description": "URL for the image", "guessedname": "url", "guessedtype": "property"}, "domId": {"type": "String", "description": "HTML DOM id of the image element", "guessedname": "domId", "guessedtype": "property"}, "height": {"type": "Int", "description": "Pixel height of the image. Will be set as a \"height\" attribute after the image is fetched.\nDetaults to the natural height of the image.\nOnly appropriate with src images", "guessedname": "height", "guessedtype": "property"}, "width": {"type": "Int", "description": "Pixel width of the image. Will be set as a \"width\" attribute after the image is fetched.\nDetaults to the natural width of the image.\nOnly appropriate with src images", "guessedname": "width", "guessedtype": "property"}, "setVisible": {"type": "Boolean", "description": "Whether the style.visibility should be set to \"visible\" after the image is fetched.\nUsed when setting src images as visibility:hidden prior to image fetching", "guessedname": "setVisible", "guessedtype": "property"}}, "description": "Base class for image objects to be registered with the groups"}, "YAHOO.widget.ImageCropper": {"name": "YAHOO.widget.ImageCropper", "configs": {"status": {"type": "Boolean", "description": "Show the Resize Utility status, defaults to true"}, "initialXY": {"type": "Array", "description": "Array of the XY position that we need to set the crop element to when we build it. Defaults to [10, 10]"}, "minHeight": {"type": "Number", "description": "MinHeight of the crop area, default 50"}, "minWidth": {"type": "Number", "description": "MinWidth of the crop area, default 50."}, "initHeight": {"type": "Number", "description": "Set the initlal height of the crop area, defaults to 1/4 of the image height"}, "shiftKeyTick": {"type": "Number", "description": "The pixel tick for shift + the arrow keys, defaults to 10"}, "initWidth": {"type": "Number", "description": "Set the initlal width of the crop area, defaults to 1/4 of the image width"}, "ratio": {"type": "Boolean", "description": "Set the ratio config option of the Resize Utlility, default false"}, "keyTick": {"type": "Number", "description": "The pixel tick for the arrow keys, defaults to 1"}, "useKeys": {"type": "Boolean", "description": "Should we use the Arrow keys to position the crop element, defaults to true"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The image element to make croppable."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Creates a Image Cropper control.</p>"}], "namespace": "YAHOO.widget", "module": "imagecropper", "events": {"beforeUseKeysChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUseKeysChange", "description": "Fires before the value for the configuration attribute 'useKeys' changes. Return false to cancel the attribute change."}, "ratioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "ratioChange", "description": "Fires when the value for the configuration attribute 'ratio' changes."}, "resizeEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires on every element resize."}, "beforeMinHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinHeightChange", "description": "Fires before the value for the configuration attribute 'minHeight' changes. Return false to cancel the attribute change."}, "beforeShiftKeyTickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShiftKeyTickChange", "description": "Fires before the value for the configuration attribute 'shiftKeyTick' changes. Return false to cancel the attribute change."}, "dragEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the DragDrop dragEvent"}, "beforeMinWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinWidthChange", "description": "Fires before the value for the configuration attribute 'minWidth' changes. Return false to cancel the attribute change."}, "beforeRatioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRatioChange", "description": "Fires before the value for the configuration attribute 'ratio' changes. Return false to cancel the attribute change."}, "beforeStatusChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeStatusChange", "description": "Fires before the value for the configuration attribute 'status' changes. Return false to cancel the attribute change."}, "useKeysChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "useKeysChange", "description": "Fires when the value for the configuration attribute 'useKeys' changes."}, "initHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initHeightChange", "description": "Fires when the value for the configuration attribute 'initHeight' changes."}, "beforeInitWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitWidthChange", "description": "Fires before the value for the configuration attribute 'initWidth' changes. Return false to cancel the attribute change."}, "minWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minWidthChange", "description": "Fires when the value for the configuration attribute 'minWidth' changes."}, "initWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initWidthChange", "description": "Fires when the value for the configuration attribute 'initWidth' changes."}, "startResizeEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when when a resize action is started."}, "shiftKeyTickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "shiftKeyTickChange", "description": "Fires when the value for the configuration attribute 'shiftKeyTick' changes."}, "beforeKeyTickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeKeyTickChange", "description": "Fires before the value for the configuration attribute 'keyTick' changes. Return false to cancel the attribute change."}, "keyTickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "keyTickChange", "description": "Fires when the value for the configuration attribute 'keyTick' changes."}, "beforeInitHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitHeightChange", "description": "Fires before the value for the configuration attribute 'initHeight' changes. Return false to cancel the attribute change."}, "minHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minHeightChange", "description": "Fires when the value for the configuration attribute 'minHeight' changes."}, "moveEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires on every element move. Inside these methods: _handleKeyPress, _handleDragEvent, _handleResizeEvent"}, "statusChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "statusChange", "description": "Fires when the value for the configuration attribute 'status' changes."}, "beforeInitialXYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitialXYChange", "description": "Fires before the value for the configuration attribute 'initialXY' changes. Return false to cancel the attribute change."}, "initialXYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initialXYChange", "description": "Fires when the value for the configuration attribute 'initialXY' changes."}}, "guessedname": "Crop", "methods": {"_handleStartResizeEvent": {"description": "Handles the Resize Utilitys startResize event", "private": "", "guessedname": "_handleStartResizeEvent", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the ImageCropper Object.", "guessedname": "toString", "guessedtype": "function"}, "_setBackgroundImage": {"guessedname": "_setBackgroundImage", "params": [{"type": "", "name": "String", "description": " url The url of the image"}], "description": "Sets the background image of the resize element", "private": "", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the widget."}], "description": "Initializes all of the configuration attributes used to create a croppable element.", "private": "", "guessedtype": "function"}, "_handleResizeEvent": {"guessedname": "_handleResizeEvent", "params": [{"type": "", "name": "Event", "description": " ev The Resize Utilitys resize event."}], "description": "Handles the Resize Utilitys Resize event", "private": "", "guessedtype": "function"}, "getResizeObject": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "description": "Get the Resize Utility object.", "guessedname": "getResizeObject", "guessedtype": "function"}, "getResizeMaskEl": {"return": {"type": "HTMLElement", "description": "The resize objects mask element."}, "description": "Get the HTML reference for the resizable object's mask element.", "guessedname": "getResizeMaskEl", "guessedtype": "function"}, "_handleBeforeResizeEvent": {"description": "Handles the Resize Utilitys beforeResize event", "private": "", "guessedname": "_handleBeforeResizeEvent", "guessedtype": "function"}, "_syncBackgroundPosition": {"description": "Syncs the packground position of the resize element with the resize elements top and left style position", "private": "", "guessedname": "_syncBackgroundPosition", "guessedtype": "function"}, "_handleMouseOut": {"description": "Handles the mouseout event", "private": "", "guessedname": "_handleMouseOut", "guessedtype": "function"}, "init": {"description": "The ImageCropper class's initialization method", "private": "", "guessedname": "init", "guessedtype": "function"}, "_moveEl": {"description": "Moves the resize element based on the arrow keys", "private": "", "guessedname": "_moveEl", "guessedtype": "function"}, "getCropperById": {"static": "", "return": {"type": "Object", "description": "The ImageCropper Object"}, "description": "Get's an ImageCropper object by the HTML id of the image associated with the ImageCropper object.", "guessedname": "getCropperById", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": "The image element"}, "description": "Get the HTML reference for the image element.", "guessedname": "getEl", "guessedtype": "function"}, "_handleKeyPress": {"description": "Handles the keypress event", "private": "", "guessedname": "_handleKeyPress", "guessedtype": "function"}, "getResizeEl": {"return": {"type": "HTMLElement", "description": "The resize element"}, "description": "Get the HTML reference for the resize element.", "guessedname": "getResizeEl", "guessedtype": "function"}, "_handleDragEvent": {"description": "Handles the DragDrop DragEvent event", "private": "", "guessedname": "_handleDragEvent", "guessedtype": "function"}, "_createResize": {"description": "Creates the resize element and the instance of the Resize Utility", "private": "", "guessedname": "_createResize", "guessedtype": "function"}, "_createWrap": {"description": "Creates the wrapper element used to wrap the image", "private": "", "guessedname": "_createWrap", "guessedtype": "function"}, "getMaskEl": {"return": {"type": "HTMLElement", "description": "The mask element"}, "description": "Get the HTML reference for the mask element.", "guessedname": "getMaskEl", "guessedtype": "function"}, "_handleB4DragEvent": {"description": "Handles the DragDrop b4DragEvent event", "private": "", "guessedname": "_handleB4DragEvent", "guessedtype": "function"}, "getWrapEl": {"return": {"type": "HTMLElement", "description": "The wrap element"}, "description": "Get the HTML reference for the wrap element.", "guessedname": "getWrapEl", "guessedtype": "function"}, "destroy": {"description": "Destroys the ImageCropper object and all of it's elements & listeners.", "guessedname": "destroy", "guessedtype": "function"}, "getCropCoords": {"return": {"type": "Object", "description": "The top, left, height, width and image url of the image being cropped"}, "description": "Returns the coordinates needed to crop the image", "guessedname": "getCropCoords", "guessedtype": "function"}, "_setBackgroundPosition": {"guessedname": "_setBackgroundPosition", "params": [{"type": "", "name": "Number", "description": " l The left position"}, {"type": "", "name": "Number", "description": " t The top position"}], "description": "Sets the background image position to the top and left position", "private": "", "guessedtype": "function"}, "_handleMouseOver": {"description": "Handles the mouseover event", "private": "", "guessedname": "_handleMouseOver", "guessedtype": "function"}, "reset": {"return": {"type": "<a href=\"YAHOO.widget.ImageCropper.html\">YAHOO.widget.ImageCropper</a>", "description": "The ImageCropper instance"}, "description": "Resets the crop element back to it's original position", "guessedname": "reset", "guessedtype": "function"}, "_handleResizeMaskEl": {"description": "Resizes the inner mask element", "private": "", "guessedname": "_handleResizeMaskEl", "guessedtype": "function"}, "_setConstraints": {"return": {"type": "Object", "description": "Object containing Top, Right, Bottom and Left constraints"}, "description": "Set the DragDrop constraints to keep the element inside the crop area.", "private": "", "params": [{"type": "", "name": "Boolean", "description": " inside Used when called from inside a resize event, false by default (dragging)"}], "guessedname": "_setConstraints", "guessedtype": "function"}, "_createMask": {"description": "Creates the mask element used to mask the image", "private": "", "guessedname": "_createMask", "guessedtype": "function"}, "_handleEndResizeEvent": {"description": "Handles the Resize Utilitys endResize event", "private": "", "guessedname": "_handleEndResizeEvent", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "crop.js", "guessedtype": "function", "shortname": "ImageCropper", "properties": {"_resizeEl": {"guessedname": "_resizeEl", "type": "HTMLElement", "description": "The HTML Element used to create the Resize Oject", "private": "", "guessedtype": "property"}, "CSS_RESIZE_MASK": {"guessedname": "CSS_RESIZE_MASK", "type": "String", "description": "The CSS class for the mask inside the resize element", "private": "", "guessedtype": "property"}, "_resizeMaskEl": {"guessedname": "_resizeMaskEl", "type": "HTMLElement", "description": "The HTML Element used to create the Resize mask", "private": "", "guessedtype": "property"}, "_active": {"guessedname": "_active", "type": "Boolean", "description": "Flag to determine if the crop region is active", "private": "", "guessedtype": "property"}, "_mask": {"guessedname": "_mask", "type": "HTMLElement", "description": "The HTML Element created to \"mask\" the image being cropped", "private": "", "guessedtype": "property"}, "_image": {"guessedname": "_image", "type": "String", "description": "The url of the image we are cropping", "private": "", "guessedtype": "property"}, "_instances": {"description": "Internal hash table for all ImageCropper instances", "private": "", "static": "", "guessedname": "_instances", "guessedtype": "property", "type": "Object"}, "CSS_MASK": {"guessedname": "CSS_MASK", "type": "String", "description": "The CSS class for the mask element", "private": "", "guessedtype": "property"}, "_resize": {"guessedname": "_resize", "type": "Object", "description": "A reference to the Resize Utility used in this Cropper Instance", "private": "", "guessedtype": "property"}, "_wrap": {"guessedname": "_wrap", "type": "HTMLElement", "description": "The HTML Element created to wrap the image", "private": "", "guessedtype": "property"}, "CSS_MAIN": {"guessedname": "CSS_MAIN", "type": "String", "description": "The CSS class used to wrap the element", "private": "", "guessedtype": "property"}}, "description": "<p>Creates a Image Cropper control.</p>"}, "YAHOO.widget.ContextMenuItem": {"name": "YAHOO.widget.ContextMenuItem", "deprecated": "As of version 2.4.0 items for YAHOO.widget.ContextMenu instances\nare of type YAHOO.widget.MenuItem.", "constructors": [{"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the context menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying the \n<code><li></code> element of the context menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the context \nmenu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><option></code> element of the context menu item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the context menu item. See configuration class \ndocumentation for more details."}], "description": "Creates an item for a context menu."}], "namespace": "YAHOO.widget", "module": "menu", "guessedname": "ContextMenuItem", "extends": "YAHOO.widget.MenuItem", "superclass": "YAHOO.widget.MenuItem", "file": "contextmenuitem.js", "guessedtype": "property", "shortname": "ContextMenuItem", "description": "Creates an item for a context menu."}, "YAHOO.util.EventProvider": {"name": "YAHOO.util.EventProvider", "namespace": "YAHOO.util", "module": "event", "guessedname": "EventProvider", "methods": {"unsubscribeAll": {"params": [{"type": "string", "name": "p_type", "description": "    The type, or name of the event"}], "description": "Removes all listeners from the specified event.  If the event type\nis not specified, all listeners from all hosted custom events will\nbe removed.", "guessedname": "unsubscribeAll", "guessedtype": "function"}, "subscribe": {"params": [{"type": "string", "name": "p_type", "description": "        the type, or name of the event"}, {"type": "function", "name": "p_fn", "description": "        the function to exectute when the event fires"}, {"type": "Object", "name": "p_obj", "description": "         An object to be passed along when the event \nfires"}, {"type": "boolean", "name": "overrideContext", "description": "   If true, the obj passed in becomes the \nexecution scope of the listener"}], "description": "Subscribe to a CustomEvent by event type", "guessedname": "subscribe", "guessedtype": "function"}, "unsubscribe": {"return": {"type": "boolean", "description": "true if the subscriber was found and detached."}, "params": [{"type": "string", "name": "p_type", "description": "    The type, or name of the event.  If the type\nis not specified, it will attempt to remove\nthe listener from all hosted events."}, {"type": "Function", "name": "p_fn", "description": "    The subscribed function to unsubscribe, if not\nsupplied, all subscribers will be removed."}, {"type": "Object", "name": "p_obj", "description": "     The custom object passed to subscribe.  This is\noptional, but if supplied will be used to\ndisambiguate multiple listeners that are the same\n(e.g., you subscribe many object using a function\nthat lives on the prototype)"}], "description": "Unsubscribes one or more listeners the from the specified event", "guessedname": "unsubscribe", "guessedtype": "function"}, "hasEvent": {"params": [{"type": "string", "name": "type", "description": "  the type, or name of the event"}], "description": "Returns true if the custom event of the provided type has been created\nwith createEvent.", "guessedname": "hasEvent", "guessedtype": "function"}, "fireEvent": {"return": {"type": "boolean", "description": "the return value from CustomEvent.fire"}, "params": [{"type": "string", "name": "p_type", "description": "      the type, or name of the event"}, {"type": "Object*", "name": "arguments", "description": "  an arbitrary set of parameters to pass to \nthe handler."}], "description": "Fire a custom event by name.  The callback functions will be executed\nfrom the scope specified when the event was created, and with the \nfollowing parameters:\n<ul>\n<li>The first argument fire() was executed with</li>\n<li>The custom object (if any) that was passed into the subscribe() \nmethod</li>\n</ul>", "guessedname": "fireEvent", "guessedtype": "function"}, "createEvent": {"return": {"type": "CustomEvent", "description": "the custom event"}, "params": [{"type": "string", "name": "p_type", "description": "  the type, or name of the event"}, {"type": "object", "name": "p_config", "description": "  optional config params.  Valid properties are:\n<ul>\n<li>\nscope: defines the default execution scope.  If not defined\nthe default scope will be this instance.\n</li>\n<li>\nsilent: if true, the custom event will not generate log messages.\nThis is false by default.\n</li>\n<li>\nfireOnce: if true, the custom event will only notify subscribers\nonce regardless of the number of times the event is fired.  In\naddition, new subscribers will be executed immediately if the\nevent has already fired.\nThis is false by default.\n</li>\n<li>\nonSubscribeCallback: specifies a callback to execute when the\nevent has a new subscriber.  This will fire immediately for\neach queued subscriber if any exist prior to the creation of\nthe event.\n</li>\n</ul>"}], "description": "Creates a new custom event of the specified type.  If a custom event\nby that name already exists, it will not be re-created.  In either\ncase the custom event is returned.", "guessedname": "createEvent", "guessedtype": "function"}}, "file": "EventProvider.js", "guessedtype": "function", "shortname": "EventProvider", "properties": {"__yui_subscribers": {"guessedname": "__yui_subscribers", "type": "Object[]", "description": "Private storage of custom event subscribers", "private": "", "guessedtype": "property"}, "__yui_events": {"guessedname": "__yui_events", "type": "Object[]", "description": "Private storage of custom events", "private": "", "guessedtype": "property"}}, "description": "EventProvider is designed to be used with YAHOO.augment to wrap \nCustomEvents in an interface that allows events to be subscribed to \nand fired by name.  This makes it possible for implementing code to\nsubscribe to an event that either has not been created yet, or will\nnot be created at all."}, "YAHOO.widget.CheckboxCellEditor": {"name": "YAHOO.widget.CheckboxCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The CheckboxCellEditor class provides functionality for inline editing\nDataTable cell data with checkboxes."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "CheckboxCellEditor", "methods": {"renderForm": {"description": "Render a form with input(s) type=checkbox.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from CheckboxCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in CheckboxCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets CheckboxCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "CheckboxCellEditor", "properties": {"checkboxOptions": {"type": "String[] | Object[]", "description": "Array of checkbox values. Can either be a simple array (e.g., [\"red\",\"green\",\"blue\"])\nor a an array of objects (e.g., [{label:\"red\", value:\"#FF0000\"},\n{label:\"green\", value:\"#00FF00\"}, {label:\"blue\", value:\"#0000FF\"}]).", "guessedname": "checkboxOptions", "guessedtype": "property"}, "checkboxes": {"type": "HTMLElement[]", "description": "Reference to the checkbox elements.", "guessedname": "checkboxes", "guessedtype": "property"}, "value": {"type": "String[]", "description": "Array of checked values", "guessedname": "value", "guessedtype": "property"}}, "description": "The CheckboxCellEditor class provides functionality for inline editing\nDataTable cell data with checkboxes."}, "YAHOO.tool.Profiler": {"name": "YAHOO.tool.Profiler", "namespace": "YAHOO.tool", "module": "profiler", "guessedname": "Profiler", "methods": {"getFunctionReport": {"return": {"type": "Object", "description": "An object containing profile data for a given function."}, "description": "Returns an object containing profiling data for a single function.\nThe object has an entry for min, max, avg, calls, and points).", "deprecated": "Use getReport() instead.", "static": "", "guessedname": "getFunctionReport", "guessedtype": "function"}, "pause": {"return": {"type": "Void", "description": ""}, "description": "Pauses profiling information for a given name.", "static": "", "guessedname": "pause", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the data point."}]}, "getReport": {"static": "", "return": {"type": "Object", "description": "An object containing profile data for a given function."}, "description": "Returns an object containing profiling data for a single function.\nThe object has an entry for min, max, avg, calls, and points).", "guessedname": "getReport", "guessedtype": "function"}, "start": {"return": {"type": "Void", "description": ""}, "description": "Start profiling information for a given name. The name cannot be the name\nof a registered function or object. This is used to start timing for a\nparticular block of code rather than instrumenting the entire function.", "static": "", "guessedname": "start", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the data point."}]}, "getFullReport": {"static": "", "return": {"type": "Object", "description": "An object containing all profile data."}, "description": "Returns an object containing profiling data for all of the functions \nthat were profiled. The object has an entry for each function and \nreturns all information (min, max, average, calls, etc.) for each\nfunction.", "guessedname": "getFullReport", "guessedtype": "function"}, "unregisterFunction": {"return": {"type": "Void", "description": ""}, "description": "Removes a constructor function from profiling. Reverses the registerConstructor() method.", "param": "{String} name The full name of the function including namespacing. This\nis the name of the function that is stored in the report.", "static": "", "guessedname": "unregisterConstructor", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The full name of the function including namespacing. This\nis the name of the function that is stored in the report."}]}, "clear": {"return": {"type": "Void", "description": ""}, "description": "Removes all report data from the profiler.", "static": "", "guessedname": "clear", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " (Optional) The name of the report to clear. If\nomitted, then all report data is cleared."}]}, "stop": {"return": {"type": "Void", "description": ""}, "description": "Stops profiling information for a given name.", "static": "", "guessedname": "stop", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the data point."}]}, "getCallCount": {"return": {"type": "int", "description": "The number of times the function was called."}, "description": "Returns the number of times that the given function has been called.", "static": "", "guessedname": "getCallCount", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function whose data should be returned."}]}, "saveDataPoint": {"return": {"type": "Void", "description": ""}, "static": "", "params": [{"type": "String", "name": "name", "description": " The name of the function to mark as stopped."}, {"type": "int", "name": "duration", "description": " The number of milliseconds it took the function to\nexecute."}], "description": "Called when a method ends execution. Marks the start and end time of the \nmethod so it can calculate how long the function took to execute. Also \nupdates min/max/avg calculations for the function.", "private": ""}, "registerFunction": {"return": {"type": "Void", "description": ""}, "description": "Sets up a function for profiling. It essentially overwrites the function with one\nthat has instrumentation data. This method also creates an entry for the function\nin the profile report. The original function is stored on the container object.", "static": "", "guessedname": "registerFunction", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The full name of the function including namespacing. This\nis the name of the function that is stored in the report."}, {"type": "Object", "name": "owner", "description": " (Optional) The object that owns the function. If the function\nisn't global then this argument is required. This could be the namespace that\nthe function belongs to, such as YAHOO.util.Dom, or the object on which it's\na method."}, {"type": "Boolean", "name": "registerPrototype", "description": " (Optional) Indicates that the prototype should\nalso be instrumented. Setting to true has the same effect as calling\nregisterConstructor()."}]}, "instrument": {"return": {"type": "Function", "description": "An instrumented version of the function."}, "description": "Instruments a method to have profiling calls.", "static": "", "guessedname": "instrument", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the report for the function."}, {"type": "Function", "name": "method", "description": " The function to instrument."}]}, "getOriginal": {"return": {"type": "Function|Object", "description": "The uninstrumented version of a function/object."}, "description": "Returns the uninstrumented version of a function/object.", "static": "", "guessedname": "getOriginal", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function/object to retrieve."}]}, "getAverage": {"return": {"type": "float", "description": "The average time it takes the function to execute."}, "description": "Returns the average amount of time (in milliseconds) that the function\nwith the given name takes to execute.", "static": "", "guessedname": "getAverage", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function whose data should be returned.\nIf an object type method, it should be 'constructor.prototype.methodName';\na normal object method would just be 'object.methodName'."}]}, "createReport": {"return": {"type": "Void", "description": ""}, "params": [{"type": "String", "name": "name", "description": " The name to store for the report object."}], "description": "Creates a report object with the given name.", "private": ""}, "getMin": {"return": {"type": "float", "description": "The minimum time it takes the function to execute."}, "description": "Returns the minimum amount of time (in milliseconds) that the function\nwith the given name takes to execute.", "static": "", "guessedname": "getMin", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function whose data should be returned.\nIf an object type method, it should be 'constructor.prototype.methodName';\na normal object method would just be 'object.methodName'."}]}, "unregisterObject": {"return": {"type": "Void", "description": ""}, "description": "Unregisters an object for profiling. It takes the object and looks for functions.\nWhen a function is found, unregisterMethod() is called on it. If set to recrusive\nmode, it will also unregister objects found inside of this object, \nusing the same methodology.", "static": "", "guessedname": "unregisterObject", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the object to unregister."}, {"type": "Boolean", "name": "recurse", "description": " (Optional) Determines if subobject methods should also be\nunregistered."}]}, "getMax": {"return": {"type": "float", "description": "The maximum time it takes the function to execute."}, "description": "Returns the maximum amount of time (in milliseconds) that the function\nwith the given name takes to execute.", "static": "", "guessedname": "getMax", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function whose data should be returned.\nIf an object type method, it should be 'constructor.prototype.methodName';\na normal object method would just be 'object.methodName'."}]}, "registerConstructor": {"return": {"type": "Void", "description": ""}, "description": "Sets up a constructor for profiling, including all properties and methods on the prototype.", "static": "", "guessedname": "registerConstructor", "guessedtype": "function", "params": [{"type": "string", "name": "name", "description": " The fully-qualified name of the function including namespace information."}, {"type": "Object", "name": "owner", "description": " (Optional) The object that owns the function (namespace or containing object)."}]}, "registerObject": {"return": {"type": "Void", "description": ""}, "description": "Sets up an object for profiling. It takes the object and looks for functions.\nWhen a function is found, registerMethod() is called on it. If set to recrusive\nmode, it will also setup objects found inside of this object for profiling, \nusing the same methodology.", "static": "", "guessedname": "registerObject", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the object to profile (shows up in report)."}, {"type": "Object", "name": "owner", "description": " (Optional) The object represented by the name."}, {"type": "Boolean", "name": "recurse", "description": " (Optional) Determines if subobject methods are also profiled."}]}}, "static": "", "file": "Profiler.js", "guessedtype": "function", "shortname": "Profiler", "description": "Profiles functions in JavaScript."}, "YAHOO.widget.OverlayManager": {"name": "YAHOO.widget.OverlayManager", "configs": {"focusevent": {"default": "\"mousedown\"", "type": "String", "description": "The default DOM event that should be used to focus an Overlay", "guessedname": "value", "guessedtype": "property"}, "overlays": {"default": "null", "type": "YAHOO.widget.Overlay[]", "description": "The collection of registered Overlays in use by \nthe OverlayManager", "guessedname": "suppressEvent", "guessedtype": "property"}}, "constructors": [{"params": [{"type": "Array", "name": "overlays", "description": " Optional. A collection of Overlays to register \nwith the manager."}, {"type": "Object", "name": "userConfig", "description": "  The object literal representing the user \nconfiguration of the OverlayManager"}], "description": "OverlayManager is used for maintaining the focus status of \nmultiple Overlays."}], "namespace": "YAHOO.widget", "module": "container", "guessedname": "OverlayManager", "methods": {"toString": {"return": {"type": "String", "description": "The string representation of the OverlayManager"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "blurAll": {"description": "Removes focus from all registered Overlays in the manager", "guessedname": "blurAll", "guessedtype": "function"}, "focus": {"params": [{"type": "Overlay", "name": "overlay", "description": " The Overlay to focus"}, {"type": "String", "name": "overlay", "description": " The id of the Overlay to focus"}], "description": "Focuses the specified Overlay", "guessedname": "focus", "guessedtype": "function"}, "_bindBlur": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay for which blur needs to be managed"}], "description": "Subscribes to the Overlay based instance's blurEvent to allow the OverlayManager to\nmonitor blur state.\nIf the instance already has a blurEvent (e.g. Menu), OverlayManager will subscribe \nto the existing blurEvent, however if a blurEvent or blur method does not exist\non the instance, the _bindBlur method will add them, and the blur method \nupdate the OverlayManager's state directly.", "guessedname": "_bindBlur", "guessedtype": "function"}, "_manageBlur": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay instance which got blurred."}], "description": "Updates the state of the OverlayManager and overlay, as a result of the overlay\nbeing blurred.", "guessedname": "_manageBlur", "guessedtype": "function"}, "_onOverlayBlurHandler": {"guessedname": "_onOverlayBlurHandler", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}, {"type": "Overlay", "name": "p_oOverlay", "description": " Object representing the overlay that \nfired the event."}], "description": "blurEvent Handler, used to delegate to _manageBlur with the correct arguments.", "private": "", "guessedtype": "function"}, "_manageFocus": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay instance which got focus."}], "description": "Updates the state of the OverlayManager and overlay, as a result of the overlay \nreceiving focus.", "guessedname": "_manageFocus", "guessedtype": "function"}, "find": {"return": {"type": "Overlay", "description": "The requested Overlay, if found, or null if it \ncannot be located."}, "params": [{"type": "Overlay", "name": "overlay", "description": "  An Overlay to locate within the manager"}, {"type": "String", "name": "overlay", "description": "  An Overlay id to locate within the manager"}], "description": "Attempts to locate an Overlay by instance or ID.", "guessedname": "find", "guessedtype": "function"}, "bringToTop": {"params": [{"type": "YAHOO.widget.Overlay", "name": "p_oOverlay", "description": " Object representing an \nOverlay instance."}, {"type": "String", "name": "p_oOverlay", "description": " String representing the id of an \nOverlay instance."}], "description": "Places the specified Overlay instance on top of all other \nOverlay instances.", "guessedname": "bringToTop", "guessedtype": "function"}, "init": {"params": [{"type": "Overlay[]", "name": "overlays", "description": " Optional. A collection of Overlays to \nregister with the manager."}, {"type": "Object", "name": "userConfig", "description": "  The object literal representing the user \nconfiguration of the OverlayManager"}], "description": "Initializes the OverlayManager", "guessedname": "init", "guessedtype": "function"}, "getActive": {"return": {"type": "Overlay", "description": "The currently focused Overlay"}, "description": "Returns the currently focused Overlay", "guessedname": "getActive", "guessedtype": "function"}, "_bindDestroy": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay instance being managed"}], "description": "Subscribes to the Overlay based instance's destroyEvent, to allow the Overlay\nto be removed for the OverlayManager when destroyed.", "guessedname": "_bindDestroy", "guessedtype": "function"}, "showAll": {"description": "Shows all Overlays in the manager.", "guessedname": "showAll", "guessedtype": "function"}, "_bindFocus": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay for which focus needs to be managed"}], "description": "Subscribes to the Overlay based instance focusEvent, to allow the OverlayManager to\nmonitor focus state.\nIf the instance already has a focusEvent (e.g. Menu), OverlayManager will subscribe \nto the existing focusEvent, however if a focusEvent or focus method does not exist\non the instance, the _bindFocus method will add them, and the focus method will \nupdate the OverlayManager's state directly.", "guessedname": "_bindFocus", "guessedtype": "function"}, "hideAll": {"description": "Hides all Overlays in the manager.", "guessedname": "hideAll", "guessedtype": "function"}, "_syncZIndex": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay instance being managed"}], "description": "Ensures the zIndex configuration property on the managed overlay based instance\nis set to the computed zIndex value from the DOM (with \"auto\" translating to 0).", "guessedname": "_syncZIndex", "guessedtype": "function"}, "_onOverlayDestroy": {"guessedname": "_onOverlayDestroy", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}, {"type": "Overlay", "name": "p_oOverlay", "description": " Object representing the overlay that \nfired the event."}], "description": "\"destroy\" event handler for the Overlay.", "private": "", "guessedtype": "function"}, "_onOverlayFocusHandler": {"guessedname": "_onOverlayFocusHandler", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}, {"type": "Overlay", "name": "p_oOverlay", "description": " Object representing the overlay that \nfired the event."}], "description": "focusEvent Handler, used to delegate to _manageFocus with the correct arguments.", "private": "", "guessedtype": "function"}, "register": {"return": {"type": "boolean", "description": "true if any Overlays are registered."}, "params": [{"type": "Overlay", "name": "overlay", "description": "  An Overlay to register with the manager."}, {"type": "Overlay[]", "name": "overlay", "description": "  An array of Overlays to register with \nthe manager."}], "description": "Registers an Overlay or an array of Overlays with the manager. Upon \nregistration, the Overlay receives functions for focus and blur, \nalong with CustomEvents for each.", "guessedname": "register", "guessedtype": "function"}, "remove": {"params": [{"type": "Overlay", "name": "overlay", "description": " The Overlay to remove"}, {"type": "String", "name": "overlay", "description": " The id of the Overlay to remove"}], "description": "Removes the specified Overlay from the manager", "guessedname": "remove", "guessedtype": "function"}, "compareZIndexDesc": {"guessedname": "compareZIndexDesc", "return": {"type": "Number", "description": "0, 1, or -1, depending on where the Overlay should \nfall in the stacking order."}, "description": "Used for sorting the manager's Overlays by z-index.", "private": "", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the default configuration of the OverlayManager", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "_onOverlayElementFocus": {"guessedname": "_onOverlayElementFocus", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event \nobject passed back by the event utility (Event)."}], "description": "Event handler for the DOM event that is used to focus \nthe Overlay instance as specified by the \"focusevent\" \nconfiguration property.", "private": "", "guessedtype": "function"}}, "file": "OverlayManager.js", "guessedtype": "function", "shortname": "OverlayManager", "properties": {"activeOverlay": {"guessedname": "activeOverlay", "type": "YAHOO.widget.Overlay", "description": "The currently activated Overlay", "private": "", "guessedtype": "property"}, "cfg": {"type": "Config", "description": "The OverlayManager's Config object used for monitoring \nconfiguration properties.", "guessedname": "cfg", "guessedtype": "property"}, "contructor": {"type": "Function", "description": "The class's constructor function", "guessedname": "constructor", "guessedtype": "property"}, "overlays": {"type": "YAHOO.widget.Overlay[]", "description": "The array of Overlays that are currently registered", "guessedname": "overlays", "guessedtype": "property"}, "OverlayManager.CSS_FOCUSED": {"description": "The CSS class representing a focused Overlay", "static": "", "guessedname": "CSS_FOCUSED", "guessedtype": "property", "type": "String", "final": ""}}, "description": "OverlayManager is used for maintaining the focus status of \nmultiple Overlays."}, "YAHOO.widget.SimpleEditor": {"name": "YAHOO.widget.SimpleEditor", "configs": {"saveEl": {"default": "element", "type": "HTMLElement", "description": "When save HTML is called, this element will be updated as well as the source of data."}, "height": {"default": "Best guessed size of the textarea, for best results use CSS to style the height of the textarea or pass it in as an argument", "type": "String", "description": "The height of the editor iframe container, not including the toolbar.."}, "disabled": {"default": "false", "type": "Boolean", "description": "This will toggle the editor's disabled state. When the editor is disabled, designMode is turned off and a mask is placed over the iframe so no interaction can take place.\nAll Toolbar buttons are also disabled so they cannot be used."}, "focusAtStart": {"default": "false", "type": "Boolean", "description": "Should we focus the window when the content is ready?"}, "toolbar_cont": {"default": "false", "type": "Boolean", "description": "Internal config for the toolbars container"}, "editor_wrapper": {"default": "null", "type": "HTMLElement", "description": "The outter wrapper for the entire editor.", "private": ""}, "animate": {"default": "false unless Animation is found, then true", "type": "Boolean", "description": "Should the editor animate window movements"}, "maxUndo": {"default": "30", "type": "Number", "description": "The max number of undo levels to store."}, "container": {"default": "false", "type": "HTMLElement", "description": "Used when dynamically creating the Editor from Javascript with no default textarea.\nWe will create one and place it in this container. If no container is passed we will append to document.body."}, "extracss": {"default": "''", "type": "String", "description": "Extra user defined css to load after the default SimpleEditor CSS"}, "width": {"default": "Best guessed size of the textarea, for best results use CSS to style the width of the textarea or pass it in as an argument", "type": "String", "description": "The width of the editor container."}, "setDesignMode": {"default": "true", "type": "Boolean", "description": "Should the Editor set designMode on the document. Default: true."}, "blankimage": {"default": "The yahooapis.com address for the current release + 'assets/blankimage.png'", "type": "String", "description": "The URL for the image placeholder to put in when inserting an image."}, "handleSubmit": {"default": "false", "type": "Boolean", "description": "Config handles if the editor will attach itself to the textareas parent form's submit handler.\nIf it is set to true, the editor will attempt to attach a submit listener to the textareas parent form.\nThen it will trigger the editors save handler and place the new content back into the text area before the form is submitted."}, "allowNoEdit": {"default": "false", "type": "Boolean", "description": "Should the editor check for non-edit fields. It should be noted that this technique is not perfect. If the user does the right things, they will still be able to make changes.\nSuch as highlighting an element below and above the content and hitting a toolbar button or a shortcut key."}, "css": {"default": "<code><pre>html {\nheight: 95%;\n}\nbody {\nheight: 100%;\npadding: 7px; background-color: #fff; font:13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;\n}\na {\ncolor: blue;\ntext-decoration: underline;\ncursor: pointer;\n}\n.warning-localfile {\nborder-bottom: 1px dashed red !important;\n}\n.yui-busy {\ncursor: wait !important;\n}\nimg.selected { //Safari image selection\nborder: 2px dotted #808080;\n}\nimg {\ncursor: pointer !important;\nborder: none;\n}\n</pre></code>", "type": "String", "description": "The Base CSS used to format the content of the editor"}, "autoHeight": {"default": "false", "type": "Boolean || Number", "description": "Remove the scrollbars from the edit area and resize it to fit the content. It will not go any lower than the current config height."}, "element_cont": {"default": "false", "type": "HTMLElement", "description": "Internal config for the editors container"}, "disabled_iframe": {"default": "null", "type": "HTMLElement", "description": "Internal config for holding the iframe element used when disabling the Editor.", "private": ""}, "ptags": {"default": "false", "type": "Boolean", "description": "If true, the editor uses <P> tags instead of <br> tags. (Use Shift + Enter to get a <br>)"}, "filterWord": {"type": "Boolean", "description": "Attempt to filter out MS Word HTML from the Editor's output."}, "removeLineBreaks": {"default": "false", "type": "Boolean", "description": "Should we remove linebreaks and extra spaces on cleanup"}, "toolbar": {"type": "Object", "description": "The default toolbar config."}, "drag": {"type": "{Boolean/String}", "description": "Set this config to make the Editor draggable, pass 'proxy' to make use YAHOO.util.DDProxy."}, "resize": {"type": "Boolean", "description": "Set this to true to make the Editor Resizable with YAHOO.util.Resize. The default config is available: myEditor._resizeConfig\nAnimation will be ignored while performing this resize to allow for the dynamic change in size of the toolbar."}, "nodeChangeThreshold": {"default": "3", "type": "Number", "description": "The number of seconds that need to be in between nodeChange processing"}, "limitCommands": {"default": "false", "type": "Boolean", "description": "Should the Editor limit the allowed execCommands to the ones available in the toolbar. If true, then execCommand and keyboard shortcuts will fail if they are not defined in the toolbar."}, "panel": {"default": "false", "type": "Boolean", "description": "A reference to the panel we are using for windows."}, "insert": {"default": "false", "type": "Boolean", "description": "If true, selection is not required for: fontname, fontsize, forecolor, backcolor."}, "nodeChangeDelay": {"default": "true", "type": "Boolean", "description": "Do we wrap the nodeChange method in a timeout for performance. Default: true."}, "textarea": {"default": "null", "depreciated": "- No longer used, should use this.get('element')", "type": "HTMLElement", "description": "Internal config for holding the textarea element (replaced with element).", "private": ""}, "plainText": {"default": "false", "type": "Boolean", "description": "Process the inital textarea data as if it was plain text. Accounting for spaces, tabs and line feeds."}, "markup": {"default": "\"semantic\"", "type": "String", "description": "Should we try to adjust the markup for the following types: semantic, css, default or xhtml"}, "html": {"default": "This HTML requires a few things if you are to override:\n<p><code>{TITLE}, {CSS}, {HIDDEN_CSS}, {EXTRA_CSS}</code> and <code>{CONTENT}</code> need to be there, they are passed to YAHOO.lang.substitute to be replace with other strings.<p>\n<p><code>onload=\"document.body._rteLoaded = true;\"</code> : the onload statement must be there or the editor will not finish loading.</p>\n<code>\n<pre>\n<html>\n<head>\n<title>{TITLE}</title>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<style>\n{CSS}\n</style>\n<style>\n{HIDDEN_CSS}\n</style>\n<style>\n{EXTRA_CSS}\n</style>\n</head>\n<body onload=\"document.body._rteLoaded = true;\">\n{CONTENT}\n</body>\n</html>\n</pre>\n</code>", "type": "String", "description": "The default HTML to be written to the iframe document before the contents are loaded (Note that the DOCTYPE attr will be added at render item)"}, "dompath": {"default": "false", "type": "Boolean", "description": "Toggle the display of the current Dom path below the editor"}, "iframe": {"default": "null", "type": "HTMLElement", "description": "Internal config for holding the iframe element.", "private": ""}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The textarea element to turn into an editor."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "The Rich Text Editor is a UI control that replaces a standard HTML textarea; it allows for the rich formatting of text content, including common structural treatments like lists, formatting treatments like bold and italic text, and drag-and-drop inclusion and sizing of images. The Rich Text Editor's toolbar is extensible via a plugin architecture so that advanced implementations can achieve a high degree of customization."}], "namespace": "YAHOO.widget", "module": "editor", "events": {"markupChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "markupChange", "description": "Fires when the value for the configuration attribute 'markup' changes."}, "beforeBlankimageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBlankimageChange", "description": "Fires before the value for the configuration attribute 'blankimage' changes. Return false to cancel the attribute change."}, "editorKeyUp": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "htmlChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "htmlChange", "description": "Fires when the value for the configuration attribute 'html' changes."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "dompathChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dompathChange", "description": "Fires when the value for the configuration attribute 'dompath' changes."}, "beforeFocusAtStartChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFocusAtStartChange", "description": "Fires before the value for the configuration attribute 'focusAtStart' changes. Return false to cancel the attribute change."}, "beforeEditorMouseDown": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "toolbarLoaded": {"type": "YAHOO.util.CustomEvent", "description": "Event is fired during the render process directly after the Toolbar is loaded. Allowing you to attach events to the toolbar. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeToolbarChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeToolbarChange", "description": "Fires before the value for the configuration attribute 'toolbar' changes. Return false to cancel the attribute change."}, "editorMouseDown": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "editorDoubleClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeHtmlChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHtmlChange", "description": "Fires before the value for the configuration attribute 'html' changes. Return false to cancel the attribute change."}, "afterRender": {"type": "YAHOO.util.CustomEvent", "description": "Event is fired after the render process finishes. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "cssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "cssChange", "description": "Fires when the value for the configuration attribute 'css' changes."}, "editorWindowFocus": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the iframe is focused. Note, this is window focus event, not an Editor focus event."}, "afterExecCommand": {"type": "YAHOO.util.CustomEvent", "description": "Event fires at the end of the execCommand process. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeEditorKeyPress": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "beforeEditorMouseUp": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "beforeEditorKeyDown": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "beforeCssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCssChange", "description": "Fires before the value for the configuration attribute 'css' changes. Return false to cancel the attribute change."}, "editorKeyDown": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeMarkupChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMarkupChange", "description": "Fires before the value for the configuration attribute 'markup' changes. Return false to cancel the attribute change."}, "beforeExtracssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeExtracssChange", "description": "Fires before the value for the configuration attribute 'extracss' changes. Return false to cancel the attribute change."}, "beforeEditorKeyUp": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "removeLineBreaksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "removeLineBreaksChange", "description": "Fires when the value for the configuration attribute 'removeLineBreaks' changes."}, "beforeDompathChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDompathChange", "description": "Fires before the value for the configuration attribute 'dompath' changes. Return false to cancel the attribute change."}, "editorClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "animateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateChange", "description": "Fires when the value for the configuration attribute 'animate' changes."}, "focusAtStartChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "focusAtStartChange", "description": "Fires when the value for the configuration attribute 'focusAtStart' changes."}, "beforeExecCommand": {"type": "YAHOO.util.CustomEvent", "description": "Event fires at the beginning of the execCommand process. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "toolbarChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "toolbarChange", "description": "Fires when the value for the configuration attribute 'toolbar' changes."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}, "blankimageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "blankimageChange", "description": "Fires when the value for the configuration attribute 'blankimage' changes."}, "beforeEditorDoubleClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "editorMouseUp": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeAnimateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateChange", "description": "Fires before the value for the configuration attribute 'animate' changes. Return false to cancel the attribute change."}, "editorContentLoaded": {"type": "YAHOO.util.CustomEvent", "description": "Event is fired after the editor iframe's document fully loads and fires it's onload event. From here you can start injecting your own things into the document. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeRemoveLineBreaksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRemoveLineBreaksChange", "description": "Fires before the value for the configuration attribute 'removeLineBreaks' changes. Return false to cancel the attribute change."}, "beforeEditorClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "cleanHTML": {"type": "YAHOO.util.CustomEvent", "description": "Event is fired after the cleanHTML method is called."}, "beforeHandleSubmitChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHandleSubmitChange", "description": "Fires before the value for the configuration attribute 'handleSubmit' changes. Return false to cancel the attribute change."}, "extracssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "extracssChange", "description": "Fires when the value for the configuration attribute 'extracss' changes."}, "editorKeyPress": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "handleSubmitChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "handleSubmitChange", "description": "Fires when the value for the configuration attribute 'handleSubmit' changes."}, "beforeNodeChange": {"type": "YAHOO.util.CustomEvent", "description": "Event fires at the beginning of the nodeChange process. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "afterNodeChange": {"type": "YAHOO.util.CustomEvent", "description": "Event fires at the end of the nodeChange process. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "editorWindowBlur": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the iframe is blurred. Note, this is window blur event, not an Editor blur event."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "SimpleEditor", "methods": {"_setCurrentEvent": {"guessedname": "_setCurrentEvent", "params": [{"type": "Event", "name": "ev", "description": " The event to cache"}], "description": "Sets the current event property", "private": "", "guessedtype": "function"}, "show": {"description": "This method needs to be called if the Editor was hidden (like in a TabView or Panel). It is used to reset the editor after being in a container that was set to display none.", "guessedname": "show", "guessedtype": "function"}, "focus": {"description": "Attempt to set the focus of the iframes window.", "guessedname": "focus", "guessedtype": "function"}, "cmd_inserthtml": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('inserthtml') is used.", "guessedname": "cmd_inserthtml", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the editor."}], "description": "Initializes all of the configuration attributes used to create \nthe editor.", "guessedname": "initAttributes", "guessedtype": "function"}, "cmd_bold": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('bold') is used.", "guessedname": "cmd_bold", "guessedtype": "function"}, "filter_invalid_lists": {"params": [{"type": "", "name": "String", "description": " html The HTML string to filter"}], "description": "Filters invalid ol and ul list markup, converts this: <li></li><ol>..</ol> to this: <li></li><li><ol>..</ol></li>", "guessedname": "filter_invalid_lists", "guessedtype": "function"}, "_checkLoaded": {"guessedname": "_checkLoaded", "params": [{"type": "Boolean", "name": "raw", "description": " Don't add events."}], "description": "Called from a setTimeout loop to check if the iframes body.onload event has fired, then it will init the editor.", "private": "", "guessedtype": "function"}, "_removeEditorEvents": {"description": "This method removes the listeners on the Editors document (for disabling).", "private": "", "guessedname": "_removeEditorEvents", "guessedtype": "function"}, "_toggleDesignMode": {"guessedname": "_toggleDesignMode", "return": {"type": "String", "description": "The state that it was set to."}, "description": "Toggles the designMode property of the iFrame document on and off.", "private": "", "guessedtype": "function"}, "_setupDD": {"description": "Sets up the DD instance used from the 'drag' config option.", "private": "", "guessedname": "_setupDD", "guessedtype": "function"}, "render": {"description": "Calls the private method _render in a setTimeout to allow for other things on the page to continue to load.", "guessedname": "render", "guessedtype": "function"}, "_handleAfterNodeChange": {"description": "Fires after a nodeChange happens to setup the things that where reset on the node change (button state).", "private": "", "guessedname": "_handleAfterNodeChange", "guessedtype": "function"}, "_fixListDupIds": {"description": "Some browsers will duplicate the id of an LI when created in designMode.\nThis method will fix the duplicate id issue. However it will only preserve the first element \nin the document list with the unique id.", "private": "", "guessedname": "_fixListDupIds", "guessedtype": "function"}, "init": {"description": "The Editor class' initialization method", "guessedname": "init", "guessedtype": "function"}, "closeWindow": {"description": "Override Method for Advanced Editor", "guessedname": "closeWindow", "guessedtype": "function"}, "_handleFormSubmit": {"guessedname": "_handleFormSubmit", "params": [{"type": "Object", "name": "ev", "description": " The Form Submit Event"}], "description": "Handles the form submission.", "private": "", "guessedtype": "function"}, "_handleMouseDown": {"guessedname": "_handleMouseDown", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all mousedown events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_handleFocus": {"guessedname": "_handleFocus", "params": [{"type": "Event", "name": "e", "description": " The DOM Event"}], "description": "Handles the focus of the iframe. Note, this is window focus event, not an Editor focus event.", "private": "", "guessedtype": "function"}, "_handleFontSize": {"guessedname": "_handleFontSize", "params": [{"type": "Object", "name": "o", "description": " Object returned from Toolbar's buttonClick Event"}], "description": "Handles the font size button in the toolbar.", "private": "", "guessedtype": "function"}, "_initEditorEvents": {"description": "This method sets up the listeners on the Editors document.", "private": "", "guessedname": "_initEditorEvents", "guessedtype": "function"}, "nodeChange": {"params": [{"type": "Boolean", "name": "force", "description": " Optional paramenter to skip the threshold counter"}], "description": "Handles setting up the toolbar buttons, getting the Dom path, fixing nodes.", "guessedname": "nodeChange", "guessedtype": "function"}, "_updateMenuChecked": {"guessedname": "_updateMenuChecked", "params": [{"type": "Object", "name": "button", "description": " The command identifier of the button you want to check"}, {"type": "String", "name": "value", "description": " The value of the menu item you want to check"}, {"type": "<a href=\"YAHOO.widget.Toolbar.html\">YAHOO.widget.Toolbar</a>", "name": "The", "description": " Toolbar instance the button belongs to (defaults to this.toolbar)"}], "description": "Gets the menu from a button instance, if the menu is not rendered it will render it. It will then search the menu for the specified value, unchecking all other items and checking the specified on.", "private": "", "guessedtype": "function"}, "_cleanClassName": {"return": {"type": "String", "description": ""}, "description": "Makes a useable classname from dynamic data, by dropping it to lowercase and replacing spaces with -'s.", "private": "", "params": [{"type": "String", "name": "str", "description": " The classname to clean up"}], "guessedname": "_cleanClassName", "guessedtype": "function"}, "_setDesignMode": {"guessedname": "_setDesignMode", "params": [{"type": "String", "name": "state", "description": " This should be either on or off"}], "description": "Sets the designMode property of the iFrame document's body.", "private": "", "guessedtype": "function"}, "cmd_fontname": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('fontname') is used.", "guessedname": "cmd_fontname", "guessedtype": "function"}, "_handleMouseUp": {"guessedname": "_handleMouseUp", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all mouseup events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_render": {"description": "Causes the toolbar and the editor to render and replace the textarea.", "private": "", "guessedname": "_render", "guessedtype": "function"}, "_getSelection": {"guessedname": "_getSelection", "return": {"type": "Object", "description": "Selection Object"}, "description": "Handles the different selection objects across the A-Grade list.", "private": "", "guessedtype": "function"}, "_createIframe": {"return": {"type": "Object", "description": "iFrame object"}, "description": "_createIframe", "private": "", "params": [{"type": "String", "name": "id", "description": " The string ID to prefix the iframe with"}], "guessedname": "_createIframe", "guessedtype": "function"}, "cmd_forecolor": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('forecolor') is used.", "guessedname": "cmd_forecolor", "guessedtype": "function"}, "_handleBlur": {"guessedname": "_handleBlur", "params": [{"type": "Event", "name": "e", "description": " The DOM Event"}], "description": "Handles the blur of the iframe. Note, this is window blur event, not an Editor blur event.", "private": "", "guessedtype": "function"}, "_getDoc": {"guessedname": "_getDoc", "return": {"type": "Object", "description": ""}, "description": "Get the Document of the IFRAME", "private": "", "guessedtype": "function"}, "filter_all_rgb": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " str The HTML string to filter"}], "description": "Converts all RGB color strings found in passed string to a hex color, example: style=\"color: rgb(0, 255, 0)\" converts to style=\"color: #00ff00\"", "guessedname": "filter_all_rgb", "guessedtype": "function"}, "cmd_italic": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('italic') is used.", "guessedname": "cmd_italic", "guessedtype": "function"}, "_handleInsertImageWindowClose": {"description": "Handles the closing of the Image Properties Window.", "private": "", "guessedname": "_handleInsertImageWindowClose", "guessedtype": "function"}, "_handleToolbarClick": {"guessedname": "_handleToolbarClick", "params": [{"type": "Event", "name": "ev", "description": " The event that triggered the button click"}], "description": "This is an event handler attached to the Toolbar's buttonClick event. It will fire execCommand with the command identifier from the Toolbar Button.", "private": "", "guessedtype": "function"}, "filter_rgb": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " css The CSS string containing rgb(#,#,#);"}], "description": "Converts an RGB color string to a hex color, example: rgb(0, 255, 0) converts to #00ff00", "guessedname": "filter_rgb", "guessedtype": "function"}, "cmd_createlink": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('createlink') is used.", "guessedname": "cmd_createlink", "guessedtype": "function"}, "cmd_insertorderedlist": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('insertorderedlist ') is used.", "guessedname": "cmd_insertorderedlist", "guessedtype": "function"}, "_disableEditor": {"guessedname": "_disableEditor", "params": [{"type": "Boolean", "name": "disabled", "description": " Pass true to disable, false to enable"}], "description": "Creates a mask to place over the Editor.", "private": "", "guessedtype": "function"}, "cmd_insertunorderedlist": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('insertunorderedlist') is used.", "guessedname": "cmd_insertunorderedlist", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the editor.", "guessedname": "toString", "guessedtype": "function"}, "cmd_insertimage": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('insertimage') is used.", "guessedname": "cmd_insertimage", "guessedtype": "function"}, "getEditorHTML": {"description": "Gets the unprocessed/unfiltered HTML from the editor", "guessedname": "getEditorHTML", "guessedtype": "function"}, "saveHTML": {"return": {"type": "", "description": "String"}, "description": "Cleans the HTML with the cleanHTML method then places that string back into the textarea.", "guessedname": "saveHTML", "guessedtype": "function"}, "_setupAfterElement": {"description": "Creates the accessibility h2 header and places it after the iframe in the Dom for navigation.", "private": "", "guessedname": "_setupAfterElement", "guessedtype": "function"}, "cmd_underline": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('underline') is used.", "guessedname": "cmd_underline", "guessedtype": "function"}, "_getDomPath": {"return": {"type": "Array", "description": "An array of node references that will create the DOM Path."}, "description": "This method will attempt to build the DOM path from the currently selected element.", "private": "", "params": [{"type": "", "name": "HTMLElement", "description": " el The element to start with, if not provided _getSelectedElement is used"}], "guessedname": "_getDomPath", "guessedtype": "function"}, "_hasParent": {"return": {"type": "", "description": "HTMLElement"}, "description": "_hasParent", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "tag", "description": " The tag that the element needs to be"}], "guessedname": "_hasParent", "guessedtype": "function"}, "_listFix": {"guessedname": "_listFix", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles the Enter key, Tab Key and Shift + Tab keys for List Items.", "private": "", "guessedtype": "function"}, "_createCurrentElement": {"guessedname": "_createCurrentElement", "params": [{"type": "String", "name": "tagName", "description": " (optional defaults to a) The tagname of the element that you wish to create"}, {"type": "Object", "name": "tagStyle", "description": " (optional) Object literal containing styles to apply to the new element."}], "description": "This is a work around for the various browser issues with execCommand. This method will run <code>execCommand('fontname', false, 'yui-tmp')</code> on the given selection.\nIt will then search the document for an element with the font-family set to <strong>yui-tmp</strong> and replace that with another span that has other information in it, then assign the new span to the \n<code>this.currentElement</code> array, so we now have element references to the elements that were just modified. At this point we can use standard DOM manipulation to change them as we see fit.", "private": "", "guessedtype": "function"}, "_focusWindow": {"guessedname": "_focusWindow", "depreciated": "- This should not be used, moved to this.focus();", "description": "Attempt to set the focus of the iframes window.", "private": "", "guessedtype": "function"}, "_handleKeyDown": {"guessedname": "_handleKeyDown", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all keydown events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_closeWindow": {"description": "Override Method for Advanced Editor", "private": "", "guessedname": "_closeWindow", "guessedtype": "function"}, "_nodeChange": {"guessedname": "_nodeChange", "params": [{"type": "Boolean", "name": "force", "description": " Optional paramenter to skip the threshold counter"}], "description": "Fired from nodeChange in a setTimeout.", "private": "", "guessedtype": "function"}, "_fixNodes": {"description": "Fix href and imgs as well as remove invalid HTML.", "private": "", "guessedname": "_fixNodes", "guessedtype": "function"}, "setEditorHTML": {"params": [{"type": "String", "name": "incomingHTML", "description": " The html content to load into the editor"}], "description": "Loads HTML into the editors body", "guessedname": "setEditorHTML", "guessedtype": "function"}, "_cleanIncomingHTML": {"return": {"type": "String", "description": "The filtered HTML"}, "params": [{"type": "String", "name": "html", "description": " The unfiltered HTML"}], "description": "Process the HTML with a few regexes to clean it up and stabilize the input", "guessedname": "_cleanIncomingHTML", "guessedtype": "function"}, "_isLocalFile": {"guessedname": "_isLocalFile", "params": [{"type": "String", "name": "url", "description": " THe url/string to check"}], "description": "Checks to see if a string (href or img src) is possibly a local file reference..", "private": "", "guessedtype": "function"}, "_swapEl": {"guessedname": "_swapEl", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to swap with"}, {"type": "String", "name": "tagName", "description": " The tagname of the element that you wish to create"}, {"type": "Function", "name": "callback", "description": " (optional) A function to run on the element after it is created, but before it is replaced. An element reference is passed to this function."}], "description": "This function will create a new element in the DOM and populate it with the contents of another element. Then it will assume it's place.", "private": "", "guessedtype": "function"}, "openWindow": {"description": "Override Method for Advanced Editor", "guessedname": "openWindow", "guessedtype": "function"}, "pre_filter_linebreaks": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " html The HTML to filter"}, {"type": "", "name": "String", "description": " markup The markup type to filter to"}], "description": "HTML Pre Filter", "guessedname": "pre_filter_linebreaks", "guessedtype": "function"}, "_getSelectedElement": {"guessedname": "_getSelectedElement", "return": {"type": "HTMLElement", "description": "The currently selected element."}, "description": "This method will attempt to locate the element that was last interacted with, either via selection, location or event.", "private": "", "guessedtype": "function"}, "clearEditorDoc": {"description": "Clear the doc of the Editor", "guessedname": "clearEditorDoc", "guessedtype": "function"}, "_handleInsertImageClick": {"description": "Opens the Image Properties Window when the insert Image button is clicked or an Image is Double Clicked.", "private": "", "guessedname": "_handleInsertImageClick", "guessedtype": "function"}, "_handleKeyPress": {"guessedname": "_handleKeyPress", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all keypress events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_hasSelection": {"guessedname": "_hasSelection", "return": {"type": "Boolean", "description": ""}, "description": "Determines if there is a selection in the editor document.", "private": "", "guessedtype": "function"}, "_handleColorPicker": {"guessedname": "_handleColorPicker", "params": [{"type": "Object", "name": "o", "description": " Object returned from Toolbar's buttonClick Event"}], "description": "Handles the colorpicker buttons in the toolbar.", "private": "", "guessedtype": "function"}, "_selectNode": {"guessedname": "_selectNode", "params": [{"type": "HTMLElement", "name": "node", "description": " The node to select"}], "description": "Places the highlight around a given node", "private": "", "guessedtype": "function"}, "_handleAutoHeight": {"description": "Handles resizing the editor's height based on the content", "private": "", "guessedname": "_handleAutoHeight", "guessedtype": "function"}, "_handleAlign": {"guessedname": "_handleAlign", "params": [{"type": "Object", "name": "o", "description": " Object returned from Toolbar's buttonClick Event"}], "description": "Handles the alignment buttons in the toolbar.", "private": "", "guessedtype": "function"}, "cmd_backcolor": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('backcolor') is used.", "guessedname": "cmd_backcolor", "guessedtype": "function"}, "moveWindow": {"description": "Override Method for Advanced Editor", "guessedname": "moveWindow", "guessedtype": "function"}, "cleanHTML": {"return": {"type": "String", "description": "The filtered HTML"}, "params": [{"type": "String", "name": "html", "description": " The unfiltered HTML"}], "description": "Process the HTML with a few regexes to clean it up and stabilize the output", "guessedname": "cleanHTML", "guessedtype": "function"}, "_createInsertElement": {"return": {"type": "HTMLElement", "description": ""}, "description": "Creates a new \"currentElement\" then adds some text (and other things) to make it selectable and stylable. Then the user can continue typing.", "private": "", "params": [{"type": "Object", "name": "css", "description": " (optional) Object literal containing styles to apply to the new element."}], "guessedname": "_createInsertElement", "guessedtype": "function"}, "_isNonEditable": {"return": {"type": "", "description": "Boolean"}, "description": "Method is called at the beginning of all event handlers to check if this element or a parent element has the class yui-noedit (this.CLASS_NOEDIT) applied.\nIf it does, then this method will stop the event and return true. The event handlers will then return false and stop the nodeChange from occuring. This method will also\ndisable and enable the Editor's toolbar based on the noedit state.", "private": "", "params": [{"type": "", "name": "Event", "description": " ev The Dom event being checked"}], "guessedname": "_isNonEditable", "guessedtype": "function"}, "_isElement": {"return": {"type": "Boolean", "description": ""}, "description": "_isElement", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "tag", "description": " The tag that the element needs to be"}], "guessedname": "_isElement", "guessedtype": "function"}, "_initEditor": {"guessedname": "_initEditor", "params": [{"type": "Boolean", "name": "raw", "description": " Don't add events."}], "description": "This method is fired from _checkLoaded when the document is ready. It turns on designMode and set's up the listeners.", "private": "", "guessedtype": "function"}, "_handleKeyUp": {"guessedname": "_handleKeyUp", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all keyup events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_handleFormButtonClick": {"guessedname": "_handleFormButtonClick", "params": [{"type": "Event", "name": "ev", "description": " The click event"}], "description": "The click listener assigned to each submit button in the Editor's parent form.", "private": "", "guessedtype": "function"}, "_handleCreateLinkClick": {"description": "Handles the opening of the Link Properties Window when the Create Link button is clicked or an href is doubleclicked.", "private": "", "guessedname": "_handleCreateLinkClick", "guessedtype": "function"}, "_getBlankImage": {"guessedname": "_getBlankImage", "return": {"type": "String", "description": "The URL to the blank image"}, "description": "Retrieves the full url of the image to use as the blank image.", "private": "", "guessedtype": "function"}, "_setMarkupType": {"guessedname": "_setMarkupType", "params": [{"type": "String", "name": "action", "description": " The action to take. Possible values are: css, default or semantic"}], "description": "This method will turn on/off the useCSS execCommand.", "private": "", "guessedtype": "function"}, "filter_safari": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " html The HTML string to filter"}], "description": "Filters strings specific to Safari", "guessedname": "filter_safari", "guessedtype": "function"}, "destroy": {"return": {"type": "Boolean", "description": ""}, "description": "Destroys the editor, all of it's elements and objects.", "guessedname": "destroy", "guessedtype": "function"}, "_handleCreateLinkWindowClose": {"description": "Handles the closing of the Link Properties Window.", "private": "", "guessedname": "_handleCreateLinkWindowClose", "guessedtype": "function"}, "filter_internals": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " html The HTML string to filter"}], "description": "Filters internal RTE strings and bogus attrs we don't want", "guessedname": "filter_internals", "guessedtype": "function"}, "cmd_list": {"params": [{"type": "", "name": "tag", "description": " The tag of the list you want to create (eg, ul or ol)"}], "description": "This is a combined execCommand override method. It is called from the cmd_insertorderedlist and cmd_insertunorderedlist methods.", "guessedname": "cmd_list", "guessedtype": "function"}, "cmd_fontsize": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('fontsize') is used.", "guessedname": "cmd_fontsize", "guessedtype": "function"}, "_setInitialContent": {"guessedname": "_setInitialContent", "params": [{"type": "Boolean", "name": "raw", "description": " Don't add events."}], "description": "This method will open the iframes content document and write the textareas value into it, then start the body.onload checking.", "private": "", "guessedtype": "function"}, "_handleDoubleClick": {"guessedname": "_handleDoubleClick", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all doubleclick events inside the iFrame document.", "private": "", "guessedtype": "function"}, "filter_msword": {"params": [{"type": "", "name": "String", "description": " html The HTML string to filter"}], "description": "Filters out msword html attributes and other junk. Activate with filterWord: true in config", "guessedname": "filter_msword", "guessedtype": "function"}, "hide": {"description": "This method needs to be called if the Editor is to be hidden (like in a TabView or Panel). It should be called to clear timeouts and close open editor windows.", "guessedname": "hide", "guessedtype": "function"}, "post_filter_linebreaks": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " html The HTML to filter"}, {"type": "", "name": "String", "description": " markup The markup type to filter to"}], "description": "HTML Pre Filter", "guessedname": "post_filter_linebreaks", "guessedtype": "function"}, "cmd_unlink": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('unlink') is used.", "guessedname": "cmd_unlink", "guessedtype": "function"}, "_getWindow": {"guessedname": "_getWindow", "return": {"type": "Object", "description": ""}, "description": "Get the Window of the IFRAME", "private": "", "guessedtype": "function"}, "_writeDomPath": {"description": "Write the current DOM path out to the dompath container below the editor.", "private": "", "guessedname": "_writeDomPath", "guessedtype": "function"}, "_handleClick": {"guessedname": "_handleClick", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all click events inside the iFrame document.", "private": "", "guessedtype": "function"}, "execCommand": {"params": [{"type": "String", "name": "action", "description": " The \"execCommand\" action to try to execute (Example: bold, insertimage, inserthtml)"}, {"type": "String", "name": "value", "description": " (optional) The value for a given action such as action: fontname value: 'Verdana'"}], "description": "This method attempts to try and level the differences in the various browsers and their support for execCommand actions", "guessedname": "execCommand", "guessedtype": "function"}, "_checkKey": {"return": {"type": "Boolean", "description": ""}, "description": "Checks a keyMap entry against a key event", "private": "", "params": [{"type": "Object", "name": "k", "description": " The _keyMap object"}, {"type": "Event", "name": "e", "description": " The Mouse Event"}], "guessedname": "_checkKey", "guessedtype": "function"}, "_getRange": {"guessedname": "_getRange", "return": {"type": "Object", "description": "Range Object"}, "description": "Handles the different range objects across the A-Grade list.", "private": "", "guessedtype": "function"}, "_setupResize": {"description": "Creates the Resize instance and binds its events.", "private": "", "guessedname": "_setupResize", "guessedtype": "function"}, "_setEditorStyle": {"params": [{"type": "Booleen", "name": "stat", "description": " True/False"}], "description": "Set the editor to use CSS instead of HTML", "guessedname": "_setEditorStyle", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "simple-editor.js", "guessedtype": "function", "shortname": "SimpleEditor", "properties": {"CLASS_EDITABLE_CONT": {"protected": "", "type": "String", "description": "Default CSS class to apply to the editors iframe's parent element", "guessedname": "CLASS_EDITABLE_CONT", "guessedtype": "property"}, "_alwaysDisabled": {"guessedname": "_alwaysDisabled", "type": "Object", "description": "The Toolbar items that should ALWAYS be disabled event if there is a selection present in the editor.", "private": "", "guessedtype": "property"}, "_blankImageLoaded": {"guessedname": "_blankImageLoaded", "type": "Boolean", "description": "Don't load the blank image more than once..", "private": "", "guessedtype": "property"}, "_showingHiddenElements": {"guessedname": "_showingHiddenElements", "type": "Boolean", "description": "Status of the hidden elements button", "private": "", "guessedtype": "property"}, "afterElement": {"type": "HTMLElement", "description": "A reference to the H2 placed after the editor for Accessibilty.", "guessedname": "afterElement", "guessedtype": "property"}, "CLASS_EDITABLE": {"protected": "", "type": "String", "description": "Default CSS class to apply to the editors iframe element", "guessedname": "CLASS_EDITABLE", "guessedtype": "property"}, "_baseHREF": {"guessedname": "_baseHREF", "type": "String", "description": "The base location of the editable page (this page) so that relative paths for image work.", "private": "", "guessedtype": "function"}, "operaEvent": {"guessedname": "operaEvent", "type": "Object", "description": "setTimeout holder for Opera and Image DoubleClick event..", "private": "", "guessedtype": "property"}, "SEP_DOMPATH": {"type": "String", "description": "The value to place in between the Dom path items", "guessedname": "SEP_DOMPATH", "guessedtype": "property"}, "_selection": {"guessedname": "_selection", "type": "Object", "description": "Holder for caching iframe selections", "private": "", "guessedtype": "property"}, "STR_BEFORE_EDITOR": {"type": "String", "description": "The accessibility string for the element before the iFrame", "guessedname": "STR_BEFORE_EDITOR", "guessedtype": "property"}, "_defaultCSS": {"type": "String", "description": "The default CSS used in the config for 'css'. This way you can add to the config like this: { css: YAHOO.widget.SimpleEditor.prototype._defaultCSS + 'ADD MYY CSS HERE' }", "guessedname": "_defaultCSS", "guessedtype": "property"}, "_formButtons": {"guessedname": "_formButtons", "type": "Array", "description": "Array of buttons that are in the Editor's parent form (for handleSubmit)", "private": "", "guessedtype": "property"}, "DOMReady": {"guessedname": "DOMReady", "type": "Boolean", "description": "Flag to determine if DOM is ready or not", "private": "", "guessedtype": "property"}, "_tag2cmd": {"guessedname": "_tag2cmd", "type": "Object", "description": "A tag map of HTML tags to convert to the different types of commands so we can select the proper toolbar button.", "private": "", "guessedtype": "property"}, "_resizeConfig": {"private": "", "description": "The default config for the Resize Utility", "guessedname": "_resizeConfig", "guessedtype": "property"}, "_lastNodeChangeEvent": {"guessedname": "_lastNodeChangeEvent", "type": "Event", "description": "Flag to determine the last event that fired a node change", "private": "", "guessedtype": "property"}, "STOP_NODE_CHANGE": {"protected": "", "type": "Boolean", "description": "Set to true when you want the default nodeChange function to not process anything", "guessedname": "STOP_NODE_CHANGE", "guessedtype": "property"}, "_textarea": {"type": "Boolean", "description": "Flag to determine if we are using a textarea or an HTML Node.", "guessedname": "_textarea", "guessedtype": "property"}, "currentEvent": {"type": "Event", "description": "A reference to the current editor event", "guessedname": "currentEvent", "guessedtype": "property"}, "STR_TITLE": {"type": "String", "description": "The Title of the HTML document that is created in the iFrame", "guessedname": "STR_TITLE", "guessedtype": "property"}, "_rendered": {"guessedname": "_rendered", "type": "Boolean", "description": "Flag to determine if editor has been rendered or not", "private": "", "guessedtype": "property"}, "STR_LINK_URL": {"type": "String", "description": "The label string for the Link URL.", "guessedname": "STR_LINK_URL", "guessedtype": "property"}, "CLASS_PREFIX": {"protected": "", "type": "String", "description": "Default prefix for dynamically created class names", "guessedname": "CLASS_PREFIX", "guessedtype": "property"}, "CLASS_NOEDIT": {"protected": "", "type": "String", "description": "CSS class applied to elements that are not editable.", "guessedname": "CLASS_NOEDIT", "guessedtype": "property"}, "_fixListRunning": {"guessedname": "_fixListRunning", "type": "Boolean", "description": "Keeps more than one _fixListDupIds from running at the same time.", "private": "", "guessedtype": "property"}, "toolbar": {"type": "<a href=\"YAHOO.widget.Toolbar.html\">YAHOO.widget.Toolbar</a>", "description": "Local property containing the <a href=\"YAHOO.widget.Toolbar.html\">YAHOO.widget.Toolbar</a> instance", "guessedname": "toolbar", "guessedtype": "property"}, "editorDirty": {"type": "Boolean", "description": "This flag will be set when certain things in the Editor happen. It is to be used by the developer to check to see if content has changed.", "guessedname": "editorDirty", "guessedtype": "property"}, "_semantic": {"guessedname": "_semantic", "type": "Object", "description": "The Toolbar commands that we should attempt to make tags out of instead of using styles.", "private": "", "guessedtype": "property"}, "_alwaysEnabled": {"guessedname": "_alwaysEnabled", "type": "Object", "description": "The Toolbar items that should ALWAYS be enabled event if there isn't a selection present in the editor.", "private": "", "guessedtype": "property"}, "_contentTimerCounter": {"guessedname": "_contentTimerCounter", "type": "Number", "description": "Counter to check the number of times the body is polled for before giving up", "private": "", "guessedtype": "property"}, "_disabled": {"guessedname": "_disabled", "type": "Array", "description": "The Toolbar items that should be disabled if there is no selection present in the editor.", "private": "", "guessedtype": "property"}, "STR_LEAVE_EDITOR": {"type": "String", "description": "The accessibility string for the element after the iFrame", "guessedname": "STR_LEAVE_EDITOR", "guessedtype": "property"}, "_lastImage": {"guessedname": "_lastImage", "type": "HTMLElement", "description": "Safari reference for the last image selected (for styling as selected).", "private": "", "guessedtype": "property"}, "_lastButton": {"guessedname": "_lastButton", "type": "Object", "description": "The last button pressed, so we don't disable it.", "private": "", "guessedtype": "property"}, "dd": {"type": "YAHOO.util.DD/YAHOO.util.DDProxy", "description": "A reference to the DragDrop object.", "guessedname": "dd", "guessedtype": "property"}, "currentFont": {"type": "HTMLElement", "description": "A reference to the last font selected from the Toolbar", "guessedname": "currentFont", "guessedtype": "property"}, "_lastNodeChange": {"guessedname": "_lastNodeChange", "type": "Date", "description": "Flag to determine when the last node change was fired", "private": "", "guessedtype": "property"}, "_nodeChangeTimer": {"guessedname": "_nodeChangeTimer", "type": "Number", "description": "Holds a reference to the nodeChange setTimeout call", "private": "", "guessedtype": "property"}, "_fixNodesTimer": {"guessedname": "_fixNodesTimer", "type": "Date", "description": "Holder for the fixNodes timer", "private": "", "guessedtype": "property"}, "_contentTimerMax": {"private": "", "description": "The number of times the loaded content should be checked before giving up. Default: 500", "guessedname": "_contentTimerMax", "guessedtype": "property"}, "currentWindow": {"type": "Object", "description": "A reference to the currently open EditorWindow", "guessedname": "currentWindow", "guessedtype": "property"}, "currentElement": {"type": "Array", "description": "A reference to the current working element in the editor", "guessedname": "currentElement", "guessedtype": "property"}, "_nodeChangeDelayTimer": {"guessedname": "_nodeChangeDelayTimer", "type": "Number", "description": "Holds a reference to the nodeChangeDelay setTimeout call", "private": "", "guessedtype": "property"}, "CLASS_CONTAINER": {"protected": "", "type": "String", "description": "Default CSS class to apply to the editors container element", "guessedname": "CLASS_CONTAINER", "guessedtype": "property"}, "_keyMap": {"guessedname": "_keyMap", "type": "{Object/Mixed}", "description": "Named key maps for various actions in the Editor. Example: <code>CLOSE_WINDOW: { key: 87, mods: ['shift', 'ctrl'] }</code>. \nThis entry shows that when key 87 (W) is found with the modifiers of shift and control, the window will close. You can customize this object to tweak keyboard shortcuts.", "private": "", "guessedtype": "property"}, "_formButtonClicked": {"guessedname": "_formButtonClicked", "type": "HTMLElement", "description": "The form button that was clicked to submit the form.", "private": "", "guessedtype": "property"}, "resize": {"type": "YAHOO.util.Resize", "description": "A reference to the Resize object", "guessedname": "resize", "guessedtype": "property"}, "_docType": {"type": "String", "description": "The DOCTYPE to use in the editable container.", "guessedname": "_docType", "guessedtype": "property"}, "STR_IMAGE_URL": {"type": "String", "description": "The label string for Image URL", "guessedname": "STR_IMAGE_URL", "guessedtype": "property"}, "STR_IMAGE_HERE": {"type": "String", "description": "The text to place in the URL textbox when using the blankimage.", "guessedname": "STR_IMAGE_HERE", "guessedtype": "property"}, "_lastCommand": {"guessedname": "_lastCommand", "type": "String", "description": "A cache of the last execCommand (used for Undo/Redo so they don't mark an undo level)", "private": "", "guessedtype": "property"}, "_mask": {"guessedname": "_mask", "type": "Object", "description": "DOM Element holder for the editor Mask when disabled", "private": "", "guessedtype": "property"}, "dompath": {"type": "HTMLElement", "description": "A reference to the dompath container for writing the current working dom path to.", "guessedname": "dompath", "guessedtype": "property"}, "beforeElement": {"type": "HTMLElement", "description": "A reference to the H2 placed before the editor for Accessibilty.", "guessedname": "beforeElement", "guessedtype": "property"}, "STOP_EXEC_COMMAND": {"protected": "", "type": "Boolean", "description": "Set to true when you want the default execCommand function to not process anything", "guessedname": "STOP_EXEC_COMMAND", "guessedtype": "property"}, "_contentTimer": {"private": "", "description": "setTimeout holder for documentReady check", "guessedname": "_contentTimer", "guessedtype": "property"}, "_focused": {"guessedname": "_focused", "type": "Boolean", "description": "Holder for trapping focus/blur state and prevent double events", "private": "", "guessedtype": "property"}, "_defaultToolbar": {"guessedname": "_defaultToolbar", "type": "Object", "description": "Default toolbar config.", "private": "", "guessedtype": "property"}, "invalidHTML": {"type": "Object", "description": "Contains a list of HTML elements that are invalid inside the editor. They will be removed when they are found. If you set the value of a key to \"{ keepContents: true }\", then the element will be replaced with a yui-non span to be filtered out when cleanHTML is called. The only tag that is ignored here is the span tag as it will force the Editor into a loop and freeze the browser. However.. all of these tags will be removed in the cleanHTML routine.", "guessedname": "invalidHTML", "guessedtype": "property"}, "browser": {"type": "Object", "description": "Standard browser detection", "guessedname": "browser", "guessedtype": "function"}}, "description": "The Rich Text Editor is a UI control that replaces a standard HTML textarea; it allows for the rich formatting of text content, including common structural treatments like lists, formatting treatments like bold and italic text, and drag-and-drop inclusion and sizing of images. The Rich Text Editor's toolbar is extensible via a plugin architecture so that advanced implementations can achieve a high degree of customization."}, "YAHOO.util.Get": {"name": "YAHOO.util.Get", "namespace": "YAHOO.util", "module": "get", "guessedname": "Get", "methods": {"_purge": {"private": "", "description": "Removes the nodes for the specified queue", "guessedname": "_purge", "guessedtype": "function"}, "_finalize": {"guessedname": "_finalize", "params": [{"type": "string", "name": "id", "description": "  the transaction id"}], "description": "Called by the the helper for detecting script load in Safari", "private": "", "guessedtype": "function"}, "_autoPurge": {"private": "", "description": "Removes processed queues and corresponding nodes", "guessedname": "_autoPurge", "guessedtype": "function"}, "_finish": {"guessedname": "_finish", "params": [{"type": "string", "name": "id", "description": "  the id of the request"}], "description": "The request is complete, so executing the requester's callback", "private": "", "guessedtype": "function"}, "_linkNode": {"return": {"type": "HTMLElement", "description": "the generated node"}, "description": "Generates a link node", "private": "", "params": [{"type": "string", "name": "url", "description": "  the url for the css file"}, {"type": "Window", "name": "win", "description": "  optional window to create the node in"}], "guessedname": "_linkNode", "guessedtype": "function"}, "script": {"return": {"type": "tId: string", "description": "an object containing info about the transaction"}, "description": "Fetches and inserts one or more script nodes into the head\nof the current document or the document in a specified window.", "static": "", "guessedname": "script", "guessedtype": "function", "params": [{"type": "string|string[]", "name": "url", "description": "  the url or urls to the script(s)"}, {"type": "object", "name": "opts", "description": "  Options: \n<dl>\n<dt>onSuccess</dt>\n<dd>\ncallback to execute when the script(s) are finished loading\nThe callback receives an object back with the following\ndata:\n<dl>\n<dt>win</dt>\n<dd>the window the script(s) were inserted into</dd>\n<dt>data</dt>\n<dd>the data object passed in when the request was made</dd>\n<dt>nodes</dt>\n<dd>An array containing references to the nodes that were\ninserted</dd>\n<dt>purge</dt>\n<dd>A function that, when executed, will remove the nodes\nthat were inserted</dd>\n<dt>\n</dl>\n</dd>\n<dt>onFailure</dt>\n<dd>\ncallback to execute when the script load operation fails\nThe callback receives an object back with the following\ndata:\n<dl>\n<dt>win</dt>\n<dd>the window the script(s) were inserted into</dd>\n<dt>data</dt>\n<dd>the data object passed in when the request was made</dd>\n<dt>nodes</dt>\n<dd>An array containing references to the nodes that were\ninserted successfully</dd>\n<dt>purge</dt>\n<dd>A function that, when executed, will remove any nodes\nthat were inserted</dd>\n<dt>\n</dl>\n</dd>\n<dt>onTimeout</dt>\n<dd>\ncallback to execute when a timeout occurs.\nThe callback receives an object back with the following\ndata:\n<dl>\n<dt>win</dt>\n<dd>the window the script(s) were inserted into</dd>\n<dt>data</dt>\n<dd>the data object passed in when the request was made</dd>\n<dt>nodes</dt>\n<dd>An array containing references to the nodes that were\ninserted</dd>\n<dt>purge</dt>\n<dd>A function that, when executed, will remove the nodes\nthat were inserted</dd>\n<dt>\n</dl>\n</dd>\n<dt>scope</dt>\n<dd>the execution context for the callbacks</dd>\n<dt>win</dt>\n<dd>a window other than the one the utility occupies</dd>\n<dt>autopurge</dt>\n<dd>\nsetting to true will let the utilities cleanup routine purge \nthe script once loaded\n</dd>\n<dt>data</dt>\n<dd>\ndata that is supplied to the callback when the script(s) are\nloaded.\n</dd>\n<dt>varName</dt>\n<dd>\nvariable that should be available when a script is finished\nloading.  Used to help Safari 2.x and below with script load \ndetection.  The type of this property should match what was\npassed into the url parameter: if loading a single url, a\nstring can be supplied.  If loading multiple scripts, you\nmust supply an array that contains the variable name for\neach script.\n</dd>\n<dt>insertBefore</dt>\n<dd>node or node id that will become the new node's nextSibling</dd>\n</dl>\n<dt>charset</dt>\n<dd>Node charset, deprecated, use 'attributes'</dd>\n<dt>attributes</dt>\n<dd>A hash of attributes to apply to dynamic nodes.</dd>\n<dt>timeout</dt>\n<dd>Number of milliseconds to wait before aborting and firing the timeout event</dd>\n<pre>\n// assumes yahoo, dom, and event are already on the page\n  YAHOO.util.Get.script(\n  [\"http://yui.yahooapis.com/2.7.0/build/dragdrop/dragdrop-min.js\",\n   \"http://yui.yahooapis.com/2.7.0/build/animation/animation-min.js\"], {\n    onSuccess: function(o) {\n      YAHOO.log(o.data); // foo\n      new YAHOO.util.DDProxy(\"dd1\"); // also new o.reference(\"dd1\"); would work\n      this.log(\"won't cause error because YAHOO is the scope\");\n      this.log(o.nodes.length === 2) // true\n      // o.purge(); // optionally remove the script nodes immediately\n    },\n    onFailure: function(o) {\n      YAHOO.log(\"transaction failed\");\n    },\n    data: \"foo\",\n    timeout: 10000, // 10 second timeout\n    scope: YAHOO,\n    // win: otherframe // target another window/frame\n    autopurge: true // allow the utility to choose when to remove the nodes\n  });\n</pre>"}]}, "_returnData": {"private": "", "description": "Returns the data payload for callback functions", "guessedname": "_returnData", "guessedtype": "function"}, "queue": {"guessedname": "_queue", "params": [{"type": "string", "name": "type", "description": "  the type of node to insert"}, {"type": "string", "name": "url", "description": "  the url to load"}, {"type": "", "name": "opts", "description": " the hash of options for this request"}], "description": "Saves the state for the request and begins loading\nthe requested urls", "private": "", "guessedtype": "function"}, "_scriptNode": {"return": {"type": "HTMLElement", "description": "the generated node"}, "description": "Generates a script node", "private": "", "params": [{"type": "string", "name": "url", "description": "  the url for the script file"}, {"type": "Window", "name": "win", "description": "  optional window to create the node in"}], "guessedname": "_scriptNode", "guessedtype": "function"}, "_node": {"return": {"type": "HTMLElement", "description": "the generated node"}, "description": "Generates an HTML element, this is not appended to a document", "private": "", "params": [{"type": "string", "name": "type", "description": "  the type of element"}, {"type": "string", "name": "attr", "description": "  the attributes"}, {"type": "Window", "name": "win", "description": "  optional window to create the element in"}], "guessedname": "_node", "guessedtype": "function"}, "abort": {"params": [{"type": "string|object", "name": "either", "description": " the tId or the object returned from\nscript() or css()"}], "description": "Abort a transaction", "guessedname": "abort", "guessedtype": "function"}, "_next": {"guessedname": "_next", "params": [{"type": "string", "name": "id", "description": "  the id of the request"}, {"type": "string", "name": "loaded", "description": "  the url that was just loaded, if any"}], "description": "Loads the next item for a given request", "private": "", "guessedtype": "function"}, "_timeout": {"guessedname": "_timeout", "params": [{"type": "string", "name": "id", "description": "  the id of the request"}], "description": "Timeout detected", "private": "", "guessedtype": "function"}, "_track": {"guessedname": "_track", "params": [{"type": "string", "name": "type", "description": "  the type of node to track"}, {"type": "HTMLElement", "name": "n", "description": "  the node to track"}, {"type": "string", "name": "id", "description": "  the id of the request"}, {"type": "string", "name": "url", "description": "  the url that is being loaded"}, {"type": "Window", "name": "win", "description": "  the targeted window"}, {"type": "", "name": "qlength", "description": " the number of remaining items in the queue,\nincluding this one"}, {"type": "Function", "name": "trackfn", "description": "  function to execute when finished\nthe default is _next"}], "description": "Detects when a node has been loaded.  In the case of\nscript nodes, this does not guarantee that contained\nscript is ready to use.", "private": "", "guessedtype": "function"}, "css": {"return": {"type": "tId: string", "description": "an object containing info about the transaction"}, "description": "Fetches and inserts one or more css link nodes into the \nhead of the current document or the document in a specified\nwindow.", "static": "", "guessedname": "css", "guessedtype": "function", "params": [{"type": "string", "name": "url", "description": "  the url or urls to the css file(s)"}, {"type": "", "name": "opts", "description": " Options: \n<dl>\n<dt>onSuccess</dt>\n<dd>\ncallback to execute when the css file(s) are finished loading\nThe callback receives an object back with the following\ndata:\n<dl>win</dl>\n<dd>the window the link nodes(s) were inserted into</dd>\n<dt>data</dt>\n<dd>the data object passed in when the request was made</dd>\n<dt>nodes</dt>\n<dd>An array containing references to the nodes that were\ninserted</dd>\n<dt>purge</dt>\n<dd>A function that, when executed, will remove the nodes\nthat were inserted</dd>\n<dt>\n</dl>\n</dd>\n<dt>scope</dt>\n<dd>the execution context for the callbacks</dd>\n<dt>win</dt>\n<dd>a window other than the one the utility occupies</dd>\n<dt>data</dt>\n<dd>\ndata that is supplied to the callbacks when the nodes(s) are\nloaded.\n</dd>\n<dt>insertBefore</dt>\n<dd>node or node id that will become the new node's nextSibling</dd>\n<dt>charset</dt>\n<dd>Node charset, deprecated, use 'attributes'</dd>\n<dt>attributes</dt>\n<dd>A hash of attributes to apply to dynamic nodes.</dd>\n</dl>\n<pre>\nYAHOO.util.Get.css(\"http://yui.yahooapis.com/2.7.0/build/menu/assets/skins/sam/menu.css\");\n</pre>\n<pre>\nYAHOO.util.Get.css([\"http://yui.yahooapis.com/2.7.0/build/menu/assets/skins/sam/menu.css\",\n\"http://yui.yahooapis.com/2.7.0/build/logger/assets/skins/sam/logger.css\"]);\n</pre>"}]}}, "file": "Get.js", "guessedtype": "function", "shortname": "Get", "properties": {"POLL_FREQ": {"description": "The default poll freqency in ms, when needed", "default": "10", "static": "", "guessedname": "POLL_FREQ", "guessedtype": "property", "type": "int"}, "qidx": {"guessedname": "qidx", "type": "int", "description": "queue index used to generate transaction ids", "private": "", "guessedtype": "property"}, "queues": {"private": "", "description": "hash of queues to manage multiple requests", "guessedname": "queues", "guessedtype": "property"}, "purging": {"guessedname": "purging", "type": "boolean", "description": "interal property used to prevent multiple simultaneous purge \nprocesses", "private": "", "guessedtype": "property"}, "TIMEOUT": {"description": "The length time to poll for varName when loading a script in\nSafari 2.x before the transaction fails.\nproperty TIMEOUT", "default": "2000", "static": "", "guessedname": "TIMEOUT", "guessedtype": "property", "type": "int"}, "nidx": {"guessedname": "nidx", "type": "int", "description": "node index used to generate unique node ids", "private": "", "guessedtype": "property"}, "PURGE_THRESH": {"description": "The number of request required before an automatic purge.\nproperty PURGE_THRESH", "default": "20", "static": "", "guessedname": "PURGE_THRESH", "guessedtype": "property", "type": "int"}}, "description": "Fetches and inserts one or more script or link nodes into the document"}, "YAHOO.widget.BaseCellEditor": {"name": "YAHOO.widget.BaseCellEditor", "constructors": [{"params": [{"type": "String", "name": "sType", "description": "  Type indicator, to map to YAHOO.widget.DataTable.Editors."}, {"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The BaseCellEditor class provides base functionality common to all inline cell\neditors for a DataTable widget."}], "namespace": "YAHOO.widget", "module": "datatable", "events": {"saveEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is saved."}, "revertEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is reverted due to asyncSubmitter failure."}, "blurEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor has a blur event."}, "showEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor is shown."}, "cancelEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor input is canceled."}, "invalidDataEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is reverted due to invalid data."}, "keydownEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}], "description": "Fired when a CellEditor has a keydown."}}, "guessedname": "BaseCellEditor", "methods": {"_initEvents": {"private": "", "description": "Initialize Custom Events.", "guessedname": "_initEvents", "guessedtype": "function"}, "getColumn": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "description": "Returns reference to associated Column instance.", "guessedname": "getColumn", "guessedtype": "function"}, "getDataTable": {"return": {"type": "YAHOO.widget.DataTable", "description": "DataTable instance."}, "description": "Returns reference to associated DataTable instance.", "guessedname": "getDataTable", "guessedtype": "function"}, "render": {"description": "Renders DOM elements and attaches event listeners.", "guessedname": "render", "guessedtype": "function"}, "show": {"description": "Displays CellEditor UI in the correct position.", "guessedname": "show", "guessedtype": "function"}, "move": {"description": "Moves container into position for display.", "guessedname": "move", "guessedtype": "function"}, "focus": {"description": "Sets focus in CellEditor.", "guessedname": "focus", "guessedtype": "function"}, "renderBtns": {"description": "Renders Save/Cancel buttons.", "guessedname": "renderBtns", "guessedtype": "function"}, "unblock": {"description": "Fires unblockEvent", "guessedname": "unblock", "guessedtype": "function"}, "cancel": {"description": "Cancels CellEditor input and hides UI.", "guessedname": "cancel", "guessedtype": "function"}, "doAfterRender": {"description": "Access to add additional event listeners.", "guessedname": "doAfterRender", "guessedtype": "function"}, "renderForm": {"description": "Renders form elements.", "guessedname": "renderForm", "guessedtype": "function"}, "getRecord": {"return": {"type": "YAHOO.widget.Record", "description": "Record instance."}, "description": "Returns reference to associated Record instance.", "guessedname": "getRecord", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique ID of the CellEditor instance."}, "description": "CellEditor unique ID.", "guessedname": "getId", "guessedtype": "function"}, "attach": {"params": [{"type": "YAHOO.widget.DataTable", "name": "oDataTable", "description": "  Associated DataTable instance."}, {"type": "HTMLElement", "name": "elCell", "description": "  Cell to edit."}], "description": "Attach CellEditor for a new interaction.", "guessedname": "attach", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the CellEditor instance."}, "description": "CellEditor instance name, for logging.", "guessedname": "toString", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from CellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire CellEditor instance and related objects, removes attached\nevent listeners, and clears out DOM elements inside the container, removes\ncontainer from the DOM.", "guessedname": "destroy", "guessedtype": "function"}, "save": {"description": "Saves value of CellEditor and hides UI.", "guessedname": "save", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "resetForm": {"description": "Resets CellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}, "getContainerEl": {"return": {"type": "HTMLElement", "description": "Reference to container element."}, "description": "Returns container element.", "guessedname": "getContainerEl", "guessedtype": "function"}, "getTdEl": {"return": {"type": "HTMLElement", "description": "TD element."}, "description": "Returns reference to associated TD element.", "guessedname": "getTdEl", "guessedtype": "function"}, "_initConfigs": {"private": "", "description": "Initialize configs.", "guessedname": "_initConfigs", "guessedtype": "function"}, "block": {"description": "Fires blockEvent", "guessedname": "block", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "CellEditor.js", "guessedtype": "function", "shortname": "BaseCellEditor", "properties": {"LABEL_SAVE": {"default": "\"Save\"", "type": "String", "description": "Text to display on Save button.", "guessedname": "LABEL_SAVE", "guessedtype": "property"}, "CellEditor._nCount": {"description": "Global instance counter.", "default": "0", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}, "_sType": {"guessedname": "_sType", "type": "String", "description": "Editor type.", "private": "", "guessedtype": "property"}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique id assigned to instance \"yui-ceditorN\", useful prefix for generating unique\nDOM ID strings and log messages.", "private": "", "guessedtype": "property"}, "defaultValue": {"default": "null", "type": "MIXED", "description": "Default value in case Record data is undefined. NB: Null values will not trigger\nthe default value.", "guessedname": "defaultValue", "guessedtype": "property"}, "resetInvalidData": {"default": "true", "type": "Boolean", "description": "If validation is enabled, resets input field of invalid data.", "guessedname": "resetInvalidData", "guessedtype": "property"}, "_oColumn": {"description": "Column instance.", "default": "null", "private": "", "guessedname": "_oColumn", "guessedtype": "property", "type": "YAHOO.widget.Column"}, "_elContainer": {"guessedname": "_elContainer", "type": "HTMLElement", "description": "Container for inline editor.", "private": "", "guessedtype": "property"}, "value": {"type": "MIXED", "description": "Current value.", "guessedname": "value", "guessedtype": "property"}, "_elCancelBtn": {"description": "Reference to Cancel button, if available.", "default": "null", "private": "", "guessedname": "_elCancelBtn", "guessedtype": "property", "type": "HTMLElement"}, "asyncSubmitter": {"type": "HTMLFunction", "description": "Implementer defined function that can submit the input value to a server. This\nfunction must accept the arguments fnCallback and oNewValue. When the submission\nis complete, the function must also call fnCallback(bSuccess, oNewValue) to \nfinish the save routine in the CellEditor. This function can also be used to \nperform extra validation or input value manipulation.", "guessedname": "asyncSubmitter", "guessedtype": "property"}, "disableBtns": {"default": "false", "type": "Boolean", "description": "True if Save/Cancel buttons should not be displayed in the CellEditor.", "guessedname": "disableBtns", "guessedtype": "property"}, "_oDataTable": {"guessedname": "_oDataTable", "type": "YAHOO.widget.DataTable", "description": "DataTable instance.", "private": "", "guessedtype": "property"}, "_elTd": {"description": "TD element.", "default": "null", "private": "", "guessedname": "_elTd", "guessedtype": "property", "type": "HTMLElement"}, "CellEditor.CLASS_CELLEDITOR": {"description": "Class applied to CellEditor container.", "default": "\"yui-ceditor\"", "static": "", "guessedname": "CLASS_CELLEDITOR", "guessedtype": "property", "type": "String"}, "_oRecord": {"description": "Record instance.", "default": "null", "private": "", "guessedname": "_oRecord", "guessedtype": "property", "type": "YAHOO.widget.Record"}, "_elSaveBtn": {"description": "Reference to Save button, if available.", "default": "null", "private": "", "guessedname": "_elSaveBtn", "guessedtype": "property", "type": "HTMLElement"}, "LABEL_CANCEL": {"default": "\"Cancel\"", "type": "String", "description": "Text to display on Cancel button.", "guessedname": "LABEL_CANCEL", "guessedtype": "property"}, "isActive": {"type": "Boolean", "description": "True if currently active.", "guessedname": "isActive", "guessedtype": "property"}, "validator": {"default": "null", "type": "HTMLFunction", "description": "Validator function for input data, called from the DataTable instance scope,\nreceives the arguments (inputValue, currentValue, editorInstance) and returns\neither the validated (or type-converted) value or undefined.", "guessedname": "validator", "guessedtype": "property"}}, "description": "The BaseCellEditor class provides base functionality common to all inline cell\neditors for a DataTable widget."}, "YAHOO.widget.TVFadeIn": {"name": "YAHOO.widget.TVFadeIn", "constructors": [{"params": [{"type": "HTMLElement", "name": "el", "description": "  the element to animate"}, {"type": "function", "name": "callback", "description": "  function to invoke when the animation is finished"}], "description": "A 1/2 second fade-in animation."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "TVFadeIn", "methods": {"onComplete": {"description": "Clean up and invoke callback", "guessedname": "onComplete", "guessedtype": "function"}, "animate": {"description": "Performs the animation", "guessedname": "animate", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "the string representation of the instance"}, "description": "toString", "guessedname": "toString", "guessedtype": "function"}}, "file": "TVFadeIn.js", "guessedtype": "function", "shortname": "TVFadeIn", "properties": {"el": {"type": "HTMLElement", "description": "The element to animate", "guessedname": "el", "guessedtype": "property"}, "callback": {"type": "function", "description": "the callback to invoke when the animation is complete", "guessedname": "callback", "guessedtype": "property"}}, "description": "A 1/2 second fade-in animation."}, "YAHOO.widget.CalendarGroup": {"name": "YAHOO.widget.CalendarGroup", "configs": {"MY_LABEL_YEAR_POSITION": {"default": "2", "type": "Number", "description": "The position of the year in the month year label string used as the Calendar header", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEKDAYS": {"default": "true", "type": "Boolean", "description": "True if the Calendar should show weekday labels. True by default.", "guessedname": "value", "guessedtype": "property"}, "MDY_DAY_POSITION": {"default": "2", "type": "Number", "description": "The position of the day in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "MY_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "MONTHS_SHORT": {"default": "[\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]", "type": "String[]", "description": "The short month labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MULTI_SELECT": {"default": "false", "type": "Boolean", "description": "True if the Calendar should allow multiple selections. False by default.", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_YEAR_SUFFIX": {"default": "\"\"", "type": "String", "description": "The suffix used after the year when rendering the Calendar header", "guessedname": "value", "guessedtype": "property"}, "DATE_FIELD_DELIMITER": {"default": "\"/\"", "type": "String", "description": "The value used to delimit date fields in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "MY_YEAR_POSITION": {"default": "2", "type": "Number", "description": "The position of the year in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "close": {"default": "false", "type": "Boolean", "description": "Whether or not a close button should be displayed for this CalendarGroup", "guessedname": "value", "guessedtype": "property"}, "MONTHS_LONG": {"default": "[\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"", "type": "String[]", "description": "The long month labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_MEDIUM": {"default": "[\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]", "type": "String[]", "description": "The medium weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "LOCALE_WEEKDAYS": {"default": "\"short\"", "type": "String", "description": "The setting that determines which length of weekday labels should be used. Possible values are \"1char\", \"short\", \"medium\", and \"long\".", "guessedname": "value", "guessedtype": "property"}, "DATE_RANGE_DELIMITER": {"default": "\"-\"", "type": "String", "description": "The value used to delimit date ranges in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEK_HEADER": {"default": "false", "type": "Boolean", "description": "True if the Calendar should show week row headers. False by default.", "guessedname": "value", "guessedtype": "property"}, "title": {"default": "\"\"", "type": "String", "description": "The title to display above the CalendarGroup's month header", "guessedname": "value", "guessedtype": "property"}, "maxdate": {"default": "null", "type": "String | Date", "description": "The maximum selectable date in the current Calendar (mm/dd/yyyy)", "guessedname": "value", "guessedtype": "property"}, "selected": {"default": "[]", "type": "String", "description": "The date or range of dates representing the current Calendar selection", "guessedname": "value", "guessedtype": "property"}, "pages": {"default": "2", "type": "Number", "description": "The number of pages to include in the CalendarGroup. This value can only be set once, in the CalendarGroup's constructor arguments.", "guessedname": "value", "guessedtype": "property"}, "NAV_ARROW_RIGHT": {"description": "The image that should be used for the right navigation arrow.", "default": "null", "deprecated": "You can customize the image by overriding the default CSS class for the right arrow - \"calnavright\"", "guessedname": "value", "guessedtype": "property", "type": "String"}, "HIDE_BLANK_WEEKS": {"default": "false", "type": "Boolean", "description": "True if the Calendar should suppress weeks that are not a part of the current month. False by default.", "guessedname": "value", "guessedtype": "property"}, "today": {"default": "Today's date", "type": "Date", "description": "The date to use to represent \"Today\".", "guessedname": "value", "guessedtype": "property"}, "mindate": {"default": "null", "type": "String | Date", "description": "The minimum selectable date in the current Calendar (mm/dd/yyyy)", "guessedname": "value", "guessedtype": "property"}, "START_WEEKDAY": {"default": "0", "type": "number", "description": "The weekday the week begins on. Default is 0 (Sunday).", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEK_FOOTER": {"default": "false", "type": "Boolean", "description": "True if the Calendar should show week row footers. False by default.", "guessedname": "value", "guessedtype": "property"}, "MDY_YEAR_POSITION": {"default": "3", "type": "Number", "description": "The position of the year in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_LONG": {"default": "[\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]", "type": "String[]", "description": "The long weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MDY_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "year_offset": {"default": "0", "type": "Number", "description": "The positive or negative year offset from the Gregorian calendar year (assuming a January 1st rollover) to \nbe used when displaying or parsing dates.  NOTE: All JS Date objects returned by methods, or expected as input by\nmethods will always represent the Gregorian year, in order to maintain date/month/week values.", "guessedname": "value", "guessedtype": "property"}, "pagedate": {"default": "Today's date", "type": "String | Date", "description": "The month/year representing the current visible Calendar date (mm/yyyy)", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_MONTH_SUFFIX": {"default": "\" \"", "type": "String", "description": "The suffix used after the month when rendering the Calendar header", "guessedname": "value", "guessedtype": "property"}, "MD_DAY_POSITION": {"default": "2", "type": "Number", "description": "The position of the day in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "NAV_ARROW_LEFT": {"description": "The image that should be used for the left navigation arrow.", "default": "null", "deprecated": "You can customize the image by overriding the default CSS class for the left arrow - \"calnavleft\"", "guessedname": "value", "guessedtype": "property", "type": "String"}, "MY_LABEL_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in the month year label string used as the Calendar header", "guessedname": "value", "guessedtype": "property"}, "MD_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/day date string", "guessedname": "value", "guessedtype": "property"}, "DATE_DELIMITER": {"default": "\",\"", "type": "String", "description": "The value used to delimit individual dates in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "LOCALE_MONTHS": {"default": "\"long\"", "type": "String", "description": "The setting that determines which length of month labels should be used. Possible values are \"short\" and \"long\".", "guessedname": "value", "guessedtype": "property"}, "iframe": {"default": "true for IE6 and below, false for all other browsers", "type": "Boolean", "description": "Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below.\nThis property is enabled by default for IE6 and below. It is disabled by default for other browsers for performance reasons, but can be \nenabled if required.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_1CHAR": {"default": "[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]", "type": "String[]", "description": "The 1-character weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_SHORT": {"default": "[\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]", "type": "String[]", "description": "The short weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "NAV": {"default": "null", "type": "Object", "description": "Configuration for the Month Year Navigation UI. By default it is disabled", "guessedname": "value", "guessedtype": "property"}, "strings": {"default": "An object with the properties shown below:\n<dl>\n<dt>previousMonth</dt><dd><em>String</em> : The string to use for the \"Previous Month\" navigation UI. Defaults to \"Previous Month\".</dd>\n<dt>nextMonth</dt><dd><em>String</em> : The string to use for the \"Next Month\" navigation UI. Defaults to \"Next Month\".</dd>\n<dt>close</dt><dd><em>String</em> : The string to use for the close button label. Defaults to \"Close\".</dd>\n</dl>", "type": "{Object}", "description": "The map of UI strings which the CalendarGroup UI uses."}}, "constructors": [{"params": [{"type": "String", "name": "id", "description": " optional The id of the table element that will represent the CalendarGroup widget. As of 2.4.0, this argument is optional."}, {"type": "String | HTMLElement", "name": "container", "description": " The id of the container div element that will wrap the CalendarGroup table, or a reference to a DIV element which exists in the document."}, {"type": "Object", "name": "config", "description": " optional The configuration object containing the initial configuration values for the CalendarGroup."}], "description": "YAHOO.widget.CalendarGroup is a special container class for YAHOO.widget.Calendar. This class facilitates\nthe ability to have multi-page calendar views that share a single dataset and are\ndependent on each other.\nThe calendar group instance will refer to each of its elements using a 0-based index.\nFor example, to construct the placeholder for a calendar group widget with id \"cal1\" and\ncontainerId of \"cal1Container\", the markup would be as follows:\n<xmp>\n<div id=\"cal1Container_0\"></div>\n<div id=\"cal1Container_1\"></div>\n</xmp>\nThe tables for the calendars (\"cal1_0\" and \"cal1_1\") will be inserted into those containers.\n<p>\n<strong>NOTE: As of 2.4.0, the constructor's ID argument is optional.</strong>\nThe CalendarGroup can be constructed by simply providing a container ID string, \nor a reference to a container DIV HTMLElement (the element needs to exist \nin the document).\nE.g.:\n<xmp>\nvar c = new YAHOO.widget.CalendarGroup(\"calContainer\", configOptions);\n</xmp>\nor:\n<xmp>\nvar containerDiv = YAHOO.util.Dom.get(\"calContainer\");\nvar c = new YAHOO.widget.CalendarGroup(containerDiv, configOptions);\n</xmp>\n</p>\n<p>\nIf not provided, the ID will be generated from the container DIV ID by adding an \"_t\" suffix.\nFor example if an ID is not provided, and the container's ID is \"calContainer\", the CalendarGroup's ID will be set to \"calContainer_t\".\n</p>"}], "namespace": "YAHOO.widget", "module": "calendar", "events": {"showNavEvent": {"description": "Fired after the CalendarNavigator is shown", "guessedname": "showNavEvent", "guessedtype": "property"}, "beforeDeselectEvent": {"description": "Fired before a date or set of dates is deselected", "guessedname": "beforeDeselectEvent", "guessedtype": "property"}, "beforeRenderNavEvent": {"description": "Fired just before the CalendarNavigator is to be rendered", "guessedname": "beforeRenderNavEvent", "guessedtype": "property"}, "beforeHideNavEvent": {"description": "Fired just before the CalendarNavigator is to be hidden", "guessedname": "beforeHideNavEvent", "guessedtype": "property"}, "hideEvent": {"description": "Fired after the CalendarGroup is hidden", "guessedname": "hideEvent", "guessedtype": "property"}, "hideNavEvent": {"description": "Fired after the CalendarNavigator is hidden", "guessedname": "hideNavEvent", "guessedtype": "property"}, "renderNavEvent": {"description": "Fired after the CalendarNavigator is rendered", "guessedname": "renderNavEvent", "guessedtype": "property"}, "beforeRenderEvent": {"description": "Fired before the Calendar is rendered", "guessedname": "beforeRenderEvent", "guessedtype": "property"}, "beforeShowEvent": {"description": "Fired just before the CalendarGroup is to be shown", "guessedname": "beforeShowEvent", "guessedtype": "property"}, "beforeSelectEvent": {"description": "Fired before a date selection is made", "guessedname": "beforeSelectEvent", "guessedtype": "property"}, "renderEvent": {"description": "Fired when the Calendar is rendered", "guessedname": "renderEvent", "guessedtype": "property"}, "changePageEvent": {"description": "Fired when the Calendar page is changed", "guessedname": "changePageEvent", "guessedtype": "property"}, "resetEvent": {"description": "Fired when the Calendar is reset", "guessedname": "resetEvent", "guessedtype": "property"}, "clearEvent": {"description": "Fired when the Calendar is cleared", "guessedname": "clearEvent", "guessedtype": "property"}, "showEvent": {"description": "Fired after the CalendarGroup is shown", "guessedname": "showEvent", "guessedtype": "property"}, "beforeDestroyEvent": {"description": "Fired just before the CalendarGroup is to be destroyed", "guessedname": "beforeDestroyEvent", "guessedtype": "property"}, "destroyEvent": {"description": "Fired after the CalendarGroup is destroyed. This event should be used\nfor notification only. When this event is fired, important CalendarGroup instance\nproperties, dom references and event listeners have already been \nremoved/dereferenced, and hence the CalendarGroup instance is not in a usable \nstate.", "guessedname": "destroyEvent", "guessedtype": "property"}, "selectEvent": {"params": [{"type": "Array", "name": "Array", "description": " of Date field arrays in the format [YYYY, MM, DD]."}], "description": "Fired when a date selection is made", "guessedname": "selectEvent", "guessedtype": "property"}, "beforeHideEvent": {"description": "Fired just before the CalendarGroup is to be hidden", "guessedname": "beforeHideEvent", "guessedtype": "property"}, "beforeShowNavEvent": {"description": "Fired just before the CalendarNavigator is to be shown", "guessedname": "beforeShowNavEvent", "guessedtype": "property"}, "deselectEvent": {"params": [{"type": "Array", "name": "Array", "description": " of Date field arrays in the format [YYYY, MM, DD]."}], "description": "Fired when a date or set of dates has been deselected", "guessedname": "deselectEvent", "guessedtype": "property"}}, "methods": {"deselectCell": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "Number", "name": "cellIndex", "description": " The index of the cell to deselect."}], "description": "Deselects dates in the CalendarGroup based on the cell index provided. This method is used to select cells without having to do a full render. The selected style is applied to the cells directly.\ndeselectCell will deselect the cell at the specified index on each displayed Calendar page.", "guessedname": "deselectCell", "guessedtype": "function"}, "addWeekdayRenderer": {"params": [{"type": "Number", "name": "weekday", "description": "  The weekday (1-7) to associate with this renderer. 1=Sunday, 2=Monday etc."}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a weekday to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the weekday passed to this method.", "guessedname": "addWeekdayRenderer", "guessedtype": "function"}, "render": {"description": "Calls the render function of all child calendars within the group.", "guessedname": "render", "guessedtype": "function"}, "nextYear": {"description": "Navigates to the next year in the currently selected month in the calendar widget.", "guessedname": "nextYear", "guessedtype": "function"}, "delegateConfig": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, this will usually equal the owner."}], "description": "Delegates a configuration property to the CustomEvents associated with the CalendarGroup's children", "guessedname": "delegateConfig", "guessedtype": "function"}, "configPages": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, this will usually equal the owner."}], "description": "The default Config handler for the \"pages\" property", "guessedname": "configPages", "guessedtype": "function"}, "subtractYears": {"params": [{"type": "Number", "name": "count", "description": " The number of years to subtract from the current calendar"}], "description": "Subtcats the designated number of years from the current calendar, and sets the current\ncalendar page date to the new month.", "guessedname": "subtractYears", "guessedtype": "function"}, "previousMonth": {"description": "Navigates to the previous month page in the calendar widget.", "guessedname": "previousMonth", "guessedtype": "function"}, "select": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "String/Date/Date[]", "name": "date", "description": "    The date string of dates to select in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "description": "Selects a date or a collection of dates on the current calendar. This method, by default,\ndoes not call the render method explicitly. Once selection has completed, render must be \ncalled for the changes to be reflected visually.", "guessedname": "select", "guessedtype": "function"}, "callChildFunction": {"params": [{"type": "String", "name": "fnName", "description": "  The name of the function"}, {"type": "Array", "name": "args", "description": "  The arguments to pass to the function"}], "description": "Calls a function within all child Calendars within this CalendarGroup.", "guessedname": "callChildFunction", "guessedtype": "function"}, "deselect": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "String/Date/Date[]", "name": "date", "description": " The date string of dates to deselect in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "description": "Deselects a date or a collection of dates on the current calendar. This method, by default,\ndoes not call the render method explicitly. Once deselection has completed, render must be \ncalled for the changes to be reflected visually.", "guessedname": "deselect", "guessedtype": "function"}, "sub": {"guessedname": "sub", "params": [{"type": "Function", "name": "fn", "description": " The function to subscribe to this CustomEvent"}, {"type": "Object", "name": "obj", "description": " The CustomEvent's scope object"}, {"type": "Boolean", "name": "bOverride", "description": " Whether or not to apply scope correction"}], "description": "Proxy subscriber to subscribe to the CalendarGroup's child Calendars' CustomEvents", "private": "", "guessedtype": "function"}, "initEvents": {"description": "Initializes CalendarGroup's built-in CustomEvents", "guessedname": "initEvents", "guessedtype": "function"}, "previousYear": {"description": "Navigates to the previous year in the currently selected month in the calendar widget.", "guessedname": "previousYear", "guessedtype": "function"}, "nextMonth": {"description": "Navigates to the next month page in the calendar widget.", "guessedname": "nextMonth", "guessedtype": "function"}, "configPageDate": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, this will usually equal the owner."}], "description": "The default Config handler for the \"pagedate\" property", "guessedname": "configPageDate", "guessedtype": "function"}, "setChildFunction": {"params": [{"type": "String", "name": "fnName", "description": "  The name of the function"}, {"type": "Function", "name": "fn", "description": "   The function to apply to each Calendar page object"}], "description": "Adds a function to all child Calendars within this CalendarGroup.", "guessedname": "setChildFunction", "guessedtype": "function"}, "addMonthRenderer": {"params": [{"type": "Number", "name": "month", "description": "  The month (1-12) to associate with this renderer"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a month to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the month passed to this method.", "guessedname": "addMonthRenderer", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "id", "description": " optional The id of the table element that will represent the CalendarGroup widget. As of 2.4.0, this argument is optional."}, {"type": "String | HTMLElement", "name": "container", "description": " The id of the container div element that will wrap the CalendarGroup table, or a reference to a DIV element which exists in the document."}, {"type": "Object", "name": "config", "description": " optional The configuration object containing the initial configuration values for the CalendarGroup."}], "description": "Initializes the calendar group. All subclasses must call this method in order for the\ngroup to be initialized properly.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "A string representation of the CalendarGroup object."}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "_setMonthOnDate": {"guessedname": "_setMonthOnDate", "params": [{"type": "Date", "name": "date", "description": " The Date object on which to set the month index"}, {"type": "Number", "name": "iMonth", "description": " The month index to set"}], "description": "Sets the month on a Date object, taking into account year rollover if the month is less than 0 or greater than 11.\nThe Date object passed in is modified. It should be cloned before passing it into this method if the original value needs to be maintained", "private": "", "guessedtype": "function"}, "removeRenderers": {"description": "Removes all custom renderers added to the CalendarGroup through the addRenderer, addMonthRenderer and \naddWeekRenderer methods. CalendarGroup's render method needs to be called to after removing renderers \nto see the changes applied.", "guessedname": "removeRenderers", "guessedtype": "function"}, "selectCell": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "Number", "name": "cellIndex", "description": " The index of the cell to be selected."}], "description": "Selects dates in the CalendarGroup based on the cell index provided. This method is used to select cells without having to do a full render. The selected style is applied to the cells directly.\nThe value of the MULTI_SELECT Configuration attribute will determine the set of dates which get selected. \n<ul>\n<li>If MULTI_SELECT is false, selectCell will select the cell at the specified index for only the last displayed Calendar page.</li>\n<li>If MULTI_SELECT is true, selectCell will select the cell at the specified index, on each displayed Calendar page.</li>\n</ul>", "guessedname": "selectCell", "guessedtype": "function"}, "renderFooter": {"description": "Renders a footer for the 2-up calendar container. By default, this method is\nunimplemented.", "guessedname": "renderFooter", "guessedtype": "function"}, "configSelected": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, this will usually equal the owner."}], "description": "The default Config handler for the CalendarGroup \"selected\" property", "guessedname": "configSelected", "guessedtype": "function"}, "_fixWidth": {"private": "", "description": "Fixes the width of the CalendarGroup container element, to account for miswrapped floats", "guessedname": "_fixWidth", "guessedtype": "function"}, "destroy": {"description": "Destroys the CalendarGroup instance. The method will remove references\nto HTML elements, remove any event listeners added by the CalendarGroup.\nIt will also destroy the Config and CalendarNavigator instances created by the \nCalendarGroup and the individual Calendar instances created for each page.", "guessedname": "destroy", "guessedtype": "function"}, "unsub": {"guessedname": "unsub", "params": [{"type": "Function", "name": "fn", "description": " The function to subscribe to this CustomEvent"}, {"type": "Object", "name": "obj", "description": " The CustomEvent's scope object"}], "description": "Proxy unsubscriber to unsubscribe from the CalendarGroup's child Calendars' CustomEvents", "private": "", "guessedtype": "function"}, "getSelectedDates": {"type": "Date[]", "return": {"type": "", "description": "An array of currently selected JavaScript Date objects."}, "description": "Gets the list of currently selected dates from the calendar.", "guessedname": "getSelectedDates", "guessedtype": "function"}, "addRenderer": {"params": [{"type": "String", "name": "sDates", "description": "  A date string to associate with the specified renderer. Valid formats\ninclude date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a renderer to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the conditions specified in the date string for this renderer.", "guessedname": "addRenderer", "guessedtype": "function"}, "reset": {"description": "Resets the calendar widget to the originally selected month and year, and \nsets the calendar to the initial selection(s).", "guessedname": "reset", "guessedtype": "function"}, "deselectAll": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected.\nAssuming that this function executes properly, the return value should be an empty array.\nHowever, the empty array is returned for the sake of being able to check the selection status\nof the calendar."}, "description": "Deselects all dates on the current calendar.", "guessedname": "deselectAll", "guessedtype": "function"}, "setMonth": {"params": [{"type": "Number", "name": "month", "description": "  The numeric month, from 0 (January) to 11 (December)"}], "description": "Sets the calendar group's month explicitly. This month will be set into the first\npage of the multi-page calendar, and all other months will be iterated appropriately.", "guessedname": "setMonth", "guessedtype": "function"}, "clear": {"description": "Clears the selected dates in the current calendar widget and sets the calendar\nto the current month and year.", "guessedname": "clear", "guessedtype": "function"}, "getCalendarPage": {"return": {"type": "Calendar", "description": "The Calendar page instance representing the month to which the date \nbelongs."}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object for which a Calendar page is to be found."}], "description": "Returns the Calendar page instance which has a pagedate (month/year) matching the given date. \nReturns null if no match is found.", "guessedname": "getCalendarPage", "guessedtype": "function"}, "addMonths": {"params": [{"type": "Number", "name": "count", "description": " The number of months to add to the current calendar"}], "description": "Adds the designated number of months to the current calendar month, and sets the current\ncalendar page date to the new month.", "guessedname": "addMonths", "guessedtype": "function"}, "subtractMonths": {"params": [{"type": "Number", "name": "count", "description": " The number of months to subtract from the current calendar"}], "description": "Subtracts the designated number of months from the current calendar month, and sets the current\ncalendar page date to the new month.", "guessedname": "subtractMonths", "guessedtype": "function"}, "constructChild": {"return": {"type": "YAHOO.widget.Calendar", "description": "The YAHOO.widget.Calendar instance that is constructed"}, "params": [{"type": "String", "name": "id", "description": "   The id of the table element that will represent the calendar widget"}, {"type": "String", "name": "containerId", "description": " The id of the container div element that will wrap the calendar table"}, {"type": "Object", "name": "config", "description": "  The configuration object containing the Calendar's arguments"}], "description": "Constructs a child calendar. This method can be overridden if a subclassed version of the default\ncalendar is to be used.", "guessedname": "constructChild", "guessedtype": "function"}, "setYear": {"params": [{"type": "Number", "name": "year", "description": "  The numeric 4-digit year"}], "description": "Sets the calendar group's year explicitly. This year will be set into the first\npage of the multi-page calendar, and all other months will be iterated appropriately.", "guessedname": "setYear", "guessedtype": "function"}, "renderHeader": {"description": "Renders the header for the CalendarGroup.", "guessedname": "renderHeader", "guessedtype": "function"}, "addYears": {"params": [{"type": "Number", "name": "count", "description": " The number of years to add to the current calendar"}], "description": "Adds the designated number of years to the current calendar, and sets the current\ncalendar page date to the new month.", "guessedname": "addYears", "guessedtype": "function"}}, "file": "CalendarGroup.js", "shortname": "CalendarGroup", "properties": {"Options": {"type": "Object", "description": "The local object which contains the CalendarGroup's options", "guessedname": "Options", "guessedtype": "property"}, "YAHOO.widget.CalendarGroup.CSS_2UPCLOSE": {"description": "CSS class representing the close icon for the 2-up calendar", "deprecated": "Along with Calendar.IMG_ROOT and NAV_ARROW_LEFT, NAV_ARROW_RIGHT configuration properties.\nCalendar's <a href=\"YAHOO.widget.Calendar.html#Style.CSS_CLOSE\">Style.CSS_CLOSE</a> property now represents the CSS class used to render the close icon", "static": "", "guessedname": "CSS_2UPCLOSE", "guessedtype": "property", "type": "String", "final": ""}, "containerId": {"type": "String", "description": "The unique id associated with the CalendarGroup container", "guessedname": "containerId", "guessedtype": "property"}, "Locale": {"type": "Object", "description": "The local object which contains the CalendarGroup's locale settings", "guessedname": "Locale", "guessedtype": "property"}, "cfg": {"type": "YAHOO.util.Config", "description": "The Config object used to hold the configuration variables for the CalendarGroup", "guessedname": "cfg", "guessedtype": "property"}, "YAHOO.widget.CalendarGroup.CSS_2UPTITLE": {"description": "CSS class representing the title for the 2-up calendar", "static": "", "guessedname": "CSS_2UPTITLE", "guessedtype": "property", "type": "String", "final": ""}, "id": {"type": "String", "description": "The unique id associated with the CalendarGroup", "guessedname": "id", "guessedtype": "property"}, "YAHOO.widget.CalendarGroup.DEFAULT_CONFIG": {"static": "", "type": "Object An object with key/value pairs, the key being the \nuppercase configuration property name and the value being an objec \nliteral with a key string property, and a value property, specifying the \ndefault value of the property", "description": "The set of default Config property keys and values for the CalendarGroup.\n<p>\nNOTE: This property is made public in order to allow users to change \nthe default values of configuration properties. Users should not \nmodify the key string, unless they are overriding the Calendar implementation\n</p>"}, "YAHOO.widget.CalendarGroup.CSS_CONTAINER": {"description": "CSS class representing the container for the calendar", "static": "", "guessedname": "CSS_CONTAINER", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.CalendarGroup.CSS_MULTI_UP": {"description": "CSS class representing the container for the calendar", "static": "", "guessedname": "CSS_MULTI_UP", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.CalendarGroup._DEFAULT_CONFIG": {"description": "The set of default Config property keys and values for the CalendarGroup", "deprecated": "Made public. See the public DEFAULT_CONFIG property for details", "private": "", "static": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object"}, "pages": {"type": "YAHOO.widget.Calendar[]", "description": "The collection of Calendar pages contained within the CalendarGroup", "guessedname": "pages", "guessedtype": "property"}}, "description": "YAHOO.widget.CalendarGroup is a special container class for YAHOO.widget.Calendar. This class facilitates\nthe ability to have multi-page calendar views that share a single dataset and are\ndependent on each other.\nThe calendar group instance will refer to each of its elements using a 0-based index.\nFor example, to construct the placeholder for a calendar group widget with id \"cal1\" and\ncontainerId of \"cal1Container\", the markup would be as follows:\n<xmp>\n<div id=\"cal1Container_0\"></div>\n<div id=\"cal1Container_1\"></div>\n</xmp>\nThe tables for the calendars (\"cal1_0\" and \"cal1_1\") will be inserted into those containers.\n<p>\n<strong>NOTE: As of 2.4.0, the constructor's ID argument is optional.</strong>\nThe CalendarGroup can be constructed by simply providing a container ID string, \nor a reference to a container DIV HTMLElement (the element needs to exist \nin the document).\nE.g.:\n<xmp>\nvar c = new YAHOO.widget.CalendarGroup(\"calContainer\", configOptions);\n</xmp>\nor:\n<xmp>\nvar containerDiv = YAHOO.util.Dom.get(\"calContainer\");\nvar c = new YAHOO.widget.CalendarGroup(containerDiv, configOptions);\n</xmp>\n</p>\n<p>\nIf not provided, the ID will be generated from the container DIV ID by adding an \"_t\" suffix.\nFor example if an ID is not provided, and the container's ID is \"calContainer\", the CalendarGroup's ID will be set to \"calContainer_t\".\n</p>"}, "YAHOO.widget.CategoryAxis": {"name": "YAHOO.widget.CategoryAxis", "constructors": [{"description": "A type of axis that displays items in categories."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "CategoryAxis", "file": "CategoryAxis.js", "guessedtype": "function", "shortname": "CategoryAxis", "properties": {"categoryNames": {"type": "Array", "description": "A list of category names to display along this axis.", "guessedname": "categoryNames", "guessedtype": "property"}, "calculateCategoryCount": {"type": "Boolean", "description": "Indicates whether or not to calculate the number of categories (ticks and labels)\nwhen there is not enough room to display all labels on the axis. If set to true, the axis \nwill determine the number of categories to plot. If not, all categories will be plotted.", "guessedname": "calculateCategoryCount", "guessedtype": "property"}}, "description": "A type of axis that displays items in categories."}, "YAHOO.util.Assert": {"name": "YAHOO.util.Assert", "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "Assert", "methods": {"isTrue": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is true. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isTrue", "guessedtype": "function"}, "isFalse": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is false. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isFalse", "guessedtype": "function"}, "isNotNull": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not null. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isNotNull", "guessedtype": "function"}, "fail": {"static": "", "params": [{"type": "String", "name": "message", "description": " (Optional) The message to display with the failure."}], "description": "Forces an assertion error to occur.", "guessedname": "fail", "guessedtype": "function"}, "isFunction": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is a function.", "guessedname": "isFunction", "guessedtype": "function"}, "isNaN": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not a number.", "guessedname": "isNaN", "guessedtype": "function"}, "isBoolean": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is a Boolean.", "guessedname": "isBoolean", "guessedtype": "function"}, "areNotSame": {"static": "", "params": [{"type": "Object", "name": "unexpected", "description": " The unexpected value."}, {"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not the same as another. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "areNotSame", "guessedtype": "function"}, "isNotNaN": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not the special NaN value.", "guessedname": "isNotNaN", "guessedtype": "function"}, "areNotEqual": {"static": "", "params": [{"type": "Object", "name": "unexpected", "description": " The unexpected value."}, {"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not equal to another. This uses the double equals sign\nso type cohersion may occur.", "guessedname": "areNotEqual", "guessedtype": "function"}, "areSame": {"static": "", "params": [{"type": "Object", "name": "expected", "description": " The expected value."}, {"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is the same as another. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "areSame", "guessedtype": "function"}, "isUndefined": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is undefined. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isUndefined", "guessedtype": "function"}, "isArray": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is an array.", "guessedname": "isArray", "guessedtype": "function"}, "isTypeOf": {"static": "", "params": [{"type": "String", "name": "expectedType", "description": " The expected type of the variable."}, {"type": "Object", "name": "actualValue", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is of a particular type.", "guessedname": "isTypeOf", "guessedtype": "function"}, "_formatMessage": {"return": {"type": "String", "description": "The final error message, containing either or both."}, "description": "Formats a message so that it can contain the original assertion message\nin addition to the custom message.", "protected": "", "static": "", "guessedname": "_formatMessage", "guessedtype": "function", "params": [{"type": "String", "name": "customMessage", "description": " The message passed in by the developer."}, {"type": "String", "name": "defaultMessage", "description": " The message created by the error by default."}]}, "areEqual": {"static": "", "params": [{"type": "Object", "name": "expected", "description": " The expected value."}, {"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is equal to another. This uses the double equals sign\nso type cohersion may occur.", "guessedname": "areEqual", "guessedtype": "function"}, "isNumber": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is a number.", "guessedname": "isNumber", "guessedtype": "function"}, "isObject": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is an object.", "guessedname": "isObject", "guessedtype": "function"}, "isString": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is a string.", "guessedname": "isString", "guessedtype": "function"}, "isNotUndefined": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not undefined. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isNotUndefined", "guessedtype": "function"}, "isNull": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is null. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isNull", "guessedtype": "function"}, "isInstanceOf": {"static": "", "params": [{"type": "Function", "name": "expected", "description": " The function that the object should be an instance of."}, {"type": "Object", "name": "actual", "description": " The object to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is an instance of a particular object. This may return\nincorrect results when comparing objects from one frame to constructors in\nanother frame. For best results, don't use in a cross-frame manner.", "guessedname": "isInstanceOf", "guessedtype": "function"}}, "static": "", "file": "Assert.js", "guessedtype": "property", "shortname": "Assert", "description": "The Assert object provides functions to test JavaScript values against\nknown and expected results. Whenever a comparison (assertion) fails,\nan error is thrown."}, "YAHOO.widget.DropdownCellEditor": {"name": "YAHOO.widget.DropdownCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The DropdownCellEditor class provides functionality for inline editing\nDataTable cell data a SELECT element."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "DropdownCellEditor", "methods": {"renderForm": {"description": "Render a form with select element.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from DropdownCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in DropdownCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets DropdownCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "DropdownCellEditor", "properties": {"dropdownOptions": {"type": "String[] | Object[]", "description": "Array of dropdown values. Can either be a simple array (e.g.,\n[\"Alabama\",\"Alaska\",\"Arizona\",\"Arkansas\"]) or a an array of objects (e.g., \n[{label:\"Alabama\", value:\"AL\"}, {label:\"Alaska\", value:\"AK\"},\n{label:\"Arizona\", value:\"AZ\"}, {label:\"Arkansas\", value:\"AR\"}]).", "guessedname": "dropdownOptions", "guessedtype": "property"}, "size": {"type": "Number", "description": "Specifies number of visible options.", "guessedname": "size", "guessedtype": "property"}, "multiple": {"type": "Boolean", "description": "Enables multi-select.", "guessedname": "multiple", "guessedtype": "property"}, "dropdown": {"type": "HTMLElement", "description": "Reference to Dropdown element.", "guessedname": "dropdown", "guessedtype": "property"}}, "description": "The DropdownCellEditor class provides functionality for inline editing\nDataTable cell data a SELECT element."}, "YAHOO.widget.TextboxCellEditor": {"name": "YAHOO.widget.TextboxCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The TextboxCellEditor class provides functionality for inline editing\nDataTable cell data with an INPUT TYPE=TEXT element."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "TextboxCellEditor", "methods": {"renderForm": {"description": "Render a form with input type=text.", "guessedname": "renderForm", "guessedtype": "function"}, "move": {"description": "Moves TextboxCellEditor UI to a cell.", "guessedname": "move", "guessedtype": "function"}, "getInputValue": {"description": "Returns new value for TextboxCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in TextboxCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets TextboxCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "TextboxCellEditor", "properties": {"DataTable.Editors": {"type": "Object", "static": "", "description": "CellEditor subclasses.", "guessedname": "Editors", "guessedtype": "property"}, "textbox": {"description": "Reference to the textbox element.", "guessedname": "textbox", "guessedtype": "property"}}, "description": "The TextboxCellEditor class provides functionality for inline editing\nDataTable cell data with an INPUT TYPE=TEXT element."}, "YAHOO.widget.Paginator.ui.CurrentPageReport": {"properties": {"span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node containing the formatted info", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.CurrentPageReport", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the textual report of current pagination status.\nE.g. \"Now viewing page 1 of 13\"."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"pageReportTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageReportTemplateChange", "description": "Fires when the value for the configuration attribute 'pageReportTemplate' changes."}, "beforePageReportValueGenaratorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageReportValueGenaratorChange", "description": "Fires before the value for the configuration attribute 'pageReportValueGenarator' changes. Return false to cancel the attribute change."}, "beforePageReportClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageReportClassChange", "description": "Fires before the value for the configuration attribute 'pageReportClass' changes. Return false to cancel the attribute change."}, "pageReportValueGenaratorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageReportValueGenaratorChange", "description": "Fires when the value for the configuration attribute 'pageReportValueGenarator' changes."}, "beforePageReportTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageReportTemplateChange", "description": "Fires before the value for the configuration attribute 'pageReportTemplate' changes. Return false to cancel the attribute change."}, "pageReportClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageReportClassChange", "description": "Fires when the value for the configuration attribute 'pageReportClass' changes."}}, "guessedname": "CurrentPageReport", "methods": {"destroy": {"private": "", "description": "Removes the link/span node and clears event listeners\nremoval.", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "sprintf": {"return": {"type": "string", "description": ""}, "description": "Replace place holders in a string with the named values found in an\nobject literal.", "static": "", "guessedname": "sprintf", "guessedtype": "function", "params": [{"type": "string", "name": "template", "description": "  The content string containing place holders"}, {"type": "object", "name": "values", "description": "  The key:value pairs used to replace the place holders"}]}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the span containing info formatted per the pageReportTemplate\nattribute.", "guessedname": "render", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Regenerate the content of the span if appropriate. Calls\nCurrentPageReport.sprintf with the value of the pageReportTemplate\nattribute and the value map returned from pageReportValueGenerator\nfunction.", "guessedname": "update", "guessedtype": "function"}}, "file": "CurrentPageReport.js", "guessedtype": "function", "shortname": "CurrentPageReport", "configs": {"pageReportValueGenarator": {"description": "Function to generate the value map used to populate the\npageReportTemplate.  The function is passed the Paginator instance as a\nparameter.  The default function returns a map with the following keys:\n<ul>\n<li>currentPage</li>\n<li>totalPages</li>\n<li>startIndex</li>\n<li>endIndex</li>\n<li>startRecord</li>\n<li>endRecord</li>\n<li>totalRecords</li>\n</ul>"}, "pageReportClass": {"default": "'yui-pg-current'", "description": "CSS class assigned to the span containing the info."}, "pageReportTemplate": {"default": "'({currentPage} of {totalPages})'", "see": "pageReportValueGenerator attribute", "description": "Used as innerHTML for the span.  Place holders in the form of {name}\nwill be replaced with the so named value from the key:value map\ngenerated by the function held in the pageReportValueGenerator attribute."}}, "description": "ui Component to generate the textual report of current pagination status.\nE.g. \"Now viewing page 1 of 13\"."}, "YAHOO.util.Bezier": {"name": "YAHOO.util.Bezier", "namespace": "YAHOO.util", "module": "animation", "guessedname": "Bezier", "methods": {"getPosition": {"return": {"type": "Array", "description": "An array containing int x and y member data"}, "params": [{"type": "Array", "name": "points", "description": " An array containing Bezier points"}, {"type": "Number", "name": "t", "description": " A number between 0 and 1 which is the basis for determining current position"}], "description": "Get the current position of the animated element based on t.\nEach point is an array of \"x\" and \"y\" values (0 = x, 1 = y)\nAt least 2 points are required (start and end).\nFirst point is start. Last point is end.\nAdditional control points are optional.", "guessedname": "getPosition", "guessedtype": "function"}}, "file": "Bezier.js", "guessedtype": "function", "shortname": "Bezier", "description": "Used to calculate Bezier splines for any number of control points."}, "YAHOO.util.StorageEngineGears": {"name": "YAHOO.util.StorageEngineGears", "extend": "YAHOO.util.Storage", "constructors": [{"params": [{"type": "String", "name": "location", "description": "  Required. The storage location."}, {"type": "Object", "name": "conf", "description": "  Required. A configuration object."}], "description": "The StorageEngineGears class implements the Google Gears storage engine."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEngineGears", "file": "StorageEngineGears.js", "guessedtype": "function", "shortname": "StorageEngineGears", "description": "The StorageEngineGears class implements the Google Gears storage engine."}, "YAHOO.util.Subscriber": {"name": "YAHOO.util.Subscriber", "constructors": [{"params": [{"type": "Function", "name": "fn", "description": "       The function to execute"}, {"type": "Object", "name": "obj", "description": "      An object to be passed along when the event fires"}, {"type": "boolean", "name": "overrideContext", "description": " If true, the obj passed in becomes the execution\ncontext of the listener"}], "description": "Stores the subscriber information to be used when the event fires."}], "namespace": "YAHOO.util", "module": "event", "guessedname": "Subscriber", "methods": {"getScope": {"params": [{"type": "Object", "name": "defaultScope", "description": " the context to use if this listener does not\noverride it."}], "description": "Returns the execution context for this listener.  If overrideContext was set to true\nthe custom obj will be the context.  If overrideContext is an object, that is the\ncontext, otherwise the default context will be used.", "guessedname": "getScope", "guessedtype": "function"}, "contains": {"return": {"type": "boolean", "description": "true if the supplied arguments match this \nsubscriber's signature."}, "params": [{"type": "Function", "name": "fn", "description": " the function to execute"}, {"type": "Object", "name": "obj", "description": " an object to be passed along when the event fires"}], "description": "Returns true if the fn and obj match this objects properties.\nUsed by the unsubscribe method to match the right subscriber.", "guessedname": "contains", "guessedtype": "function"}, "toString": {"guessedname": "toString", "guessedtype": "function"}}, "file": "CustomEvent.js", "guessedtype": "function", "shortname": "Subscriber", "properties": {"obj": {"type": "object", "description": "An optional custom object that will passed to the callback when\nthe event fires", "guessedname": "obj", "guessedtype": "property"}, "overrideContext": {"type": "boolean|object", "description": "The default execution context for the event listener is defined when the\nevent is created (usually the object which contains the event).\nBy setting overrideContext to true, the execution context becomes the custom\nobject passed in by the subscriber.  If overrideContext is an object, that \nobject becomes the context.", "guessedname": "overrideContext", "guessedtype": "property"}, "fn": {"type": "function", "description": "The callback that will be execute when the event fires", "guessedname": "fn", "guessedtype": "property"}}, "description": "Stores the subscriber information to be used when the event fires."}, "YAHOO.util.StorageEngineSWF": {"name": "YAHOO.util.StorageEngineSWF", "extend": "YAHOO.util.Storage", "constructors": [{"params": [{"type": "String", "name": "location", "description": "  Required. The storage location."}, {"type": "Object", "name": "conf", "description": "  Required. A configuration object."}], "description": "The StorageEngineSWF class implements the SWF storage engine."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEngineSWF", "uses": ["YAHOO.widget.SWF"], "file": "StorageEngineSWF.js", "guessedtype": "function", "shortname": "StorageEngineSWF", "properties": {"_swf": {"protected": "", "type": "{Object}", "description": "The underlying SWF of the engine, exposed so developers can modify the adapter behavior.", "guessedname": "_swf", "guessedtype": "property"}}, "description": "The StorageEngineSWF class implements the SWF storage engine."}, "YAHOO.widget.Paginator.ui.PageLinks": {"properties": {"current": {"guessedname": "current", "type": "number", "description": "Current page", "private": "", "guessedtype": "property"}, "container": {"guessedname": "container", "type": "HTMLElement", "description": "Span node containing the page links", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.PageLinks", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the page links"}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"currentPageClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "currentPageClassChange", "description": "Fires when the value for the configuration attribute 'currentPageClass' changes."}, "pageLabelBuilderChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageLabelBuilderChange", "description": "Fires when the value for the configuration attribute 'pageLabelBuilder' changes."}, "beforePageLinksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageLinksChange", "description": "Fires before the value for the configuration attribute 'pageLinks' changes. Return false to cancel the attribute change."}, "beforeCurrentPageClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCurrentPageClassChange", "description": "Fires before the value for the configuration attribute 'currentPageClass' changes. Return false to cancel the attribute change."}, "beforePageLabelBuilderChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageLabelBuilderChange", "description": "Fires before the value for the configuration attribute 'pageLabelBuilder' changes. Return false to cancel the attribute change."}, "beforePageLinksContainerClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageLinksContainerClassChange", "description": "Fires before the value for the configuration attribute 'pageLinksContainerClass' changes. Return false to cancel the attribute change."}, "pageLinksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageLinksChange", "description": "Fires when the value for the configuration attribute 'pageLinks' changes."}, "pageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageLinkClassChange", "description": "Fires when the value for the configuration attribute 'pageLinkClass' changes."}, "beforePageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageLinkClassChange", "description": "Fires before the value for the configuration attribute 'pageLinkClass' changes. Return false to cancel the attribute change."}, "pageLinksContainerClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageLinksContainerClassChange", "description": "Fires when the value for the configuration attribute 'pageLinksContainerClass' changes."}}, "guessedname": "PageLinks", "methods": {"render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the container node containing page links\nappropriate to the current pagination state.", "guessedname": "render", "guessedtype": "function"}, "rebuild": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Force a rebuild of the page links.", "guessedname": "rebuild", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Update the links if appropriate", "guessedname": "update", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the container's onclick event.  Looks for qualifying link\nclicks, and pulls the page number from the link's page attribute.\nSends link's page attribute to the Paginator's setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the page links container node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "calculateRange": {"return": {"type": "Array", "description": "[start_page_number, end_page_number]"}, "description": "Calculates start and end page numbers given a current page, attempting\nto keep the current page in the middle", "static": "", "guessedname": "calculateRange", "guessedtype": "function", "params": [{"type": "int", "name": "currentPage", "description": "  The current page"}, {"type": "int", "name": "totalPages", "description": "   (optional) Maximum number of pages"}, {"type": "int", "name": "numPages", "description": "     (optional) Preferred number of pages in range"}]}}, "file": "PageLinks.js", "guessedtype": "function", "shortname": "PageLinks", "configs": {"pageLinksContainerClass": {"default": "'yui-pg-pages'", "description": "CSS class assigned to the span containing the page links."}, "currentPageClass": {"default": "'yui-pg-current-page'", "description": "CSS class assigned to the current page span."}, "pageLabelBuilder": {"default": "function (page, paginator) { return page; }", "description": "Function used generate the innerHTML for each page link/span.  The\nfunction receives as parameters the page number and a reference to the\npaginator object."}, "pageLinks": {"default": "10", "description": "Maximum number of page links to display at one time."}, "pageLinkClass": {"default": "'yui-pg-page'", "description": "CSS class assigned to each page link/span."}}, "description": "ui Component to generate the page links"}, "YAHOO.widget.MenuBar": {"name": "YAHOO.widget.MenuBar", "configs": {"position": {"default": "static", "type": "String", "description": "String indicating how a menu bar should be positioned on the \nscreen.  Possible values are \"static\" and \"dynamic.\"  Static menu bars \nare visible by default and reside in the normal flow of the document \n(CSS position: static).  Dynamic menu bars are hidden by default, reside\nout of the normal flow of the document (CSS position: absolute), and can \noverlay other elements on the screen."}, "submenualignment": {"default": "[\"tl\",\"bl\"]", "type": "Array", "description": "Array defining how submenus should be aligned to their \nparent menu bar item. The format is: [itemCorner, submenuCorner]."}, "autosubmenudisplay": {"default": "false", "type": "Boolean", "description": "Boolean indicating if submenus are automatically made \nvisible when the user mouses over the menu bar's items."}, "submenutoggleregion": {"default": "false", "type": "Boolean", "description": "Boolean indicating if only a specific region of a MenuBarItem should toggle the \ndisplay of a submenu.  The default width of the region is determined by the value of the\nSUBMENU_TOGGLE_REGION_WIDTH property.  If set to true, the autosubmenudisplay \nconfiguration property will be set to false, and any click event listeners will not be \ncalled when the user clicks inside the submenu toggle region of a MenuBarItem.  If the \nuser clicks outside of the submenu toggle region, the MenuBarItem will maintain its \nstandard behavior."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the menu bar."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source for the \nmenu bar."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object specifying \nthe <code><div></code> element of the menu bar."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><select></code> element to be used as the data \nsource for the menu bar."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu bar. See configuration class documentation for\nmore details."}], "description": "Horizontal collection of items, each of which can contain a submenu."}], "namespace": "YAHOO.widget", "module": "menu", "guessedname": "MenuBar", "methods": {"configSubmenuToggle": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event was fired."}], "description": "Event handler for when the \"submenutoggleregion\" configuration property of \na MenuBar changes.", "guessedname": "configSubmenuToggle", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the menu bar."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source for the \nmenu bar."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object specifying \nthe <code><div></code> element of the menu bar."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><select></code> element to be used as the data \nsource for the menu bar."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu bar. See configuration class documentation for\nmore details."}], "description": "The MenuBar class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references for \npre-existing markup, and creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu bar.", "guessedname": "toString", "guessedtype": "function"}, "_onClick": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuBar", "name": "p_oMenuBar", "description": " Object representing the menu bar \nthat fired the event."}], "description": "\"click\" event handler for the menu bar.", "guessedname": "_onClick", "guessedtype": "function"}, "checkPosition": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "Object", "name": "p_sPosition", "description": " String specifying the position of the menu."}], "description": "Checks to make sure that the value of the \"position\" property \nis one of the supported strings. Returns true if the position is supported.", "private": ""}, "_onKeyDown": {"guessedname": "_onKeyDown", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuBar", "name": "p_oMenuBar", "description": " Object representing the menu bar \nthat fired the event."}], "description": "\"keydown\" Custom Event handler for the menu bar.", "private": "", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be\nchanged using the menu bar's Config object (\"cfg\").", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Menu", "superclass": "YAHOO.widget.Menu", "file": "menubar.js", "guessedtype": "function", "shortname": "MenuBar", "properties": {"SUBMENU_TOGGLE_REGION_WIDTH": {"description": "Width (in pixels) of the area of a MenuBarItem that, when pressed, will toggle the\ndisplay of the MenuBarItem's submenu.", "default": "20", "guessedname": "SUBMENU_TOGGLE_REGION_WIDTH", "guessedtype": "property", "type": "Number", "final": ""}, "CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the menu \nbar's <code><div></code> element.", "default": "\"yuimenubar\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Horizontal collection of items, each of which can contain a submenu."}, "YAHOO.env": {"name": "YAHOO.env", "namespace": "", "module": "yahoo", "guessedname": "env", "methods": {"getVersion": {"return": {"type": "Object", "description": "The version info"}, "description": "Returns the version data for the specified module:\n<dl>\n<dt>name:</dt>      <dd>The name of the module</dd>\n<dt>version:</dt>   <dd>The version in use</dd>\n<dt>build:</dt>     <dd>The build number in use</dd>\n<dt>versions:</dt>  <dd>All versions that were registered</dd>\n<dt>builds:</dt>    <dd>All builds that were registered.</dd>\n<dt>mainClass:</dt> <dd>An object that was was stamped with the\ncurrent version and build. If \nmainClass.VERSION != version or mainClass.BUILD != build,\nmultiple versions of pieces of the library have been\nloaded, potentially causing issues.</dd>\n</dl>", "static": "", "guessedname": "getVersion", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " the name of the module (event, slider, etc)"}]}}, "static": "", "file": "Env.js", "guessedtype": "property", "shortname": "YAHOO.env", "properties": {"listeners": {"type": "Function[]", "description": "List of functions that should be executed every time a YUI module\nreports itself.", "guessedname": "listeners", "guessedtype": "property"}, "modules": {"type": "Object[]", "description": "Keeps the version info for all YUI modules that have reported themselves", "guessedname": "modules", "guessedtype": "property"}}, "description": "YAHOO.env is used to keep track of what is known about the YUI library and\nthe browsing environment"}, "YAHOO.util.ShouldFail": {"name": "YAHOO.util.ShouldFail", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}], "description": "ShouldFail is subclass of AssertionError that is thrown whenever\na test was expected to fail but did not."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ShouldFail", "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "ShouldFail", "properties": {"name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "ShouldFail is subclass of AssertionError that is thrown whenever\na test was expected to fail but did not."}, "YAHOO.widget.TextareaCellEditor": {"name": "YAHOO.widget.TextareaCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The TextareaCellEditor class provides functionality for inline editing\nDataTable cell data with a TEXTAREA element."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "TextareaCellEditor", "methods": {"move": {"description": "Moves TextareaCellEditor UI to a cell.", "guessedname": "move", "guessedtype": "function"}, "renderForm": {"description": "Render a form with textarea.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "focus": {"description": "Sets focus in TextareaCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets TextareaCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from TextareaCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "TextareaCellEditor", "properties": {"textarea": {"type": "HTMLElement", "description": "Reference to textarea element.", "guessedname": "textarea", "guessedtype": "property"}}, "description": "The TextareaCellEditor class provides functionality for inline editing\nDataTable cell data with a TEXTAREA element."}, "YAHOO.widget.SliderThumb": {"name": "YAHOO.widget.SliderThumb", "constructors": [{"params": [{"type": "String", "name": "id", "description": " the id of the slider html element"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop items"}, {"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}], "description": "A drag and drop implementation to be used as the thumb of a slider."}], "namespace": "YAHOO.widget", "module": "slider", "guessedname": "SliderThumb", "methods": {"onChange": {"private": "", "description": "The onchange event for the handle/thumb is delegated to the YAHOO.widget.Slider\ninstance it belongs to.", "guessedname": "onChange", "guessedtype": "function"}, "getValue": {"return": {"type": "int", "description": "the number of pixels (positive or negative) the\nslider has moved from the start position."}, "description": "Gets the current offset from the element's start position in\npixels.", "guessedname": "getValue", "guessedtype": "function"}, "getOffsetFromParent": {"type": "[int, int]", "params": [{"type": "[int, int]", "name": "parentPos", "description": " Optionally accepts the position of the parent"}], "description": "Returns the difference between the location of the thumb and its parent.", "guessedname": "getOffsetFromParent0", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the instance"}, "description": "Thumb toString", "guessedname": "toString", "guessedtype": "function"}, "getYValue": {"return": {"type": "int", "description": "the number of pixels (positive or negative) the\nslider has moved vertically from the start position."}, "description": "Gets the current Y offset from the element's start position in\npixels.", "guessedname": "getYValue", "guessedtype": "function"}, "initSlider": {"params": [{"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " the width of the tick interval."}], "description": "Set up the slider, must be called in the constructor of all subclasses", "guessedname": "initSlider", "guessedtype": "function"}, "getXValue": {"return": {"type": "int", "description": "the number of pixels (positive or negative) the\nslider has moved horizontally from the start position."}, "description": "Gets the current X offset from the element's start position in\npixels.", "guessedname": "getXValue", "guessedtype": "function"}, "clearTicks": {"description": "Clear's the slider's ticks", "guessedname": "clearTicks", "guessedtype": "function"}}, "extends": "YAHOO.util.DD", "superclass": "YAHOO.util.DD", "file": "SliderThumb.js", "guessedtype": "function", "shortname": "SliderThumb", "properties": {"isTarget": {"private": "", "description": "Overrides the isTarget property in YAHOO.util.DragDrop", "guessedname": "isTarget", "guessedtype": "property"}, "maintainOffset": {"guessedname": "maintainOffset", "type": "boolean", "description": "Informs the drag and drop util that the offsets should remain when\nresetting the constraints.  This preserves the slider value when\nthe constraints are reset", "private": "", "guessedtype": "property"}, "parentElId": {"type": "string", "description": "The id of the thumbs parent HTML element (the slider background \nelement).", "guessedname": "parentElId", "guessedtype": "property"}, "_isHoriz": {"guessedname": "_isHoriz", "type": "boolean", "description": "Flag used to figure out if this is a horizontal or vertical slider", "private": "", "guessedtype": "property"}, "tickSize": {"guessedname": "tickSize", "type": "int", "description": "The tick size for this slider", "private": "", "guessedtype": "property"}, "_prevVal": {"guessedname": "_prevVal", "type": "int", "description": "Cache the last value so we can check for change", "private": "", "guessedtype": "property"}, "startOffset": {"type": "[int, int]", "description": "The (X and Y) difference between the thumb location and its parent \n(the slider background) when the control is instantiated.", "guessedname": "startOffset", "guessedtype": "property"}, "dragOnly": {"default": "true", "type": "boolean", "description": "Override the default setting of dragOnly to true.", "guessedname": "dragOnly", "guessedtype": "property"}, "_graduated": {"guessedname": "_graduated", "type": "boolean", "description": "The slider is _graduated if there is a tick interval defined", "private": "", "guessedtype": "property"}, "scroll": {"private": "", "description": "Turns off the autoscroll feature in drag and drop", "guessedname": "scroll", "guessedtype": "property"}}, "description": "A drag and drop implementation to be used as the thumb of a slider."}, "YAHOO.util.AttributeProvider": {"name": "YAHOO.util.AttributeProvider", "namespace": "YAHOO.util", "module": "element", "guessedname": "AttributeProvider", "methods": {"set": {"return": {"type": "Boolean", "description": "Whether or not the value was set."}, "params": [{"type": "String", "name": "key", "description": " The name of the attribute"}, {"type": "Any", "name": "value", "description": " The value to apply to the attribute"}, {"type": "Boolean", "name": "silent", "description": " Whether or not to suppress change events"}], "description": "Sets the value of a config.", "guessedname": "set", "guessedtype": "function"}, "fireBeforeChangeEvent": {"params": [{"type": "String", "name": "key", "description": " The attribute's name."}, {"type": "Obj", "name": "e", "description": " The event object to pass to handlers."}], "description": "Fires the attribute's beforeChange event.", "guessedname": "fireBeforeChangeEvent", "guessedtype": "function"}, "resetValue": {"return": {"type": "Boolean", "description": "Whether or not the value was set"}, "params": [{"type": "String", "name": "key", "description": " The name of the attribute"}, {"type": "Boolean", "name": "silent", "description": " Whether or not to suppress change events"}], "description": "Resets the specified attribute's value to its initial value.", "guessedname": "resetValue", "guessedtype": "function"}, "get": {"return": {"type": "Any", "description": "The current value of the attribute."}, "params": [{"type": "String", "name": "key", "description": " The attribute whose value will be returned."}], "description": "Returns the current value of the attribute.", "guessedname": "get", "guessedtype": "function"}, "setAttributeConfig": {"params": [{"type": "String", "name": "key", "description": " The attribute's name."}, {"type": "Object", "name": "map", "description": " A key-value map of attribute properties"}, {"type": "Boolean", "name": "init", "description": " Whether or not this should become the intial config."}], "description": "Sets or updates an Attribute instance's properties.", "guessedname": "setAttributeConfig", "guessedtype": "function"}, "resetAttributeConfig": {"guessedname": "resetAttributeConfig", "params": [{"type": "String", "name": "key", "description": " The attribute's name."}], "description": "Resets an attribute to its intial configuration.", "private": "", "guessedtype": "function"}, "register": {"deprecated": "Use setAttributeConfig", "params": [{"type": "String", "name": "key", "description": " The attribute's name"}, {"type": "Object", "name": "map", "description": " A key-value map containing the\nattribute's properties."}], "description": "Adds an Attribute to the AttributeProvider instance.", "guessedname": "register", "guessedtype": "function"}, "getAttributeConfig": {"return": {"type": "object", "description": "A key-value map containing all of the\nattribute's properties."}, "description": "Returns the attribute's properties.", "private": "", "params": [{"type": "String", "name": "key", "description": " The attribute's name"}], "guessedname": "getAttributeConfig", "guessedtype": "function"}, "refresh": {"params": [{"type": "String | Array", "name": "key", "description": " The attribute(s) to refresh"}, {"type": "Boolean", "name": "silent", "description": " Whether or not to suppress change events"}], "description": "Sets the attribute's value to its current value.", "guessedname": "refresh", "guessedtype": "function"}, "configureAttribute": {"deprecated": "Use setAttributeConfig", "params": [{"type": "String", "name": "key", "description": " The attribute's name."}, {"type": "Object", "name": "map", "description": " A key-value map of attribute properties"}, {"type": "Boolean", "name": "init", "description": " Whether or not this should become the intial config."}], "description": "Sets or updates an Attribute instance's properties.", "guessedname": "configureAttribute", "guessedtype": "function"}, "getAttributeKeys": {"return": {"type": "Array", "description": "An array of attribute names."}, "description": "Returns an array of attribute names.", "guessedname": "getAttributeKeys", "guessedtype": "function"}, "fireChangeEvent": {"params": [{"type": "String", "name": "key", "description": " The attribute's name."}, {"type": "Obj", "name": "e", "description": " The event object to pass to the handlers."}], "description": "Fires the attribute's change event.", "guessedname": "fireChangeEvent", "guessedtype": "function"}, "setAttributes": {"params": [{"type": "Object", "name": "map", "description": "  A key-value map of attributes"}, {"type": "Boolean", "name": "silent", "description": " Whether or not to suppress change events"}], "description": "Sets multiple attribute values.", "guessedname": "setAttributes", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "AttributeProvider.js", "guessedtype": "function", "shortname": "AttributeProvider", "properties": {"_configs": {"description": "A key-value map of Attribute configurations", "private": "", "protected": "", "guessedname": "_configs", "guessedtype": "property", "type": "{Object}"}}, "description": "Provides and manages YAHOO.util.Attribute instances"}, "YAHOO.widget.Column": {"name": "YAHOO.widget.Column", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  Object literal of definitions."}], "description": "The Column class defines and manages attributes of DataTable Columns"}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "Column", "methods": {"getSanitizedKey": {"return": {"type": "String", "description": "Sanitized Column key."}, "description": "Returns Column key which has been sanitized for DOM (class and ID) usage\nstarts with letter, contains only letters, numbers, hyphen, or period.", "guessedname": "getSanitizedKey", "guessedtype": "function"}, "getTreeIndex": {"return": {"type": "Number", "description": "Position index, or null."}, "description": "Public accessor returns Column's current position index within its\nColumnSet's tree array, if applicable. Only non-nested and top-level parent\nColumns will return a value;", "guessedname": "getTreeIndex", "guessedtype": "function"}, "getParent": {"return": {"type": "YAHOO.widget.Column", "description": "Column's parent instance."}, "description": "Public accessor returns Column's parent instance if any, or null otherwise.", "guessedname": "getParent", "guessedtype": "function"}, "getField": {"return": {"type": "String", "description": "Column field."}, "description": "Returns field.", "guessedname": "getField", "guessedtype": "function"}, "getDefinition": {"return": {"type": "Object", "description": "Object literal definition."}, "description": "Returns object literal definition.", "guessedname": "getDefinition", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique ID string."}, "description": "Returns unique ID string.", "guessedname": "getId", "guessedtype": "function"}, "getKey": {"return": {"type": "String", "description": "Column key."}, "description": "Returns unique Column key.", "guessedname": "getKey", "guessedtype": "function"}, "getKeyIndex": {"return": {"type": "Number", "description": "Position index, or null."}, "description": "Public accessor returns Column's current position index within its\nColumnSet's keys array, if applicable. Only non-nested and bottom-level\nchild Columns will return a value.", "guessedname": "getKeyIndex", "guessedtype": "function"}, "getColspan": {"return": {"type": "Number", "description": "Column's COLSPAN value."}, "description": "Public accessor returns Column's calculated COLSPAN value.", "guessedname": "getColspan", "guessedtype": "function"}, "getRowspan": {"return": {"type": "Number", "description": "Column's ROWSPAN value."}, "description": "Public accessor returns Column's calculated ROWSPAN value.", "guessedname": "getRowspan", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Column's unique name."}, "description": "Column instance name, for logging.", "guessedname": "toString", "guessedtype": "function"}, "getColEl": {"deprecated": "Use getThEl", "guessedname": "getColEl", "guessedtype": "function"}, "getThLInerEl": {"return": {"type": "HTMLElement", "description": "TH element."}, "description": "Returns DOM reference to the TH's liner DIV element. Introduced since\nresizeable Columns may have an extra resizer liner, making the DIV liner\nnot reliably the TH element's first child.", "guessedname": "getThLinerEl", "guessedtype": "function"}, "getThEl": {"return": {"type": "HTMLElement", "description": "TH element."}, "description": "Returns DOM reference to the key TH element.", "guessedname": "getThEl", "guessedtype": "function"}, "getResizerEl": {"return": {"type": "HTMLElement", "description": "DIV element."}, "description": "Returns DOM reference to the resizer element, or null.", "guessedname": "getResizerEl", "guessedtype": "function"}}, "file": "ColumnSet.js", "guessedtype": "function", "shortname": "Column", "properties": {"sortOptions.sortFunction": {"default": "null", "type": "Function", "description": "Custom sort handler. Signature: sortFunction(a, b, desc, field) where field is the sortOptions.field value", "guessedname": "sortOptions", "guessedtype": "property"}, "_nTreeIndex": {"guessedname": "_nTreeIndex", "type": "Number", "description": "Reference to Column's current position index within its ColumnSet's tree\narray, if applicable. This property only applies to non-nested and top-\nlevel parent Columns.", "private": "", "guessedtype": "property"}, "_elResizer": {"guessedname": "_elResizer", "type": "HTMLElement", "description": "The DOM reference to the associated resizerelement (if any).", "private": "", "guessedtype": "property"}, "sortOptions.defaultOrder": {"deprecated": "Use sortOptions.defaultDir."}, "resizeable": {"default": "false", "type": "Boolean", "description": "True if Column is resizeable, false otherwise. The Drag & Drop Utility is\nrequired to enable this feature. Only bottom-level and non-nested Columns are\nresizeble.", "guessedname": "resizeable", "guessedtype": "property"}, "children": {"type": "Object[]", "description": "Array of object literals that define children (nested headers) of a Column.", "guessedname": "children", "guessedtype": "property"}, "dropdownOptions": {"type": "String[] | Object[]", "description": "Array of dropdown values for formatter:\"dropdown\" cases. Can either be a simple array (e.g.,\n[\"Alabama\",\"Alaska\",\"Arizona\",\"Arkansas\"]) or a an array of objects (e.g.,\n[{label:\"Alabama\", value:\"AL\"}, {label:\"Alaska\", value:\"AK\"},\n{label:\"Arizona\", value:\"AZ\"}, {label:\"Arkansas\", value:\"AR\"}]).", "guessedname": "dropdownOptions", "guessedtype": "property"}, "_elThLiner": {"guessedname": "_elThLiner", "type": "HTMLElement", "description": "The DOM reference to the associated TH element's liner DIV element.", "private": "", "guessedtype": "property"}, "_elTh": {"guessedname": "_elTh", "type": "HTMLElement", "description": "The DOM reference to the associated TH element.", "private": "", "guessedtype": "property"}, "width": {"type": "Number", "description": "Column width (in pixels).", "guessedname": "width", "guessedtype": "property"}, "sortOptions.field": {"default": "null", "type": "String", "description": "Custom field to sort on."}, "selected": {"default": "false", "type": "Boolean", "description": "True if Column is in selected state.", "guessedname": "selected", "guessedtype": "property"}, "sortOptions.defaultDir": {"default": "null", "type": "String", "description": "Default sort direction for Column: YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTable.CLASS_DESC."}, "label": {"type": "String", "description": "Text or HTML for display as Column's label in the TH element.", "guessedname": "label", "guessedtype": "property"}, "minWidth": {"default": "null", "type": "Number", "description": "Minimum Column width (in pixels).", "guessedname": "minWidth", "guessedtype": "property"}, "field": {"type": "String", "description": "Associated database field, or null.", "guessedname": "field", "guessedtype": "property"}, "editor": {"type": "YAHOO.widget.CellEditor", "description": "A CellEditor instance, otherwise Column is not editable.", "guessedname": "editor", "guessedtype": "property"}, "_nRowspan": {"guessedname": "_nRowspan", "type": "Number", "description": "Number of table rows the Column spans.", "private": "", "guessedtype": "property"}, "_nColspan": {"guessedname": "_nColspan", "type": "Number", "description": "Number of table cells the Column spans.", "private": "", "guessedtype": "property"}, "formatter": {"type": "String || HTMLFunction", "description": "Defines a format function.", "guessedname": "formatter", "guessedtype": "property"}, "Column._nCount": {"description": "Internal class variable to index multiple Column instances.", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}, "_dd": {"guessedname": "_dd", "type": "YAHOO.util.DragDrop", "description": "For unreg() purposes, a reference to the Column's DragDrop instance.", "private": "", "guessedtype": "property"}, "currencyOptions": {"default": "null", "type": "Object", "description": "Config passed to YAHOO.util.Number.format() by the 'currency' Column formatter.", "guessedname": "currencyOptions", "guessedtype": "property"}, "_nKeyIndex": {"guessedname": "_nKeyIndex", "type": "Number", "description": "Reference to Column's current position index within its ColumnSet's keys\narray, if applicable. This property only applies to non-nested and bottom-\nlevel child Columns.", "private": "", "guessedtype": "property"}, "abbr": {"type": "String", "description": "Column head cell ABBR for accessibility.", "guessedname": "abbr", "guessedtype": "property"}, "key": {"type": "String", "description": "Unique name, required.", "guessedname": "key", "guessedtype": "property"}, "hidden": {"default": "false", "type": "Boolean", "description": "True if Column is in hidden state.", "guessedname": "hidden", "guessedtype": "property"}, "_elThLabel": {"guessedname": "_elThLabel", "type": "HTMLElement", "description": "The DOM reference to the associated TH element's label SPAN element.", "private": "", "guessedtype": "property"}, "_ddResizer": {"guessedname": "_ddResizer", "type": "YAHOO.util.DragDrop", "description": "For unreg() purposes, a reference to the Column resizer's DragDrop instance.", "private": "", "guessedtype": "property"}, "sortable": {"default": "false", "type": "Boolean", "description": "True if Column is sortable, false otherwise.", "guessedname": "sortable", "guessedtype": "property"}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique String identifier assigned at instantiation.", "private": "", "guessedtype": "property"}, "className": {"type": "String || String[]", "description": "Custom CSS class or array of classes to be applied to every cell in the Column.", "guessedname": "className", "guessedtype": "property"}, "dateOptions": {"default": "null", "type": "Object", "description": "Config passed to YAHOO.util.Date.format() by the 'date' Column formatter.", "guessedname": "dateOptions", "guessedtype": "property"}, "_nWidth": {"guessedname": "_nWidth", "type": "Number", "description": "Internal width tracker.", "private": "", "guessedtype": "property"}, "_oParent": {"guessedname": "_oParent", "type": "YAHOO.widget.Column", "description": "Column's parent Column instance, or null.", "private": "", "guessedtype": "property"}, "maxAutoWidth": {"default": "null", "type": "Number", "description": "When a width is not defined for a Column, maxAutoWidth defines an upper\nlimit that the Column should be auto-sized to. If resizeable is enabled, \nusers may still resize to a greater width. Most useful for Columns intended\nto hold long unbroken, unwrapped Strings, such as URLs, to prevent very\nwide Columns from disrupting visual readability by inducing truncation.", "guessedname": "maxAutoWidth", "guessedtype": "property"}}, "description": "The Column class defines and manages attributes of DataTable Columns"}, "YAHOO.util.LocalDataSource": {"name": "YAHOO.util.LocalDataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "LocalDataSource class for in-memory data structs including JavaScript arrays,\nJavaScript object literals (JSON), XML documents, and HTML tables."}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "LocalDataSource", "extends": "YAHOO.util.DataSourceBase", "superclass": "YAHOO.util.DataSourceBase", "file": "DataSource.js", "guessedtype": "function", "shortname": "LocalDataSource", "description": "LocalDataSource class for in-memory data structs including JavaScript arrays,\nJavaScript object literals (JSON), XML documents, and HTML tables."}, "YAHOO.env.ua": {"name": "YAHOO.env.ua", "namespace": "", "module": "yahoo", "guessedname": "ua", "static": "", "file": "Env.js", "guessedtype": "function", "shortname": "YAHOO.env.ua", "properties": {"secure": {"type": "boolean", "static": "", "description": "Set to true if the page appears to be in SSL", "guessedname": "secure", "guessedtype": "property"}, "opera": {"type": "float", "description": "Opera version number or 0.  Example: 9.2", "guessedname": "opera", "guessedtype": "property"}, "ie": {"type": "float", "description": "Internet Explorer version number or 0.  Example: 6", "guessedname": "ie", "guessedtype": "property"}, "air": {"type": "float", "description": "Adobe AIR version number or 0.  Only populated if webkit is detected.\nExample: 1.0", "guessedname": "air", "guessedtype": "property"}, "mobile": {"type": "string", "description": "The mobile property will be set to a string containing any relevant\nuser agent information when a modern mobile browser is detected.\nCurrently limited to Safari on the iPhone/iPod Touch, Nokia N-series\ndevices with the WebKit-based browser, and Opera Mini.", "guessedname": "mobile", "guessedtype": "property"}, "caja": {"type": "float", "description": "Google Caja version number or 0.", "guessedname": "caja", "guessedtype": "property"}, "os": {"type": "string", "static": "", "description": "The operating system.  Currently only detecting windows or macintosh", "guessedname": "os", "guessedtype": "property"}, "webkit": {"type": "float", "description": "AppleWebKit version.  KHTML browsers that are not WebKit browsers \nwill evaluate to 1, other browsers 0.  Example: 418.9.1\n<pre>\nSafari 1.3.2 (312.6): 312.8.1 <-- Reports 312.8 -- currently the \nlatest available for Mac OSX 10.3.\nSafari 2.0.2:         416     <-- hasOwnProperty introduced\nSafari 2.0.4:         418     <-- preventDefault fixed\nSafari 2.0.4 (419.3): 418.9.1 <-- One version of Safari may run\ndifferent versions of webkit\nSafari 2.0.4 (419.3): 419     <-- Tiger installations that have been\nupdated, but not updated\nto the latest patch.\nWebkit 212 nightly:   522+    <-- Safari 3.0 precursor (with native SVG\nand many major issues fixed).  \n3.x yahoo.com, flickr:422     <-- Safari 3.x hacks the user agent\nstring when hitting yahoo.com and \nflickr.com.\nSafari 3.0.4 (523.12):523.12  <-- First Tiger release - automatic update\nfrom 2.x via the 10.4.11 OS patch\nWebkit nightly 1/2008:525+    <-- Supports DOMContentLoaded event.\nyahoo.com user agent hack removed.\n</pre>\nhttp://developer.apple.com/internet/safari/uamatrix.html", "guessedname": "webkit", "guessedtype": "property"}, "gecko": {"type": "float", "description": "Gecko engine revision number.  Will evaluate to 1 if Gecko \nis detected but the revision could not be found. Other browsers\nwill be 0.  Example: 1.8\n<pre>\nFirefox 1.0.0.4: 1.7.8   <-- Reports 1.7\nFirefox 1.5.0.9: 1.8.0.9 <-- Reports 1.8\nFirefox 2.0.0.3: 1.8.1.3 <-- Reports 1.8\nFirefox 3 alpha: 1.9a4   <-- Reports 1.9\n</pre>", "guessedname": "gecko", "guessedtype": "property"}}, "description": "Do not fork for a browser if it can be avoided.  Use feature detection when\nyou can.  Use the user agent as a last resort.  YAHOO.env.ua stores a version\nnumber for the browser engine, 0 otherwise.  This value may or may not map\nto the version number of the browser using the engine.  The value is \npresented as a float so that it can easily be used for boolean evaluation \nas well as for looking for a particular range of versions.  Because of this, \nsome of the granularity of the version info may be lost (e.g., Gecko 1.8.0.9 \nreports 1.8)."}, "YAHOO.util.StorageManager": {"name": "YAHOO.util.StorageManager", "namespace": "YAHOO.util", "module": "Storage", "methods": {"register": {"return": {"type": "Boolean", "description": "When successfully registered."}, "description": "Registers a engineType Class with the StorageManager singleton; first in is the first out.", "static": "", "guessedname": "register", "guessedtype": "function", "params": [{"type": "Function", "name": "engineConstructor", "description": "  Required. The engine constructor function, see engines."}]}, "_getClass": {"return": {"type": "Function", "description": "An available storage constructor or NULL."}, "description": "Fetches a storage constructor if it is available, otherwise returns NULL.", "private": "", "params": [{"type": "Function", "name": "klass", "description": "  Required. The storage constructor to test."}], "guessedname": "_getClass", "guessedtype": "function"}, "_getStorageEngine": {"guessedname": "_getStorageEngine", "params": [{"type": "String", "name": "location", "description": "  Required. The location to store."}, {"type": "Function", "name": "klass", "description": "  Required. A pointer to the engineType Class."}, {"type": "Object", "name": "conf", "description": "  Optional. Additional configuration for the data source engine."}], "description": "Fetches the storage engine from the cache, or creates and caches it.", "private": "", "guessedtype": "function"}, "_getValidLocation": {"guessedname": "_getValidLocation", "params": [{"type": "String", "name": "location", "description": "  Required. The location to evaluate."}], "description": "Ensures that the location is valid before returning it or a default value.", "private": "", "guessedtype": "function"}, "get": {"static": "", "params": [{"type": "String", "name": "engineType", "description": "  Optional. The engine type, see engines."}, {"type": "String", "name": "location", "description": "  Optional. The storage location - LOCATION_SESSION & LOCATION_LOCAL; default is LOCAL."}, {"type": "Object} Optional. Additional configuration for the getting the storage engine.\n{\nengine: {Object} configuration parameters for the desired engine\norder: {Array} an array of storage engine names; the desired order to try engines}\n", "name": "conf", "description": ""}], "description": "Fetches the desired engine type or first available engine type.", "guessedname": "get", "guessedtype": "function"}}, "static": "", "file": "StorageManager.js", "shortname": "StorageManager", "properties": {"LOCATION_SESSION": {"type": "{String}", "static": "", "description": "The storage location - session; data cleared at the end of a user's session.", "guessedname": "LOCATION_SESSION", "guessedtype": "property"}, "LOCATION_LOCAL": {"type": "{String}", "static": "", "description": "The storage location - local; data cleared on demand.", "guessedname": "LOCATION_LOCAL", "guessedtype": "property"}}, "description": "The StorageManager class is a singleton that registers DataStorage objects and returns instances of those objects."}, "YAHOO.widget.PieSeries": {"name": "YAHOO.widget.PieSeries", "constructors": [{"description": "PieSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "PieSeries", "uses": ["YAHOO.widget.Series"], "file": "Series.js", "guessedtype": "function", "shortname": "PieSeries", "properties": {"categoryField": {"type": "String", "description": "The field used to access the category value from the items from the data source.", "guessedname": "categoryField", "guessedtype": "property"}, "labelFunction": {"type": "String", "description": "A string reference to the globally-accessible function that may be called to\ndetermine each of the label values for this series. Also accepts function references.", "guessedname": "labelFunction", "guessedtype": "property"}, "dataField": {"type": "String", "description": "The field used to access the data value from the items from the data source.", "guessedname": "dataField", "guessedtype": "property"}}, "description": "PieSeries class for the YUI Charts widget."}, "YAHOO.widget.ScrollingDataTable": {"name": "YAHOO.widget.ScrollingDataTable", "configs": {"width": {"type": "String", "description": "Table width for scrollable tables (e.g., \"40em\")."}, "COLOR_COLUMNFILLER": {"default": "\"#F2F2F2\"", "type": "String", "description": "CSS color value assigned to header filler on scrollable tables."}, "height": {"type": "String", "description": "Table body height for scrollable tables, not including headers (e.g., \"40em\")."}}, "constructors": [{"params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Container element for the TABLE."}, {"type": "Object[]", "name": "aColumnDefs", "description": "  Array of object literal Column definitions."}, {"type": "YAHOO.util.DataSource", "name": "oDataSource", "description": "  DataSource instance."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "The ScrollingDataTable class extends the DataTable class to provide\nfunctionality for x-scrolling, y-scrolling, and xy-scrolling."}], "namespace": "YAHOO.widget", "module": "datatable", "events": {"COLOR_COLUMNFILLERChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "COLOR_COLUMNFILLERChange", "description": "Fires when the value for the configuration attribute 'COLOR_COLUMNFILLER' changes."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "beforeCOLOR_COLUMNFILLERChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCOLOR_COLUMNFILLERChange", "description": "Fires before the value for the configuration attribute 'COLOR_COLUMNFILLER' changes. Return false to cancel the attribute change."}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "tableScrollEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's CONTAINER element (in IE)\nor the DataTable's TBODY element (everyone else)."}], "description": "Fired when a fixed scrolling DataTable has a scroll."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "ScrollingDataTable", "methods": {"_onTheadKeydown": {"guessedname": "_onTheadKeydown", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The key event."}, {"type": "YAHOO.widget.ScrollingDataTable", "name": "oSelf", "description": "  ScrollingDataTable instance."}], "description": "Handles keydown events on the THEAD element.", "private": "", "guessedtype": "function"}, "onColumnChange": {"params": [{"type": "Object", "name": "oArgs", "description": "  Custom Event data."}], "description": "Handles Column mutations", "guessedname": "_onColumnChange", "guessedtype": "function"}, "scrollTo": {"params": [{"type": "YAHOO.widget.Record | HTMLElement ", "name": "to", "description": "  Itme to scroll to."}], "description": "Scrolls to given row or cell", "guessedname": "scrollTo", "guessedtype": "function"}, "setColumnWidth": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "nWidth", "description": "  New width in pixels."}], "description": "Sets given Column to given pixel width. If new width is less than minWidth\nwidth, sets to minWidth. Updates oColumn.width value.", "guessedname": "setColumnWidth", "guessedtype": "function"}, "validateColumnWidths": {"params": [{"type": "YAHOO.widget.Column", "name": "oArg.column", "description": "  (optional) One Column to validate. If null, all Columns' widths are validated."}], "description": "For one or all Columns of a ScrollingDataTable, when Column is not hidden,\nand width is not set, syncs widths of header and body cells and \nvalidates that width against minWidth and/or maxAutoWidth as necessary.", "guessedname": "validateColumnWidths", "guessedtype": "function"}, "insertColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Inserted Column instance."}, "params": [{"type": "Object | YAHOO.widget.Column", "name": "oColumn", "description": "  Object literal Column\ndefinition or a Column instance."}, {"type": "Number", "name": "index", "description": "  (optional) New tree index."}], "description": "Inserts given Column at the index if given, otherwise at the end. NOTE: You\ncan only add non-nested Columns and top-level parent Columns. You cannot add\na nested Column to an existing parent.", "guessedname": "insertColumn", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal definition of configuration values."}], "description": "Implementation of Element's abstract method. Sets up config values.", "private": "", "guessedtype": "function"}, "_validateColumnWidth": {"guessedname": "_validateColumnWidth", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "HTMLElement", "name": "elTd", "description": "  TD element to validate against."}], "description": "Helper function calculates and sets a validated width for a Column in a ScrollingDataTable.", "private": "", "guessedtype": "function"}, "_syncScrollY": {"private": "", "description": "Snaps container width for y-scrolling tables.", "guessedname": "_syncScrollY", "guessedtype": "function"}, "_syncScrollX": {"private": "", "description": "Snaps container height for x-scrolling tables in IE. Syncs message TBODY width.", "guessedname": "_syncScrollX", "guessedtype": "function"}, "_initBdThEl": {"guessedname": "_initBdThEl", "params": [{"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column object."}], "description": "Populates TH element for the body THEAD element.", "private": "", "guessedtype": "function"}, "_destroyBdTheadEl": {"private": "", "description": "Destroy's the DataTable body THEAD element, if available.", "guessedname": "_destroyBdTheadEl", "guessedtype": "function"}, "_initTableEl": {"private": "", "description": "Initializes ScrollingDataTable TABLE elements into the two inner containers.", "guessedname": "_initTableEl", "guessedtype": "function"}, "_initTheadEl": {"guessedname": "_initTheadEl", "params": [{"type": "HTMLElement", "name": "elHdTable", "description": "  (optional) Fixed header TABLE element reference."}, {"type": "HTMLElement", "name": "elTable", "description": "  (optional) TABLE element reference."}], "description": "Initializes ScrollingDataTable THEAD elements into the two inner containers.", "private": "", "guessedtype": "function"}, "showTableMessage": {"params": [{"type": "String", "name": "sHTML", "description": "  (optional) Value for innerHTMlang."}, {"type": "String", "name": "sClassName", "description": "  (optional) Classname."}], "description": "Displays message within secondary TBODY.", "guessedname": "showTableMessage", "guessedtype": "function"}, "_focusEl": {"guessedname": "_focusEl", "params": [{"type": "HTMLElement", "name": "el", "description": "  Element."}], "description": "Sets focus on the given element.", "private": "", "guessedtype": "function"}, "_destroyHdTableEl": {"private": "", "description": "Destroy's the DataTable head TABLE element, if available.", "guessedname": "_destroyHdTableEl", "guessedtype": "function"}, "getHdTableEl": {"return": {"type": "HTMLElement", "description": "Reference to TABLE element."}, "description": "Returns DOM reference to the DataTable's fixed header TABLE element.", "guessedname": "getHdTableEl", "guessedtype": "function"}, "clearScrollPositions": {"private": "", "description": "Clears stored scroll positions to interrupt the automatic restore mechanism.\nUseful for setting scroll positions programmatically rather than as part of\nthe post-render cleanup process.", "guessedname": "clearScrollPositions", "guessedtype": "function"}, "getBdContainerEl": {"return": {"type": "HTMLElement", "description": "Reference to DIV element."}, "description": "Returns DOM reference to the DataTable's scrolling body container element.", "guessedname": "getBdContainerEl", "guessedtype": "function"}, "_initDomElements": {"guessedname": "_initDomElements", "params": [{"type": "HTMLElement | String} HTML DIV element by reference or ID. \nreturn {Boolean", "name": "elContainer", "description": "  False in case of error, otherwise true"}], "description": "Initializes DOM elements for a ScrollingDataTable, including creation of\ntwo separate TABLE elements.", "private": "", "guessedtype": "function"}, "_syncScroll": {"private": "", "description": "Syncs padding around scrollable tables, including Column header right-padding\nand container width and height.", "guessedname": "_syncScroll", "guessedtype": "function"}, "disable": {"description": "Disables ScrollingDataTable UI.", "guessedname": "disable", "guessedtype": "function"}, "_setOverhangValue": {"guessedname": "_setOverhangValue", "params": [{"type": "Number", "name": "nBorderWidth", "description": "  Value of new border for overhang."}], "description": "Sets Column header overhang to given width.", "private": "", "guessedtype": "function"}, "_initCaptionEl": {"guessedname": "_initCaptionEl", "params": [{"type": "String", "name": "sCaption", "description": "  Text for caption."}], "description": "Creates HTML markup CAPTION element.", "private": "", "guessedtype": "function"}, "removeColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Removed Column instance."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}], "description": "Removes given Column. NOTE: You cannot remove nested Columns. You can only remove\nnon-nested Columns, and top-level parent Columns (which will remove all\nchildren Columns).", "guessedname": "removeColumn", "guessedtype": "function"}, "_runRenderChain": {"private": "", "description": "Internal wrapper calls run() on render Chain instance.", "guessedname": "_runRenderChain", "guessedtype": "function"}, "_destroyContainerEl": {"guessedname": "_destroyContainerEl", "params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Reference to the container element."}], "description": "Destroy's the DataTable outer and inner container elements, if available.", "private": "", "guessedtype": "function"}, "getBdTableEl": {"return": {"type": "HTMLElement", "description": "Reference to TABLE element."}, "description": "Returns DOM reference to the DataTable's scrolling body TABLE element.", "guessedname": "getBdTableEl", "guessedtype": "function"}, "getHdContainerEl": {"return": {"type": "HTMLElement", "description": "Reference to DIV element."}, "description": "Returns DOM reference to the DataTable's fixed header container element.", "guessedname": "getHdContainerEl", "guessedtype": "function"}, "_onScroll": {"guessedname": "_onScroll", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The scroll event."}, {"type": "YAHOO.widget.ScrollingDataTable", "name": "oSelf", "description": "  ScrollingDataTable instance."}], "description": "Syncs scrolltop and scrollleft of all TABLEs.", "private": "", "guessedtype": "function"}, "_retoreScrollPositions": {"private": "", "description": "Restores scroll positions to stored value.", "guessedname": "_restoreScrollPositions", "guessedtype": "function"}, "_initBdTheadEl": {"return": {"type": "HTMLElement", "description": "Initialized THEAD element."}, "description": "Initializes body THEAD element.", "private": "", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create THEAD."}], "guessedname": "_initBdTheadEl", "guessedtype": "function"}, "_initTbodyEl": {"guessedname": "_initTbodyEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create TBODY ."}], "description": "Initializes ScrollingDataTable TBODY element for data", "private": "", "guessedtype": "function"}, "_storeScrollPositions": {"private": "", "description": "Stores scroll positions so they can be restored after a render.", "guessedname": "_storeScrollPositions", "guessedtype": "function"}, "_initContainerEl": {"guessedname": "_initContainerEl", "params": [{"type": "HTMLElement | String", "name": "elContainer", "description": "  HTML DIV element by reference or ID."}], "description": "Initializes the DataTable outer container element and creates inner header\nand body container elements.", "private": "", "guessedtype": "function"}, "reorderColumn": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "index", "description": "  New tree index."}], "description": "Removes given Column and inserts into given tree index. NOTE: You\ncan only reorder non-nested Columns and top-level parent Columns. You cannot\nreorder a nested Column to an existing parent.", "guessedname": "reorderColumn", "guessedtype": "function"}, "_initThEl": {"guessedname": "_initThEl", "params": [{"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column object."}], "description": "SDT changes ID so as not to duplicate the accessibility TH IDs.", "private": "", "guessedtype": "function"}, "_syncScrollOverhang": {"private": "", "description": "Adds/removes Column header overhang as necesary.", "guessedname": "_syncScrollOverhang", "guessedtype": "function"}}, "extends": "YAHOO.widget.DataTable", "superclass": "YAHOO.widget.DataTable", "file": "ScrollingDataTable.js", "guessedtype": "function", "shortname": "ScrollingDataTable", "properties": {"DataTable.CLASS_BODY": {"description": "Class name assigned to inner DataTable body container.", "default": "\"yui-dt-bd\"", "static": "", "guessedname": "CLASS_BODY", "guessedtype": "property", "type": "String", "final": ""}, "_elBdThead": {"guessedname": "_elBdThead", "type": "HTMLElement", "description": "Body THEAD element.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_HEADER": {"description": "Class name assigned to inner DataTable header container.", "default": "\"yui-dt-hd\"", "static": "", "guessedname": "CLASS_HEADER", "guessedtype": "property", "type": "String", "final": ""}, "_elHdContainer": {"guessedname": "_elHdContainer", "type": "HTMLElement", "description": "Container for fixed header TABLE element.", "private": "", "guessedtype": "property"}, "_elHdTable": {"guessedname": "_elHdTable", "type": "HTMLElement", "description": "Fixed header TABLE element.", "private": "", "guessedtype": "property"}, "_bScrollbarX": {"guessedname": "_bScrollbarX", "type": "Boolean", "description": "True if x-scrollbar is currently visible.", "private": "", "guessedtype": "property"}, "_elTmpTable": {"guessedname": "_elTmpTable", "type": "HTMLElement", "description": "Offscreen TABLE element for auto-width calculation.", "private": "", "guessedtype": "property"}, "_elBdContainer": {"guessedname": "_elBdContainer", "type": "HTMLElement", "description": "Container for scrolling body TABLE element.", "private": "", "guessedtype": "property"}, "_elTmpContainer": {"guessedname": "_elTmpContainer", "type": "HTMLElement", "description": "Offscreen container to temporarily clone SDT for auto-width calculation.", "private": "", "guessedtype": "property"}}, "description": "The ScrollingDataTable class extends the DataTable class to provide\nfunctionality for x-scrolling, y-scrolling, and xy-scrolling."}, "YAHOO_config": {"name": "YAHOO_config", "namespace": "", "module": "yahoo", "static": "", "file": "YAHOO.js", "shortname": "YAHOO_config", "properties": {"listener": {"default": "undefined", "type": "Function", "static": "", "description": "A reference to a function that will be executed every time a YAHOO module\nis loaded.  As parameter, this function will receive the version\ninformation for the module. See <a href=\"YAHOO.env.html#getVersion\">\nYAHOO.env.getVersion</a> for the description of the version data structure."}, "load": {"default": "undefined", "see": "yuiloader", "static": "", "description": "Instructs the yuiloader component to dynamically load yui components and\ntheir dependencies.  See the yuiloader documentation for more information\nabout dynamic loading"}, "locale": {"description": "Forces the use of the supplied locale where applicable in the library", "default": "undefined", "static": "", "guessedname": "YAHOO", "guessedtype": "property", "type": "string"}, "injecting": {"default": "undefined", "type": "boolean", "static": "", "description": "Set to true if the library will be dynamically loaded after window.onload.\nDefaults to false"}}, "description": "YAHOO_config is not included as part of the library.  Instead it is an \nobject that can be defined by the implementer immediately before \nincluding the YUI library.  The properties included in this object\nwill be used to configure global properties needed as soon as the \nlibrary begins to load."}, "YAHOO.util.FunctionDataSource": {"name": "YAHOO.util.FunctionDataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "FunctionDataSource class for JavaScript functions."}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "FunctionDataSource", "methods": {"makeConnection": {"return": {"type": "Number", "description": "Transaction ID."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Overriding method passes query to a function. The returned response is then\nforwarded to the handleResponse function.", "guessedname": "makeConnection", "guessedtype": "function"}}, "extends": "YAHOO.util.DataSourceBase", "superclass": "YAHOO.util.DataSourceBase", "file": "DataSource.js", "guessedtype": "function", "shortname": "FunctionDataSource", "properties": {"scope": {"default": "null", "type": "Object", "description": "Context in which to execute the function. By default, is the DataSource\ninstance itself. If set, the function will receive the DataSource instance\nas an additional argument.", "guessedname": "scope", "guessedtype": "property"}}, "description": "FunctionDataSource class for JavaScript functions."}, "YAHOO.widget.DateMath": {"name": "YAHOO.widget.DateMath", "namespace": "YAHOO.widget", "module": "datemath", "guessedname": "DateMath", "methods": {"isYearOverlapWeek": {"return": {"type": "Boolean", "description": "true if the date overlaps two different years."}, "params": [{"type": "Date", "name": "weekBeginDate", "description": " The JavaScript Date representing the first day of the week."}], "description": "Determines if a given week overlaps two different years.", "guessedname": "isYearOverlapWeek", "guessedtype": "function"}, "getWeekNumber": {"return": {"type": "Number", "description": "The number of the week containing the given date."}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript date for which to find the week number"}, {"type": "Number", "name": "firstDayOfWeek", "description": " The index of the first day of the week (0 = Sun, 1 = Mon ... 6 = Sat).\nDefaults to 0"}, {"type": "Number", "name": "janDate", "description": " The date in the first week of January which defines week one for the year\nDefaults to the value of YAHOO.widget.DateMath.WEEK_ONE_JAN_DATE, which is 1 (Jan 1st). \nFor the U.S, this is normally Jan 1st. ISO8601 uses Jan 4th to define the first week of the year."}], "description": "Calculates the week number for the given date. Can currently support standard\nU.S. week numbers, based on Jan 1st defining the 1st week of the year, and \nISO8601 week numbers, based on Jan 4th defining the 1st week of the year.", "guessedname": "getWeekNumber", "guessedtype": "function"}, "getDayOffset": {"return": {"type": "Number", "description": "The number of days since January 1 of the given year"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript date for which to find the offset"}, {"type": "Number", "name": "calendarYear", "description": " The calendar year to use for determining the offset"}], "description": "Calculates the number of days the specified date is from January 1 of the specified calendar year.\nPassing January 1 to this function would return an offset value of zero.", "guessedname": "getDayOffset", "guessedtype": "function"}, "findMonthEnd": {"return": {"type": "Date", "description": "The JavaScript Date representing the last day of the month"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date used to calculate the month end"}], "description": "Gets the last day of a month containing a given date.", "guessedname": "findMonthEnd", "guessedtype": "function"}, "getFirstDayOfWeek": {"return": {"type": "Date", "description": "The first day of the week"}, "params": [{"type": "Date", "name": "dt", "description": " The date in the week for which the first day is required."}, {"type": "Number", "name": "startOfWeek", "description": " The index for the first day of the week, 0 = Sun, 1 = Mon ... 6 = Sat (defaults to 0)"}], "description": "Get the first day of the week, for the give date.", "guessedname": "getFirstDayOfWeek", "guessedtype": "function"}, "after": {"return": {"type": "Boolean", "description": "true if the date occurs after the compared date; false if not."}, "params": [{"type": "Date", "name": "date", "description": "  The Date object to compare with the compare argument"}, {"type": "Date", "name": "compareTo", "description": " The Date object to use for the comparison"}], "description": "Determines whether a given date is after another date on the calendar.", "guessedname": "after", "guessedtype": "function"}, "clearTime": {"return": {"type": "Date", "description": "The JavaScript Date cleared of all time fields"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date for which the time fields will be cleared"}], "description": "Clears the time fields from a given date, effectively setting the time to 12 noon.", "guessedname": "clearTime", "guessedtype": "function"}, "isMonthOverlapWeek": {"return": {"type": "Boolean", "description": "true if the date overlaps two different months."}, "params": [{"type": "Date", "name": "weekBeginDate", "description": " The JavaScript Date representing the first day of the week."}], "description": "Determines if a given week overlaps two different months.", "guessedname": "isMonthOverlapWeek", "guessedtype": "function"}, "add": {"return": {"type": "Date", "description": "The resulting Date object"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object to perform addition on"}, {"type": "String", "name": "field", "description": " The field constant to be used for performing addition."}, {"type": "Number", "name": "amount", "description": " The number of units (measured in the field constant) to add to the date."}], "description": "Adds the specified amount of time to the this instance.", "guessedname": "add", "guessedtype": "function"}, "getJan1": {"return": {"type": "Date", "description": "January 1 of the calendar year specified."}, "params": [{"type": "Number", "name": "calendarYear", "description": "  The calendar year for which to retrieve January 1"}], "description": "Retrieves a JavaScript Date object representing January 1 of any given year.", "guessedname": "getJan1", "guessedtype": "function"}, "between": {"return": {"type": "Boolean", "description": "true if the date occurs between the compared dates; false if not."}, "params": [{"type": "Date", "name": "date", "description": "  The date to check for"}, {"type": "Date", "name": "dateBegin", "description": " The start of the range"}, {"type": "Date", "name": "dateEnd", "description": "  The end of the range"}], "description": "Determines whether a given date is between two other dates on the calendar.", "guessedname": "between", "guessedtype": "function"}, "findMonthStart": {"return": {"type": "Date", "description": "The JavaScript Date representing the first day of the month"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date used to calculate the month start"}], "description": "Gets the first day of a month containing a given date.", "guessedname": "findMonthStart", "guessedtype": "function"}, "getDate": {"return": {"type": "Date", "description": "The JavaScript date object with year, month, date set as provided."}, "params": [{"type": "Number", "name": "y", "description": " Year."}, {"type": "Number", "name": "m", "description": " Month index from 0 (Jan) to 11 (Dec)."}, {"type": "Number", "name": "d", "description": " (optional) Date from 1 to 31. If not provided, defaults to 1."}], "description": "Returns a new JavaScript Date object, representing the given year, month and date. Time fields (hr, min, sec, ms) on the new Date object\nare set to 0. The method allows Date instances to be created with the a year less than 100. \"new Date(year, month, date)\" implementations \nset the year to 19xx if a year (xx) which is less than 100 is provided.\n<p>\n<em>NOTE:</em>Validation on argument values is not performed. It is the caller's responsibility to ensure\narguments are valid as per the ECMAScript-262 Date object specification for the new Date(year, month[, date]) constructor.\n</p>", "guessedname": "getDate", "guessedtype": "function"}, "subtract": {"return": {"type": "Date", "description": "The resulting Date object"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object to perform subtraction on"}, {"type": "Number", "name": "field", "description": " The this field constant to be used for performing subtraction."}, {"type": "Number", "name": "amount", "description": " The number of units (measured in the field constant) to subtract from the date."}], "description": "Subtracts the specified amount of time from the this instance.", "guessedname": "subtract", "guessedtype": "function"}, "_addDays": {"guessedname": "_addDays", "params": [{"type": "Date", "name": "d", "description": " JavaScript date object"}, {"type": "Number", "name": "nDays", "description": " The number of days to add to the date object (can be negative)"}], "description": "Private helper method to account for bug in Safari 2 (webkit < 420)\nwhen Date.setDate(n) is called with n less than -128 or greater than 127.\n<p>\nFix approach and original findings are available here:\nhttp://brianary.blogspot.com/2006/03/safari-date-bug.html\n</p>", "private": "", "guessedtype": "function"}, "before": {"return": {"type": "Boolean", "description": "true if the date occurs before the compared date; false if not."}, "params": [{"type": "Date", "name": "date", "description": "  The Date object to compare with the compare argument"}, {"type": "Date", "name": "compareTo", "description": " The Date object to use for the comparison"}], "description": "Determines whether a given date is before another date on the calendar.", "guessedname": "before", "guessedtype": "function"}}, "file": "DateMath.js", "guessedtype": "property", "shortname": "DateMath", "properties": {"WEEK": {"description": "Constant field representing Week", "static": "", "guessedname": "WEEK", "guessedtype": "property", "type": "String", "final": ""}, "YEAR": {"description": "Constant field representing Year", "static": "", "guessedname": "YEAR", "guessedtype": "property", "type": "String", "final": ""}, "MONTH": {"description": "Constant field representing Month", "static": "", "guessedname": "MONTH", "guessedtype": "property", "type": "String", "final": ""}, "ONE_DAY_MS": {"description": "Constant field representing one day, in milliseconds", "static": "", "guessedname": "ONE_DAY_MS", "guessedtype": "property", "type": "Number", "final": ""}, "WEEK_ONE_JAN_DATE": {"type": "Number", "static": "", "description": "Constant field representing the date in first week of January\nwhich identifies the first week of the year.\n<p>\nIn the U.S, Jan 1st is normally used based on a Sunday start of week.\nISO 8601, used widely throughout Europe, uses Jan 4th, based on a Monday start of week.\n</p>", "guessedname": "WEEK_ONE_JAN_DATE", "guessedtype": "property"}, "DAY": {"description": "Constant field representing Day", "static": "", "guessedname": "DAY", "guessedtype": "property", "type": "String", "final": ""}}, "description": "YAHOO.widget.DateMath is used for simple date manipulation. The class is a static utility\nused for adding, subtracting, and comparing dates."}, "YAHOO.util.DateLocale": {"name": "YAHOO.util.DateLocale", "namespace": "YAHOO.util", "module": "datasource", "guessedname": "DateLocale", "file": "Type.js", "guessedtype": "property", "shortname": "DateLocale", "requires": "yahoo", "description": "The DateLocale class is a container and base class for all\nlocalised date strings used by YAHOO.util.Date. It is used\ninternally, but may be extended to provide new date localisations.\nTo create your own DateLocale, follow these steps:\n<ol>\n<li>Find an existing locale that matches closely with your needs</li>\n<li>Use this as your base class.  Use YAHOO.util.DateLocale if nothing\nmatches.</li>\n<li>Create your own class as an extension of the base class using\nYAHOO.lang.merge, and add your own localisations where needed.</li>\n</ol>\nSee the YAHOO.util.DateLocale['en-US'] and YAHOO.util.DateLocale['en-GB']\nclasses which extend YAHOO.util.DateLocale['en'].\nFor example, to implement locales for French french and Canadian french,\nwe would do the following:\n<ol>\n<li>For French french, we have no existing similar locale, so use\nYAHOO.util.DateLocale as the base, and extend it:\n<pre>\nYAHOO.util.DateLocale['fr'] = YAHOO.lang.merge(YAHOO.util.DateLocale, {\na: ['dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam'],\nA: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],\nb: ['jan', 'fév', 'mar', 'avr', 'mai', 'jun', 'jui', 'aoû', 'sep', 'oct', 'nov', 'déc'],\nB: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],\nc: '%a %d %b %Y %T %Z',\np: ['', ''],\nP: ['', ''],\nx: '%d.%m.%Y',\nX: '%T'\n});\n</pre>\n</li>\n<li>For Canadian french, we start with French french and change the meaning of \\%x:\n<pre>\nYAHOO.util.DateLocale['fr-CA'] = YAHOO.lang.merge(YAHOO.util.DateLocale['fr'], {\nx: '%Y-%m-%d'\n});\n</pre>\n</li>\n</ol>\nWith that, you can use your new locales:\n<pre>\nvar d = new Date(\"2008/04/22\");\nYAHOO.util.Date.format(d, {format: \"%A, %d %B == %x\"}, \"fr\");\n</pre>\nwill return:\n<pre>\nmardi, 22 avril == 22.04.2008\n</pre>\nAnd\n<pre>\nYAHOO.util.Date.format(d, {format: \"%A, %d %B == %x\"}, \"fr-CA\");\n</pre>\nWill return:\n<pre>\nmardi, 22 avril == 2008-04-22\n</pre>"}, "YAHOO.util.StorageEngineKeyed": {"name": "YAHOO.util.StorageEngineKeyed", "extend": "YAHOO.util.Storage", "constructors": [{"description": "The StorageEngineKeyed class implements the interface necessary for managing keys."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEngineKeyed", "methods": {"_indexOfKey": {"protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key to evaluate."}], "description": "Evaluates if a key exists in the keys array; indexOf does not work in all flavors of IE.", "guessedname": "_indexOfKey", "guessedtype": "function"}, "_removeKey": {"protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key to remove."}], "description": "Removes a key from the keys array.", "guessedname": "_removeKey", "guessedtype": "function"}, "_addKey": {"protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key to evaluate."}], "description": "Adds the key to the set.", "guessedname": "_addKey", "guessedtype": "function"}}, "file": "StorageEngineKeyed.js", "guessedtype": "function", "shortname": "StorageEngineKeyed", "properties": {"_keyMap": {"protected": "", "type": "{Object}", "description": "A map of keys to their applicable position in keys array. This should never be edited by the developer.", "guessedname": "_keyMap", "guessedtype": "property"}, "_keys": {"protected": "", "type": "{Array}", "description": "A collection of keys applicable to the current location. This should never be edited by the developer.", "guessedname": "_keys", "guessedtype": "property"}}, "description": "The StorageEngineKeyed class implements the interface necessary for managing keys."}, "YAHOO.tool.TestSuite": {"name": "YAHOO.tool.TestSuite", "constructors": [{"params": [{"type": "String||Object", "name": "data", "description": " The name of the test suite or an object containing\na name property as well as setUp and tearDown methods."}], "description": "A test suite that can contain a collection of TestCase and TestSuite objects."}], "namespace": "YAHOO.tool", "module": "yuitest", "guessedname": "TestSuite", "methods": {"tearDown": {"return": {"type": "Void", "description": ""}, "description": "Function to run after each test is executed.", "guessedname": "tearDown", "guessedtype": "function"}, "add": {"return": {"type": "Void", "description": ""}, "params": [{"type": "YAHOO.tool.TestSuite||YAHOO.tool.TestCase", "name": "testObject", "description": " The test suite or test case to add."}], "description": "Adds a test suite or test case to the test suite.", "guessedname": "add", "guessedtype": "function"}, "setUp": {"return": {"type": "Void", "description": ""}, "description": "Function to run before each test is executed.", "guessedname": "setUp", "guessedtype": "function"}}, "file": "TestSuite.js", "guessedtype": "function", "shortname": "TestSuite", "properties": {"name": {"type": "String", "description": "The name of the test suite."}}, "description": "A test suite that can contain a collection of TestCase and TestSuite objects."}, "YAHOO.util.DragDropMgr.ElementWrapper": {"name": "YAHOO.util.DragDropMgr.ElementWrapper", "for": "DragDropMgr", "innerClasses": ["DragDropMgr"], "deprecated": "", "namespace": "YAHOO.util", "module": "dragdrop", "guessedname": "ElementWrapper", "private": "", "file": "DragDropMgr.js", "guessedtype": "function", "shortname": "DragDropMgr.ElementWrapper", "properties": {"el": {"description": "The element", "guessedname": "el", "guessedtype": "property"}, "id": {"description": "The element id", "guessedname": "id", "guessedtype": "property"}, "css": {"description": "A reference to the style property", "guessedname": "css", "guessedtype": "property"}}, "description": "Inner class for cached elements"}, "YAHOO.util.ColumnResizer": {"name": "YAHOO.util.ColumnResizer", "constructors": [{"params": [{"type": "YAHOO.widget.DataTable", "name": "oDataTable", "description": "  DataTable instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "String", "name": "sHandleElId", "description": "  DOM ID of the handle element that causes the resize."}, {"type": "HTMLElement", "name": "elProxy", "description": "  Resizer proxy element."}], "description": "ColumnResizer subclasses DragDrop to support resizeable Columns."}], "namespace": "YAHOO.util", "module": "datatable", "guessedname": "ColumnResizer", "methods": {"startDrag": {"params": [{"type": "string", "name": "e", "description": "  The drag event"}], "description": "Handles start drag on the Column resizer.", "guessedname": "startDrag", "guessedtype": "function"}, "resetResizerEl": {"description": "Resets resizer element.", "guessedname": "resetResizerEl", "guessedtype": "function"}, "onMouseDown": {"params": [{"type": "string", "name": "e", "description": "  The mousedown event"}], "description": "Handles mousedown events on the Column resizer.", "guessedname": "onMouseDown", "guessedtype": "function"}, "onMouseUp": {"params": [{"type": "string", "name": "e", "description": "  The mouseup event"}], "description": "Handles mouseup events on the Column resizer.", "guessedname": "onMouseUp", "guessedtype": "function"}, "onDrag": {"params": [{"type": "string", "name": "e", "description": "  The drag event"}], "description": "Handles drag events on the Column resizer.", "guessedname": "onDrag", "guessedtype": "function"}, "clickValidator": {"guessedname": "clickValidator", "params": [{"type": "Event", "name": "e", "description": ""}], "description": "Custom clickValidator to ensure Column is not in hidden state.", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.DDProxy", "superclass": "YAHOO.util.DDProxy", "file": "ColumnSet.js", "guessedtype": "function", "shortname": "ColumnResizer", "properties": {"editorOptions": {"deprecated": "Pass configs directly to CellEditor constructor."}}, "description": "ColumnResizer subclasses DragDrop to support resizeable Columns."}, "YAHOO.util.StorageEngineHTML5": {"name": "YAHOO.util.StorageEngineHTML5", "extend": "YAHOO.util.Storage", "constructors": [{"params": [{"type": "String", "name": "location", "description": "  Required. The storage location."}, {"type": "Object", "name": "conf", "description": "  Required. A configuration object."}], "description": "The StorageEngineHTML5 class implements the HTML5 storage engine."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEngineHTML5", "file": "StorageEngineHTML5.js", "guessedtype": "function", "shortname": "StorageEngineHTML5", "description": "The StorageEngineHTML5 class implements the HTML5 storage engine."}, "YAHOO.widget.DualSlider": {"name": "YAHOO.widget.DualSlider", "constructors": [{"params": [{"type": "Slider", "name": "minSlider", "description": " The Slider instance used for the min value thumb"}, {"type": "Slider", "name": "maxSlider", "description": " The Slider instance used for the max value thumb"}, {"type": "int", "name": "range", "description": " The number of pixels the thumbs may move within"}, {"type": "Array", "name": "initVals", "description": " (optional) [min,max] Initial thumb placement"}], "description": "A slider with two thumbs, one that represents the min value and \nthe other the max.  Actually a composition of two sliders, both with\nthe same background.  The constraints for each slider are adjusted\ndynamically so that the min value of the max slider is equal or greater\nto the current value of the min slider, and the max value of the min\nslider is the current value of the max slider.\nConstructor assumes both thumbs are positioned absolutely at the 0 mark on\nthe background."}], "namespace": "YAHOO.widget", "module": "slider", "events": {"ready": {"params": [{"type": "DualSlider", "name": "dualslider", "description": " the DualSlider instance"}], "description": "Event that fires when the slider is finished setting up"}, "slideEnd": {"params": [{"type": "Slider", "name": "activeSlider", "description": " the moving slider"}], "description": "Event that fires when one of the thumbs finishes moving"}, "change": {"params": [{"type": "DualSlider", "name": "dualslider", "description": " the DualSlider instance"}], "description": "Event that fires when either the min or max value changes"}, "slideStart": {"params": [{"type": "Slider", "name": "activeSlider", "description": " the moving slider"}], "description": "Event that fires when one of the thumbs begins to move"}}, "methods": {"_handleSlideStart": {"private": "", "description": "Executed when one of the sliders fires the slideStart event", "guessedname": "_handleSlideStart", "guessedtype": "function"}, "_handleMouseDown": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  mouseup event"}], "description": "Delegates the onMouseDown to the appropriate Slider", "guessedname": "_handleMouseDown", "guessedtype": "function"}, "_oneTimeCallback": {"guessedname": "_oneTimeCallback", "params": [{"type": "EventProvider", "name": "o", "description": "  Object to attach the event to"}, {"type": "string", "name": "evt", "description": "  Name of the event"}, {"type": "Function", "name": "fn", "description": "  function to execute once"}], "description": "Schedule an event callback that will execute once, then unsubscribe\nitself.", "private": "", "guessedtype": "function"}, "_handleSlideEnd": {"private": "", "description": "Executed when one of the sliders fires the slideEnd event", "guessedname": "_handleSlideEnd", "guessedtype": "function"}, "_handleDrag": {"private": "", "description": "Overrides the onDrag method for both sliders", "guessedname": "_handleDrag", "guessedtype": "function"}, "_bindKeyEvents": {"protected": "", "description": "Set up the listeners for the keydown and keypress events.", "guessedname": "_bindKeyEvents", "guessedtype": "function"}, "selectActiveSlider": {"guessedname": "selectActiveSlider", "params": [{"type": "Event", "name": "e", "description": "  the mousedown event"}], "description": "A background click will move the slider thumb nearest to the click.\nOverride if you need different behavior.", "private": "", "guessedtype": "function"}, "setMinValue": {"params": [{"type": "int", "name": "min", "description": "  Pixel offset for min thumb"}, {"type": "boolean", "name": "skipAnim", "description": "  (optional) Set to true to skip thumb animation.\nDefault false"}, {"type": "boolean", "name": "force", "description": "  (optional) ignore the locked setting and set\nvalue anyway. Default false"}, {"type": "boolean", "name": "silent", "description": "  (optional) Set to true to skip firing change\nevents.  Default false"}], "description": "Set the min thumb position to a new value.", "guessedname": "setMinValue", "guessedtype": "function"}, "setMaxValue": {"params": [{"type": "int", "name": "max", "description": "  Pixel offset for max thumb"}, {"type": "boolean", "name": "skipAnim", "description": "  (optional) Set to true to skip thumb animation.\nDefault false"}, {"type": "boolean", "name": "force", "description": "  (optional) ignore the locked setting and set\nvalue anyway. Default false"}, {"type": "boolean", "name": "silent", "description": "  (optional) Set to true to skip firing change\nevents.  Default false"}], "description": "Set the max thumb position to a new value.", "guessedname": "setMaxValue", "guessedtype": "function"}, "_cleanEvent": {"guessedname": "_cleanEvent", "params": [{"type": "EventProvider", "name": "o", "description": "  object housing the CustomEvent"}, {"type": "string", "name": "evt", "description": "  name of the CustomEvent"}], "description": "Clean up the slideEnd event subscribers array, since each one-time\ncallback will be replaced in the event's subscribers property with\nnull.  This will cause memory bloat and loss of performance.", "private": "", "guessedtype": "function"}, "_handleKeyDown": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the mousedown DOM event"}], "description": "Delegate event handling to the active Slider.  See Slider.handleKeyDown.", "guessedname": "_handleKeyDown", "guessedtype": "function"}, "updateValue": {"guessedname": "updateValue", "params": [{"type": "boolean", "name": "silent", "description": "  (optional) Set to true to skip firing change\nevents.  Default false"}], "description": "Executed when one of the sliders is moved", "private": "", "guessedtype": "function"}, "_handleKeyPress": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the mousedown DOM event"}], "description": "Delegate event handling to the active Slider.  See Slider.handleKeyPress.", "guessedname": "_handleKeyPress", "guessedtype": "function"}, "_handleMinChange": {"private": "", "description": "Executed when the min slider fires the change event", "guessedname": "_handleMinChange", "guessedtype": "function"}, "setValues": {"params": [{"type": "int", "name": "min", "description": "  Pixel offset to assign to the min thumb"}, {"type": "int", "name": "max", "description": "  Pixel offset to assign to the max thumb"}, {"type": "boolean", "name": "skipAnim", "description": "  (optional) Set to true to skip thumb animation.\nDefault false"}, {"type": "boolean", "name": "force", "description": "  (optional) ignore the locked setting and set\nvalue anyway. Default false"}, {"type": "boolean", "name": "silent", "description": "  (optional) Set to true to skip firing change\nevents.  Default false"}], "description": "Sets the min and max thumbs to new values.", "guessedname": "setValues", "guessedtype": "function"}, "_handleMaxChange": {"private": "", "description": "Executed when the max slider fires the change event", "guessedname": "_handleMaxChange", "guessedtype": "function"}, "_handleMouseUp": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  mouseup event"}], "description": "Delegates the onMouseUp to the active Slider", "guessedname": "_handleMouseUp", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "DualSlider.js", "shortname": "DualSlider", "properties": {"maxVal": {"type": "int", "description": "The current value of the max thumb. <strong>read only</strong>.", "guessedname": "maxVal", "guessedtype": "property"}, "minRange": {"default": "0", "type": "int", "description": "Pixel distance to maintain between thumbs.", "guessedname": "minRange", "guessedtype": "property"}, "minVal": {"type": "int", "description": "The current value of the min thumb. <strong>read only</strong>.", "guessedname": "minVal", "guessedtype": "property"}, "maxSlider": {"type": "Slider", "description": "A slider instance that keeps track of the upper value of the range.\n<strong>read only</strong>", "guessedname": "maxSlider", "guessedtype": "property"}, "minSlider": {"type": "Slider", "description": "A slider instance that keeps track of the lower value of the range.\n<strong>read only</strong>", "guessedname": "minSlider", "guessedtype": "property"}, "isHoriz": {"type": "boolean", "description": "Is the DualSlider oriented horizontally or vertically?\n<strong>read only</strong>", "guessedname": "isHoriz", "guessedtype": "property"}, "activeSlider": {"type": "Slider", "description": "The currently active slider (min or max). <strong>read only</strong>", "guessedname": "activeSlider", "guessedtype": "property"}}, "description": "A slider with two thumbs, one that represents the min value and \nthe other the max.  Actually a composition of two sliders, both with\nthe same background.  The constraints for each slider are adjusted\ndynamically so that the min value of the max slider is equal or greater\nto the current value of the min slider, and the max value of the min\nslider is the current value of the max slider.\nConstructor assumes both thumbs are positioned absolutely at the 0 mark on\nthe background."}, "YAHOO.widget.DateCellEditor": {"name": "YAHOO.widget.DateCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The DataCellEditor class provides functionality for inline editing\nDataTable cell data with a YUI Calendar."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "DateCellEditor", "methods": {"renderForm": {"description": "Render a Calendar.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from DateCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in DateCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets DateCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "DateCellEditor", "properties": {"calendar": {"type": "YAHOO.widget.Calendar", "description": "Reference to Calendar instance.", "guessedname": "calendar", "guessedtype": "property"}, "defaultValue": {"default": "new Date()", "type": "Date", "description": "Default value.", "guessedname": "defaultValue", "guessedtype": "property"}, "calendarOptions": {"type": "Object", "description": "Configs for the calendar instance, to be passed to Calendar constructor.", "guessedname": "calendarOptions", "guessedtype": "property"}}, "description": "The DataCellEditor class provides functionality for inline editing\nDataTable cell data with a YUI Calendar."}, "YAHOO.util.Element": {"name": "YAHOO.util.Element", "configs": {"element": {"type": "HTMLElement", "description": "The HTMLElement the Element instance refers to."}}, "constructors": [{"params": [{"type": "HTMLElement | String", "name": "el", "description": "  The html element that \nrepresents the Element."}, {"type": "Object", "name": "map", "description": " A key-value map of initial config names and values"}], "description": "Element provides an wrapper object to simplify adding\nevent listeners, using dom methods, and managing attributes."}], "namespace": "YAHOO.util", "module": "element", "events": {"available": {"description": "Fires when the Element's HTMLElement can be retrieved by Id.\n<p>See: <a href=\"#addListener\">Element.addListener</a></p>\n<p><strong>Event fields:</strong><br>\n<code><String> type</code> available<br>\n<code><HTMLElement>\ntarget</code> the HTMLElement bound to this Element instance<br>\n<p><strong>Usage:</strong><br>\n<code>var handler = function(e) {var target = e.target};<br>\nmyTabs.addListener('available', handler);</code></p>"}, "contentReady": {"description": "Fires when the Element's HTMLElement subtree is rendered.\n<p>See: <a href=\"#addListener\">Element.addListener</a></p>\n<p><strong>Event fields:</strong><br>\n<code><String> type</code> contentReady<br>\n<code><HTMLElement>\ntarget</code> the HTMLElement bound to this Element instance<br>\n<p><strong>Usage:</strong><br>\n<code>var handler = function(e) {var target = e.target};<br>\nmyTabs.addListener('contentReady', handler);</code></p>"}, "beforeElementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeElementChange", "description": "Fires before the value for the configuration attribute 'element' changes. Return false to cancel the attribute change."}, "beforeAppendTo": {"description": "Fires before the Element is appended to another Element.\n<p>See: <a href=\"#addListener\">Element.addListener</a></p>\n<p><strong>Event fields:</strong><br>\n<code><String> type</code> beforeAppendTo<br>\n<code><HTMLElement/Element>\ntarget</code> the HTMLElement/Element being appended to \n<p><strong>Usage:</strong><br>\n<code>var handler = function(e) {var target = e.target};<br>\nmyTabs.addListener('beforeAppendTo', handler);</code></p>"}, "elementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "elementChange", "description": "Fires when the value for the configuration attribute 'element' changes."}, "appendTo": {"description": "Fires after the Element is appended to another Element.\n<p>See: <a href=\"#addListener\">Element.addListener</a></p>\n<p><strong>Event fields:</strong><br>\n<code><String> type</code> appendTo<br>\n<code><HTMLElement/Element>\ntarget</code> the HTMLElement/Element being appended to \n<p><strong>Usage:</strong><br>\n<code>var handler = function(e) {var target = e.target};<br>\nmyTabs.addListener('appendTo', handler);</code></p>"}}, "guessedname": "Element", "methods": {"appendChild": {"return": {"type": "HTMLElement", "description": "The appended DOM element."}, "params": [{"type": "YAHOO.util.Element || HTMLElement", "name": "child", "description": " The element to append."}], "description": "Wrapper for HTMLElement method.", "guessedname": "appendChild", "guessedtype": "function"}, "setStyle": {"params": [{"type": "String", "name": "property", "description": " The style property to set"}, {"type": "String", "name": "value", "description": " The value to apply to the style property"}], "description": "Wrapper for Dom method.", "guessedname": "setStyle", "guessedtype": "function"}, "subscribe": {"params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The function call when the event fires"}, {"type": "Any", "name": "obj", "description": " A variable to pass to the handler"}, {"type": "Object", "name": "scope", "description": " The object to use for the scope of the handler"}], "description": "Alias for addListener", "guessedname": "subscribe", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "map", "description": " A key-value map of initial attribute configs"}], "description": "Registers Element specific attributes.", "guessedname": "initAttributes", "guessedtype": "function"}, "removeDelegate": {"return": {"type": "boolean", "description": "Returns true if the unbind was successful, false \notherwise."}, "params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The function call when the event fires"}], "description": "Remove a delegated event listener", "guessedname": "removeDelegate", "guessedtype": "function"}, "getElementsByClassName": {"return": {"type": "Array", "description": "Array of HTMLElements"}, "params": [{"type": "String", "name": "className", "description": " The className to collect"}, {"type": "String", "name": "tag", "description": " (optional) The tag to use in\nconjunction with class name"}], "description": "Wrapper for Dom method.", "guessedname": "getElementsByClassName", "guessedtype": "function"}, "replaceClass": {"params": [{"type": "String", "name": "oldClassName", "description": " The className to replace"}, {"type": "String", "name": "newClassName", "description": " The className to add"}], "description": "Wrapper for Dom method.", "guessedname": "replaceClass", "guessedtype": "function"}, "appendTo": {"return": {"type": "HTMLElement", "description": "The appended DOM element."}, "params": [{"type": "HTMLElement | Element", "name": "parentNode", "description": " The node to append to"}, {"type": "HTMLElement | Element", "name": "before", "description": " An optional node to insert before"}], "description": "Appends the HTMLElement into either the supplied parentNode.", "guessedname": "appendTo", "guessedtype": "function"}, "hasChildNodes": {"return": {"type": "Boolean", "description": "Whether or not the element has childNodes"}, "description": "Wrapper for HTMLElement method.", "guessedname": "hasChildNodes", "guessedtype": "function"}, "_setHTMLAttrConfig": {"guessedname": "_setHTMLAttrConfig", "params": [{"type": "YAHOO.util.Element", "name": "element", "description": " The Element instance to\nregister the config to."}, {"type": "String", "name": "key", "description": " The name of the config to register"}, {"type": "Object", "name": "map", "description": " A key-value map of the config's params"}], "description": "Sets the value of the property and fires beforeChange and change events.", "private": "", "guessedtype": "function"}, "fireQueue": {"description": "Apply any queued set calls.", "guessedname": "fireQueue", "guessedtype": "function"}, "addListener": {"params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The handler to call when the event fires"}, {"type": "Any", "name": "obj", "description": " A variable to pass to the handler"}, {"type": "Object", "name": "scope", "description": " The object to use for the scope of the handler"}], "description": "Adds a listener for the given event.  These may be DOM or \ncustomEvent listeners.  Any event that is fired via fireEvent\ncan be listened for.  All handlers receive an event object.", "guessedname": "addListener", "guessedtype": "function"}, "insertBefore": {"return": {"type": "HTMLElement", "description": "The inserted DOM element."}, "params": [{"type": "HTMLElement", "name": "element", "description": " The HTMLElement to insert"}, {"type": "HTMLElement", "name": "before", "description": " The HTMLElement to insert\nthe element before."}], "description": "Wrapper for HTMLElement method.", "guessedname": "insertBefore", "guessedtype": "function"}, "getElementsByTagName": {"return": {"type": "HTMLCollection", "description": "A collection of DOM elements."}, "params": [{"type": "String", "name": "tag", "description": " The tagName to collect"}], "description": "Wrapper for HTMLElement method.", "guessedname": "getElementsByTagName", "guessedtype": "function"}, "removeClass": {"params": [{"type": "String", "name": "className", "description": " The className to remove"}], "description": "Wrapper for Dom method.", "guessedname": "removeClass", "guessedtype": "function"}, "getStyle": {"return": {"type": "String", "description": "The current value of the property"}, "params": [{"type": "String", "name": "property", "description": " The style property to retrieve"}], "description": "Wrapper for Dom method.", "guessedname": "getStyle", "guessedtype": "function"}, "replaceChild": {"return": {"type": "HTMLElement", "description": "The replaced DOM element."}, "params": [{"type": "HTMLElement", "name": "newNode", "description": " The HTMLElement to insert"}, {"type": "HTMLElement", "name": "oldNode", "description": " The HTMLElement to replace"}], "description": "Wrapper for HTMLElement method.", "guessedname": "replaceChild", "guessedtype": "function"}, "removeListener": {"params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The function call when the event fires"}], "description": "Remove an event listener", "guessedname": "removeListener", "guessedtype": "function"}, "on": {"params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The function call when the event fires"}, {"type": "Any", "name": "obj", "description": " A variable to pass to the handler"}, {"type": "Object", "name": "scope", "description": " The object to use for the scope of the handler"}], "description": "Alias for addListener", "guessedname": "on", "guessedtype": "function"}, "removeChild": {"return": {"type": "HTMLElement", "description": "The removed DOM element."}, "params": [{"type": "HTMLElement", "name": "child", "description": " The HTMLElement to remove"}], "description": "Wrapper for HTMLElement method.", "guessedname": "removeChild", "guessedtype": "function"}, "delegate": {"return": {"type": "boolean", "description": "Returns true if the delegated event listener \nwas added successfully"}, "params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The handler to call when the event fires"}, {"type": "Function|string", "name": "filter", "description": " Function or CSS selector used to \ndetermine for what element(s) the event listener should be called. \nWhen a function is specified, the function should return an \nHTML element.  Using a CSS Selector requires the inclusion of the \nCSS Selector Utility."}, {"type": "Any", "name": "obj", "description": " A variable to pass to the handler"}, {"type": "Object", "name": "scope", "description": " The object to use for the scope of the handler"}], "description": "Appends a delegated event listener.  Delegated event listeners \nreceive two arguments by default: the DOM event and the element  \nspecified by the filtering function or CSS selector.\n(Note: Using the delegate method requires the element-delegate \nmodule.  Using CSS selectors as the filtering criteria for delegated \nevent listeners requires inclusion of the Selector Utility.)", "guessedname": "delegate", "guessedtype": "function"}, "hasClass": {"return": {"type": "Boolean", "description": "Whether or not the element has the class name"}, "params": [{"type": "String", "name": "className", "description": " The className to add"}], "description": "Wrapper for Dom method.", "guessedname": "hasClass", "guessedtype": "function"}, "addClass": {"params": [{"type": "String", "name": "className", "description": " The className to add"}], "description": "Wrapper for Dom method.", "guessedname": "addClass", "guessedtype": "function"}}, "uses": ["YAHOO.util.AttributeProvider"], "file": "Element.js", "guessedtype": "function", "shortname": "Element", "properties": {"DOM_EVENTS": {"type": "Object", "description": "Dom events supported by the Element instance.", "guessedname": "DOM_EVENTS", "guessedtype": "property"}}, "description": "Element provides an wrapper object to simplify adding\nevent listeners, using dom methods, and managing attributes."}, "YAHOO.util.DragDrop": {"name": "YAHOO.util.DragDrop", "constructors": [{"params": [{"type": "String", "name": "id", "description": " of the element that is linked to this instance"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop objects"}, {"type": "object", "name": "config", "description": " an object containing configurable attributes\nValid properties for DragDrop: \npadding, isTarget, maintainOffset, primaryButtonOnly,"}], "description": "Defines the interface and base operation of items that that can be \ndragged or can be drop targets.  It was designed to be extended, overriding\nthe event handlers for startDrag, onDrag, onDragOver, onDragOut.\nUp to three html elements can be associated with a DragDrop instance:\n<ul>\n<li>linked element: the element that is passed into the constructor.\nThis is the element which defines the boundaries for interaction with \nother DragDrop objects.</li>\n<li>handle element(s): The drag operation only occurs if the element that \nwas clicked matches a handle element.  By default this is the linked \nelement, but there are times that you will want only a portion of the \nlinked element to initiate the drag operation, and the setHandleElId() \nmethod provides a way to define this.</li>\n<li>drag element: this represents an the element that would be moved along\nwith the cursor during a drag operation.  By default, this is the linked\nelement itself as in {@link YAHOO.util.DD}.  setDragElId() lets you define\na separate element that would be moved, as in {@link YAHOO.util.DDProxy}\n</li>\n</ul>\nThis class should not be instantiated until the onload event to ensure that\nthe associated elements are available.\nThe following would define a DragDrop obj that would interact with any \nother DragDrop obj in the \"group1\" group:\n<pre>\ndd = new YAHOO.util.DragDrop(\"div1\", \"group1\");\n</pre>\nSince none of the event handlers have been implemented, nothing would \nactually happen if you were to run the code above.  Normally you would \noverride this class or one of the default implementations, but you can \nalso override the methods you want on an instance of the class...\n<pre>\ndd.onDragDrop = function(e, id) {\n  alert(\"dd was dropped on \" + id);\n}\n</pre>"}], "namespace": "YAHOO.util", "module": "dragdrop", "events": {"startDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs after a mouse down and the drag threshold has been met. The drag threshold default is either 3 pixels of mouse movement or 1 full second of holding the mousedown."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fired from inside DragDropMgr when the drag operation is finished."}, "dragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs every mousemove event while dragging."}, "dragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires every mousemove event while over a drag and drop object."}, "dragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when a dragged object is no longer over an object that had the onDragEnter fire."}, "b4EndDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the endDragEvent. Returning false will cancel."}, "b4StartDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the startDragEvent, returning false will cancel the startDrag Event."}, "b4DragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOutEvent"}, "endDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires on the mouseup event after a drag has been initiated (startDrag fired)."}, "b4DragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOverEvent."}, "dragEnterEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs when the dragged object first interacts with another targettable drag and drop object."}, "b4DragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragDropEvent"}, "b4DragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragEvent."}, "dragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped on another."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event. The mousedown does not always result in a drag operation."}, "invalidDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped in a location that contains no drop targets."}, "b4MouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event, before the mouseDownEvent gets fired. Returning false will cancel the drag."}}, "guessedname": "DragDrop", "methods": {"addToGroup": {"params": [{"type": "string", "name": "sGroup", "description": "  the name of the group"}], "description": "Add this instance to a group of related drag/drop objects.  All \ninstances belong to at least one group, and can belong to as many \ngroups as needed.", "guessedname": "addToGroup", "guessedtype": "function"}, "startDrag": {"params": [{"type": "int", "name": "X", "description": " click location"}, {"type": "int", "name": "Y", "description": " click location"}], "description": "Abstract method called after a drag/drop object is clicked\nand the drag or mousedown time thresholds have beeen met.", "guessedname": "startDrag", "guessedtype": "function"}, "isValidHandleChild": {"return": {"type": "boolean", "description": "true if this is a valid tag type, false if not"}, "params": [{"type": "HTMLElement", "name": "node", "description": " the HTMLElement to evaluate"}], "description": "Checks the tag exclusion list to see if this click should be ignored", "guessedname": "isValidHandleChild", "guessedtype": "function"}, "b4Drag": {"private": "", "description": "Code that executes immediately before the onDrag event", "guessedname": "b4Drag", "guessedtype": "function"}, "lock": {"description": "Lock this instance", "guessedname": "lock", "guessedtype": "function"}, "onDragEnter": {"params": [{"type": "Event", "name": "e", "description": " the mousemove event"}, {"type": "String|DragDrop[]", "name": "id", "description": " In POINT mode, the element\nid this is hovering over.  In INTERSECT mode, an array of one or more \ndragdrop items being hovered over."}], "description": "Abstract method called when this element fist begins hovering over \nanother DragDrop obj", "guessedname": "onDragEnter", "guessedtype": "function"}, "b4StartDrag": {"private": "", "description": "Code that executes immediately before the startDrag event", "guessedname": "b4StartDrag", "guessedtype": "function"}, "onMouseDown": {"params": [{"type": "Event", "name": "e", "description": " the mousedown event"}], "description": "Event handler that fires when a drag/drop obj gets a mousedown", "guessedname": "onMouseDown", "guessedtype": "function"}, "setOuterHandleElId": {"params": [{"type": "", "name": "id", "description": " the id of the element that will be used to initiate the drag"}], "description": "Allows you to set an element outside of the linked element as a drag \nhandle", "guessedname": "setOuterHandleElId", "guessedtype": "function"}, "unlock": {"description": "Unlock this instace", "guessedname": "unlock", "guessedtype": "function"}, "clearTicks": {"description": "Clears any tick interval defined for this instance", "guessedname": "clearTicks", "guessedtype": "function"}, "setStartPosition": {"guessedname": "setStartPosition", "params": [{"type": "", "name": "pos", "description": " current position (from previous lookup)"}], "description": "Sets the start position of the element.  This is set when the obj\nis initialized, the reset when a drag is started.", "private": "", "guessedtype": "function"}, "resetConstraints": {"description": "resetConstraints must be called if you manually reposition a dd element.", "guessedname": "resetConstraints", "guessedtype": "function"}, "clickValidator": {"params": [{"type": "Event", "name": "e", "description": ""}], "description": "Method validates that the clicked element\nwas indeed the handle or a valid child of the handle", "guessedname": "clickValidator", "guessedtype": "function"}, "handleMouseDown": {"guessedname": "handleMouseDown", "params": [{"type": "Event", "name": "e", "description": ""}, {"type": "YAHOO.util.DragDrop", "name": "oDD", "description": " the clicked dd object (this dd obj)"}], "description": "Fired when this object is clicked", "private": "", "guessedtype": "function"}, "onDragOver": {"params": [{"type": "Event", "name": "e", "description": " the mousemove event"}, {"type": "String|DragDrop[]", "name": "id", "description": " In POINT mode, the element\nid this is hovering over.  In INTERSECT mode, an array of dd items \nbeing hovered over."}], "description": "Abstract method called when this element is hovering over another \nDragDrop obj", "guessedname": "onDragOver", "guessedtype": "function"}, "addInvalidHandleType": {"params": [{"type": "string", "name": "tagName", "description": " the type of element to exclude"}], "description": "Allows you to specify a tag name that should not start a drag operation\nwhen clicked.  This is designed to facilitate embedding links within a\ndrag handle that do something other than start the drag.", "guessedname": "addInvalidHandleType", "guessedtype": "function"}, "setDragElId": {"params": [{"type": "string", "name": "id", "description": "  the id of the element that will be used to initiate the drag"}], "description": "Allows you to specify that an element other than the linked element \nwill be moved with the cursor during a drag", "guessedname": "setDragElId", "guessedtype": "function"}, "setXConstraint": {"params": [{"type": "int", "name": "iLeft", "description": " the number of pixels the element can move to the left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move to the \nright"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the \nelement\nshould move iTickSize pixels at a time."}], "description": "By default, the element can be dragged any place on the screen.  Use \nthis method to limit the horizontal travel of the element.  Pass in \n0,0 for the parameters if you want to lock the drag to the y axis.", "guessedname": "setXConstraint", "guessedtype": "function"}, "getTick": {"return": {"type": "int", "description": "the closest tick"}, "description": "Normally the drag element is moved pixel by pixel, but we can specify \nthat it move a number of pixels at a time.  This method resolves the \nlocation when we have it set up like this.", "private": "", "params": [{"type": "int", "name": "val", "description": " where we want to place the object"}, {"type": "int[]", "name": "tickArray", "description": " sorted array of valid points"}], "guessedname": "getTick", "guessedtype": "function"}, "init": {"params": [{"type": "", "name": "id", "description": " the id of the linked element"}, {"type": "String", "name": "sGroup", "description": " the group of related items"}, {"type": "object", "name": "config", "description": " configuration attributes"}], "description": "Sets up the DragDrop object.  Must be called in the constructor of any\nYAHOO.util.DragDrop subclass", "guessedname": "init", "guessedtype": "function"}, "clearConstraints": {"description": "Clears any constraints applied to this instance.  Also clears ticks\nsince they can't exist independent of a constraint at this time.", "guessedname": "clearConstraints", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": "the html element"}, "description": "Returns a reference to the linked element", "guessedname": "getEl", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the dd obj"}, "description": "toString method", "guessedname": "toString", "guessedtype": "function"}, "onMouseUp": {"params": [{"type": "Event", "name": "e", "description": " the mouseup event"}], "description": "Event handler that fires when a drag/drop obj gets a mouseup", "guessedname": "onMouseUp", "guessedtype": "function"}, "removeInvalidHandleType": {"params": [{"type": "string", "name": "tagName", "description": " the type of element to unexclude"}], "description": "Unsets an excluded tag name set by addInvalidHandleType", "guessedname": "removeInvalidHandleType", "guessedtype": "function"}, "getTargetCoord": {"return": {"type": "", "description": "an object that contains the coordinates (Object.x and Object.y)"}, "description": "Finds the location the element should be placed if we want to move\nit to where the mouse location less the click offset would place us.", "private": "", "params": [{"type": "int", "name": "iPageX", "description": " the X coordinate of the click"}, {"type": "int", "name": "iPageY", "description": " the Y coordinate of the click"}], "guessedname": "getTargetCoord", "guessedtype": "function"}, "setHandleElId": {"params": [{"type": "string", "name": "id", "description": "  the id of the element that will be used to \ninitiate the drag."}], "description": "Allows you to specify a child of the linked element that should be \nused to initiate the drag operation.  An example of this would be if \nyou have a content div with text and links.  Clicking anywhere in the \ncontent area would normally start the drag operation.  Use this method\nto specify that an element inside of the content div is the element \nthat starts the drag operation.", "guessedname": "setHandleElId", "guessedtype": "function"}, "onDragOut": {"params": [{"type": "Event", "name": "e", "description": " the mousemove event"}, {"type": "String|DragDrop[]", "name": "id", "description": " In POINT mode, the element\nid this was hovering over.  In INTERSECT mode, an array of dd items \nthat the mouse is no longer over."}], "description": "Abstract method called when we are no longer hovering over an element", "guessedname": "onDragOut", "guessedtype": "function"}, "onInvalidDrop": {"params": [{"type": "Event", "name": "e", "description": " the mouseup event"}], "description": "Abstract method called when this item is dropped on an area with no\ndrop target", "guessedname": "onInvalidDrop", "guessedtype": "function"}, "setInitialPosition": {"guessedname": "setInitPosition", "params": [{"type": "int", "name": "diffX", "description": "   the X offset, default 0"}, {"type": "int", "name": "diffY", "description": "   the Y offset, default 0"}], "description": "Stores the initial placement of the linked element.", "private": "", "guessedtype": "function"}, "b4DragDrop": {"private": "", "description": "Code that executes immediately before the onDragDrop event", "guessedname": "b4DragDrop", "guessedtype": "function"}, "removeFromGroup": {"params": [{"type": "string", "name": "sGroup", "description": "  The group to drop"}], "description": "Remove's this instance from the supplied interaction group", "guessedname": "removeFromGroup", "guessedtype": "function"}, "initTarget": {"params": [{"type": "", "name": "id", "description": " the id of the linked element"}, {"type": "String", "name": "sGroup", "description": " the group of related items"}, {"type": "object", "name": "config", "description": " configuration attributes"}], "description": "Initializes Targeting functionality only... the object does not\nget a mousedown handler.", "guessedname": "initTarget", "guessedtype": "function"}, "removeInvalidHandleClass": {"params": [{"type": "string", "name": "cssClass", "description": " the class of the element(s) you wish to \nre-enable"}], "description": "Unsets an invalid css class", "guessedname": "removeInvalidHandleClass", "guessedtype": "function"}, "onDragDrop": {"params": [{"type": "Event", "name": "e", "description": " the mouseup event"}, {"type": "String|DragDrop[]", "name": "id", "description": " In POINT mode, the element\nid this was dropped on.  In INTERSECT mode, an array of dd items this \nwas dropped on."}], "description": "Abstract method called when this item is dropped on another DragDrop \nobj", "guessedname": "onDragDrop", "guessedtype": "function"}, "setYTicks": {"private": "", "description": "Create the array of vertical tick marks if an interval was specified in \nsetYConstraint().", "guessedname": "setYTicks", "guessedtype": "function"}, "b4EndDrag": {"private": "", "description": "Code that executes immediately before the endDrag event", "guessedname": "b4EndDrag", "guessedtype": "function"}, "removeInvalidHandleId": {"params": [{"type": "string", "name": "id", "description": " the id of the element to re-enable"}], "description": "Unsets an invalid handle id", "guessedname": "removeInvalidHandleId", "guessedtype": "function"}, "onAvailable": {"description": "Override the onAvailable method to do what is needed after the initial\nposition was determined.", "guessedname": "onAvailable", "guessedtype": "function"}, "getDragEl": {"return": {"type": "HTMLElement", "description": "the html element"}, "description": "Returns a reference to the actual element to drag.  By default this is\nthe same as the html element, but it can be assigned to another \nelement. An example of this can be found in YAHOO.util.DDProxy", "guessedname": "getDragEl", "guessedtype": "function"}, "onDrag": {"params": [{"type": "Event", "name": "e", "description": " the mousemove event"}], "description": "Abstract method called during the onMouseMove event while dragging an \nobject.", "guessedname": "onDrag", "guessedtype": "function"}, "applyConfig": {"description": "Applies the configuration parameters that were passed into the constructor.\nThis is supposed to happen at each level through the inheritance chain.  So\na DDProxy implentation will execute apply config on DDProxy, DD, and \nDragDrop in order to get all of the parameters that are available in\neach object.", "guessedname": "applyConfig", "guessedtype": "function"}, "on": {"description": "Shortcut for EventProvider.subscribe, see <a href=\"YAHOO.util.EventProvider.html#subscribe\">YAHOO.util.EventProvider.subscribe</a>", "guessedname": "on", "guessedtype": "function"}, "b4DragOver": {"private": "", "description": "Code that executes immediately before the onDragOver event", "guessedname": "b4DragOver", "guessedtype": "function"}, "setYConstraint": {"params": [{"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the \nelement should move iTickSize pixels at a time."}], "description": "By default, the element can be dragged any place on the screen.  Set \nthis to limit the vertical travel of the element.  Pass in 0,0 for the\nparameters if you want to lock the drag to the x axis.", "guessedname": "setYConstraint", "guessedtype": "function"}, "endDrag": {"params": [{"type": "Event", "name": "e", "description": " the mouseup event"}], "description": "Fired when we are done dragging the object", "guessedname": "endDrag", "guessedtype": "function"}, "isLocked": {"return": {"type": "boolean", "description": "true if this obj or all drag/drop is locked, else \nfalse"}, "description": "Returns true if this instance is locked, or the drag drop mgr is locked\n(meaning that all drag/drop is disabled on the page.)", "guessedname": "isLocked", "guessedtype": "function"}, "addInvalidHandleClass": {"params": [{"type": "string", "name": "cssClass", "description": " the class of the elements you wish to ignore"}], "description": "Lets you specify a css class of elements that will not initiate a drag", "guessedname": "addInvalidHandleClass", "guessedtype": "function"}, "handleOnAvailable": {"private": "", "description": "Executed when the linked element is available", "guessedname": "handleOnAvailable", "guessedtype": "function"}, "setPadding": {"params": [{"type": "int", "name": "iTop", "description": "    Top pad"}, {"type": "int", "name": "iRight", "description": "  Right pad"}, {"type": "int", "name": "iBot", "description": "    Bot pad"}, {"type": "int", "name": "iLeft", "description": "   Left pad"}], "description": "Configures the padding for the target zone in px.  Effectively expands\n(or reduces) the virtual object size for targeting calculations.  \nSupports css-style shorthand; if only one parameter is passed, all sides\nwill have that padding, and if only two are passed, the top and bottom\nwill have the first param, the left and right the second.", "guessedname": "setPadding", "guessedtype": "function"}, "unreg": {"description": "Remove all drag and drop hooks for this element", "guessedname": "unreg", "guessedtype": "function"}, "b4MouseDown": {"guessedname": "b4MouseDown", "params": [{"type": "Event", "name": "e", "description": " the mousedown event"}], "description": "Code executed immediately before the onMouseDown event", "private": "", "guessedtype": "function"}, "b4DragOut": {"private": "", "description": "Code that executes immediately before the onDragOut event", "guessedname": "b4DragOut", "guessedtype": "function"}, "addInvalidHandleId": {"params": [{"type": "string", "name": "id", "description": " the element id of the element you wish to ignore"}], "description": "Lets you to specify an element id for a child of a drag handle\nthat should not initiate a drag", "guessedname": "addInvalidHandleId", "guessedtype": "function"}, "setXTicks": {"private": "", "description": "Create the array of horizontal tick marks if an interval was specified\nin setXConstraint().", "guessedname": "setXTicks", "guessedtype": "function"}}, "file": "DragDrop.js", "guessedtype": "function", "shortname": "DragDrop", "properties": {"maxX": {"guessedname": "maxX", "type": "int", "description": "The right constraint", "private": "", "guessedtype": "property"}, "maxY": {"guessedname": "maxY", "type": "int", "description": "The down constraint", "private": "", "guessedtype": "property"}, "hasOuterHandles": {"default": "false", "type": "boolean", "description": "By default, drags can only be initiated if the mousedown occurs in the\nregion the linked element is.  This is done in part to work around a\nbug in some browsers that mis-report the mousedown if the previous\nmouseup happened outside of the window.  This property is set to true\nif outer handles are defined.", "guessedname": "hasOuterHandles", "guessedtype": "property"}, "_domRef": {"private": "", "description": "Cached reference to the linked element", "guessedname": "_domRef", "guessedtype": "property"}, "yTicks": {"type": "int[]", "description": "Array of pixel locations the element will snap to if we specified a \nvertical graduation/interval.  This array is generated automatically \nwhen you define a tick interval.", "guessedname": "yTicks", "guessedtype": "property"}, "startPageY": {"guessedname": "startPageY", "type": "int", "description": "The linked element's absolute X position at the time the drag was \nstarted", "private": "", "guessedtype": "property"}, "id": {"type": "String", "description": "The id of the element associated with this object.  This is what we \nrefer to as the \"linked element\" because the size and position of \nthis element is used to determine when the drag and drop objects have \ninteracted.", "guessedname": "id", "guessedtype": "property"}, "deltaX": {"guessedname": "deltaX", "type": "int", "description": "The difference between the click position and the source element's location", "private": "", "guessedtype": "property"}, "deltaY": {"guessedname": "deltaY", "type": "int", "description": "The difference between the click position and the source element's location", "private": "", "guessedtype": "property"}, "__ygDragDrop": {"private": "", "description": "Internal typeof flag", "guessedname": "__ygDragDrop", "guessedtype": "property"}, "overlap": {"type": "YAHOO.util.Region", "description": "Property that is assigned to a drag and drop object when testing to\nsee if it is being targeted by another dd object.  This is a region\nthat represents the area the draggable element overlaps this target.\nDDM.getBestMatch uses this property to compare the size of the overlap\nto that of other targets in order to determine the closest match in\nINTERSECT mode when multiple targets are part of the same interaction.", "guessedname": "overlap", "guessedtype": "property"}, "minX": {"guessedname": "minX", "type": "int", "description": "The left constraint", "private": "", "guessedtype": "property"}, "minY": {"guessedname": "minY", "type": "int", "description": "The up constraint", "private": "", "guessedtype": "property"}, "invalidHandleIds": {"type": "{string: string}", "description": "An associative array of ids for elements that will be ignored if clicked", "guessedname": "invalidHandleIds", "guessedtype": "property"}, "config": {"type": "object", "description": "Configuration attributes passed into the constructor", "guessedname": "config", "guessedtype": "property"}, "dragElId": {"guessedname": "dragElId", "type": "String", "description": "The id of the element that will be dragged.  By default this is same \nas the linked element , but could be changed to another element. Ex: \nYAHOO.util.DDProxy", "private": "", "guessedtype": "property"}, "available": {"type": "boolean", "description": "The availabe property is false until the linked dom element is accessible.", "guessedname": "available", "guessedtype": "property"}, "invalidHandleClasses": {"type": "string[]", "description": "An indexted array of css class names for elements that will be ignored\nif clicked.", "guessedname": "invalidHandleClasses", "guessedtype": "property"}, "isTarget": {"type": "boolean", "description": "By default, all instances can be a drop target.  This can be disabled by\nsetting isTarget to false.", "guessedname": "isTarget", "guessedtype": "property"}, "invalidHandleTypes": {"type": "{string: string}", "description": "An associative array of HTML tags that will be ignored if clicked.", "guessedname": "invalidHandleTypes", "guessedtype": "property"}, "startPageX": {"guessedname": "startPageX", "type": "int", "description": "The linked element's absolute X position at the time the drag was \nstarted", "private": "", "guessedtype": "property"}, "cursorIsOver": {"type": "boolean", "description": "Property that is assigned to a drag and drop object when testing to\nsee if it is being targeted by another dd object.  This property\ncan be used in intersect mode to help determine the focus of\nthe mouse interaction.  DDM.getBestMatch uses this property first to\ndetermine the closest match in INTERSECT mode when multiple targets\nare part of the same interaction.", "guessedname": "cursorIsOver", "guessedtype": "property"}, "constrainY": {"guessedname": "constrainY", "type": "boolean", "description": "Set to true when vertical contraints are applied", "private": "", "guessedtype": "property"}, "constrainX": {"guessedname": "constrainX", "type": "boolean", "description": "Set to true when horizontal contraints are applied", "private": "", "guessedtype": "property"}, "padding": {"type": "int[]", "description": "The padding configured for this drag and drop object for calculating\nthe drop zone intersection with this object.", "guessedname": "padding", "guessedtype": "property"}, "dragOnly": {"type": "Boolean", "description": "If this flag is true, do not fire drop events. The element is a drag only element (for movement not dropping)", "guessedname": "dragOnly", "guessedtype": "property"}, "groups": {"type": "{string: string}", "description": "The group defines a logical collection of DragDrop objects that are \nrelated.  Instances only get events when interacting with other \nDragDrop object in the same group.  This lets us define multiple \ngroups using a single DragDrop subclass if we want.", "guessedname": "groups", "guessedtype": "property"}, "maintainOffset": {"type": "boolean", "description": "Maintain offsets when we resetconstraints.  Set to true when you want\nthe position of the element relative to its parent to stay the same\nwhen the page changes", "guessedname": "maintainOffset", "guessedtype": "property"}, "handleElId": {"guessedname": "handleElId", "type": "String", "description": "the id of the element that initiates the drag operation.  By default \nthis is the linked element, but could be changed to be a child of this\nelement.  This lets us do things like only starting the drag when the \nheader element within the linked html element is clicked.", "private": "", "guessedtype": "property"}, "xTicks": {"type": "int[]", "description": "Array of pixel locations the element will snap to if we specified a \nhorizontal graduation/interval.  This array is generated automatically\nwhen you define a tick interval.", "guessedname": "xTicks", "guessedtype": "property"}, "locked": {"guessedname": "locked", "type": "boolean", "description": "Individual drag/drop instances can be locked.  This will prevent \nonmousedown start drag.", "private": "", "guessedtype": "property"}, "useShim": {"type": "Boolean", "description": "If this flag is true, a shim will be placed over the screen/viewable area to track mouse events. Should help with dragging elements over iframes and other controls.", "guessedname": "useShim", "guessedtype": "property"}, "events": {"type": "object", "description": "An Object Literal containing the events that we will be using: mouseDown, b4MouseDown, mouseUp, b4StartDrag, startDrag, b4EndDrag, endDrag, mouseUp, drag, b4Drag, invalidDrop, b4DragOut, dragOut, dragEnter, b4DragOver, dragOver, b4DragDrop, dragDrop\nBy setting any of these to false, then event will not be fired.", "guessedname": "events", "guessedtype": "property"}, "primaryButtonOnly": {"type": "boolean", "description": "By default the drag and drop instance will only respond to the primary\nbutton click (left button for a right-handed mouse).  Set to true to\nallow drag and drop to start with any mouse click that is propogated\nby the browser", "guessedname": "primaryButtonOnly", "guessedtype": "property"}}, "description": "Defines the interface and base operation of items that that can be \ndragged or can be drop targets.  It was designed to be extended, overriding\nthe event handlers for startDrag, onDrag, onDragOver, onDragOut.\nUp to three html elements can be associated with a DragDrop instance:\n<ul>\n<li>linked element: the element that is passed into the constructor.\nThis is the element which defines the boundaries for interaction with \nother DragDrop objects.</li>\n<li>handle element(s): The drag operation only occurs if the element that \nwas clicked matches a handle element.  By default this is the linked \nelement, but there are times that you will want only a portion of the \nlinked element to initiate the drag operation, and the setHandleElId() \nmethod provides a way to define this.</li>\n<li>drag element: this represents an the element that would be moved along\nwith the cursor during a drag operation.  By default, this is the linked\nelement itself as in {@link YAHOO.util.DD}.  setDragElId() lets you define\na separate element that would be moved, as in {@link YAHOO.util.DDProxy}\n</li>\n</ul>\nThis class should not be instantiated until the onload event to ensure that\nthe associated elements are available.\nThe following would define a DragDrop obj that would interact with any \nother DragDrop obj in the \"group1\" group:\n<pre>\ndd = new YAHOO.util.DragDrop(\"div1\", \"group1\");\n</pre>\nSince none of the event handlers have been implemented, nothing would \nactually happen if you were to run the code above.  Normally you would \noverride this class or one of the default implementations, but you can \nalso override the methods you want on an instance of the class...\n<pre>\ndd.onDragDrop = function(e, id) {\n  alert(\"dd was dropped on \" + id);\n}\n</pre>"}, "YAHOO.widget.ColumnSet": {"name": "YAHOO.widget.ColumnSet", "constructors": [{"params": [{"type": "Object[]", "name": "aDefinitions", "description": "  Array of object literals that define cells in\nthe THEAD."}], "description": "The ColumnSet class defines and manages a DataTable's Columns,\nincluding nested hierarchies and access to individual Column instances."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "ColumnSet", "methods": {"getColumn": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "params": [{"type": "String | Number", "name": "column", "description": "  Column key or ColumnSet key index."}], "description": "Returns Column instance with given key or ColumnSet key index.", "guessedname": "getColumn", "guessedtype": "function"}, "getDefinitions": {"return": {"type": "Object[]", "description": "Array of object literal Column definitions."}, "description": "Public accessor to the definitions array.", "guessedname": "getDefinitions", "guessedtype": "function"}, "_init": {"guessedname": "_init", "params": [{"type": "Object[]", "name": "aDefinitions", "description": "  Array of object literals that define cells in\nthe THEAD ."}], "description": "Initializes ColumnSet instance with data from Column definitions.", "private": "", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique name of the ColumnSet instance."}, "description": "Returns unique name of the ColumnSet instance.", "guessedname": "getId", "guessedtype": "function"}, "getColumnById": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "params": [{"type": "String", "name": "column", "description": "  Column ID."}], "description": "Returns Column instance with given ID.", "guessedname": "getColumnById", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the ColumnSet instance."}, "description": "ColumnSet instance name, for logging.", "guessedname": "toString", "guessedtype": "function"}, "getDescendants": {"parem": "{YAHOO.widget.Column} Column instance.", "return": {"type": "Array", "description": "Array including the Column itself and all descendants (if any)."}, "description": "Public accessor returns array of given Column's desendants (if any), including itself.", "guessedname": "getDescendants", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "ColumnSet.js", "guessedtype": "function", "shortname": "ColumnSet", "properties": {"flat": {"default": "[]", "type": "YAHOO.widget.Column[]", "description": "Flattened representation of all Columns.", "guessedname": "flat", "guessedtype": "property"}, "_aDefinitions": {"guessedname": "_aDefinitions", "type": "Object[]", "description": "Array of object literal Column definitions passed to the constructor.", "private": "", "guessedtype": "property"}, "keys": {"default": "[]", "type": "YAHOO.widget.Column[]", "description": "Array of Columns that map one-to-one to a table column.", "guessedname": "keys", "guessedtype": "property"}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique instance name.", "private": "", "guessedtype": "property"}, "tree": {"type": "YAHOO.widget.Column[]", "description": "Top-down tree representation of Column hierarchy.", "guessedname": "tree", "guessedtype": "property"}, "ColumnSet._nCount": {"description": "Internal class variable to index multiple ColumnSet instances.", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}, "headers": {"default": "[]", "type": "String[]", "description": "ID index of nested parent hierarchies for HEADERS accessibility attribute.", "guessedname": "headers", "guessedtype": "property"}}, "description": "The ColumnSet class defines and manages a DataTable's Columns,\nincluding nested hierarchies and access to individual Column instances."}, "YAHOO.util.SWFStore": {"name": "YAHOO.util.SWFStore", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "Boolean", "name": "shareData", "description": "  Whether or not data should be shared across browsers"}, {"type": "Boolean", "name": "useCompression", "description": "  Container element for the Flash Player instance."}], "description": "Class for the YUI SWFStore util."}], "namespace": "YAHOO.util", "module": "swfstore", "guessedname": "SWFStore", "methods": {"setUseCompression": {"params": [{"type": "Boolean", "name": "Whether", "description": " or to compress stored data"}], "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "setUseCompression", "guessedtype": "function"}, "on": {"params": [{"type": "String", "name": "type", "description": "  The tyep of event to listen for"}, {"type": "String", "name": "listener", "description": "  The function to call"}], "description": "Method to attach listeners to events", "guessedname": "on", "guessedtype": "function"}, "addListener": {"params": [{"type": "String", "name": "type", "description": "  The tyep of event to listen for"}, {"type": "String", "name": "listener", "description": "  The function to call"}], "description": "Method to attach listeners to events", "guessedname": "addListener", "guessedtype": "function"}, "getTypeAt": {"return": {"type": "String", "description": "The type"}, "params": [{"type": "Number", "name": "location", "description": "  The index of the \"cookie\" or store"}], "description": "Returns the data type of of the storage.\n<p>May be one of the following types:\n<ul>\n<li>boolean</li>\n<li>function</li>\n<li>number</li>\n<li>object</li>\n<li>string</li>\n<li>number</li>\n<li>xml</li>\n</ul>\n</p>", "guessedname": "getTypeAt", "guessedtype": "function"}, "calculateCurrentSize": {"return": {"type": "Number", "description": "The size of the store in KB"}, "description": "Gets the current size, in KB, of the amount of space taken by the current store.\nNote that this is calculated, and may take time depending on the number of items stored", "guessedname": "calculateCurrentSize", "guessedtype": "function"}, "getValueAt": {"return": {"type": "Object", "description": "The value of the store at that index"}, "params": [{"type": "Number", "name": "index", "description": "  The index of the stored item"}], "description": "Returns the value of the store at the specified index, if any.", "guessedname": "getValueAt", "guessedtype": "function"}, "displaySettings": {"description": "Displays the settings dialog to allow the user to configure\nstorage settings manually. If the SWF height and width are smaller than\nwhat is allowable to display the local settings panel,\nan openExternalDialog message will be sent to JavaScript.", "guessedname": "displaySettings", "guessedtype": "function"}, "hasAdequateDimensions": {"return": {"type": "Boolean", "description": "Whether or not to share among browsers"}, "description": "Determines if SWF's visible area is large enough to fit the settings panel", "guessedname": "hasAdequateDimensions", "guessedtype": "function"}, "getLength": {"return": {"type": "Number", "description": "The number of items"}, "description": "Returns the number of items in storage, if any.", "guessedname": "getLength", "guessedtype": "function"}, "clear": {"description": "Removes all data in local storage for this domain.\n<p>Be careful when using this method, as it may \nremove stored information that is used by other applications\nin this domain </p>", "guessedname": "clear", "guessedtype": "function"}, "setShareData": {"params": [{"type": "Boolean", "name": "Whether", "description": " or not to share among browsers"}], "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "setShareData", "guessedtype": "function"}, "getTypeOf": {"return": {"type": "String", "description": "The type"}, "params": [{"type": "String", "name": "location", "description": "  The name of the \"cookie\" or store"}], "description": "Returns the data type of of the storage.\n<p>May be one of the following types:\n<ul>\n<li>boolean</li>\n<li>function</li>\n<li>number</li>\n<li>object</li>\n<li>string</li>\n<li>number</li>\n<li>xml</li>\n</ul>\n</p>", "guessedname": "getTypeOf", "guessedtype": "function"}, "getValueOf": {"return": {"type": "Object", "description": "The data"}, "params": [{"type": "String", "name": "location", "description": "  The name of the \"cookie\" or store"}], "description": "Returns the value of the item in storage, if any.", "guessedname": "getValueOf", "guessedtype": "function"}, "getItems": {"public": "", "return": {"type": "Object", "description": "The data."}, "description": "Returns the items in storage as an array.", "guessedname": "getItems", "guessedtype": "function"}, "setItem": {"return": {"type": "Boolean", "description": "Whether or not the save was successful"}, "description": "Saves data to local storage. It returns a String that can\nbe one of three values: \"true\" if the storage succeeded; \"false\" if the user\nhas denied storage on their machine or storage space allotted is not sufficient.\n<p>The size limit for the passed parameters is ~40Kb.</p>", "param": "index {Number} The index of the \"cookie\" or store", "params": [{"type": "Object", "name": "data", "description": "  The data to store"}, {"type": "String", "name": "location", "description": "  The name of the \"cookie\" or store"}], "guessedname": "setItem", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the SWFStore instance."}, "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "toString", "guessedtype": "function"}, "setSize": {"return": {"type": "String", "description": ""}, "params": [{"type": "Number", "name": "value", "description": "  The size, in KB"}], "description": "This method requests more storage (if the amount is above 100KB or the current setting).\nThe request dialog has to be displayed within the Flash player itself\nso the SWF it is called from must be visible and at least 215px x 138px (w x h) in size.", "guessedname": "setSize", "guessedtype": "function"}, "removeItem": {"param": "index {Number} The index of the \"cookie\" or store", "params": [{"type": "String", "name": "location", "description": "  The name of the \"cookie\" or store"}], "description": "Removes the item in storage, if any.", "guessedname": "removeItem", "guessedtype": "function"}, "getShareData": {"return": {"type": "Boolean", "description": "Whether or not data is being shared among browsers"}, "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "getShareData", "guessedtype": "function"}, "getUseCompression": {"return": {"type": "Boolean", "description": "Whether or compression is being used"}, "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "getUseCompression", "guessedtype": "function"}, "getModificationDate": {"return": {"type": "Date", "description": "A Date object"}, "description": "Gets the timestamp of the last store. This value is automatically set when \ndata is stored.", "guessedname": "getModificationDate", "guessedtype": "function"}}, "uses": ["YAHOO.util.AttributeProvider"], "file": "swfstore.js", "guessedtype": "function", "shortname": "SWFStore", "events": {"inadequateDimensions": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when a settings dialog is not able to be displayed due to \nthe SWF not being large enough to show it. In this case, the developer\nneeds to resize the SWF to width of 215px and height of 138px or above, \nor display an external settings page."}, "quotaExceededError": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.message", "description": "  The data"}], "description": "Fires when there is not enough space available to store the data"}, "clear": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when a store is successfully cleared"}, "securityError": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.message", "description": "  The data"}], "description": "Fires when the url matching for the security whitelist is invalid.\nIf no whitelist is used, fires when page's url does not match the embedded swf's url"}, "error": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.message", "description": "  The data"}], "description": "Fires when an error occurs", "param": "event.type {String} The event type"}, "save": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when a store is saved successfully"}, "openingDialog": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires as the settings dialog displays"}}, "description": "Class for the YUI SWFStore util."}, "YAHOO.widget.Carousel": {"name": "YAHOO.widget.Carousel", "configs": {"numPages": {"type": "Number", "description": "The number of pages in the carousel."}, "isCircular": {"default": "false", "type": "Boolean", "description": "Set this to true to wrap scrolling of the contents\nin the Carousel."}, "navigation": {"default": "<br>\n{ prev: null, // the previous navigation element<br>\nnext: null } // the next navigation element", "type": "Object", "description": "The set of navigation controls for Carousel"}, "autoPlay": {"deprecated": "Use autoPlayInterval instead.", "type": "Number", "description": "Set this to time in milli-seconds to have the\nCarousel automatically scroll the contents."}, "autoPlayInterval": {"type": "Number", "description": "The delay in milli-seconds for scrolling the\nCarousel during auto-play.\nNote: The startAutoPlay() method needs to be invoked to trigger\nautomatic scrolling of Carousel."}, "numVisible": {"default": "3", "type": "Number", "description": "The number of visible items in the Carousel's\nviewport."}, "selectedItem": {"type": "Number", "description": "The index of the selected item."}, "firstVisible": {"default": "0", "type": "Number", "description": "The index to start the Carousel from (indexes begin\nfrom zero)"}, "selectOnScroll": {"default": "true", "type": "Boolean", "description": "Set this to true to automatically set focus to\nfollow scrolling in the Carousel."}, "animation": {"default": "<br>\n{ speed: 0, // the animation speed (in seconds)<br>\neffect: null } // the animation effect (like\nYAHOO.util.Easing.easeOut)", "type": "Object", "description": "The optional animation attributes for the Carousel."}, "numItems": {"type": "Number", "description": "The number of items in the Carousel."}, "carouselItemEl": {"default": "LI", "type": "Boolean", "description": "The type of the list of items within the Carousel."}, "scrollIncrement": {"default": "1", "type": "Number", "description": "The number of items to scroll by for arrow keys."}, "currentPage": {"type": "Number", "description": "The current page number (read-only.)"}, "carouselEl": {"default": "OL", "type": "Boolean", "description": "The type of the Carousel element."}, "isVertical": {"default": "false", "type": "Boolean", "description": "True if the orientation of the Carousel is vertical"}, "lastVisible": {"type": "Number", "description": "The last item visible in the carousel."}, "revealAmount": {"default": "0", "type": "Number", "description": "The percentage of the item to be revealed on each\nside of the Carousel (before and after the first and last item\nin the Carousel's viewport.)"}}, "constructors": [{"params": [{"type": "HTMLElement | String", "name": "el", "description": "  The HTML element that represents the\nthe container that houses the Carousel."}, {"type": "Object", "name": "cfg", "description": "  (optional) The configuration values"}], "description": "The Carousel widget."}], "namespace": "YAHOO.widget", "module": "carousel", "events": {"selectedItemChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "selectedItemChange", "description": "Fires when the value for the configuration attribute 'selectedItem' changes."}, "itemReplaced": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item has been replaced in the Carousel.\nPasses back the content of the item that was replaced, the content\nof the new item, the index where the replacement occurred, and the event\nitself.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "itemReplacedEvent", "guessedtype": "property"}, "beforeIsCircularChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeIsCircularChange", "description": "Fires before the value for the configuration attribute 'isCircular' changes. Return false to cancel the attribute change."}, "autoPlayIntervalChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "autoPlayIntervalChange", "description": "Fires when the value for the configuration attribute 'autoPlayInterval' changes."}, "show": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is shown.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "showEvent", "guessedtype": "property"}, "loadItems": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel needs more items to be loaded for\ndisplaying them.  Passes back the first and last visible items in the\nCarousel, and the number of items needed to be loaded.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "loadItemsEvent", "guessedtype": "property"}, "focus": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel gains focus.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "focusEvent", "guessedtype": "property"}, "itemAdded": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item has been added to the Carousel.  Passes\nback the content of the item that would be added, the index at which the\nitem would be added, and the event itself.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "itemAddedEvent", "guessedtype": "property"}, "numItemsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "numItemsChange", "description": "Fires when the value for the configuration attribute 'numItems' changes."}, "beforeNumPagesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNumPagesChange", "description": "Fires before the value for the configuration attribute 'numPages' changes. Return false to cancel the attribute change."}, "beforeLastVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLastVisibleChange", "description": "Fires before the value for the configuration attribute 'lastVisible' changes. Return false to cancel the attribute change."}, "currentPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "currentPageChange", "description": "Fires when the value for the configuration attribute 'currentPage' changes."}, "beforeNumVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNumVisibleChange", "description": "Fires before the value for the configuration attribute 'numVisible' changes. Return false to cancel the attribute change."}, "itemRemoved": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item has been removed from the Carousel.\nPasses back the content of the item that would be removed, the index\nfrom which the item would be removed, and the event itself.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "itemRemovedEvent", "guessedtype": "property"}, "carouselElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "carouselElChange", "description": "Fires when the value for the configuration attribute 'carouselEl' changes."}, "autoPlayChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "autoPlayChange", "description": "Fires when the value for the configuration attribute 'autoPlay' changes."}, "beforeHide": {"type": "YAHOO.util.CustomEvent", "description": "Fires before the Carousel is hidden.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "beforeHideEvent", "guessedtype": "property"}, "hide": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is hidden.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "hideEvent", "guessedtype": "property"}, "beforeFirstVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFirstVisibleChange", "description": "Fires before the value for the configuration attribute 'firstVisible' changes. Return false to cancel the attribute change."}, "scrollIncrementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "scrollIncrementChange", "description": "Fires when the value for the configuration attribute 'scrollIncrement' changes."}, "beforeAnimationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimationChange", "description": "Fires before the value for the configuration attribute 'animation' changes. Return false to cancel the attribute change."}, "firstVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "firstVisibleChange", "description": "Fires when the value for the configuration attribute 'firstVisible' changes."}, "selectOnScrollChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "selectOnScrollChange", "description": "Fires when the value for the configuration attribute 'selectOnScroll' changes."}, "navigationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "navigationChange", "description": "Fires when the value for the configuration attribute 'navigation' changes."}, "numPagesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "numPagesChange", "description": "Fires when the value for the configuration attribute 'numPages' changes."}, "beforeAutoPlayIntervalChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAutoPlayIntervalChange", "description": "Fires before the value for the configuration attribute 'autoPlayInterval' changes. Return false to cancel the attribute change."}, "blur": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel loses focus.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "blurEvent", "guessedtype": "property"}, "afterScroll": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel has scrolled to the previous or\nnext page.  Passes back the index of the first and last visible items in\nthe Carousel.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "afterScrollEvent", "guessedtype": "property"}, "beforeSelectOnScrollChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSelectOnScrollChange", "description": "Fires before the value for the configuration attribute 'selectOnScroll' changes. Return false to cancel the attribute change."}, "beforeRevealAmountChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRevealAmountChange", "description": "Fires before the value for the configuration attribute 'revealAmount' changes. Return false to cancel the attribute change."}, "pageChange": {"type": "YAHOO.util.CustomEvent", "description": "Fires after the Carousel has scrolled to the previous or\nnext page.  Passes back the page number of the current page.  Note\nthat the first page number is zero.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "pageChangeEvent", "guessedtype": "property"}, "numVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "numVisibleChange", "description": "Fires when the value for the configuration attribute 'numVisible' changes."}, "itemSelected": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item has been selected in the Carousel.\nPasses back the index of the selected item in the Carousel.  Note, that\nthe index begins from zero.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "itemSelectedEvent", "guessedtype": "property"}, "animationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animationChange", "description": "Fires when the value for the configuration attribute 'animation' changes."}, "beforeNumItemsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNumItemsChange", "description": "Fires before the value for the configuration attribute 'numItems' changes. Return false to cancel the attribute change."}, "beforeScroll": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is about to scroll to the previous\nor next page.  Passes back the index of the first and last visible items\nin the Carousel and the direction (backward/forward) of the scroll.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "beforeScrollEvent", "guessedtype": "property"}, "beforeCurrentPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCurrentPageChange", "description": "Fires before the value for the configuration attribute 'currentPage' changes. Return false to cancel the attribute change."}, "beforeShow": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is about to be shown.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "beforeShowEvent", "guessedtype": "property"}, "revealAmountChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "revealAmountChange", "description": "Fires when the value for the configuration attribute 'revealAmount' changes."}, "beforeSelectedItemChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSelectedItemChange", "description": "Fires before the value for the configuration attribute 'selectedItem' changes. Return false to cancel the attribute change."}, "beforeScrollIncrementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeScrollIncrementChange", "description": "Fires before the value for the configuration attribute 'scrollIncrement' changes. Return false to cancel the attribute change."}, "beforeAutoPlayChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAutoPlayChange", "description": "Fires before the value for the configuration attribute 'autoPlay' changes. Return false to cancel the attribute change."}, "beforeNavigationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNavigationChange", "description": "Fires before the value for the configuration attribute 'navigation' changes. Return false to cancel the attribute change."}, "stopAutoPlay": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the auto play has been stopped in the Carousel.\nSee\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "stopAutoPlayEvent", "guessedtype": "property"}, "beforeCarouselItemElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCarouselItemElChange", "description": "Fires before the value for the configuration attribute 'carouselItemEl' changes. Return false to cancel the attribute change."}, "beforePageChange": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is about to scroll to the previous\nor next page.  Passes back the page number of the current page.  Note\nthat the first page number is zero.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "beforePageChangeEvent", "guessedtype": "property"}, "isCircularChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "isCircularChange", "description": "Fires when the value for the configuration attribute 'isCircular' changes."}, "carouselItemElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "carouselItemElChange", "description": "Fires when the value for the configuration attribute 'carouselItemEl' changes."}, "beforeIsVerticalChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeIsVerticalChange", "description": "Fires before the value for the configuration attribute 'isVertical' changes. Return false to cancel the attribute change."}, "beforeCarouselElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCarouselElChange", "description": "Fires before the value for the configuration attribute 'carouselEl' changes. Return false to cancel the attribute change."}, "isVerticalChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "isVerticalChange", "description": "Fires when the value for the configuration attribute 'isVertical' changes."}, "lastVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "lastVisibleChange", "description": "Fires when the value for the configuration attribute 'lastVisible' changes."}, "navigationStateChange": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the state of either one of the navigation\nbuttons are changed from enabled to disabled or vice versa.  Passes back\nthe state (true/false) of the previous and next buttons.  The value true\nsignifies the button is enabled, false signifies disabled.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "navigationStateChangeEvent", "guessedtype": "property"}, "startAutoPlay": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the auto play has started in the Carousel.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "startAutoPlayEvent", "guessedtype": "property"}, "allItemsRemovedEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when all items have been removed from the Carousel.\nSee\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "allItemsRemovedEvent", "guessedtype": "property"}}, "guessedname": "Carousel", "methods": {"registerPagination": {"public": "", "params": [{"type": "String", "name": "template", "description": "  Pagination template as passed to lang.substitute"}], "description": "Register carousels pagination template, append to interface, and populate.", "guessedname": "registerPagination", "guessedtype": "function"}, "getVisibleItems": {"public": "", "return": {"type": "Array", "description": "The array of visible items"}, "description": "Return all visible items as an array.", "guessedname": "getVisibleItems", "guessedtype": "function"}, "focus": {"description": "Set focus on the Carousel.", "public": "", "guessedname": "focus", "guessedtype": "function"}, "_setupCarouselNavigation": {"protected": "", "description": "Setup/Create the Carousel navigation element (if needed).", "guessedname": "_setupCarouselNavigation", "guessedtype": "function"}, "initAttributes": {"public": "", "params": [{"type": "Object", "name": "attrs", "description": "  The set of configuration attributes for\ncreating the Carousel."}], "description": "Initialize the configuration attributes used to create the Carousel.", "guessedname": "initAttributes", "guessedtype": "function"}, "_setRevealAmount": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the value for the reveal amount percentage in the Carousel.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for revealAmount"}], "guessedname": "_setRevealAmount", "guessedtype": "function"}, "scrollPageBackward": {"description": "Scroll the Carousel by a page backward.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}, {"type": "Object", "name": "obj", "description": " The context object"}], "guessedname": "scrollPageBackward", "guessedtype": "function", "public": ""}, "_validateScrollIncrement": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the scrollIncrement value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The scrollIncrement value"}], "guessedname": "_validateScrollIncrement", "guessedtype": "function"}, "syncPagerUi": {"description": "Synchronize and redraw the Pager UI if necessary.", "private": ""}, "show": {"description": "Display the Carousel.", "public": "", "guessedname": "show", "guessedtype": "function"}, "_updateNavButtons": {"protected": "", "params": [{"type": "Object", "name": "el", "description": "  The target button"}, {"type": "Boolean", "name": "setFocus", "description": "  True to set focus ring, false otherwise."}], "description": "Set the correct class for the navigation buttons.", "guessedname": "_updateNavButtons", "guessedtype": "function"}, "init": {"public": "", "params": [{"type": "HTMLElement | String", "name": "el", "description": "  The html element that represents\nthe Carousel container."}, {"type": "Object", "name": "attrs", "description": "  The set of configuration attributes for\ncreating the Carousel."}], "description": "Initialize the Carousel.", "guessedname": "init", "guessedtype": "function"}, "getById": {"public": "", "static": "", "description": "Return the appropriate Carousel object based on the id associated with\nthe Carousel element or false if none match.", "guessedname": "getById", "guessedtype": "function"}, "_validateNavigation": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate and navigation parameters.", "protected": "", "params": [{"type": "Object", "name": "cfg", "description": "  The navigation configuration"}], "guessedname": "_validateNavigation", "guessedtype": "function"}, "syncUi": {"params": [{"type": "Object", "name": "o", "description": " The item that needs to be added or removed"}], "description": "Handle UI update.\nCall the appropriate methods on events fired when an item is added, or\nremoved for synchronizing the DOM.", "private": ""}, "parseCarouselItems": {"protected": "", "description": "Find the items within the Carousel and add them to the items table.\nA Carousel item is identified by elements that matches the carousel\nitem element tag.", "guessedname": "_parseCarouselItems", "guessedtype": "function"}, "_syncUiForItemReplace": {"protected": "", "description": "Synchronize and redraw the UI after an item is replaced.", "guessedname": "_syncUiForItemReplace", "guessedtype": "function"}, "getDimensions": {"params": [{"type": "Object", "name": "el", "description": " The element to get the dimensions of"}, {"type": "String", "name": "which", "description": " Get the height or width of an element"}], "description": "Get full dimensions of an element.", "private": ""}, "_pagerClickHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}], "description": "The \"click\" handler for anchor pagination.", "guessedname": "_pagerClickHandler", "guessedtype": "function"}, "removeItem": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Remove an item at index from the Carousel.", "params": [{"type": "Number", "name": "index", "description": "  The position to where in the list (starts from\nzero)."}], "guessedname": "removeItem", "guessedtype": "function", "public": ""}, "_validateRevealAmount": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the revealAmount value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The revealAmount value"}], "guessedname": "_validateRevealAmount", "guessedtype": "function"}, "stopAutoPlay": {"description": "Stop auto-playing the Carousel.", "public": "", "guessedname": "stopAutoPlay", "guessedtype": "function"}, "isAutoPlayOn": {"public": "", "return": {"type": "Boolean", "description": "Return true if autoPlay is \"on\", or false\notherwise."}, "description": "Return true if the auto-scrolling of Carousel is \"on\", or false\notherwise.", "guessedname": "isAutoPlayOn", "guessedtype": "function"}, "_refreshUi": {"protected": "", "description": "Refresh the widget UI if it is not already rendered, on first item\naddition.", "guessedname": "_refreshUi", "guessedtype": "function"}, "getPageForItem": {"return": {"type": "Number", "description": "Page item is on"}, "description": "Get the page an item is on within carousel.", "params": [{"type": "Number", "name": "index", "description": "  Index of item"}], "guessedname": "getPageForItem", "guessedtype": "function", "public": ""}, "_validateNumVisible": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the numVisible value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The numVisible value"}], "guessedname": "_validateNumVisible", "guessedtype": "function"}, "getElementForItems": {"public": "", "return": {"type": "Array", "description": "Return all the items"}, "description": "Return the carouselItemEl for all items in the Carousel.", "guessedname": "getElementForItems", "guessedtype": "function"}, "_animationCompleteHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": " The event."}, {"type": "Array", "name": "p", "description": " The event parameters."}, {"type": "Object", "name": "o", "description": " The object that has the state of the Carousel"}], "description": "Handle the animation complete event.", "guessedname": "_animationCompleteHandler", "guessedtype": "function"}, "_pagerChangeHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}], "description": "The \"onchange\" handler for select box pagination.", "guessedname": "_pagerChangeHandler", "guessedtype": "function"}, "_autoScroll": {"protected": "", "description": "Automatically scroll the contents of the Carousel.", "guessedname": "_autoScroll", "guessedtype": "function"}, "hide": {"description": "Hide the Carousel.", "public": "", "guessedname": "hide", "guessedtype": "function"}, "scrollForward": {"description": "Scroll the Carousel by an item forward.", "public": "", "guessedname": "scrollForward", "guessedtype": "function"}, "getCarouselItemPosition": {"params": [{"type": "Number", "name": "position", "description": "  The position of the Carousel item."}], "description": "Compute and return the position of a Carousel item based on its\nposition.", "private": ""}, "_setSelectedItem": {"protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for \"selected\" item"}], "description": "Set the value for the selected item.", "guessedname": "_setSelectedItem", "guessedtype": "function"}, "_numVisibleSetter": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the value for the number of visible items in the Carousel.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for numVisible"}], "guessedname": "_numVisibleSetter", "guessedtype": "function"}, "_setCarouselOffset": {"protected": "", "description": "Set the Carousel offset to the passed offset.", "guessedname": "_setCarouselOffset", "guessedtype": "function"}, "toString": {"public": "", "return": {"type": "String", "description": ""}, "description": "Return the string representation of the Carousel.", "guessedname": "toString", "guessedtype": "function"}, "replaceItem": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Replace an item at index witin Carousel.", "params": [{"type": "String | Object | HTMLElement", "name": "item", "description": "  The item to be appended\nto the Carousel. If the parameter is a string, it is assumed to be\nthe content of the newly created item. If the parameter is an\nobject, it is assumed to supply the content and an optional class\nand an optional id of the newly created item."}, {"type": "Number", "name": "index", "description": "  The position to where in the list (starts from\nzero)."}], "guessedname": "replaceItem", "guessedtype": "function", "public": ""}, "blur": {"description": "Remove focus from the Carousel.", "public": "", "guessedname": "blur", "guessedtype": "function"}, "getFirstVisibleOnpage": {"return": {"type": "Number", "description": "First item's index"}, "description": "Get the first visible item's index on any given page.", "params": [{"type": "Number", "name": "page", "description": "  Page"}], "guessedname": "getFirstVisibleOnPage", "guessedtype": "function", "public": ""}, "_updatePagerButtons": {"protected": "", "description": "Update the UI for the pager buttons based on the current page and\nthe number of pages.", "guessedname": "_updatePagerButtons", "guessedtype": "function"}, "_syncUiItems": {"protected": "", "description": "Redraw the UI for item positioning.", "guessedname": "_syncUiItems", "guessedtype": "function"}, "addItem": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Insert or append an item to the Carousel.\nE.g. if Object: ({content:\"Your Content\", id:\"\", className:\"\"}, index)", "params": [{"type": "String | Object | HTMLElement", "name": "item", "description": "  The item to be appended\nto the Carousel. If the parameter is a string, it is assumed to be\nthe content of the newly created item. If the parameter is an\nobject, it is assumed to supply the content and an optional class\nand an optional id of the newly created item."}, {"type": "Number", "name": "index", "description": "  optional The position to where in the list\n(starts from zero)."}], "guessedname": "addItem", "guessedtype": "function", "public": ""}, "_setContainerSize": {"protected": "", "params": [{"type": "HTMLElement", "name": "clip", "description": "  The clip container element."}, {"type": "String", "name": "attr", "description": "  Either set the height or width."}], "description": "Set the container size.", "guessedname": "_setContainerSize", "guessedtype": "function"}, "_setNumItems": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the number of items in the Carousel.\nWarning: Setting this to a lower number than the current removes\nitems from the end.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for numItems"}], "guessedname": "_setNumItems", "guessedtype": "function"}, "getLoadingItems": {"public": "", "return": {"type": "Array", "description": "Return all items that are loading in the Carousel."}, "description": "Return all loading items as an array.", "guessedname": "getLoadingItems", "guessedtype": "function"}, "scrollBackward": {"description": "Scroll the Carousel by an item backward.", "public": "", "guessedname": "scrollBackward", "guessedtype": "function"}, "selectNextItem": {"description": "Select the next item in the Carousel.", "public": "", "guessedname": "selectNextItem", "guessedtype": "function"}, "_animateAndSetCarouselOffset": {"protected": "", "params": [{"type": "Integer", "name": "offset", "description": " The offset to which the Carousel has to be\nscrolled to."}, {"type": "Integer", "name": "item", "description": " The index to which the Carousel will scroll."}, {"type": "Integer", "name": "sentinel", "description": " The last element in the view port."}], "description": "Set the Carousel offset to the passed offset after animating.", "guessedname": "_animateAndSetCarouselOffset", "guessedtype": "function"}, "_selectedItemSetter": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the value for selectedItem.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for selectedItem"}], "guessedname": "_selectedItemSetter", "guessedtype": "function"}, "_validateFirstVisible": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the firstVisible value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The first visible value"}], "guessedname": "_validateFirstVisible", "guessedtype": "function"}, "updatePagination": {"description": "Update interface's pagination data within a registered template.", "public": "", "guessedname": "updatePagination", "guessedtype": "function"}, "syncNavigation": {"description": "Fire custom events for enabling/disabling navigation elements.", "private": ""}, "getFirstVisibleForPosition": {"params": [{"type": "Number", "name": "pos", "description": "  The position of the item to be displayed"}], "description": "Return the index of the first item in the view port for displaying item\nin \"pos\".", "private": ""}, "render": {"return": {"type": "Boolean", "description": "Status of the operation"}, "description": "Render the Carousel.", "params": [{"type": "HTMLElement | String", "name": "appendTo", "description": "  The element to which the\nCarousel should be appended prior to rendering."}], "guessedname": "render", "guessedtype": "function", "public": ""}, "replaceItems": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Replace multiple items at specified indexes.\nNOTE: item at index must already exist.", "params": [{"type": "Array} An array containing an array of replacement items each linked to the\nindex where the substitution should take place.\nE.g. [[{content:'<img/>'}, index1], [{content:'<img/>'", "name": "items", "description": " , index2]]"}], "guessedname": "replaceItems", "guessedtype": "function", "public": ""}, "getElementForItem": {"return": {"type": "Element", "description": "Return the item at index or null if not found"}, "description": "Return the carouselItemEl at index or null if the index is not\nfound.", "params": [{"type": "Number", "name": "index", "description": "  The index of the item to be returned"}], "guessedname": "getElementForItem", "guessedtype": "function", "public": ""}, "_setNumVisible": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Clip the container size every time numVisible is set.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for numVisible"}], "guessedname": "_setNumVisible", "guessedtype": "function"}, "_keyboardEventHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": "  The event that is being handled."}], "description": "The keyboard event handler for Carousel.", "guessedname": "_keyboardEventHandler", "guessedtype": "function"}, "addItems": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Insert or append multiple items to the Carousel.", "params": [{"type": "Array} An array containing an array of new items each linked to the\nindex where the insertion should take place.\nE.g. [[{content:'<img/>'}, index1], [{content:'<img/>'", "name": "items", "description": " , index2]]\nNOTE: An item at index must already exist."}], "guessedname": "addItems", "guessedtype": "function", "public": ""}, "scrollPageForward": {"description": "Scroll the Carousel by a page forward.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}, {"type": "Object", "name": "obj", "description": " The context object"}], "guessedname": "scrollPageForward", "guessedtype": "function", "public": ""}, "initEvents": {"description": "Initialize and bind the event handlers.", "public": "", "guessedname": "initEvents", "guessedtype": "function"}, "_getSelectedItem": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Get the value for the selected item.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for \"selected\" item"}], "guessedname": "_getSelectedItem", "guessedtype": "function"}, "_syncUiForLazyLoading": {"protected": "", "description": "Synchronize and redraw the UI for lazy loading.", "guessedname": "_syncUiForLazyLoading", "guessedtype": "function"}, "createCarouselClip": {"protected": "", "description": "Create the Carousel clip container.", "guessedname": "_createCarouselClip", "guessedtype": "function"}, "_updatePagerMenu": {"protected": "", "description": "Update the UI for the pager menu based on the current page and\nthe number of pages.  If the number of pages is greater than\nMAX_PAGER_BUTTONS, then the selection of pages is provided by a drop\ndown menu instead of a set of buttons.", "guessedname": "_updatePagerMenu", "guessedtype": "function"}, "parseCarousel": {"return": {"type": "Boolean", "description": "True if Carousel is found, false otherwise"}, "description": "Find the Carousel within a container. The Carousel is identified by\nthe first element that matches the carousel element tag or the\nelement that has the Carousel class.", "protected": "", "params": [{"type": "HTMLElement", "name": "parent", "description": "  The parent element to look under"}], "guessedname": "_parseCarousel", "guessedtype": "function"}, "getScrollOffset": {"params": [{"type": "Number", "name": "delta", "description": "  The delta number of elements to scroll by."}], "description": "Return the scrolling offset size given the number of elements to\nscroll.", "private": ""}, "_getValidIndex": {"return": {"type": "Object", "description": "Return a valid item index"}, "description": "Return a valid item for a possibly out of bounds index considering\nthe isCircular property.", "protected": "", "params": [{"type": "Number", "name": "index", "description": "  The index of the item to be returned"}], "guessedname": "_getValidIndex", "guessedtype": "function"}, "createElement": {"params": [{"type": "String", "name": "el", "description": "  The element to be created"}, {"type": "Object", "name": "attrs", "description": "  Configuration of parent, class and id attributes.\nIf the content is specified, it is inserted after creation of the\nelement. The content can also be an HTML element in which case it would\nbe appended as a child node of the created element."}], "description": "Create an element, set its class name and optionally install the element\nto its parent.", "private": ""}, "setItemSelection": {"params": [{"type": "Number", "name": "newpos", "description": " The index of the new position"}, {"type": "Number", "name": "oldpos", "description": " The index of the previous position"}], "description": "Set the selected item.", "private": ""}, "_syncUiForItemAdd": {"protected": "", "description": "Synchronize and redraw the UI after an item is added.", "guessedname": "_syncUiForItemAdd", "guessedtype": "function"}, "createCarouselItem": {"protected": "", "params": [{"type": "Object", "name": "obj", "description": "  The attributes of the element to be created"}], "description": "Create the Carousel item.", "guessedname": "_createCarouselItem", "guessedtype": "function"}, "_setFirstVisible": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the value for the Carousel's first visible item.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for firstVisible"}], "guessedname": "_setFirstVisible", "guessedtype": "function"}, "_validateNumItems": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the numItems value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The numItems value"}], "guessedname": "_validateNumItems", "guessedtype": "function"}, "getItemPositionById": {"public": "", "params": [{"type": "Number", "name": "index", "description": "  The index of the item to be returned"}], "description": "Return the position of the Carousel item that has the id \"id\", or -1\nif the id is not found.", "guessedname": "getItemPositionById", "guessedtype": "function"}, "scrollTo": {"public": "", "params": [{"type": "", "name": "item", "description": " Number The index of the element to position at."}, {"type": "", "name": "dontSelect", "description": " Boolean True if select should be avoided"}], "description": "Scroll the Carousel to make the item the first visible item.", "guessedname": "scrollTo", "guessedtype": "function"}, "_getNumPages": {"protected": "", "description": "Get the total number of pages.", "guessedname": "_getNumPages", "guessedtype": "function"}, "selectPreviousItem": {"description": "Select the previous item in the Carousel.", "public": "", "guessedname": "selectPreviousItem", "guessedtype": "function"}, "getRevealSize": {"description": "Return the size of a part of the item (reveal).", "private": ""}, "updateStateAfterScroll": {"params": [{"type": "Integer", "name": "item", "description": " The index to which the Carousel has scrolled to."}, {"type": "Integer", "name": "sentinel", "description": " The last element in the view port."}], "description": "Update the state variables after scrolling the Carousel view port.", "private": ""}, "_updateTabIndex": {"protected": "", "params": [{"type": "Object", "name": "el", "description": "  The element to be focussed"}], "description": "Set the correct tab index for the Carousel items.", "guessedname": "_updateTabIndex", "guessedtype": "function"}, "clearItems": {"description": "Clears the items from Carousel.", "public": "", "guessedname": "clearItems", "guessedtype": "function"}, "_validateAnimation": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate animation parameters.", "protected": "", "params": [{"type": "Object", "name": "cfg", "description": "  The animation configuration"}], "guessedname": "_validateAnimation", "guessedtype": "function"}, "_getLastVisible": {"protected": "", "description": "Get the index of the last visible item", "guessedname": "_getLastVisible", "guessedtype": "function"}, "setStyles": {"params": [{"type": "HTMLElement", "name": "el", "description": "  The element to set styles on"}, {"type": "Object", "name": "style", "description": "  top:\"10px\", left:\"0px\", etc."}], "description": "Set multiple styles on one element.", "private": ""}, "_setNavigation": {"return": {"type": "Object", "description": "The new value that would be set"}, "description": "Set the value for the Carousel's navigation.", "protected": "", "params": [{"type": "Object", "name": "cfg", "description": "  The navigation configuration"}], "guessedname": "_setNavigation", "guessedtype": "function"}, "isAnimating": {"public": "", "return": {"type": "Boolean", "description": "Return true if animation is still in progress, or\nfalse otherwise."}, "description": "Return true if the Carousel is still animating, or false otherwise.", "guessedname": "isAnimating", "guessedtype": "function"}, "_setOrientation": {"return": {"type": "Boolean", "description": "The new value that would be set"}, "description": "Set the orientation of the Carousel.", "protected": "", "params": [{"type": "Boolean", "name": "val", "description": "  The new value for isVertical"}], "guessedname": "_setOrientation", "guessedtype": "function"}, "_itemClickHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}], "description": "The \"click\" handler for the item.", "guessedname": "_itemClickHandler", "guessedtype": "function"}, "getItems": {"public": "", "return": {"type": "Array", "description": "Return all items in the Carousel"}, "description": "Return all items as an array.", "guessedname": "getItems", "guessedtype": "function"}, "getStyle": {"params": [{"type": "HTMLElement", "name": "el", "description": "  The element for which the style needs to be\nreturned."}, {"type": "String", "name": "style", "description": "  The style attribute"}, {"type": "String", "name": "type", "description": "  \"int\", \"float\", etc. (defaults to int)"}], "description": "Get the computed style of an element.", "private": ""}, "createCarousel": {"protected": "", "params": [{"type": "String", "name": "elId", "description": "  The id of the element to be created"}], "description": "Create the Carousel.", "guessedname": "_createCarousel", "guessedtype": "function"}, "getItem": {"return": {"type": "Object", "description": "Return the item at index or null if not found"}, "description": "Return the item at index or null if the index is not found.", "params": [{"type": "Number", "name": "index", "description": "  The index of the item to be returned"}], "guessedname": "getItem", "guessedtype": "function", "public": ""}, "_loadItems": {"protected": "", "description": "The load the required set of items that are needed for display.", "guessedname": "_loadItems", "guessedtype": "function"}, "parseCarouselNavigation": {"return": {"type": "Boolean", "description": "True if at least one is found, false otherwise"}, "description": "Find the Carousel navigation within a container. The navigation\nelements need to match the carousel navigation class names.", "protected": "", "params": [{"type": "HTMLElement", "name": "parent", "description": "  The parent element to look under"}], "guessedname": "_parseCarouselNavigation", "guessedtype": "function"}, "getCarouselItemSize": {"params": [{"type": "String", "name": "which", "description": "  \"height\" or \"width\" to be returned.  If this is\npassed explicitly, the calculated size is not cached."}], "description": "Compute and return the height or width of a single Carousel item\ndepending upon the orientation.", "private": ""}, "_setClipContainerSize": {"protected": "", "params": [{"type": "HTMLElement", "name": "clip", "description": "  The clip container element."}, {"type": "Number", "name": "num", "description": "  optional The number of items per page."}], "description": "Set the clip container size (based on the new numVisible value).", "guessedname": "_setClipContainerSize", "guessedtype": "function"}, "startAutoPlay": {"description": "Start auto-playing the Carousel.", "public": "", "guessedname": "startAutoPlay", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "Carousel.js", "guessedtype": "function", "shortname": "Carousel", "properties": {"NEXT_PAGE": {"default": "\"yui-carousel-next\"", "description": "The class name of the next navigation link. This variable is\nnot only used for styling, but also for identifying the link\nwithin the Carousel container.", "guessedname": "NEXT_PAGE", "guessedtype": "property"}, "_rows": {"private": "", "description": "Number of rows for a multirow carousel.", "guessedname": "_rows", "guessedtype": "property"}, "_hasFocus": {"private": "", "description": "Does the Carousel element have focus?", "guessedname": "_hasFocus", "guessedtype": "property"}, "_animObj": {"private": "", "description": "The Animation object.", "guessedname": "_animObj", "guessedtype": "property"}, "_itemsTable": {"private": "", "description": "The table of items in the Carousel.\nThe numItems is the number of items in the Carousel, items being the\narray of items in the Carousel.  The size is the size of a single\nitem in the Carousel.  It is cached here for efficiency (to avoid\ncomputing the size multiple times).", "guessedname": "_itemsTable", "guessedtype": "property"}, "VERT_MIN_WIDTH": {"default": "155", "description": "The minimum width of the vertical Carousel container to support\nthe navigation buttons.", "guessedname": "VERT_MIN_WIDTH", "guessedtype": "property"}, "instances": {"guessedname": "instances", "static": "", "description": "The internal table of Carousel instances.", "private": "", "guessedtype": "property"}, "MULTI_ROW": {"default": "\"yui-carousel-multi-row\"", "description": "The class name of a multirow Carousel.", "guessedname": "MULTI_ROW", "guessedtype": "property"}, "_isAutoPlayInProgress": {"private": "", "description": "Is the auto-scrolling of Carousel in progress?", "guessedname": "_isAutoPlayInProgress", "guessedtype": "property"}, "MIN_WIDTH": {"default": "\"yui-carousel-min-width\"", "description": "The class name that will be set if the Carousel adjusts itself\nfor a minimum width.", "guessedname": "MIN_WIDTH", "guessedtype": "property"}, "HORIZONTAL": {"default": "\"yui-carousel-horizontal\"", "description": "The class name of a horizontally oriented Carousel.", "guessedname": "HORIZONTAL", "guessedtype": "property"}, "_isAnimationInProgress": {"private": "", "description": "Is the animation still in progress?", "guessedname": "_isAnimationInProgress", "guessedtype": "property"}, "_prevEnabled": {"private": "", "description": "Status of the previous navigation item.", "guessedname": "_prevEnabled", "guessedtype": "property"}, "NEXT_BUTTON_TEXT": {"default": "\"Next Page\"", "description": "The next navigation button name/text.", "guessedname": "NEXT_BUTTON_TEXT", "guessedtype": "property"}, "_hasRendered": {"private": "", "description": "Is the Carousel rendered already?", "guessedname": "_hasRendered", "guessedtype": "property"}, "VERTICAL_CONTAINER": {"default": "\"yui-carousel-vertical-container\"", "description": "The class name of a vertical Carousel's container element.", "guessedname": "VERTICAL_CONTAINER", "guessedtype": "property"}, "PREVIOUS_BUTTON_TEXT": {"default": "\"Previous Page\"", "description": "The previous navigation button name/text.", "guessedname": "PREVIOUS_BUTTON_TEXT", "guessedtype": "property"}, "PREV_PAGE": {"default": "\"yui-carousel-prev\"", "description": "The class name of the previous navigation link. This variable\nis not only used for styling, but also for identifying the link\nwithin the Carousel container.", "guessedname": "PREV_PAGE", "guessedtype": "property"}, "_pagination": {"private": "", "description": "The Carousel pagination structure.", "guessedname": "_pagination", "guessedtype": "property"}, "FIRST_NAV_DISABLED": {"default": "\"yui-carousel-first-button-disabled\"", "description": "The class name of a first disabled navigation button.", "guessedname": "FIRST_NAV_DISABLED", "guessedtype": "property"}, "FIRST_PAGE": {"default": "\"yui-carousel-nav-first-page\"", "description": "The class name of a first page element.", "guessedname": "FIRST_PAGE", "guessedtype": "property"}, "_navBtns": {"private": "", "description": "The Carousel navigation buttons.", "guessedname": "_navBtns", "guessedtype": "property"}, "CAROUSEL": {"default": "\"yui-carousel\"", "description": "The class name of the Carousel element.", "guessedname": "CAROUSEL", "guessedtype": "property"}, "_nextEnabled": {"private": "", "description": "Status of the next navigation item.", "guessedname": "_nextEnabled", "guessedtype": "property"}, "CAROUSEL_EL": {"default": "\"yui-carousel-element\"", "description": "The class name of the container of the items in the Carousel.", "guessedname": "CAROUSEL_EL", "guessedtype": "property"}, "_pages": {"private": "", "description": "The Carousel pages structure.\nThis is an object of the total number of pages and the current page.", "guessedname": "_pages", "guessedtype": "property"}, "NAVIGATION": {"default": "\"yui-carousel-nav\"", "description": "The navigation element container class name.", "guessedname": "NAVIGATION", "guessedtype": "property"}, "_carouselEl": {"private": "", "description": "The Carousel element.", "guessedname": "_carouselEl", "guessedtype": "property"}, "ROW": {"default": "\"yui-carousel-new-row\"", "description": "The class name of a row in a multirow Carousel.", "guessedname": "ROW", "guessedtype": "property"}, "NUM_VISIBLE": {"default": "3", "description": "The number of visible items in the Carousel.", "guessedname": "NUM_VISIBLE", "guessedtype": "property"}, "PAGER_ITEM": {"default": "\"yui-carousel-pager-item\"", "description": "The class name for an item in the pager UL or dropdown menu.", "guessedname": "PAGER_ITEM", "guessedtype": "property"}, "CONTAINER": {"default": "\"yui-carousel-container\"", "description": "The class name of the Carousel's container element.", "guessedname": "CONTAINER", "guessedtype": "property"}, "VERTICAL": {"default": "\"yui-carousel-vertical\"", "description": "The class name of a vertically oriented Carousel.", "guessedname": "VERTICAL", "guessedtype": "property"}, "WidgetName": {"guessedname": "WidgetName", "static": "", "description": "The widget name.", "private": "", "guessedtype": "property"}, "ITEM_LOADING": {"default": "The progress indicator (spinner) image CSS class", "description": "The element to be used as the progress indicator when the item\nis still being loaded.", "guessedname": "ITEM_LOADING", "guessedtype": "property"}, "VISIBLE": {"default": "\"yui-carousel-visible\"", "description": "The class name of a visible Carousel.", "guessedname": "VISIBLE", "guessedtype": "property"}, "_navEl": {"private": "", "description": "The Carousel navigation.", "guessedname": "_navEl", "guessedtype": "property"}, "_cols": {"private": "", "description": "Number of cols for a multirow carousel.", "guessedname": "_cols", "guessedtype": "property"}, "CONTENT": {"default": "\"yui-carousel-content\"", "description": "The class name of the Carousel's container element.", "guessedname": "CONTENT", "guessedtype": "property"}, "SELECTED_NAV": {"default": "\"yui-carousel-nav-page-selected\"", "description": "The class name of the selected paging navigation.", "guessedname": "SELECTED_NAV", "guessedtype": "property"}, "MAX_PAGER_BUTTONS": {"default": "5", "description": "The maximum number of pager buttons allowed beyond which the UI\nof the pager would be a drop-down of pages instead of buttons.", "guessedname": "MAX_PAGER_BUTTONS", "guessedtype": "property"}, "DISABLED": {"default": "\"yui-carousel-button-disabled\"", "description": "The class name of a disabled navigation button.", "guessedname": "DISABLED", "guessedtype": "property"}, "SELECTED_ITEM": {"default": "\"yui-carousel-item-selected\"", "description": "The class name of the selected item.", "guessedname": "SELECTED_ITEM", "guessedtype": "property"}, "ITEM_LOADING_CONTENT": {"default": "\"Loading\"", "description": "The content to be used as the progress indicator when the item\nis still being loaded.", "guessedname": "ITEM_LOADING_CONTENT", "guessedtype": "property"}, "FIRST_VISIBLE": {"default": "0", "description": "The offset of the first visible item in the Carousel.", "guessedname": "FIRST_VISIBLE", "guessedtype": "property"}, "_itemAttrCache": {"private": "", "description": "Cache the Carousel item attributes.", "guessedname": "_itemAttrCache", "guessedtype": "property"}, "PAGINATION": {"default": "\"yui-carousel-pagination\"", "description": "The class name for the pagination container", "guessedname": "PAGINATION", "guessedtype": "property"}, "PAGER_PREFIX_TEXT": {"default": "\"Go to page \"", "description": "The prefix text for the pager in case the UI is a drop-down.", "guessedname": "PAGER_PREFIX_TEXT", "guessedtype": "property"}, "PAGE_FOCUS": {"default": "\"yui-carousel-nav-page-focus\"", "description": "The class name of the focussed page navigation.  This class is\nspecifically used for the ugly focus handling in Opera.", "guessedname": "PAGE_FOCUS", "guessedtype": "property"}, "_clipEl": {"private": "", "description": "The Carousel clipping container element.", "guessedname": "_clipEl", "guessedtype": "property"}, "BUTTON": {"default": "\"yui-carousel-button\"", "description": "The class name of the Carousel navigation buttons.", "guessedname": "BUTTON", "guessedtype": "property"}, "_firstItem": {"private": "", "description": "The current first index of the Carousel.", "guessedname": "_firstItem", "guessedtype": "property"}, "_recomputeSize": {"private": "", "description": "Whether the Carousel size needs to be recomputed or not?", "guessedname": "_recomputeSize", "guessedtype": "property"}, "FIRST_NAV": {"default": "\" yui-carousel-first-button\"", "description": "The class name of the first Carousel navigation button.", "guessedname": "FIRST_NAV", "guessedtype": "property"}, "NAV_CONTAINER": {"default": "\"yui-carousel-buttons\"", "description": "The class name for the navigation container for prev/next.", "guessedname": "NAV_CONTAINER", "guessedtype": "property"}, "FOCUSSED_BUTTON": {"default": "\"yui-carousel-button-focus\"", "description": "The class name of the Carousel navigation button that has focus.", "guessedname": "FOCUSSED_BUTTON", "guessedtype": "property"}, "NEXT_NAV": {"default": "\" yui-carousel-next-button\"", "description": "The class name of the next Carousel navigation button.", "guessedname": "NEXT_NAV", "guessedtype": "property"}, "HORZ_MIN_WIDTH": {"default": "180", "description": "The minimum width of the horizontal Carousel container to support\nthe navigation buttons.", "guessedname": "HORZ_MIN_WIDTH", "guessedtype": "property"}}, "description": "The Carousel widget."}, "YAHOO.widget.TreeView": {"name": "YAHOO.widget.TreeView", "constructors": [{"params": [{"type": "string|HTMLElement", "name": "id", "description": " The id of the element, or the element itself that the tree will be inserted into.  \nExisting markup in this element, if valid, will be used to build the tree"}, {"type": "Array|Object|String", "name": "oConfig", "description": " (optional)  If present, it will be used to build the tree via method <a href=\"#method_buildTreeFromObject\">buildTreeFromObject</a>"}], "description": "Contains the tree view state data and the root node."}], "namespace": "YAHOO.widget", "module": "treeview", "events": {"enterKeyPressed": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that has the focus"}], "description": "Fires when the Enter key is pressed on a node that has the focus"}, "labelClick": {"deprecated": "use clickEvent or dblClickEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node clicked"}], "description": "Custom event that is fired when the text node label is clicked. \nThe node clicked is  provided as an argument", "type": "CustomEvent"}, "editorSaveEvent": {"type": "CustomEvent", "params": [{"type": "mixed", "name": "oArgs.newValue", "description": "  the new value just entered"}, {"type": "mixed", "name": "oArgs.oldValue", "description": "  the value originally in the tree"}, {"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": "  the node that has the focus"}], "description": "Fires when the user clicks on the ok button of a node editor"}, "collapse": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that is collapsing"}], "description": "Fires when a node is going to be collapsed.  Return false to stop\nthe collapse."}, "highlightEvent": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": "  the node that started the change in highlighting state"}], "description": "Custom event fired when the highlight of a node changes.\nThe node that triggered the change is provided as an argument:\nThe status of the highlight can be checked in \n<a href=\"YAHOO.widget.Node.html#property_highlightState\">nodeRef.highlightState</a>.\nDepending on <a href=\"YAHOO.widget.Node.html#property_propagateHighlight\">nodeRef.propagateHighlight</a>, other nodes might have changed"}, "dblClickEvent": {"type": "CustomEvent", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "   The event object"}, {"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": "  node the node that was clicked"}], "description": "Fires when the label in a TextNode or MenuNode or content in an HTMLNode receives a double Click", "guessedname": "self", "guessedtype": "property"}, "focusChanged": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "oArgs.oldNode", "description": "   Node that had the focus or null if none"}, {"type": "YAHOO.widget.Node", "name": "oArgs.newNode", "description": "  Node that receives the focus or null if none"}], "description": "Fires when the focus receives the focus, when it changes from a Node \nto another Node or when it is completely lost (blurred)"}, "collapseComplete": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that was collapsed"}], "description": "Fires after a node is successfully collapsed.  This event will not fire\nif the \"collapse\" event was cancelled."}, "editorCancelEvent": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that has the focus"}], "description": "Fires when the user clicks on the cancel button of a node editor"}, "animComplete": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": " the node that is expanding/collapsing"}, {"type": "String", "name": "oArgs.type", "description": " the type of animation (\"expand\" or \"collapse\")"}], "description": "When animation is enabled, this event fires when the animation\ncompletes"}, "expandComplete": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that was expanded"}], "description": "Fires after a node is successfully expanded.  This event will not fire\nif the \"expand\" event was cancelled."}, "animStart": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": " the node that is expanding/collapsing"}, {"type": "String", "name": "oArgs.type", "description": " the type of animation (\"expand\" or \"collapse\")"}], "description": "When animation is enabled, this event fires when the animation\nstarts"}, "clickEvent": {"type": "CustomEvent", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "   The event object"}, {"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": "  node the node that was clicked"}], "description": "Fires when the label in a TextNode or MenuNode or content in an HTMLNode receives a Click.\nThe listener may return false to cancel toggling and focusing on the node."}, "expand": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that is expanding"}], "description": "Fires when a node is going to be expanded.  Return false to stop\nthe collapse."}}, "guessedname": "TreeView", "methods": {"animateExpand": {"return": {"type": "boolean", "description": "true if animation could be invoked, false otherwise"}, "params": [{"type": "HTMLElement", "name": "el", "description": "  the element to animate"}, {"type": "YAHOO.util.Node", "name": "node", "description": "  the node that was expanded"}], "description": "Perform the expand animation if configured, or just show the\nelement if not configured or too many animations are in progress", "guessedname": "animateExpand", "guessedtype": "function"}, "setDynamicLoad": {"params": [{"type": "function", "name": "fnDataLoader", "description": " the function that will be called to get the data"}, {"type": "int", "name": "iconMode", "description": "  configures the icon that is displayed when a dynamic\nload node is expanded the first time without children.  By default, the \n\"collapse\" icon will be used.  If set to 1, the leaf node icon will be\ndisplayed."}], "description": "Configures this tree to dynamically load all child data", "guessedname": "setDynamicLoad", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the tree"}, "description": "TreeView instance toString", "guessedname": "toString", "guessedtype": "function"}, "render": {"description": "Renders the tree boilerplate and visible nodes", "guessedname": "render", "guessedtype": "function"}, "getNodeByIndex": {"return": {"type": "Node", "description": "the node with index=nodeIndex, null if no match"}, "params": [{"type": "int", "name": "nodeIndex", "description": " the index of the node wanted"}], "description": "Returns a node in the tree that has the specified index (this index\nis created internally, so this function probably will only be used\nin html generated for a given node.)", "guessedname": "getNodeByIndex", "guessedtype": "function"}, "_onMouseOverEvent": {"private": "", "description": "Event listener for mouse over events", "guessedname": "_onMouseOverEvent", "guessedtype": "function"}, "collapseComplete": {"description": "Function executed when the collapse animation completes", "guessedname": "collapseComplete", "guessedtype": "function"}, "setNodesProperty": {"params": [{"type": "string", "name": "name", "description": "  Name of the property to be set"}, {"type": "any", "name": "value", "description": "  value to be set"}, {"type": "boolean", "name": "refresh", "description": "  if present and true, it does a refresh"}], "description": "Sets the value of a property for all loaded nodes in the tree.", "guessedname": "setNodesProperty", "guessedtype": "function"}, "_onDblClickEvent": {"private": "", "description": "Event listener for double-click events", "guessedname": "_onDblClickEvent", "guessedtype": "function"}, "regNode": {"guessedname": "regNode", "params": [{"type": "Node", "name": "node", "description": "  the node to register"}], "description": "Nodes register themselves with the tree instance when they are created.", "private": "", "guessedtype": "function"}, "onEventToggleHighlight": {"return": {"type": "false", "description": "Always cancels the default action for the event"}, "params": [{"type": "any", "name": "oArgs", "description": "  it takes the arguments of any of the events mentioned above"}], "description": "Event listener to toggle node highlight.\nCan be assigned as listener to clickEvent, dblClickEvent and enterKeyPressed.\nIt returns false to prevent the default action.", "guessedname": "onEventToggleHighlight", "guessedtype": "function"}, "onExpand": {"deprecated": "use treeobj.subscribe(\"expand\") instead", "params": [{"type": "Node", "name": "node", "description": "  the node that was expanded"}], "description": "Abstract method that is executed when a node is expanded", "guessedname": "onExpand", "guessedtype": "function"}, "_initEditor": {"guessedname": "_initEditor", "description": "Entry point for initializing the editing plug-in.  \nTreeView will call this method on initializing if it exists", "private": "", "guessedtype": "function"}, "setExpandAnim": {"params": [{"type": "string", "name": "type", "description": " the type of animation (acceptable values defined \nin YAHOO.widget.TVAnim)"}], "description": "Sets up the animation for expanding children", "guessedname": "setExpandAnim", "guessedtype": "function"}, "YAHOO.widget.TreeView.getTree": {"return": {"type": "TreeView", "description": "the tree instance requested, null if not found."}, "description": "Global method for getting a tree by its id.  Used in the generated\ntree html.", "static": "", "guessedname": "getTree", "guessedtype": "function", "params": [{"type": "String", "name": "treeId", "description": "  the id of the tree instance"}]}, "_onMouseOutEvent": {"private": "", "description": "Event listener for mouse out events", "guessedname": "_onMouseOutEvent", "guessedtype": "function"}, "removeNode": {"return": {"type": "boolean", "description": "False is there was a problem, true otherwise."}, "params": [{"type": "Node", "name": "node", "description": " to remove"}, {"type": "boolean", "name": "autoRefresh", "description": " automatically refreshes branch if true"}], "description": "Removes the node and its children, and optionally refreshes the \nbranch of the tree that was affected.", "guessedname": "removeNode", "guessedtype": "function"}, "_getEventTargetTdEl": {"private": "", "description": "Returns the TD element where the event has occurred", "guessedname": "_getEventTargetTdEl", "guessedtype": "function"}, "popNode": {"params": [{"type": "Node", "name": "node", "description": " to remove"}], "description": "Removes the node from the tree, preserving the child collection \nto make it possible to insert the branch into another part of the \ntree, or another tree.", "guessedname": "popNode", "guessedtype": "function"}, "onCollapse": {"deprecated": "use treeobj.subscribe(\"collapse\") instead", "params": [{"type": "Node", "name": "node", "description": "  the node that was collapsed."}], "description": "Abstract method that is executed when a node is collapsed.", "guessedname": "onCollapse", "guessedtype": "function"}, "init": {"guessedname": "init", "parm": "{string|HTMLElement} id the id of the element that will hold the tree", "description": "Initializes the tree", "private": "", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": "the host element"}, "description": "Returns the tree's host element", "guessedname": "getEl", "guessedtype": "function"}, "removeChildren": {"params": [{"type": "Node", "name": "node", "description": " the node to purge"}], "description": "Deletes this nodes child collection, recursively.  Also collapses\nthe node, and resets the dynamic load flag.  The primary use for\nthis method is to purge a node and allow it to fetch its data\ndynamically again.", "guessedname": "removeChildren", "guessedtype": "function"}, "_onKeyDownEvent": {"private": "", "description": "Event listener for key down events", "guessedname": "_onKeyDownEvent", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire TreeView instance and related objects, removes attached\nevent listeners, and clears out DOM elements inside the container. After\ncalling this method, the instance reference should be expliclitly nulled by\nimplementer, as in myDataTable = null. Use with caution!", "guessedname": "destroy", "guessedtype": "function"}, "animateCollapse": {"return": {"type": "boolean", "description": "true if animation could be invoked, false otherwise"}, "params": [{"type": "HTMLElement", "name": "el", "description": "  the element to animate"}, {"type": "YAHOO.util.Node", "name": "node", "description": "  the node that was expanded"}], "description": "Perform the collapse animation if configured, or just show the\nelement if not configured or too many animations are in progress", "guessedname": "animateCollapse", "guessedtype": "function"}, "getHighlightedNode": {"return": {"type": "YAHOO.widget.Node", "description": "a node reference or null"}, "description": "When in singleNodeHighlight it returns the node highlighted\nor null if none.  Returns null if singleNodeHighlight is false.", "guessedname": "getHighlightedNode", "guessedtype": "function"}, "expandAll": {"description": "Expands all child nodes.  Note: this conflicts with the \"multiExpand\"\nnode property.  If expand all is called in a tree with nodes that\ndo not allow multiple siblings to be displayed, only the last sibling\nwill be expanded.", "guessedname": "expandAll", "guessedtype": "function"}, "getNodeCount": {"return": {"type": "int", "description": "number of nodes in the tree"}, "description": "Count of nodes in tree", "guessedname": "getNodeCount", "guessedtype": "function"}, "draw": {"deprecated": "Use render instead", "description": "Renders the tree boilerplate and visible nodes.\nAlias for render", "guessedname": "draw", "guessedtype": "property"}, "getTreeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if any node is defined as dynamic"}, "description": "Returns an object which could be used to rebuild the tree.\nIt can be passed to the tree constructor to reproduce the same tree.\nIt will return false if any node loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getTreeDefinition", "guessedtype": "function"}, "YAHOO.widget.TreeView.getNode": {"return": {"type": "Node", "description": "the node instance requested, null if not found"}, "description": "Global method for getting a node by its id.  Used in the generated\ntree html.", "static": "", "guessedname": "getNode", "guessedtype": "function", "params": [{"type": "String", "name": "treeId", "description": "  the id of the tree instance"}, {"type": "String", "name": "nodeIndex", "description": "  the index of the node to return"}]}, "getNodeByProperty": {"return": {"type": "Node", "description": "the matching node, null if no match"}, "params": [{"type": "object", "name": "property", "description": " the property to search (usually a string)"}, {"type": "object", "name": "value", "description": " the value we want to find (usuall an int or string)"}], "description": "Returns a node that has a matching property and value in the data\nobject that was passed into its constructor.", "guessedname": "getNodeByProperty", "guessedtype": "function"}, "getNodesBy": {"return": {"type": "Array", "description": "the matching collection of nodes, null if no match"}, "params": [{"type": "function", "name": "a", "description": " boolean function that receives a Node instance and returns true to add the node to the results list"}], "description": "Returns a collection of nodes that have passed the test function\npassed as its only argument.  \nThe function will receive a reference to each node to be tested.", "guessedname": "getNodesBy", "guessedtype": "function"}, "_removeChildren_animComplete": {"guessedname": "_removeChildren_animComplete", "params": [{"type": "", "name": "o", "description": " the custom event payload"}], "description": "wait until the animation is complete before deleting \nto avoid javascript errors", "private": "", "guessedtype": "function"}, "_closeEditor": {"guessedname": "_closeEditor", "params": [{"type": "Boolean", "name": "save", "description": "  true if the edited value is to be saved, false if discarded"}], "description": "Method to be called when the inline editing is finished and the editor is to be closed", "private": "", "guessedtype": "function"}, "getNodesByProperty": {"return": {"type": "Array", "description": "the matching collection of nodes, null if no match"}, "params": [{"type": "object", "name": "property", "description": " the property to search (usually a string)"}, {"type": "object", "name": "value", "description": " the value we want to find (usuall an int or string)"}], "description": "Returns a collection of nodes that have a matching property \nand value in the data object that was passed into its constructor.", "guessedname": "getNodesByProperty", "guessedtype": "function"}, "onEventEditNode": {"params": [{"type": "object", "name": "oArgs", "description": "  Object passed as arguments to TreeView event listeners"}], "description": "Method to be associated with an event (clickEvent, dblClickEvent or enterKeyPressed) to pop up the contents editor\nIt calls the corresponding node editNode method.", "guessedname": "onEventEditNode", "guessedtype": "function"}, "_deleteNode": {"private": "", "description": "Deletes the node and recurses children", "guessedname": "_deleteNode", "guessedtype": "function"}, "getRoot": {"return": {"type": "Node", "description": "the root node"}, "description": "Returns the root node of this tree", "guessedname": "getRoot", "guessedtype": "function"}, "_onClickEvent": {"private": "", "description": "Event listener for click events", "guessedname": "_onClickEvent", "guessedtype": "function"}, "getNodeByElement": {"return": {"type": "YAHOO.widget.Node", "description": "a node reference or null"}, "params": [{"type": "HTMLElement", "name": "el", "description": "  the element to test"}], "description": "Returns the treeview node reference for an ancestor element\nof the node, or null if it is not contained within any node\nin this tree.", "guessedname": "getNodeByElement", "guessedtype": "function"}, "setCollapseAnim": {"params": [{"type": "string", "name": "type", "description": " of animation (acceptable values defined in \nYAHOO.widget.TVAnim)"}], "description": "Sets up the animation for collapsing children", "guessedname": "setCollapseAnim", "guessedtype": "function"}, "buildTreeFromObject": {"params": [{"type": "Array|Object|String", "name": "oConfig", "description": "   array containing a full description of the tree.\nAn object or a string will be turned into an array with the given object or string as its only element."}], "description": "Builds the TreeView from an object.  \nThis is the method called by the constructor to build the tree when it has a second argument.\nA tree can be described by an array of objects, each object corresponding to a node.\nNode descriptions may contain values for any property of a node plus the following extra properties: <ul>\n<li>type:  can be one of the following:<ul>\n<li> A shortname for a node type (<code>'text','menu','html'</code>) </li>\n<li>The name of a Node class under YAHOO.widget (<code>'TextNode', 'MenuNode', 'DateNode'</code>, etc) </li>\n<li>a reference to an actual class: <code>YAHOO.widget.DateNode</code></li>\n</ul></li>\n<li>children: an array containing further node definitions</li></ul>\nA string instead of an object will produce a node of type 'text' with the given string as its label.", "guessedname": "buildTreeFromObject", "guessedtype": "function"}, "buildTreeFromMarkup": {"params": [{"type": "string|HTMLElement", "name": "id", "description": "  The id of the element that contains the markup or a reference to it."}], "description": "Builds the TreeView from existing markup.   Markup should consist of <UL> or <OL> elements containing <LI> elements.  \nEach <LI> can have one element used as label and a second optional element which is to be a <UL> or <OL>\ncontaining nested nodes.\nDepending on what the first element of the <LI> element is, the following Nodes will be created: <ul>\n<li>plain text:  a regular TextNode</li>\n<li>anchor <A>: a TextNode with its <code>href</code> and <code>target</code> taken from the anchor</li>\n<li>anything else: an HTMLNode</li></ul>\nOnly the first  outermost (un-)ordered list in the markup and its children will be parsed.\nNodes will be collapsed unless  an  <LI>  tag has a className called 'expanded'.\nAll other className attributes will be copied over to the Node className property.\nIf the <LI> element contains an attribute called <code>yuiConfig</code>, its contents should be a JSON-encoded object\nas the one used in method <a href=\"#method_buildTreeFromObject\">buildTreeFromObject</a>.", "guessedname": "buildTreeFromMarkup", "guessedtype": "function"}, "_nodeEditing": {"return": {"type": "Boolean", "description": "true to indicate that the node is editable and prevent any further bubbling of the click."}, "description": "Entry point of the editing plug-in.  \nTreeView will call this method if it exists when a node label is clicked", "private": "", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": "  the node to be edited"}], "guessedname": "_nodeEditing", "guessedtype": "function"}, "expandComplete": {"description": "Function executed when the expand animation completes", "guessedname": "expandComplete", "guessedtype": "function"}, "collapseAll": {"description": "Collapses all expanded child nodes in the entire tree.", "guessedname": "collapseAll", "guessedtype": "function"}, "_destroyEditor": {"guessedname": "_destroyEditor", "description": "Entry point for TreeView's destroy method to destroy whatever the editing plug-in has created", "private": "", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "TreeView.js", "guessedtype": "function", "shortname": "TreeView", "properties": {"_dblClickTimer": {"guessedname": "_dblClickTimer", "type": "window.timer object", "description": "Stores the timer used to check for double clicks", "private": "", "guessedtype": "property"}, "_currentlyHighlighted": {"description": "A reference to the Node that is currently highlighted.\nIt is only meaningful if singleNodeHighlight is enabled", "default": "null", "private": "", "guessedname": "_currentlyHighlighted", "guessedtype": "property", "type": "YAHOO.widget.Node"}, "locked": {"type": "boolean", "description": "We lock the tree control while waiting for the dynamic loader to return", "guessedname": "locked", "guessedtype": "property"}, "YAHOO.widget.TreeView.nodeCount": {"type": "int", "static": "", "description": "Running count of all nodes created in all trees.  This is \nused to provide unique identifies for all nodes.  Deleting\nnodes does not change the nodeCount.", "guessedname": "nodeCount", "guessedtype": "property"}, "_expandAnim": {"guessedname": "_expandAnim", "type": "string", "description": "The animation to use for expanding children, if any", "private": "", "guessedtype": "property"}, "_collapseAnim": {"guessedname": "_collapseAnim", "type": "string", "description": "The animation to use for collapsing children, if any", "private": "", "guessedtype": "property"}, "editorData": {"static": "", "description": "An object to store information used for in-line editing\nfor all Nodes of all TreeViews. It contains:\n<ul>\n<li>active {boolean}, whether there is an active cell editor </li>\n<li>whoHasIt {YAHOO.widget.TreeView} TreeView instance that is currently using the editor</li>\n<li>nodeType {string} value of static Node._type property, allows reuse of input element if node is of the same type.</li>\n<li>editorPanel {HTMLelement (<div>)} element holding the in-line editor</li>\n<li>inputContainer {HTMLelement (<div>)} element which will hold the type-specific input element(s) to be filled by the fillEditorContainer method</li>\n<li>buttonsContainer {HTMLelement (<div>)} element which holds the <button> elements for Ok/Cancel.  If you don't want any of the buttons, hide it via CSS styles, don't destroy it</li>\n<li>node {YAHOO.widget.Node} reference to the Node being edited</li>\n<li>saveOnEnter {boolean}, whether the Enter key should be accepted as a Save command (Esc. is always taken as Cancel), disable for multi-line input elements </li>\n<li>oldValue {any}  value before editing</li>\n</ul>\nEditors are free to use this object to store additional data.", "guessedname": "editorData", "guessedtype": "property"}, "_el": {"guessedname": "_el", "type": "HTMLelement", "description": "The host element for this tree", "private": "", "guessedtype": "property"}, "currentFocus": {"type": "YAHOO.widget.Node", "description": "A reference to the Node currently having the focus or null if none.", "guessedname": "currentFocus", "guessedtype": "property"}, "YAHOO.widget.TreeView.trees": {"description": "Global cache of tree instances", "private": "", "static": "", "guessedname": "trees", "guessedtype": "property", "type": "Array"}, "_nodes": {"guessedname": "_nodes", "type": "Node[]", "description": "Flat collection of all nodes in this tree.  This is a sparse\narray, so the length property can't be relied upon for a\nnode count for the tree.", "private": "", "guessedtype": "property"}, "_animCount": {"guessedname": "_animCount", "type": "int", "description": "The current number of animations that are executing", "private": "", "guessedtype": "property"}, "validator": {"default": "null", "type": "function", "description": "Validator function for edited data, called from the TreeView instance scope, \nreceives the arguments (newValue, oldValue, nodeInstance) \nand returns either the validated (or type-converted) value or undefined. \nAn undefined return will prevent the editor from closing", "guessedname": "validator", "guessedtype": "property"}, "_hasDblClickSubscriber": {"guessedname": "_hasDblClickSubscriber", "type": "boolean", "description": "Whether there is any subscriber to dblClickEvent", "private": "", "guessedtype": "property"}, "maxAnim": {"type": "int", "description": "The maximum number of animations to run at one time.", "guessedname": "maxAnim", "guessedtype": "property"}, "singleNodeHighlight": {"default": "false", "type": "boolean", "description": "If true, only one Node can be highlighted at a time", "guessedname": "singleNodeHighlight", "guessedtype": "property"}, "id": {"type": "String", "description": "The id of tree container element", "guessedname": "id", "guessedtype": "property"}, "TreeView.FOCUS_CLASS_NAME": {"description": "Class name assigned to elements that have the focus", "default": "\"ygtvfocus\"", "static": "", "guessedname": "FOCUS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Contains the tree view state data and the root node."}, "YAHOO.util.ScriptNodeDataSource": {"name": "YAHOO.util.ScriptNodeDataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "ScriptNodeDataSource class for accessing remote data via the YUI Get Utility."}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "ScriptNodeDataSource", "methods": {"doBeforeGetScriptNode": {"return": {"type": "String", "description": "URI to the script"}, "params": [{"type": "String", "name": "URI", "description": " to the script"}], "description": "Overridable method gives implementers access to modify the URI before the dynamic\nscript node gets inserted. Implementers should take care not to return an\ninvalid URI.", "guessedname": "doBeforeGetScriptNode", "guessedtype": "function"}, "makeConnection": {"return": {"type": "Number", "description": "Transaction ID."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Overriding method passes query to Get Utility. The returned\nresponse is then forwarded to the handleResponse function.", "guessedname": "makeConnection", "guessedtype": "function"}, "generateRequestCallback": {"return": {"type": "String", "description": "String fragment that gets appended to script URI that \nspecifies the callback function"}, "description": "Creates a request callback that gets appended to the script URI. Implementers\ncan customize this string to match their server's query syntax.", "guessedname": "generateRequestCallback", "guessedtype": "function"}}, "extends": "YAHOO.util.DataSourceBase", "superclass": "YAHOO.util.DataSourceBase", "file": "DataSource.js", "guessedtype": "function", "shortname": "ScriptNodeDataSource", "properties": {"_nPending": {"description": "Counter for pending requests. When this is 0, it is safe to purge callbacks\narray.", "private": "", "static": "", "guessedname": "_nPending", "guessedtype": "property", "type": "Number"}, "scriptCallbackParam": {"default": "\"callback\"", "type": "String", "description": "Callback string parameter name sent to the remote script. By default,\nrequests are sent to\n<URI>?<scriptCallbackParam>=callback", "guessedname": "scriptCallbackParam", "guessedtype": "property"}, "getUtility": {"default": "YAHOO.util.Get", "type": "Object", "description": "Alias to YUI Get Utility, to allow implementers to use a custom class.", "guessedname": "getUtility", "guessedtype": "property"}, "_nId": {"description": "Unique ID to track requests.", "private": "", "static": "", "guessedname": "_nId", "guessedtype": "property", "type": "Number"}, "callbacks": {"type": "Function[]", "static": "", "description": "Global array of callback functions, one for each request sent.", "guessedname": "callbacks", "guessedtype": "property"}, "asyncMode": {"default": "\"allowAll\"", "type": "String", "description": "Defines request/response management in the following manner:\n<dl>\n<!--<dt>queueRequests</dt>\n<dd>If a request is already in progress, wait until response is returned before sending the next request.</dd>\n<dt>cancelStaleRequests</dt>\n<dd>If a request is already in progress, cancel it before sending the next request.</dd>-->\n<dt>ignoreStaleResponses</dt>\n<dd>Send all requests, but handle only the response for the most recently sent request.</dd>\n<dt>allowAll</dt>\n<dd>Send all requests and handle all responses.</dd>\n</dl>", "guessedname": "asyncMode", "guessedtype": "property"}}, "description": "ScriptNodeDataSource class for accessing remote data via the YUI Get Utility."}, "YAHOO.util.Anim": {"name": "YAHOO.util.Anim", "constructors": [{"params": [{"type": "String | HTMLElement", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.  \nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.  \nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").  \nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Base animation class that provides the interface for building animated effects.\n<p>Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);</p>"}], "namespace": "YAHOO.util", "module": "animation", "events": {"onComplete": {"description": "Custom event that fires when animation ends\nListen via subscribe method (e.g. myAnim.onComplete.subscribe(someFunction)", "guessedname": "onComplete", "guessedtype": "property"}, "onStart": {"description": "Custom event that fires when animation begins\nListen via subscribe method (e.g. myAnim.onStart.subscribe(someFunction)", "guessedname": "onStart", "guessedtype": "property"}, "onTween": {"description": "Custom event that fires between each frame\nListen via subscribe method (e.g. myAnim.onTween.subscribe(someFunction)", "guessedname": "onTween", "guessedtype": "property"}}, "guessedname": "Anim", "methods": {"isAnimated": {"return": {"type": "Boolean", "description": "current value of isAnimated."}, "description": "Checks whether the element is currently animated.", "guessedname": "isAnimated", "guessedtype": "function"}, "setEl": {"description": "Changes the animated element", "guessedname": "setEl", "guessedtype": "function"}, "getAttribute": {"return": {"type": "Number", "description": "val The current value of the attribute."}, "params": [{"type": "String", "name": "attr", "description": " The name of the attribute."}], "description": "Returns current value of the attribute.", "guessedname": "getAttribute", "guessedtype": "function"}, "setAttribute": {"params": [{"type": "String", "name": "attr", "description": " The name of the attribute."}, {"type": "Number", "name": "val", "description": " The value to be applied to the attribute."}, {"type": "String", "name": "unit", "description": " The unit ('px', '%', etc.) of the value."}], "description": "Applies a value to an attribute.", "guessedname": "setAttribute", "guessedtype": "function"}, "onTween": {"private": "", "description": "Feeds the starting and ending values for each animated attribute to doMethod once per frame, then applies the resulting value to the attribute(s).", "guessedname": "onTween", "guessedtype": "function"}, "doMethod": {"return": {"type": "Number", "description": "The Value to be applied to the attribute."}, "params": [{"type": "String", "name": "attr", "description": " The name of the attribute."}, {"type": "Number", "name": "start", "description": " The value this attribute should start from for this animation."}, {"type": "Number", "name": "end", "description": "  The value this attribute should end at for this animation."}], "description": "Returns the value computed by the animation's \"method\".", "guessedname": "doMethod", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": ""}, "description": "Returns a reference to the animated element.", "guessedname": "getEl", "guessedtype": "function"}, "setRuntimeAttribute": {"guessedname": "setRuntimeAttribute", "params": [{"type": "Object", "name": "attr", "description": " The attribute object"}], "description": "Sets the actual values to be used during the animation.  Should only be needed for subclass use.", "private": "", "guessedtype": "function"}, "stop": {"params": [{"type": "Boolean", "name": "finish", "description": " (optional) If true, animation will jump to final frame."}], "description": "Stops the animation.  Normally called by AnimMgr when animation completes.", "guessedname": "stop", "guessedtype": "function"}, "init": {"params": [{"type": "String | HTMLElement", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.  \nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.  \nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").  \nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Constructor for Anim instance.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Provides a readable name for the Anim instance.", "guessedname": "toString", "guessedtype": "function"}, "getDefaultUnit": {"return": {"type": "String", "description": "The default unit to be used."}, "params": [{"type": "attr", "name": "attr", "description": " The name of the attribute."}], "description": "Returns the unit to use when none is supplied.", "guessedname": "getDefaultUnit", "guessedtype": "function"}, "animate": {"description": "Starts the animation by registering it with the animation manager.", "guessedname": "animate", "guessedtype": "function"}, "getStartTime": {"return": {"type": "Date", "description": "current value of startTime."}, "description": "Returns the animation start time.", "guessedname": "getStartTime", "guessedtype": "function"}}, "file": "Anim.js", "guessedtype": "function", "shortname": "Anim", "requires": "YAHOO.util.AnimMgr", "properties": {"isAnimated": {"guessedname": "isAnimated", "type": "Boolean", "description": "Whether or not the animation is running.", "private": "", "guessedtype": "property"}, "_onTween": {"private": "", "description": "Custom event that fires after onTween", "guessedname": "_onTween", "guessedtype": "property"}, "el": {"guessedname": "el", "type": "HTMLElement", "description": "The element to be animated.", "private": "", "guessedtype": "property"}, "actualFrames": {"guessedname": "actualFrames", "type": "Int", "description": "The number of frames this animation was able to execute.", "private": "", "guessedtype": "property"}, "useSeconds": {"type": "Boolean", "description": "Whether or not the duration should be treated as seconds.\nDefaults to true.", "guessedname": "useSeconds", "guessedtype": "property"}, "totalFrames": {"type": "Int", "description": "The total number of frames to be executed.\nIn time-based animations, this is used by AnimMgr to ensure the animation finishes on time.", "guessedname": "totalFrames", "guessedtype": "property"}, "_onStart": {"private": "", "description": "Custom event that fires after onStart, useful in subclassing", "guessedname": "_onStart", "guessedtype": "property"}, "_onComplete": {"private": "", "description": "Custom event that fires after onComplete", "guessedname": "_onComplete", "guessedtype": "property"}, "startTime": {"guessedname": "startTime", "type": "Date", "description": "A Date object that is created when the animation begins.", "private": "", "guessedtype": "property"}, "duration": {"type": "Number", "description": "The length of the animation.  Defaults to \"1\" (second).", "guessedname": "duration", "guessedtype": "property"}, "attributes": {"type": "Object", "description": "The collection of attributes to be animated.  \nEach attribute must have at least a \"to\" or \"by\" defined in order to animate.  \nIf \"to\" is supplied, the animation will end with the attribute at that value.  \nIf \"by\" is supplied, the animation will end at that value plus its starting value. \nIf both are supplied, \"to\" is used, and \"by\" is ignored. \nOptional additional member include \"from\" (the value the attribute should start animating from, defaults to current value), and \"unit\" (the units to apply to the values).", "guessedname": "attributes", "guessedtype": "property"}, "method": {"type": "Function", "description": "The method that will provide values to the attribute(s) during the animation. \nDefaults to \"YAHOO.util.Easing.easeNone\".", "guessedname": "method", "guessedtype": "property"}, "currentFrame": {"type": "Int", "description": "The location of the current animation on the timeline.\nIn time-based animations, this is used by AnimMgr to ensure the animation finishes on time.", "guessedname": "currentFrame", "guessedtype": "property"}}, "description": "Base animation class that provides the interface for building animated effects.\n<p>Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);</p>"}, "YAHOO.util.Sort": {"name": "YAHOO.util.Sort", "namespace": "YAHOO.util", "module": "datatable", "guessedname": "Sort", "methods": {"compare": {"params": [{"type": "Object", "name": "a", "description": "  First sort argument."}, {"type": "Object", "name": "b", "description": "  Second sort argument."}, {"type": "Boolean", "name": "desc", "description": "  True if sort direction is descending, false if\nsort direction is ascending."}], "description": "Comparator function for simple case-insensitive string sorting.", "guessedname": "compare", "guessedtype": "function"}}, "static": "", "file": "ColumnSet.js", "guessedtype": "property", "shortname": "Sort", "description": "Sort static utility to support Column sorting."}, "YAHOO.util.UserAction": {"name": "YAHOO.util.UserAction", "namespace": "YAHOO.util", "module": "event-simulate", "guessedname": "UserAction", "methods": {"fireKeyEvent": {"description": "Fires an event that normally would be fired by the keyboard (keyup,\nkeydown, keypress). Make sure to specify either keyCode or charCode as\nan option.", "private": "", "static": "", "guessedname": "fireKeyEvent", "guessedtype": "function", "params": [{"type": "String", "name": "type", "description": " The type of event (\"keyup\", \"keydown\" or \"keypress\")."}, {"type": "HTMLElement", "name": "target", "description": " The target of the event."}, {"type": "Object", "name": "options", "description": " Options for the event. Either keyCode or charCode\nare required."}]}, "mouseEvent": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to click on."}, {"type": "String", "name": "type", "description": " The type of event to fire. This can be any one of\nthe following: click, dblclick, mousedown, mouseup, mouseout,\nmouseover, and mousemove."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mouse event on a particular element.", "guessedname": "fireMouseEvent", "guessedtype": "function"}, "keypress": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a keypress on a particular element.", "guessedname": "keypress", "guessedtype": "function"}, "keyup": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a keyup event on a particular element.", "guessedname": "keyup", "guessedtype": "function"}, "mouseup": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mouseup on a particular element.", "guessedname": "mouseup", "guessedtype": "function"}, "keydown": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a keydown event on a particular element.", "guessedname": "keydown", "guessedtype": "function"}, "mousemove": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mousemove on a particular element.", "guessedname": "mousemove", "guessedtype": "function"}, "simulateMouseEvent": {"description": "Simulates a mouse event using the given event information to populate\nthe generated event object. This method does browser-equalizing\ncalculations to account for differences in the DOM and IE event models\nas well as different browser quirks.", "private": "", "static": "", "guessedname": "simulateMouseEvent", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "target", "description": " The target of the given event."}, {"type": "String", "name": "type", "description": " The type of event to fire. This can be any one of\nthe following: click, dblclick, mousedown, mouseup, mouseout,\nmouseover, and mousemove."}, {"type": "Boolean", "name": "bubbles", "description": " (Optional) Indicates if the event can be\nbubbled up. DOM Level 2 specifies that all mouse events bubble by\ndefault. The default is true."}, {"type": "Boolean", "name": "cancelable", "description": " (Optional) Indicates if the event can be\ncanceled using preventDefault(). DOM Level 2 specifies that all\nmouse events except mousemove can be cancelled. The default \nis true for all events except mousemove, for which the default \nis false."}, {"type": "Window", "name": "view", "description": " (Optional) The view containing the target. This is\ntypically the window object. The default is window."}, {"type": "int", "name": "detail", "description": " (Optional) The number of times the mouse button has\nbeen used. The default value is 1."}, {"type": "int", "name": "screenX", "description": " (Optional) The x-coordinate on the screen at which\npoint the event occured. The default is 0."}, {"type": "int", "name": "screenY", "description": " (Optional) The y-coordinate on the screen at which\npoint the event occured. The default is 0."}, {"type": "int", "name": "clientX", "description": " (Optional) The x-coordinate on the client at which\npoint the event occured. The default is 0."}, {"type": "int", "name": "clientY", "description": " (Optional) The y-coordinate on the client at which\npoint the event occured. The default is 0."}, {"type": "Boolean", "name": "ctrlKey", "description": " (Optional) Indicates if one of the CTRL keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "altKey", "description": " (Optional) Indicates if one of the ALT keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "shiftKey", "description": " (Optional) Indicates if one of the SHIFT keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "metaKey", "description": " (Optional) Indicates if one of the META keys\nis pressed while the event is firing. The default is false."}, {"type": "int", "name": "button", "description": " (Optional) The button being pressed while the event\nis executing. The value should be 0 for the primary mouse button\n(typically the left button), 1 for the terciary mouse button\n(typically the middle button), and 2 for the secondary mouse button\n(typically the right button). The default is 0."}, {"type": "HTMLElement", "name": "relatedTarget", "description": " (Optional) For mouseout events,\nthis is the element that the mouse has moved to. For mouseover\nevents, this is the element that the mouse has moved from. This\nargument is ignored for all other events. The default is null."}]}, "mousedown": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mousedown on a particular element.", "guessedname": "mousedown", "guessedtype": "function"}, "mouseout": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mouseout event on a particular element. Use \"relatedTarget\"\non the options object to specify where the mouse moved to.\nQuirks: Firefox less than 2.0 doesn't set relatedTarget properly, so\ntoElement is assigned in its place. IE doesn't allow toElement to be\nbe assigned, so relatedTarget is assigned in its place. Both of these\nconcessions allow YAHOO.util.Event.getRelatedTarget() to work correctly\nin both browsers.", "guessedname": "mouseout", "guessedtype": "function"}, "simulateKeyEvent": {"description": "Simulates a key event using the given event information to populate\nthe generated event object. This method does browser-equalizing\ncalculations to account for differences in the DOM and IE event models\nas well as different browser quirks. Note: keydown causes Safari 2.x to\ncrash.", "private": "", "static": "", "guessedname": "simulateKeyEvent", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "target", "description": " The target of the given event."}, {"type": "String", "name": "type", "description": " The type of event to fire. This can be any one of\nthe following: keyup, keydown, and keypress."}, {"type": "Boolean", "name": "bubbles", "description": " (Optional) Indicates if the event can be\nbubbled up. DOM Level 3 specifies that all key events bubble by\ndefault. The default is true."}, {"type": "Boolean", "name": "cancelable", "description": " (Optional) Indicates if the event can be\ncanceled using preventDefault(). DOM Level 3 specifies that all\nkey events can be cancelled. The default \nis true."}, {"type": "Window", "name": "view", "description": " (Optional) The view containing the target. This is\ntypically the window object. The default is window."}, {"type": "Boolean", "name": "ctrlKey", "description": " (Optional) Indicates if one of the CTRL keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "altKey", "description": " (Optional) Indicates if one of the ALT keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "shiftKey", "description": " (Optional) Indicates if one of the SHIFT keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "metaKey", "description": " (Optional) Indicates if one of the META keys\nis pressed while the event is firing. The default is false."}, {"type": "int", "name": "keyCode", "description": " (Optional) The code for the key that is in use. \nThe default is 0."}, {"type": "int", "name": "charCode", "description": " (Optional) The Unicode code for the character\nassociated with the key being used. The default is 0."}]}, "mouseover": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mouseover event on a particular element. Use \"relatedTarget\"\non the options object to specify where the mouse moved from.\nQuirks: Firefox less than 2.0 doesn't set relatedTarget properly, so\nfromElement is assigned in its place. IE doesn't allow fromElement to be\nbe assigned, so relatedTarget is assigned in its place. Both of these\nconcessions allow YAHOO.util.Event.getRelatedTarget() to work correctly\nin both browsers.", "guessedname": "mouseover", "guessedtype": "function"}, "click": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to click on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a click on a particular element.", "guessedname": "click", "guessedtype": "function"}, "dblclick": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to double click on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a double click on a particular element.", "guessedname": "dblclick", "guessedtype": "function"}}, "static": "", "file": "UserAction.js", "guessedtype": "property", "shortname": "UserAction", "description": "The UserAction object provides functions that simulate events occurring in\nthe browser. Since these are simulated events, they do not behave exactly\nas regular, user-initiated events do, but can be used to test simple\nuser interactions safely."}, "YAHOO.widget.Tab": {"name": "YAHOO.widget.Tab", "configs": {"disabled": {"type": "Boolean", "description": "Whether or not the tab is disabled."}, "dataTimeout": {"default": "null", "type": "Number", "description": "Number if milliseconds before aborting and calling failure handler."}, "contentEl": {"type": "HTMLElement", "description": "The HTMLElement that contains the tab's content."}, "postData": {"default": "null", "description": "Arguments to pass when POST method is used"}, "href": {"default": "'#'", "type": "String", "description": "The href of the tab's anchor element."}, "cacheData": {"default": "false", "type": "Boolean", "description": "Whether or not content should be reloaded for every view."}, "dataSrc": {"type": "String", "description": "The tab's data source, used for loading content dynamically."}, "label": {"type": "String", "description": "The tab's label text (or innerHTML)."}, "content": {"type": "String", "description": "The tab's content."}, "loadMethod": {"default": "\"GET\"", "type": "String", "description": "The method to use for the data request."}, "contentVisible": {"default": "false", "type": "Boolean", "description": "The Whether or not the tab's content is visible."}, "activationEvent": {"type": "String", "description": "The event that triggers the tab's activation."}, "active": {"type": "Boolean", "description": "Whether or not the tab is currently active.\nIf a dataSrc is set for the tab, the content will be loaded from\nthe given source."}, "labelEl": {"type": "HTMLElement", "description": "The element that contains the tab's label."}, "dataLoaded": {"type": "Boolean", "description": "Whether or not any data has been loaded from the server."}}, "constructors": [{"params": [{"type": "HTMLElement | String", "name": "element", "description": "  (optional) The html element that \nrepresents the Tab. An element will be created if none provided."}, {"type": "Object", "name": "properties", "description": " A key map of initial properties"}], "description": "A representation of a Tab's label and content."}], "namespace": "YAHOO.widget", "module": "tabview", "events": {"contentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "contentChange", "description": "Fires when the value for the configuration attribute 'content' changes."}, "beforeContentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContentChange", "description": "Fires before the value for the configuration attribute 'content' changes. Return false to cancel the attribute change."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "dataTimeoutChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataTimeoutChange", "description": "Fires when the value for the configuration attribute 'dataTimeout' changes."}, "beforeDataTimeoutChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataTimeoutChange", "description": "Fires before the value for the configuration attribute 'dataTimeout' changes. Return false to cancel the attribute change."}, "beforeHrefChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHrefChange", "description": "Fires before the value for the configuration attribute 'href' changes. Return false to cancel the attribute change."}, "beforeCacheDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCacheDataChange", "description": "Fires before the value for the configuration attribute 'cacheData' changes. Return false to cancel the attribute change."}, "activationEventChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "activationEventChange", "description": "Fires when the value for the configuration attribute 'activationEvent' changes."}, "hrefChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hrefChange", "description": "Fires when the value for the configuration attribute 'href' changes."}, "beforeDataSrcChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataSrcChange", "description": "Fires before the value for the configuration attribute 'dataSrc' changes. Return false to cancel the attribute change."}, "loadMethodChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "loadMethodChange", "description": "Fires when the value for the configuration attribute 'loadMethod' changes."}, "dataSrcChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataSrcChange", "description": "Fires when the value for the configuration attribute 'dataSrc' changes."}, "postDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "postDataChange", "description": "Fires when the value for the configuration attribute 'postData' changes."}, "beforeLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLabelChange", "description": "Fires before the value for the configuration attribute 'label' changes. Return false to cancel the attribute change."}, "beforeContentElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContentElChange", "description": "Fires before the value for the configuration attribute 'contentEl' changes. Return false to cancel the attribute change."}, "labelElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "labelElChange", "description": "Fires when the value for the configuration attribute 'labelEl' changes."}, "beforeActivationEventChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeActivationEventChange", "description": "Fires before the value for the configuration attribute 'activationEvent' changes. Return false to cancel the attribute change."}, "beforePostDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePostDataChange", "description": "Fires before the value for the configuration attribute 'postData' changes. Return false to cancel the attribute change."}, "labelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "labelChange", "description": "Fires when the value for the configuration attribute 'label' changes."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}, "cacheDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "cacheDataChange", "description": "Fires when the value for the configuration attribute 'cacheData' changes."}, "contentElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "contentElChange", "description": "Fires when the value for the configuration attribute 'contentEl' changes."}, "beforeContentVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContentVisibleChange", "description": "Fires before the value for the configuration attribute 'contentVisible' changes. Return false to cancel the attribute change."}, "activeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "activeChange", "description": "Fires when the value for the configuration attribute 'active' changes."}, "beforeLabelElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLabelElChange", "description": "Fires before the value for the configuration attribute 'labelEl' changes. Return false to cancel the attribute change."}, "beforeLoadMethodChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLoadMethodChange", "description": "Fires before the value for the configuration attribute 'loadMethod' changes. Return false to cancel the attribute change."}, "beforeActiveChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeActiveChange", "description": "Fires before the value for the configuration attribute 'active' changes. Return false to cancel the attribute change."}, "remove": {"type": "CustomEvent", "params": [{"type": "Event", "name": "An", "description": " event object with fields for \"type\" (\"remove\")\nand \"tabview\" (the tabview instance it was removed from)"}], "description": "Fires when a tab is removed from the tabview", "guessedname": "Tab", "guessedtype": "property"}, "beforeDataLoadedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataLoadedChange", "description": "Fires before the value for the configuration attribute 'dataLoaded' changes. Return false to cancel the attribute change."}, "contentVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "contentVisibleChange", "description": "Fires when the value for the configuration attribute 'contentVisible' changes."}, "dataLoadedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataLoadedChange", "description": "Fires when the value for the configuration attribute 'dataLoaded' changes."}}, "guessedname": "Tab", "methods": {"initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Hash of initial attributes"}], "description": "setAttributeConfigs Tab specific properties.", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "", "description": "String"}, "description": "Provides a readable name for the tab.", "guessedname": "toString", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "Tab.js", "guessedtype": "function", "shortname": "Tab", "properties": {"HIDDEN_CLASSNAME": {"default": "\"yui-hidden\"", "type": "String", "description": "The class name applied to active tabs.", "guessedname": "HIDDEN_CLASSNAME", "guessedtype": "property"}, "ACTIVE_TITLE": {"default": "\"active\"", "type": "String", "description": "The title applied to active tabs.", "guessedname": "ACTIVE_TITLE", "guessedtype": "property"}, "DISABLED_CLASSNAME": {"default": "\"disabled\"", "type": "String", "description": "The class name applied to disabled tabs.", "guessedname": "DISABLED_CLASSNAME", "guessedtype": "property"}, "LOADING_CLASSNAME": {"default": "\"disabled\"", "type": "String", "description": "The class name applied to dynamic tabs while loading.", "guessedname": "LOADING_CLASSNAME", "guessedtype": "property"}, "LABEL_INNER_TAGNAME": {"default": "\"em\"", "type": "String", "description": "The default tag name for a Tab's inner element.", "guessedname": "LABEL_TAGNAME", "guessedtype": "property"}, "dataConnection": {"type": "Object", "description": "Provides a reference to the connection request object when data is\nloaded dynamically.", "guessedname": "dataConnection", "guessedtype": "property"}, "loadHandler": {"type": "object", "description": "Object containing success and failure callbacks for loading data.", "guessedname": "loadHandler", "guessedtype": "property"}, "ACTIVE_CLASSNAME": {"default": "\"selected\"", "type": "String", "description": "The class name applied to active tabs.", "guessedname": "ACTIVE_CLASSNAME", "guessedtype": "property"}}, "description": "A representation of a Tab's label and content."}, "YAHOO.widget.Menu": {"name": "YAHOO.widget.Menu", "configs": {"constraintoviewport": {"default": "true", "type": "Boolean", "description": "Boolean indicating if the menu will try to remain inside \nthe boundaries of the size of viewport.  This property is only applied \nwhen the \"position\" configuration property is set to dynamic and is \nautomatically applied to all submenus."}, "maxheight": {"default": "0", "type": "Number", "description": "Number defining the maximum height (in pixels) for a menu's \nbody element (<code><div class=\"bd\"></code>).  Once a menu's body \nexceeds this height, the contents of the body are scrolled to maintain \nthis value.  This value cannot be set lower than the value of the \n\"minscrollheight\" configuration property."}, "classname": {"default": "null", "type": "String", "description": "String representing the CSS class to be applied to the \nmenu's root <code><div></code> element.  The specified class(es)  \nare appended in addition to the default class as specified by the menu's\nCSS_CLASS_NAME constant. When set this property is automatically \napplied to all submenus."}, "visible": {"default": "false", "type": "Boolean", "description": "Boolean indicating whether or not the menu is visible.  If \nthe menu's \"position\" configuration property is set to \"dynamic\" (the \ndefault), this property toggles the menu's <code><div></code> \nelement's \"visibility\" style property between \"visible\" (true) or \n\"hidden\" (false).  If the menu's \"position\" configuration property is \nset to \"static\" this property toggles the menu's \n<code><div></code> element's \"display\" style property \nbetween \"block\" (true) or \"none\" (false)."}, "xy": {"default": "null", "type": "Number[]", "description": "Array of the absolute x and y positions of the Menu.  This \nproperty is only applied when the \"position\" configuration property is \nset to dynamic."}, "container": {"default": "document.body", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|String", "description": "HTML element reference or string specifying the id \nattribute of the HTML element that the menu's markup should be \nrendered into."}, "scrollincrement": {"default": "1", "type": "Number", "description": "Number used to control the scroll speed of a menu.  Used to \nincrement the \"scrollTop\" property of the menu's body by when a menu's \ncontent is scrolling.  When set this property is automatically applied \nto all submenus."}, "minscrollheight": {"default": "90", "type": "Number", "description": "Number defining the minimum threshold for the \"maxheight\" \nconfiguration property.  When set this property is automatically applied \nto all submenus."}, "fixedcenter": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the Menu should be anchored to the \ncenter of the viewport.  This property is only applied when the \n\"position\" configuration property is set to dynamic."}, "autosubmenudisplay": {"default": "true", "type": "Boolean", "description": "Boolean indicating if submenus are automatically made \nvisible when the user mouses over the menu's items."}, "context": {"default": "null", "type": "Array", "description": "Array of context arguments for context-sensitive positioning.  \nThe format is: [id or element, element corner, context corner]. \nFor example, setting this property to [\"img1\", \"tl\", \"bl\"] would \nalign the Menu's top left corner to the context element's \nbottom left corner.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic."}, "keepopen": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu should remain open when clicked."}, "clicktohide": {"default": "true", "type": "Boolean", "description": "Boolean indicating if the menu will automatically be \nhidden if the user clicks outside of it.  This property is only \napplied when the \"position\" configuration property is set to dynamic \nand is automatically applied to all submenus."}, "submenualignment": {"default": "[\"tl\",\"tr\"]", "type": "Array", "description": "Array defining how submenus should be aligned to their \nparent menu item. The format is: [itemCorner, submenuCorner]. By default\na submenu's top left corner is aligned to its parent menu item's top \nright corner."}, "disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu should be disabled.  \nDisabling a menu disables each of its items.  (Disabled menu items are \ndimmed and will not respond to user input or fire events.)  Disabled\nmenus have a corresponding \"disabled\" CSS class applied to their root\n<code><div></code> element."}, "effect": {"default": "null", "type": "Object", "description": "Object or array of objects representing the ContainerEffect \nclasses that are active for animating the container.  When set this \nproperty is automatically applied to all submenus."}, "showdelay": {"default": "250", "type": "Number", "description": "Number indicating the time (in milliseconds) that should \nexpire before a submenu is made visible when the user mouses over \nthe menu's items.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic and is automatically applied \nto all submenus."}, "preventcontextoverlap": {"default": "true", "type": "Boolean", "description": "Boolean indicating whether or not a submenu should overlap its parent MenuItem \nwhen the \"constraintoviewport\" configuration property is set to \"true\"."}, "x": {"default": "null", "type": "Number", "description": "Number representing the absolute x-coordinate position of \nthe Menu.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic."}, "shadow": {"default": "true", "type": "Boolean", "description": "Boolean indicating if the menu should have a shadow."}, "hidedelay": {"default": "0", "type": "Number", "description": "Number indicating the time (in milliseconds) that should \nexpire before the menu is hidden.  This property is only applied when \nthe \"position\" configuration property is set to dynamic and is \nautomatically applied to all submenus."}, "submenuhidedelay": {"default": "250", "type": "Number", "description": "Number indicating the time (in milliseconds) that should \nexpire before a submenu is hidden when the user mouses out of a menu item \nheading in the direction of a submenu.  The value must be greater than or \nequal to the value specified for the \"showdelay\" configuration property.\nThis property is only applied when the \"position\" configuration property \nis set to dynamic and is automatically applied to all submenus."}, "iframe": {"default": "true for IE6 and below, false for all other browsers.", "type": "Boolean", "description": "Boolean indicating whether or not the Menu should \nhave an IFRAME shim; used to prevent SELECT elements from \npoking through an Overlay instance in IE6.  When set to \"true\", \nthe iframe shim is created when the Menu instance is intially\nmade visible.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic and is automatically applied \nto all submenus."}, "y": {"default": "null", "type": "Number", "description": "Number representing the absolute y-coordinate position of \nthe Menu.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic."}, "position": {"default": "dynamic", "type": "String", "description": "String indicating how a menu should be positioned on the \nscreen.  Possible values are \"static\" and \"dynamic.\"  Static menus are \nvisible by default and reside in the normal flow of the document \n(CSS position: static).  Dynamic menus are hidden by default, reside \nout of the normal flow of the document (CSS position: absolute), and \ncan overlay other elements on the screen."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the menu."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source \nfor the menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><div></code> element of the menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " \nObject specifying the <code><select></code> element to be used as \nthe data source for the menu."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu. See configuration class documentation for \nmore details."}], "description": "The Menu class creates a container that holds a vertical list representing \na set of options or commands.  Menu is the base class for all \nmenu containers."}], "namespace": "YAHOO.widget", "module": "menu", "events": {"mouseOutEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the mouse has left the menu.  Passes back the DOM \nEvent object as an argument."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user releases a mouse button while the mouse is \nover the menu.  Passes back the DOM Event object as an argument."}, "keyUpEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user releases a key when one of the menu's items \nhas focus.  Passes back the DOM Event object as an argument."}, "keyPressEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user presses an alphanumeric key when one of the\nmenu's items has focus.  Passes back the DOM Event object as an argument."}, "itemAddedEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item is added to the menu."}, "mouseOverEvent": {"description": "Fires when the mouse has entered the menu.  Passes back \nthe DOM Event object as an argument."}, "itemRemovedEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item is removed to the menu."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user mouses down on the menu.  Passes back the \nDOM Event object as an argument."}, "clickEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user clicks the on the menu.  Passes back the \nDOM Event object as an argument."}, "keyDownEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user presses a key when one of the menu's items \nhas focus.  Passes back the DOM Event object as an argument."}}, "guessedname": "Menu", "methods": {"_onRender": {"guessedname": "_onRender", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"render\" event handler for the menu.", "private": "", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu.", "guessedname": "toString", "guessedtype": "function"}, "configMaxHeight": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The Menu instance fired\nthe event."}], "description": "Event handler for when the \"maxheight\" configuration property of \na Menu changes.", "guessedname": "configMaxHeight", "guessedtype": "function"}, "configDisabled": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The Menu instance fired the event."}], "description": "Event handler for when the \"disabled\" configuration property of \na menu changes.", "guessedname": "configDisabled", "guessedtype": "function"}, "getSubmenus": {"return": {"type": "Array", "description": ""}, "description": "Returns an array of all of the submenus that are immediate \nchildren of the menu.", "guessedname": "getSubmenus", "guessedtype": "function"}, "_onVisibleChange": {"guessedname": "_onVisibleChange", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "Change event handler for the the menu's \"visible\" configuration\nproperty.", "private": "", "guessedtype": "function"}, "positionOffScreen": {"description": "Positions the menu outside of the boundaries of the browser's \nviewport.  Called automatically when a menu is hidden to ensure that \nit doesn't force the browser to render uncessary scrollbars.", "guessedname": "positionOffScreen", "guessedtype": "function"}, "_onMenuItemDestroy": {"guessedname": "_onMenuItemDestroy", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item \nthat fired the event."}], "description": "\"destroy\" event handler for the menu's items.", "private": "", "guessedtype": "function"}, "getItemGroups": {"return": {"type": "Array", "description": ""}, "description": "Multi-dimensional Array representing the menu items as they \nare grouped in the menu.", "guessedname": "getItemGroups", "guessedtype": "function"}, "destroy": {"description": "Removes the menu's <code><div></code> element \n(and accompanying child nodes) from the document.", "guessedname": "destroy", "guessedtype": "function"}, "_onBeforeRender": {"guessedname": "_onBeforeRender", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"beforerender\" event handler for the menu.  Appends all of the \n<code><ul></code>, <code><li></code> and their accompanying \ntitle elements to the body element of the menu.", "private": "", "guessedtype": "function"}, "_cancelShowDelay": {"description": "Cancels the call to the \"showMenu.\"", "private": "", "guessedname": "_cancelShowDelay", "guessedtype": "function"}, "_getItemGroup": {"return": {"type": "Array", "description": ""}, "description": "Returns the menu item group at the specified index.", "private": "", "params": [{"type": "Number", "name": "p_nIndex", "description": " Number indicating the index of the menu item group \nto be retrieved."}], "guessedname": "_getItemGroup", "guessedtype": "function"}, "setInitialSelection": {"description": "Sets the \"selected\" configuration property of the menu's first \nenabled item to \"true.\"", "guessedname": "setInitialSelection", "guessedtype": "function"}, "_onClick": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"click\" event handler for the menu.", "guessedname": "_onClick", "guessedtype": "function"}, "_onInit": {"guessedname": "_onInit", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"init\" event handler for the menu.", "private": "", "guessedtype": "function"}, "_updateItemProperties": {"guessedname": "_updateItemProperties", "params": [{"type": "Number", "name": "p_nGroupIndex", "description": " Number indicating the group of items to update."}], "description": "Updates the \"index,\" \"groupindex,\" and \"className\" properties \nof the menu items in the specified group.", "private": "", "guessedtype": "function"}, "_onItemAdded": {"guessedname": "_onItemAdded", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}], "description": "\"itemadded\" event handler for a Menu instance.", "private": "", "guessedtype": "function"}, "_onHide": {"guessedname": "_onHide", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"hide\" event handler for the menu.", "private": "", "guessedtype": "function"}, "_setScrollHeight": {"guessedname": "_setScrollHeight", "params": [{"type": "String", "name": "p_nScrollHeight", "description": " Number representing the scrolling height of the Menu."}], "description": "", "private": "", "guessedtype": "function"}, "_removeItemFromGroupByValue": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Removes a menu item from a group by reference.  Returns the \nmenu item that was removed.", "private": "", "params": [{"type": "Number", "name": "p_nGroupIndex", "description": " Number indicating the group to which the\nmenu item belongs."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance to be removed."}], "guessedname": "_removeItemFromGroupByValue", "guessedtype": "function"}, "_onMenuItemConfigChange": {"guessedname": "_onMenuItemConfigChange", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item \nthat fired the event."}], "description": "\"configchange\" event handler for the menu's items.", "private": "", "guessedtype": "function"}, "clearActiveItem": {"params": [{"type": "Boolean", "name": "p_bBlur", "description": " Boolean indicating if the menu's active item \nshould be blurred."}], "description": "Sets the \"selected\" configuration property of the menu's active\nitem to \"false\" and hides the item's submenu.", "guessedname": "clearActiveItem", "guessedtype": "function"}, "_onMouseOver": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"mouseover\" event handler for the menu.", "guessedname": "_onMouseOver", "guessedtype": "function"}, "_onParentMenuRender": {"guessedname": "_onParentMenuRender", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oSubmenu", "description": " Object representing the submenu that \nsubscribed to the event."}], "description": "\"render\" event handler for a submenu.  Renders a  \nsubmenu in response to the firing of its parent's \"render\" event.", "private": "", "guessedtype": "function"}, "_enableScrollFooter": {"protected": "", "description": "Enables the footer used for scrolling the body of the menu.", "guessedname": "_enableScrollFooter", "guessedtype": "function"}, "_onBeforeShow": {"guessedname": "_onBeforeShow", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"beforeshow\" event handler for the menu.", "private": "", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the menu."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source \nfor the menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><div></code> element of the menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " \nObject specifying the <code><select></code> element to be used as \nthe data source for the menu."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu. See configuration class documentation for \nmore details."}], "description": "The Menu class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references \nfor pre-existing markup, and creates required markup if it is not \nalready present.", "guessedname": "init", "guessedtype": "function"}, "_addItemToGroup": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Adds a menu item to a group.", "private": "", "params": [{"type": "Number", "name": "p_nGroupIndex", "description": " Number indicating the group to which the \nitem belongs."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance to be added to the menu."}, {"type": "String", "name": "p_oItem", "description": " String specifying the text of the item to be added \nto the menu."}, {"type": "Object", "name": "p_oItem", "description": " Object literal containing a set of menu item \nconfiguration properties."}, {"type": "Number", "name": "p_nItemIndex", "description": " Optional. Number indicating the index at \nwhich the menu item should be added."}], "guessedname": "_addItemToGroup", "guessedtype": "function"}, "_onParentMenuConfigChange": {"guessedname": "_onParentMenuConfigChange", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oSubmenu", "description": " Object representing the submenu that \nsubscribed to the event."}], "description": "\"configchange\" event handler for a submenu.", "private": "", "guessedtype": "function"}, "_cancelHideDelay": {"description": "Cancels the call to \"hideMenu.\"", "private": "", "guessedname": "_cancelHideDelay", "guessedtype": "function"}, "blur": {"description": "Causes the menu to lose focus and fires the \"blur\" event.", "guessedname": "blur", "guessedtype": "function"}, "configHideDelay": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"hidedelay\" configuration property \nof the menu changes.", "guessedname": "configHideDelay", "guessedtype": "function"}, "addItems": {"return": {"type": "Array", "description": ""}, "params": [{"type": "Array", "name": "p_aItems", "description": " Array of items to be added to the menu.  The array \ncan contain strings specifying the text for each item to be created, object\nliterals specifying each of the menu item configuration properties, \nor MenuItem instances."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number specifying the group to \nwhich the items belongs."}], "description": "Adds an array of items to the menu.", "guessedname": "addItems", "guessedtype": "function"}, "_onBeforeHide": {"guessedname": "_onBeforeHide", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"beforehide\" event handler for the menu.", "private": "", "guessedtype": "function"}, "setInitialFocus": {"description": "Sets focus to the menu's first enabled item.", "guessedname": "setInitialFocus", "guessedtype": "function"}, "_getFirstEnabledItem": {"guessedname": "_getFirstEnabledItem", "return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Returns the first enabled item in the menu.", "private": "", "guessedtype": "function"}, "_createItemGroup": {"return": {"type": "Array", "description": ""}, "description": "Creates a new menu item group (array) and its associated \n<code><ul></code> element. Returns an aray of menu item groups.", "private": "", "params": [{"type": "Number", "name": "p_nIndex", "description": " Number indicating the group to create."}], "guessedname": "_createItemGroup", "guessedtype": "function"}, "getItems": {"return": {"type": "Array", "description": ""}, "description": "Returns an array of all of the items in the menu.", "guessedname": "getItems", "guessedtype": "function"}, "focus": {"description": "Causes the menu to receive focus and fires the \"focus\" event.", "guessedname": "focus", "guessedtype": "function"}, "insertItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance to be added to the menu."}, {"type": "String", "name": "p_oItem", "description": " String specifying the text of the item to be added \nto the menu."}, {"type": "Object", "name": "p_oItem", "description": " Object literal containing a set of menu item \nconfiguration properties."}, {"type": "Number", "name": "p_nItemIndex", "description": " Number indicating the ordinal position at which\nthe item should be added."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number indicating the group to which \nthe item belongs."}], "description": "Inserts an item into the menu at the specified index.", "guessedname": "insertItem", "guessedtype": "function"}, "_configureSubmenu": {"guessedname": "_configureSubmenu", "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance with the submenu to be configured."}], "description": "Subscribes the menu item's submenu to its parent menu's events.", "private": "", "guessedtype": "function"}, "addItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance to be added to the menu."}, {"type": "String", "name": "p_oItem", "description": " String specifying the text of the item to be added \nto the menu."}, {"type": "Object", "name": "p_oItem", "description": " Object literal containing a set of menu item \nconfiguration properties."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number indicating the group to\nwhich the item belongs."}], "description": "Appends an item to the menu.", "guessedname": "addItem", "guessedtype": "function"}, "_onScrollTargetMouseOut": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed \nback by the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "\"mouseout\" event handler for the menu's \"header\" and \"footer\" \nelements.  Used to stop scrolling the body of the menu up and down when the \nmenu's \"maxheight\" configuration property is set to a value greater than 0.", "guessedname": "_onScrollTargetMouseOut", "guessedtype": "function"}, "_disableScrollHeader": {"protected": "", "description": "Disables the header used for scrolling the body of the menu.", "guessedname": "_disableScrollHeader", "guessedtype": "function"}, "configVisible": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"visible\" configuration property \nthe menu changes.", "guessedname": "configVisible", "guessedtype": "function"}, "configContainer": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"container\" configuration property \nof the menu changes.", "guessedname": "configContainer", "guessedtype": "function"}, "_clearSetWidthFlag": {"description": "Change event listener for the \"width\" configuration property.  This listener is \nadded when a Menu's \"width\" configuration property is set by the \"_setScrollHeight\" method, and \nis used to set the \"_widthSetForScroll\" property to \"false\" if the \"width\" configuration property \nis changed after it was set by the \"_setScrollHeight\" method.  If the \"_widthSetForScroll\" \nproperty is set to \"false\", and the \"_setScrollHeight\" method is in the process of tearing down \nscrolling functionality, it will maintain the Menu's new width rather than reseting it.", "private": "", "guessedname": "_clearSetWidthFlag", "guessedtype": "function"}, "clearContent": {"description": "Removes all of the content from the menu, including the menu \nitems, group titles, header and footer.", "guessedname": "clearContent", "guessedtype": "function"}, "getItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "Number", "name": "p_nItemIndex", "description": " Number indicating the ordinal position of the \nitem to be retrieved."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number indicating the group to which \nthe item belongs."}], "description": "Returns the item at the specified index.", "guessedname": "getItem", "guessedtype": "function"}, "removeItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oObject", "description": " Object reference for the MenuItem \ninstance to be removed from the menu."}, {"type": "Number", "name": "p_oObject", "description": " Number specifying the index of the item \nto be removed."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number specifying the group to \nwhich the item belongs."}], "description": "Removes the specified item from the menu.", "guessedname": "removeItem", "guessedtype": "function"}, "_enableScrollHeader": {"protected": "", "description": "Enables the header used for scrolling the body of the menu.", "guessedname": "_enableScrollHeader", "guessedtype": "function"}, "_removeItemFromGroupByIndex": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Removes a menu item from a group by index.  Returns the menu \nitem that was removed.", "private": "", "params": [{"type": "Number", "name": "p_nGroupIndex", "description": " Number indicating the group to which the menu \nitem belongs."}, {"type": "Number", "name": "p_nItemIndex", "description": " Number indicating the index of the menu item \nto be removed."}], "guessedname": "_removeItemFromGroupByIndex", "guessedtype": "function"}, "_onShow": {"guessedname": "_onShow", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"show\" event handler for the menu.", "private": "", "guessedtype": "function"}, "_disableScrollFooter": {"protected": "", "description": "Disables the footer used for scrolling the body of the menu.", "guessedname": "_disableScrollFooter", "guessedtype": "function"}, "hasFocus": {"return": {"type": "Boolean", "description": ""}, "description": "Returns a boolean indicating whether or not the menu has focus.", "guessedname": "hasFocus", "guessedtype": "function"}, "setItemGroupTitle": {"params": [{"type": "String", "name": "p_sGroupTitle", "description": " String specifying the title of the group."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number specifying the group to which\nthe title belongs."}], "description": "Sets the title of a group of menu items.", "guessedname": "setItemGroupTitle", "guessedtype": "function"}, "_onMouseMove": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed \nback by the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "\"click\" event handler for the menu.", "guessedname": "_onMouseMove", "guessedtype": "function"}, "getRoot": {"description": "Finds the menu's root menu.", "guessedname": "getRoot", "guessedtype": "function"}, "configShadow": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The Menu instance fired the event."}], "description": "Event handler for when the \"shadow\" configuration property of \na menu changes.", "guessedname": "configShadow", "guessedtype": "function"}, "subscribe": {"params": [{"type": "string", "name": "p_type", "description": "        the type, or name of the event"}, {"type": "function", "name": "p_fn", "description": "        the function to exectute when the event fires"}, {"type": "Object", "name": "p_obj", "description": "         An object to be passed along when the event \nfires"}, {"type": "boolean", "name": "p_override", "description": "   If true, the obj passed in becomes the \nexecution scope of the listener"}], "description": "Adds the specified CustomEvent subscriber to the menu and each of \nits submenus.", "guessedname": "subscribe", "guessedtype": "function"}, "_setMaxHeight": {"guessedname": "_setMaxHeight", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}, {"type": "Number", "name": "p_nMaxHeight", "description": " Number representing the value to set for the \n\"maxheight\" configuration property."}], "description": "\"renderEvent\" handler used to defer the setting of the \n\"maxheight\" configuration property until the menu is rendered in lazy \nload scenarios.", "private": "", "guessedtype": "function"}, "_subscribeToItemEvents": {"guessedname": "_subscribeToItemEvents", "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance whose events should be subscribed to."}], "description": "Subscribes a menu to a menu item's event.", "private": "", "guessedtype": "function"}, "_onYChange": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}], "description": "\"y\" event handler for a Menu instance.", "guessedname": "_onYChange", "guessedtype": "function"}, "_onMouseOut": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"mouseout\" event handler for the menu.", "guessedname": "_onMouseOut", "guessedtype": "function"}, "_initSubTree": {"description": "Iterates the childNodes of the source element to find nodes \nused to instantiate menu and menu items.", "private": "", "guessedname": "_initSubTree", "guessedtype": "function"}, "configIframe": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"iframe\" configuration property of \nthe menu changes.", "guessedname": "configIframe", "guessedtype": "function"}, "_onScrollTargetMouseOver": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed \nback by the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "\"mouseover\" event handler for the menu's \"header\" and \"footer\" \nelements.  Used to scroll the body of the menu up and down when the \nmenu's \"maxheight\" configuration property is set to a value greater than 0.", "guessedname": "_onScrollTargetMouseOver", "guessedtype": "function"}, "configClassName": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The Menu instance fired the event."}], "description": "Event handler for when the \"classname\" configuration property of \na menu changes.", "guessedname": "configClassName", "guessedtype": "function"}, "_onKeyPress": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}], "description": "\"keypress\" event handler for a Menu instance.", "guessedname": "_onKeyPress", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for the menu.", "guessedname": "initEvents", "guessedtype": "function"}, "checkPosition": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "Object", "name": "p_sPosition", "description": " String specifying the position of the menu."}], "description": "Checks to make sure that the value of the \"position\" property \nis one of the supported strings. Returns true if the position is supported.", "private": ""}, "_execSubmenuHideDelay": {"guessedname": "_execSubmenuHideDelay", "params": [{"type": "YAHOO.widget.Menu", "name": "p_oSubmenu", "description": " Object specifying the submenu that  \nshould be hidden."}, {"type": "Number", "name": "p_nMouseX", "description": " The x coordinate of the mouse when it left \nthe specified submenu's parent menu item."}, {"type": "Number", "name": "p_nHideDelay", "description": " The number of milliseconds that should ellapse\nbefore the submenu is hidden."}], "description": "Hides a submenu after the number of milliseconds specified by \nthe \"submenuhidedelay\" configuration property have ellapsed.", "private": "", "guessedtype": "function"}, "_onKeyDown": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"keydown\" event handler for the menu.", "guessedname": "_onKeyDown", "guessedtype": "function"}, "_onBlur": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}], "description": "\"blur\" event handler for a Menu instance.", "guessedname": "_onBlur", "guessedtype": "function"}, "configPosition": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"position\" configuration property \nof the menu changes.", "guessedname": "configPosition", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be\nchanged using the menu's Config object (\"cfg\").", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "_execHideDelay": {"description": "Hides the menu after the number of milliseconds specified by \nthe \"hidedelay\" configuration property.", "private": "", "guessedname": "_execHideDelay", "guessedtype": "function"}}, "extends": "YAHOO.widget.Overlay", "superclass": "YAHOO.widget.Overlay", "file": "menu.js", "guessedtype": "function", "shortname": "Menu", "properties": {"activeItem": {"default": "null", "type": "YAHOO.widget.MenuItem", "description": "Object reference to the item in the menu that has is selected.", "guessedname": "activeItem", "guessedtype": "property"}, "CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \nmenu's <code><div></code> element.", "default": "\"yuimenu\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "lazyLoad": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu's \"lazy load\" feature is \nenabled.  If set to \"true,\" initialization and rendering of the menu's \nitems will be deferred until the first time it is made visible.  This \nproperty should be set via the constructor using the configuration \nobject literal.", "guessedname": "lazyLoad", "guessedtype": "property"}, "parent": {"default": "null", "type": "YAHOO.widget.MenuItem", "description": "Object reference to the menu's parent menu or menu item.  \nThis property can be set via the constructor using the configuration \nobject literal.", "guessedname": "parent", "guessedtype": "property"}, "_bStopMouseEventHandlers": {"description": "Stops \"mouseover,\" \"mouseout,\" and \"mousemove\" event handlers \nfrom executing.", "default": "false", "private": "", "guessedname": "_bStopMouseEventHandlers", "guessedtype": "property", "type": "Boolean"}, "_bHandledMouseOverEvent": {"description": "Boolean indicating the current state of the menu's \n\"mouseover\" event.", "default": "false", "private": "", "guessedname": "_bHandledMouseOverEvent", "guessedtype": "property", "type": "Boolean"}, "srcElement": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-94282980\">HTMLSelectElement</a>|<a \nhref=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.\nhtml#ID-22445964\">HTMLDivElement</a>", "description": "Object reference to the HTML element (either \n<code><select></code> or <code><div></code>) used to \ncreate the menu.", "guessedname": "srcElement", "guessedtype": "property"}, "_bHandledMouseOutEvent": {"description": "Boolean indicating the current state of the menu's\n\"mouseout\" event.", "default": "false", "private": "", "guessedname": "_bHandledMouseOutEvent", "guessedtype": "property", "type": "Boolean"}, "_sClassName": {"description": "The current value of the \"classname\" configuration attribute.", "default": "null", "private": "", "guessedname": "_sClassName", "guessedtype": "property", "type": "String"}, "ITEM_TYPE": {"description": "Object representing the type of menu item to instantiate and \nadd when parsing the child nodes (either <code><li></code> element, \n<code><optgroup></code> element or <code><option></code>) \nof the menu's source HTML element.", "default": "YAHOO.widget.MenuItem", "guessedname": "ITEM_TYPE", "guessedtype": "property", "type": "YAHOO.widget.MenuItem", "final": ""}, "itemData": {"default": "null", "type": "Array", "description": "Array of items to be added to the menu.  The array can contain \nstrings representing the text for each item to be created, object literals \nrepresenting the menu item configuration properties, or MenuItem instances.  \nThis property should be set via the constructor using the configuration \nobject literal.", "guessedname": "itemData", "guessedtype": "property"}, "GROUP_TITLE_TAG_NAME": {"description": "String representing the tagname of the HTML element used to \ntitle the menu's item groups.", "default": "H6", "guessedname": "GROUP_TITLE_TAG_NAME", "guessedtype": "property", "type": "String", "final": ""}, "_aGroupTitleElements": {"description": "Array of HTML element used to title groups of menu items.", "default": "[]", "private": "", "guessedname": "_aGroupTitleElements", "guessedtype": "property", "type": "Array"}, "_aListElements": {"description": "Array of <code><ul></code> elements, each of which is \nthe parent node for each item's <code><li></code> element.", "default": "[]", "private": "", "guessedname": "_aListElements", "guessedtype": "property", "type": "Array"}, "_useHideDelay": {"description": "Boolean indicating if the \"mouseover\" and \"mouseout\" event \nhandlers used for hiding the menu via a call to \"YAHOO.lang.later\" have \nalready been assigned.", "default": "false", "private": "", "guessedname": "_useHideDelay", "guessedtype": "property", "type": "Boolean"}, "_nCurrentMouseX": {"description": "The current x coordinate of the mouse inside the area of \nthe menu.", "default": "0", "private": "", "guessedname": "_nCurrentMouseX", "guessedtype": "property", "type": "Number"}, "_aItemGroups": {"description": "Multi-dimensional Array representing the menu items as they\nare grouped in the menu.", "default": "[]", "private": "", "guessedname": "_aItemGroups", "guessedtype": "property", "type": "Array"}, "OFF_SCREEN_POSITION": {"description": "Array representing the default x and y position that a menu \nshould have when it is positioned outside the viewport by the \n\"poistionOffScreen\" method.", "default": "\"-999em\"", "guessedname": "OFF_SCREEN_POSITION", "guessedtype": "property", "type": "String", "final": ""}}, "description": "The Menu class creates a container that holds a vertical list representing \na set of options or commands.  Menu is the base class for all \nmenu containers."}, "YAHOO.util.Number": {"name": "YAHOO.util.Number", "namespace": "YAHOO.util", "module": "datasource", "guessedname": "Number", "methods": {"format": {"return": {"type": "String", "description": "Formatted number for display. Note, the following values\nreturn as \"\": null, undefined, NaN, \"\"."}, "params": [{"type": "Number", "name": "nData", "description": "  Number."}, {"type": "Object} (Optional) Optional configuration values:\n<dl>\n<dt>prefix {String}</dd>\n<dd>String prepended before each number, like a currency designator \"$\"</dd>\n<dt>decimalPlaces {Number}</dd>\n<dd>Number of decimal places to round.</dd>\n<dt>decimalSeparator {String}</dd>\n<dd>Decimal separator</dd>\n<dt>thousandsSeparator {String}</dd>\n<dd>Thousands separator</dd>\n<dt>suffix {String", "name": "oConfig", "description": " </dd>\n<dd>String appended after each number, like \" items\" (note the space)</dd>\n<dt>negativeFormat</dt>\n<dd>String used as a guide for how to indicate negative numbers.  The first '#' character in the string will be replaced by the number.  Default '-#'.</dd>\n</dl>"}], "description": "Takes a native JavaScript Number and formats to string for display to user.", "guessedname": "format", "guessedtype": "function"}}, "static": "", "file": "Type.js", "guessedtype": "property", "shortname": "Number", "requires": "yahoo", "description": "The static Number class provides helper functions to deal with data of type\nNumber."}, "YAHOO.widget.Calendar2up": {"name": "YAHOO.widget.Calendar2up", "deprecated": "The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.", "namespace": "YAHOO.widget", "module": "calendar", "guessedname": "Calendar2up", "extends": "YAHOO.widget.CalendarGroup", "superclass": "YAHOO.widget.CalendarGroup", "file": "CalendarGroup.js", "guessedtype": "function", "shortname": "Calendar2up", "properties": {"Cal2up": {"deprecated": "The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.", "guessedname": "Cal2up", "guessedtype": "property"}}}, "YAHOO.widget.Slider": {"name": "YAHOO.widget.Slider", "description": "A DragDrop implementation that can be used as a background for a\nslider.  It takes a reference to the thumb instance \nso it can delegate some of the events to it.  The goal is to make the \nthumb jump to the location on the background when the background is \nclicked.", "constructors": [{"params": [{"type": "String", "name": "id", "description": "     The id of the element linked to this instance"}, {"type": "String", "name": "sGroup", "description": " The group of related DragDrop items"}, {"type": "SliderThumb", "name": "oThumb", "description": " The thumb for this slider"}, {"type": "String", "name": "sType", "description": "  The type of slider (horiz, vert, region)"}], "description": "A DragDrop implementation that can be used as a background for a\nslider.  It takes a reference to the thumb instance \nso it can delegate some of the events to it.  The goal is to make the \nthumb jump to the location on the background when the background is \nclicked."}], "namespace": "YAHOO.widget", "module": "slider", "events": {"slideEnd": {"description": "Event that fires at the end of a slider thumb move"}, "change": {"params": [{"type": "int", "name": "newOffset|x", "description": " the new offset for normal sliders, or the new\nx offset for region sliders"}, {"type": "int", "name": "y", "description": " the number of pixels the thumb has moved on the y axis\n(region sliders only)"}], "description": "Event the fires when the value of the control changes.  If \nthe control is animated the event will fire every point\nalong the way."}, "slideStart": {"description": "Event that fires at the beginning of a slider thumb move."}}, "uses": ["YAHOO.util.EventProvider"], "superclass": "YAHOO.util.DragDrop", "file": "Slider.js", "extends": "YAHOO.util.DragDrop", "shortname": "Slider", "properties": {"keyIncrement": {"type": "int", "description": "Specifies the number of pixels the arrow keys will move the slider.\nDefault is 20.", "guessedname": "keyIncrement", "guessedtype": "property"}, "_silent": {"guessedname": "_silent", "type": "boolean", "description": "Indicates whether or not events will be supressed for the current\nslide operation", "private": "", "guessedtype": "property"}, "backgroundEnabled": {"type": "boolean", "description": "Set to false to disable a background click thumb move", "guessedname": "backgroundEnabled", "guessedtype": "property"}, "animationDuration": {"default": "0.2", "type": "int", "description": "If animation is configured, specifies the length of the animation\nin seconds.", "guessedname": "animationDuration", "guessedtype": "property"}, "animate": {"type": "boolean", "description": "Flag that determines if the thumb will animate when moved", "guessedname": "animate", "guessedtype": "property"}, "moveComplete": {"deprecated": "use the slideEnd event instead", "type": "Boolean", "description": "moveComplete is set to true when the slider has moved to its final\ndestination.  For animated slider, this value can be checked in \nthe onChange handler to make it possible to execute logic only\nwhen the move is complete rather than at all points along the way.\nDeprecated because this flag is only useful when the background is\nclicked and the slider is animated.  If the user drags the thumb,\nthe flag is updated when the drag is over ... the final onDrag event\nfires before the mouseup the ends the drag, so the implementer will\nnever see it.", "guessedname": "moveComplete", "guessedtype": "property"}, "thumb": {"type": "YAHOO.widget.SliderThumb", "description": "A YAHOO.widget.SliderThumb instance that we will use to \nreposition the thumb when the background is clicked", "guessedname": "thumb", "guessedtype": "property"}, "SOURCE_SET_VALUE": {"description": "Constant for valueChangeSource, indicating that the value was altered\nby a programmatic call to setValue/setRegionValue.", "default": "2", "deprecated": "use static Slider.SOURCE_SET_VALUE", "guessedname": "SOURCE_SET_VALUE", "guessedtype": "property", "final": ""}, "SOURCE_UI_EVENT": {"description": "Constant for valueChangeSource, indicating that the user clicked or\ndragged the slider to change the value.", "default": "1", "deprecated": "use static Slider.SOURCE_UI_EVENT", "guessedname": "SOURCE_UI_EVENT", "guessedtype": "property", "final": ""}, "_mouseDown": {"description": "Tracks the state of the mouse button to aid in when events are fired.", "default": "false", "private": "", "guessedname": "_mouseDown", "guessedtype": "property", "type": "boolean"}, "Slider.ANIM_AVAIL": {"type": "boolean", "static": "", "description": "By default, animation is available if the animation utility is detected.", "guessedname": "ANIM_AVAIL", "guessedtype": "property"}, "Slider.SOURCE_UI_EVENT": {"description": "Constant for valueChangeSource, indicating that the user clicked or\ndragged the slider to change the value.", "default": "1", "static": "", "guessedname": "SOURCE_UI_EVENT", "guessedtype": "property", "final": ""}, "type": {"type": "string", "description": "The type of the slider (horiz, vert, region)", "guessedname": "type", "guessedtype": "property"}, "enableKeys": {"type": "boolean", "description": "Enables the arrow, home and end keys, defaults to true.", "guessedname": "enableKeys", "guessedtype": "property"}, "isTarget": {"private": "", "description": "Overrides the isTarget property in YAHOO.util.DragDrop", "guessedname": "isTarget", "guessedtype": "property"}, "baselinePos": {"type": "[int, int]", "description": "The basline position of the background element, used\nto determine if the background has moved since the last\noperation.", "guessedname": "baselinePos", "guessedtype": "property"}, "dragOnly": {"default": "true", "type": "boolean", "description": "Override the default setting of dragOnly to true.", "guessedname": "dragOnly", "guessedtype": "property"}, "lastOffset": {"type": "[int, int]", "description": "Saved offset used to protect against NaN problems when slider is\nset to display:none", "guessedname": "lastOffset", "guessedtype": "property"}, "thumbCenterPoint": {"type": "{\"x\": int, \"y\": int}", "description": "The center of the slider element is stored so we can \nplace it in the correct position when the background is clicked.", "guessedname": "thumbCenterPoint", "guessedtype": "property"}, "Slider.SOURCE_SET_VALUE": {"description": "Constant for valueChangeSource, indicating that the value was altered\nby a programmatic call to setValue/setRegionValue.", "default": "2", "static": "", "guessedname": "SOURCE_SET_VALUE", "guessedtype": "property", "final": ""}, "Slider.SOURCE_KEY_EVENT": {"description": "Constant for valueChangeSource, indicating that the value was altered\nby hitting any of the supported keyboard characters.", "default": "2", "static": "", "guessedname": "SOURCE_KEY_EVENT", "guessedtype": "property", "final": ""}, "valueChangeSource": {"since": "2.3.0", "type": "int", "description": "When the slider value changes, this property is set to identify where\nthe update came from.  This will be either 1, meaning the slider was\nclicked or dragged, or 2, meaning that it was set via a setValue() call.\nThis can be used within event handlers to apply some of the logic only\nwhen dealing with one source or another.", "guessedname": "valueChangeSource", "guessedtype": "property"}, "tickPause": {"type": "int", "description": "Adjustment factor for tick animation, the more ticks, the\nfaster the animation (by default)", "guessedname": "tickPause", "guessedtype": "property"}}, "methods": {"YAHOO.widget.Slider.getHorizDualSlider": {"return": {"type": "DualSlider", "description": "a horizontal dual-thumb slider control"}, "description": "Factory method for creating a horizontal dual-thumb slider", "static": "", "guessedname": "getHorizDualSlider", "guessedtype": "property", "params": [{"type": "String", "name": "bg", "description": " the id of the slider's background element"}, {"type": "String", "name": "minthumb", "description": " the id of the min thumb"}, {"type": "String", "name": "maxthumb", "description": " the id of the thumb thumb"}, {"type": "int", "name": "range", "description": " the number of pixels the thumbs can move within"}, {"type": "int", "name": "iTickSize", "description": " (optional) the element should move this many pixels\nat a time"}, {"type": "Array", "name": "initVals", "description": " (optional) [min,max] Initial thumb placement"}]}, "fireEvents": {"guessedname": "fireEvents", "params": [{"type": "boolean", "name": "thumbEvent", "description": " set to true if this event is fired from an event\nthat occurred on the thumb.  If it is, the state of the\nthumb dd object should be correct.  Otherwise, the event\noriginated on the background, so the thumb state needs to\nbe refreshed before proceeding."}], "description": "Fires the change event if the value has been changed.  Ignored if we are in\nthe middle of an animation as the event will fire when the animation is\ncomplete", "private": "", "guessedtype": "function"}, "lock": {"description": "Locks the slider, overrides YAHOO.util.DragDrop", "guessedname": "lock", "guessedtype": "function"}, "YAHOO.widget.Slider.getHorizSlider": {"return": {"type": "Slider", "description": "a horizontal slider control"}, "description": "Factory method for creating a horizontal slider", "static": "", "guessedname": "getHorizSlider", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "focus": {"private": "", "description": "Try to focus the element when clicked so we can add\naccessibility features", "guessedname": "focus", "guessedtype": "function"}, "onMouseDown": {"private": "", "description": "Handles the mousedown event for the slider background", "guessedname": "onMouseDown", "guessedtype": "function"}, "_setValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "description": "Worker function to execute the value set operation.  Accepts type of\nset operation in addition to the usual setValue params.", "protected": "", "params": [{"type": "int", "name": "source", "description": "  what triggered the set (e.g. Slider.SOURCE_SET_VALUE)"}, {"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}, {"type": "boolean", "name": "silent", "description": " when true, do not fire events"}], "guessedname": "_setValue", "guessedtype": "function"}, "handleKeyDown": {"params": [{"type": "Event", "name": "e", "description": " the keydown event"}], "description": "Executed when a keydown event happens with the control focused.\nUpdates the slider value and display when the keypress is an\narrow key, home, or end as long as enableKeys is set to true.", "guessedname": "handleKeyDown", "guessedtype": "function"}, "resetThumbConstraints": {"protected": "", "description": "Resets the X and Y contraints for the thumb.  Used in lieu of the thumb\ninstance's inherited resetConstraints because some logic was not\napplicable.", "guessedname": "resetThumbConstraints", "guessedtype": "function"}, "getXValue": {"return": {"type": "int", "description": "the current horizontal offset"}, "description": "Returns the slider's thumb X offset from the start position", "guessedname": "getXValue", "guessedtype": "function"}, "moveThumb": {"guessedname": "moveThumb", "params": [{"type": "int", "name": "x", "description": " the X coordinate of the click"}, {"type": "int", "name": "y", "description": " the Y coordinate of the click"}, {"type": "boolean", "name": "skipAnim", "description": " don't animate if the move happend onDrag"}, {"type": "boolean", "name": "midMove", "description": " set to true if this is not terminating\nthe slider movement"}], "description": "Move the associated slider moved to a timeout to try to get around the \nmousedown stealing moz does when I move the slider element between the \ncursor and the background during the mouseup event", "private": "", "guessedtype": "function"}, "setRegionValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "params": [{"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (x axis for region)"}, {"type": "int", "name": "newOffset2", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (y axis for region)"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}, {"type": "boolean", "name": "silent", "description": " when true, do not fire events"}], "description": "Provides a way to set the value of the region slider in code.", "guessedname": "setRegionValue", "guessedtype": "function"}, "onSliderEnd": {"deprecated": "use instance.subscribe(\"slideEnd\") instead", "description": "Event that fires at the end of a slider thumb move", "guessedname": "onSlideEnd", "guessedtype": "function"}, "thumbMouseUp": {"private": "", "description": "Handles mouseup event on the thumb", "guessedname": "thumbMouseUp", "guessedtype": "function"}, "YAHOO.widget.Slider.getSliderRegion": {"return": {"type": "Slider", "description": "a slider region control"}, "description": "Factory method for creating a slider region like the one in the color\npicker example", "static": "", "guessedname": "getSliderRegion", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "verifyOffset": {"return": {"type": "boolean", "description": "True if the offset is the same as the baseline."}, "description": "Checks the background position element position.  If it has moved from the\nbaseline position, the constraints for the thumb are reset", "guessedname": "verifyOffset", "guessedtype": "function"}, "initThumb": {"params": [{"type": "YAHOO.widget.SliderThumb", "name": "t", "description": " the slider thumb"}], "description": "Initializes the slider's thumb. Executed in the constructor.", "guessedname": "initThumb", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the instance"}, "description": "Slider toString", "guessedname": "toString", "guessedtype": "function"}, "moveOneTick": {"guessedname": "moveOneTick", "params": [{"type": "int[]", "name": "the", "description": " destination coordinate"}], "description": "Move the slider one tick mark towards its final coordinate.  Used\nfor the animation when tick marks are defined", "private": "", "guessedtype": "function"}, "onChange": {"deprecated": "use instance.subscribe(\"change\") instead", "params": [{"type": "int", "name": "firstOffset", "description": " the number of pixels the thumb has moved\nfrom its start position. Normal horizontal and vertical sliders will only\nhave the firstOffset.  Regions will have both, the first is the horizontal\noffset, the second the vertical."}, {"type": "int", "name": "secondOffset", "description": " the y offset for region sliders"}], "description": "Event that fires when the value of the slider has changed", "guessedname": "onChange", "guessedtype": "function"}, "initSlider": {"params": [{"type": "string", "name": "sType", "description": " the type of slider (horiz, vert, region)"}], "description": "Initializes the slider.  Executed in the constructor", "guessedname": "initSlider", "guessedtype": "function"}, "setValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "params": [{"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}, {"type": "boolean", "name": "silent", "description": " when true, do not fire events"}], "description": "Provides a way to set the value of the slider in code.", "guessedname": "setValue", "guessedtype": "function"}, "setThumbCenterPoint": {"description": "When the thumb is available, we cache the centerpoint of the element so\nwe can position the element correctly when the background is clicked", "guessedname": "setThumbCenterPoint", "guessedtype": "function"}, "_bindKeyEvents": {"protected": "", "description": "Sets up the listeners for keydown and key press events.", "guessedname": "_bindKeyEvents", "guessedtype": "function"}, "endMove": {"private": "", "description": "Fired when the slider movement ends", "guessedname": "endMove", "guessedtype": "function"}, "_setRegionValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "description": "Worker function to execute the value set operation.  Accepts type of\nset operation in addition to the usual setValue params.", "protected": "", "params": [{"type": "int", "name": "source", "description": "  what triggered the set (e.g. Slider.SOURCE_SET_VALUE)"}, {"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (x axis for region)"}, {"type": "int", "name": "newOffset2", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (y axis for region)"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}, {"type": "boolean", "name": "silent", "description": " when true, do not fire events"}], "guessedname": "_setRegionValue", "guessedtype": "function"}, "getYValue": {"return": {"type": "int", "description": "the current vertical offset"}, "description": "Returns the slider's thumb Y offset from the start position", "guessedname": "getYValue", "guessedtype": "function"}, "onAvailable": {"description": "Executed when the slider element is available", "guessedname": "onAvailable", "guessedtype": "function"}, "onSlideStart": {"deprecated": "use instance.subscribe(\"slideStart\") instead", "description": "Event that fires when the at the beginning of the slider thumb move", "guessedname": "onSlideStart", "guessedtype": "function"}, "onDrag": {"private": "", "description": "Handles the onDrag event for the slider background", "guessedname": "onDrag", "guessedtype": "function"}, "getThumb": {"return": {"type": "SliderThumb", "description": "this slider's thumb"}, "description": "Returns a reference to this slider's thumb", "guessedname": "getThumb", "guessedtype": "function"}, "YAHOO.widget.Slider.getVertSlider": {"return": {"type": "Slider", "description": "a vertical slider control"}, "description": "Factory method for creating a vertical slider", "static": "", "guessedname": "getVertSlider", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "handleKeyPress": {"params": [{"type": "Event", "name": "e", "description": " the keypress event"}], "description": "Executed when a keypress event happens with the control focused.\nPrevents the default behavior for navigation keys.  The actual\nlogic for moving the slider thumb in response to a key event\nhappens in handleKeyDown.", "guessedname": "handleKeyPress", "guessedtype": "function"}, "setStartSliderState": {"description": "Initialization that sets up the value offsets once the elements are ready", "guessedname": "setStartSliderState", "guessedtype": "function"}, "getValue": {"return": {"type": "int", "description": "the current value"}, "description": "Returns the slider's thumb offset from the start position", "guessedname": "getValue", "guessedtype": "function"}, "b4MouseDown": {"private": "", "description": "Resets the constraints before moving the thumb.", "guessedname": "b4MouseDown", "guessedtype": "function"}, "unlock": {"description": "Unlocks the slider, overrides YAHOO.util.DragDrop", "guessedname": "unlock", "guessedtype": "function"}, "YAHOO.widget.Slider.getVertDualSlider": {"return": {"type": "DualSlider", "description": "a vertical dual-thumb slider control"}, "description": "Factory method for creating a vertical dual-thumb slider.", "static": "", "guessedname": "getVertDualSlider", "guessedtype": "property", "params": [{"type": "String", "name": "bg", "description": " the id of the slider's background element"}, {"type": "String", "name": "minthumb", "description": " the id of the min thumb"}, {"type": "String", "name": "maxthumb", "description": " the id of the thumb thumb"}, {"type": "int", "name": "range", "description": " the number of pixels the thumbs can move within"}, {"type": "int", "name": "iTickSize", "description": " (optional) the element should move this many pixels\nat a time"}, {"type": "Array", "name": "initVals", "description": " (optional) [min,max] Initial thumb placement"}]}, "_getNextY": {"private": "", "description": "Returns the next Y tick value based on the current coord and the target coord.", "guessedname": "_getNextY", "guessedtype": "function"}, "_getNextX": {"private": "", "description": "Returns the next X tick value based on the current coord and the target coord.", "guessedname": "_getNextX", "guessedtype": "function"}}}, "YAHOO.util.ImageLoader.bgImgObj": {"name": "YAHOO.util.ImageLoader.bgImgObj", "constructors": [{"params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}], "description": "Background image object. A background image is one whose URL is specified by \"background-image\" in the element's style"}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "bgImgObj", "methods": {"_applyUrl": {"guessedname": "_applyUrl", "params": [{"type": "Object", "name": "el", "description": "\tHTML DOM element"}], "description": "Inserts the image URL into the DOM so that the image is displayed.\nSets style.backgroundImage", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.ImageLoader.imgObj", "superclass": "YAHOO.util.ImageLoader.imgObj", "file": "ImageLoader.js", "guessedtype": "function", "shortname": "bgImgObj", "description": "Background image object. A background image is one whose URL is specified by \"background-image\" in the element's style"}, "YAHOO.widget.LayoutUnit": {"name": "YAHOO.widget.LayoutUnit", "configs": {"dataTimeout": {"default": "null", "type": "Number", "description": "Number if milliseconds before aborting and calling failure handler."}, "grids": {"type": "Boolean", "description": "Set this option to true if you want the LayoutUnit to fix the first layer of YUI CSS Grids (margins)"}, "height": {"type": "Number", "description": "The height of the Unit"}, "header": {"description": "The text to use as the Header of the Unit"}, "wrap": {"type": "HTMLElement", "description": "A reference to the wrap element", "private": ""}, "close": {"description": "Adds a close icon to the unit"}, "animate": {"type": "Boolean", "description": "Use animation to collapse/expand the unit"}, "collapseSize": {"type": "Number", "description": "The pixel size of the Clip that we will collapse to"}, "top": {"type": "Number", "description": "The current top positioning of the Unit", "private": ""}, "minWidth": {"type": "Number", "description": "The minWidth parameter passed to the Resize Utility"}, "width": {"type": "Number", "description": "The width of the Unit"}, "maxWidth": {"type": "Number", "description": "The maxWidth parameter passed to the Resize Utility"}, "body": {"description": "The content for the body. If we find an element in the page with an id that matches the passed option we will move that element into the body of this unit."}, "hover": {"description": "Config option to pass to the Resize Utility"}, "collapse": {"description": "Adds a collapse icon to the unit"}, "parent": {"type": "{Object} YAHOO.widget.Layout", "description": "The parent Layout that we are assigned to"}, "duration": {"description": "The duration to give the Animation Utility when animating the opening and closing of Units"}, "minHeight": {"type": "Number", "description": "The minHeight parameter passed to the Resize Utility"}, "dataSrc": {"type": "String", "description": "The unit data source, used for loading content dynamically."}, "zIndex": {"type": "{Number}", "description": "The CSS zIndex to give to the unit, so you can have overlapping elements such as menus in a unit."}, "proxy": {"type": "Boolean", "description": "Use the proxy config setting for the Resize Utility"}, "position": {"type": "{String}", "description": "The position (top, right, bottom, left or center) of the Unit in the Layout"}, "dataLoaded": {"type": "Boolean", "description": "Whether or not any data has been loaded from the server."}, "resize": {"description": "Should a Resize instance be added to this unit"}, "gutter": {"type": "String", "description": "The gutter that we should apply to the parent Layout around this Unit. Supports standard CSS markup: (2 4 0 5) or (2) or (2 5)"}, "footer": {"description": "The content for the footer. If we find an element in the page with an id that matches the passed option we will move that element into the footer of this unit."}, "useShim": {"description": "Config option to pass to the Resize Utility"}, "loadMethod": {"default": "\"GET\"", "type": "String", "description": "The method to use for the data request."}, "maxHeight": {"type": "Number", "description": "The maxHeight parameter passed to the Resize Utility"}, "easing": {"description": "The Animation Easing to apply to the Animation instance for this unit."}, "scroll": {"type": "Boolean/Null", "description": "Adds a class to the unit to allow for overflow: auto (yui-layout-scroll), default is overflow: hidden (yui-layout-noscroll). If true scroll bars will be placed on the element when the content exceeds the given area, false will put overflow hidden to hide the content. Passing null will render the content as usual overflow."}, "left": {"type": "Number", "description": "The current left position of the Unit", "private": ""}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to make a unit."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Provides a fixed position unit containing a header, body and footer for use with a YAHOO.widget.Layout instance.</p>"}], "namespace": "YAHOO.widget", "module": "layout", "events": {"load": {"type": "YAHOO.util.CustomEvent", "description": "Fired when data is loaded via the dataSrc config."}, "contentChange": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the content in the header, body or footer is changed via the API"}, "proxyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "proxyChange", "description": "Fires when the value for the configuration attribute 'proxy' changes."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "beforeGutterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGutterChange", "description": "Fires before the value for the configuration attribute 'gutter' changes. Return false to cancel the attribute change."}, "beforeExpand": {"type": "YAHOO.util.CustomEvent", "description": "Fired before the unit is exanded. If you return false, the collapse is cancelled."}, "zIndexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "zIndexChange", "description": "Fires when the value for the configuration attribute 'zIndex' changes."}, "beforeMaxHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxHeightChange", "description": "Fires before the value for the configuration attribute 'maxHeight' changes. Return false to cancel the attribute change."}, "beforeLeftChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLeftChange", "description": "Fires before the value for the configuration attribute 'left' changes. Return false to cancel the attribute change."}, "maxWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxWidthChange", "description": "Fires when the value for the configuration attribute 'maxWidth' changes."}, "close": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the unit is closed"}, "gridsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "gridsChange", "description": "Fires when the value for the configuration attribute 'grids' changes."}, "beforeDataTimeoutChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataTimeoutChange", "description": "Fires before the value for the configuration attribute 'dataTimeout' changes. Return false to cancel the attribute change."}, "beforeParentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeParentChange", "description": "Fires before the value for the configuration attribute 'parent' changes. Return false to cancel the attribute change."}, "resizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "resizeChange", "description": "Fires when the value for the configuration attribute 'resize' changes."}, "beforeTopChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTopChange", "description": "Fires before the value for the configuration attribute 'top' changes. Return false to cancel the attribute change."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "beforeResizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeResizeChange", "description": "Fires before the value for the configuration attribute 'resize' changes. Return false to cancel the attribute change."}, "beforeHeaderChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeaderChange", "description": "Fires before the value for the configuration attribute 'header' changes. Return false to cancel the attribute change."}, "leftChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "leftChange", "description": "Fires when the value for the configuration attribute 'left' changes."}, "easingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "easingChange", "description": "Fires when the value for the configuration attribute 'easing' changes."}, "beforeMinWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinWidthChange", "description": "Fires before the value for the configuration attribute 'minWidth' changes. Return false to cancel the attribute change."}, "scrollChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "scrollChange", "description": "Fires when the value for the configuration attribute 'scroll' changes."}, "beforeDataSrcChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataSrcChange", "description": "Fires before the value for the configuration attribute 'dataSrc' changes. Return false to cancel the attribute change."}, "startResize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the Resize Utility fires it's startResize Event."}, "collapseSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "collapseSizeChange", "description": "Fires when the value for the configuration attribute 'collapseSize' changes."}, "beforeGridsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGridsChange", "description": "Fires before the value for the configuration attribute 'grids' changes. Return false to cancel the attribute change."}, "beforeMinHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinHeightChange", "description": "Fires before the value for the configuration attribute 'minHeight' changes. Return false to cancel the attribute change."}, "maxHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxHeightChange", "description": "Fires when the value for the configuration attribute 'maxHeight' changes."}, "beforeResize": {"type": "YAHOO.util.CustomEvent", "description": "Fired at the beginning of the resize method. If you return false, the resize is cancelled."}, "dataSrcChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataSrcChange", "description": "Fires when the value for the configuration attribute 'dataSrc' changes."}, "beforePositionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePositionChange", "description": "Fires before the value for the configuration attribute 'position' changes. Return false to cancel the attribute change."}, "expand": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the unit is exanded"}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "useShimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "useShimChange", "description": "Fires when the value for the configuration attribute 'useShim' changes."}, "hoverChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hoverChange", "description": "Fires when the value for the configuration attribute 'hover' changes."}, "beforeFooterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFooterChange", "description": "Fires before the value for the configuration attribute 'footer' changes. Return false to cancel the attribute change."}, "beforeCollapseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCollapseChange", "description": "Fires before the value for the configuration attribute 'collapse' changes. Return false to cancel the attribute change."}, "minWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minWidthChange", "description": "Fires when the value for the configuration attribute 'minWidth' changes."}, "beforeScrollChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeScrollChange", "description": "Fires before the value for the configuration attribute 'scroll' changes. Return false to cancel the attribute change."}, "beforeCollapseSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCollapseSizeChange", "description": "Fires before the value for the configuration attribute 'collapseSize' changes. Return false to cancel the attribute change."}, "bodyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "bodyChange", "description": "Fires when the value for the configuration attribute 'body' changes."}, "gutterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "gutterChange", "description": "Fires when the value for the configuration attribute 'gutter' changes."}, "durationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "durationChange", "description": "Fires when the value for the configuration attribute 'duration' changes."}, "beforeZIndexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeZIndexChange", "description": "Fires before the value for the configuration attribute 'zIndex' changes. Return false to cancel the attribute change."}, "animateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateChange", "description": "Fires when the value for the configuration attribute 'animate' changes."}, "beforeDurationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDurationChange", "description": "Fires before the value for the configuration attribute 'duration' changes. Return false to cancel the attribute change."}, "beforeProxyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeProxyChange", "description": "Fires before the value for the configuration attribute 'proxy' changes. Return false to cancel the attribute change."}, "footerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "footerChange", "description": "Fires when the value for the configuration attribute 'footer' changes."}, "headerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "headerChange", "description": "Fires when the value for the configuration attribute 'header' changes."}, "beforeHoverChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHoverChange", "description": "Fires before the value for the configuration attribute 'hover' changes. Return false to cancel the attribute change."}, "beforeWrapChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWrapChange", "description": "Fires before the value for the configuration attribute 'wrap' changes. Return false to cancel the attribute change."}, "loadMethodChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "loadMethodChange", "description": "Fires when the value for the configuration attribute 'loadMethod' changes."}, "beforeCloseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCloseChange", "description": "Fires before the value for the configuration attribute 'close' changes. Return false to cancel the attribute change."}, "beforeDataLoadedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataLoadedChange", "description": "Fires before the value for the configuration attribute 'dataLoaded' changes. Return false to cancel the attribute change."}, "resize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when this.resize is called"}, "endResize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the Resize Utility fires it's endResize Event."}, "positionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "positionChange", "description": "Fires when the value for the configuration attribute 'position' changes."}, "beforeAnimateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateChange", "description": "Fires before the value for the configuration attribute 'animate' changes. Return false to cancel the attribute change."}, "minHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minHeightChange", "description": "Fires when the value for the configuration attribute 'minHeight' changes."}, "loadError": {"type": "YAHOO.util.CustomEvent", "description": "Fired when an error occurs loading data via the dataSrc config. Error message is passed as argument to this event."}, "dataLoadedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataLoadedChange", "description": "Fires when the value for the configuration attribute 'dataLoaded' changes."}, "beforeEasingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeEasingChange", "description": "Fires before the value for the configuration attribute 'easing' changes. Return false to cancel the attribute change."}, "beforeMaxWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxWidthChange", "description": "Fires before the value for the configuration attribute 'maxWidth' changes. Return false to cancel the attribute change."}, "topChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "topChange", "description": "Fires when the value for the configuration attribute 'top' changes."}, "collapse": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the unit is collapsed"}, "beforeBodyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBodyChange", "description": "Fires before the value for the configuration attribute 'body' changes. Return false to cancel the attribute change."}, "beforeLoadMethodChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLoadMethodChange", "description": "Fires before the value for the configuration attribute 'loadMethod' changes. Return false to cancel the attribute change."}, "beforeUseShimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUseShimChange", "description": "Fires before the value for the configuration attribute 'useShim' changes. Return false to cancel the attribute change."}, "parentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "parentChange", "description": "Fires when the value for the configuration attribute 'parent' changes."}, "beforeCollapse": {"type": "YAHOO.util.CustomEvent", "description": "Fired before the unit is collapsed. If you return false, the collapse is cancelled."}, "wrapChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "wrapChange", "description": "Fires when the value for the configuration attribute 'wrap' changes."}, "closeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "closeChange", "description": "Fires when the value for the configuration attribute 'close' changes."}, "dataTimeoutChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataTimeoutChange", "description": "Fires when the value for the configuration attribute 'dataTimeout' changes."}, "collapseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "collapseChange", "description": "Fires when the value for the configuration attribute 'collapse' changes."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "LayoutUnit", "methods": {"_getBoxSize": {"return": {"type": "Array", "description": "An array of height and width"}, "description": "Get's the elements clientHeight and clientWidth plus the size of the borders", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The HTMLElement to get the size of"}], "guessedname": "_getBoxSize", "guessedtype": "function"}, "toggle": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "description": "Toggles the Unit, replacing it with a clipped version.", "guessedname": "toggle", "guessedtype": "function"}, "init": {"description": "The initalization method inherited from Element.", "private": "", "guessedname": "init", "guessedtype": "function"}, "_getBorderSizes": {"return": {"type": "Array", "description": "An array of the top, right, bottom, left borders."}, "description": "Get the CSS border size of the element passed.", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to get the border size of"}], "guessedname": "_getBorderSizes", "guessedtype": "function"}, "_setHeight": {"return": {"type": "Number", "description": "The new height, fixed for borders and IE QuirksMode"}, "description": "Sets the height of the element based on the border size of the element.", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The HTMLElement to have it's height set"}, {"type": "Number", "name": "h", "description": " The height that you want it the element set to"}], "guessedname": "_setHeight", "guessedtype": "function"}, "_setWidth": {"return": {"type": "Number", "description": "The new width, fixed for borders and IE QuirksMode"}, "description": "Sets the width of the element based on the border size of the element.", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The HTMLElement to have it's width set"}, {"type": "Number", "name": "w", "description": " The width that you want it the element set to"}], "guessedname": "_setWidth", "guessedtype": "function"}, "_toggleClip": {"description": "Toggle th current state of the Clip element and set it's height, width and position", "private": "", "guessedname": "_toggleClip", "guessedtype": "function"}, "getLayoutUnitById": {"static": "", "return": {"type": "Object", "description": "The Layout Object"}, "description": "Get's a layout unit object by the HTML id of the element associated with the Layout Unit object.", "guessedname": "getLayoutUnitById", "guessedtype": "function"}, "_fixQuirks": {"return": {"type": "Number", "description": "The fixed dimension"}, "description": "Fixes the box calculations for IE in QuirksMode", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The HTMLElement to set the dimension on"}, {"type": "Number", "name": "dim", "description": " The number of the dimension to fix"}, {"type": "String", "name": "side", "description": " The dimension (h or w) to fix. Defaults to h"}], "guessedname": "_fixQuirks", "guessedtype": "function"}, "loadContent": {"return": {"type": "object", "description": "YUI Connection Manager handler"}, "description": "Loading the content of the unit using the connection manager", "guessedname": "loadContent", "guessedtype": "function"}, "_createClip": {"description": "Create the clip element used when the Unit is collapsed", "private": "", "guessedname": "_createClip", "guessedtype": "function"}, "initAttributes": {"description": "Processes the config", "private": "", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the LayoutUnit.", "guessedname": "toString", "guessedtype": "function"}, "getSizes": {"return": {"type": "Object", "description": "An object of the sizes used for calculations"}, "description": "Get a reference to the internal sizes object for this unit", "guessedname": "getSizes", "guessedtype": "function"}, "_cleanGrids": {"description": "This method attempts to clean up the first level of the YUI CSS Grids, YAHOO.util.Selector is required for this operation.", "private": "", "guessedname": "_cleanGrids", "guessedtype": "function"}, "destroy": {"return": {"type": "<a href=\"YAHOO.widget.Layout.html\">YAHOO.widget.Layout</a>", "description": "The parent Layout instance"}, "params": [{"type": "Boolean", "name": "force", "description": " Don't report to the parent, because we are being called from the parent."}], "description": "Removes this unit from the parent and cleans up after itself.", "guessedname": "destroy", "guessedtype": "function"}, "expand": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "description": "Expand the Unit if it is collapsed.", "guessedname": "expand", "guessedtype": "function"}, "close": {"return": {"type": "<a href=\"YAHOO.widget.Layout.html\">YAHOO.widget.Layout</a>", "description": "The parent Layout instance"}, "description": "Close the unit, removing it from the parent Layout.", "guessedname": "close", "guessedtype": "function"}, "_createHeader": {"guessedname": "_createHeader", "return": {"type": "HTMLElement", "description": "The new HTMLElement"}, "description": "Creates the HTMLElement for the header", "private": "", "guessedtype": "function"}, "resize": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "params": [{"type": "Boolean", "name": "force", "description": " This will force full calculations even when the unit is collapsed"}], "description": "Resize either the unit or it's clipped state, also updating the box inside", "guessedname": "resize", "guessedtype": "function"}, "collapse": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "description": "Collapse the Unit if it is not collapsed.", "guessedname": "collapse", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "layoutunit.js", "guessedtype": "function", "shortname": "LayoutUnit", "properties": {"_lastWidth": {"guessedname": "_lastWidth", "type": "Number", "description": "A holder for the last known width of the unit", "private": "", "guessedtype": "property"}, "LOADING_CLASSNAME": {"default": "\"disabled\"", "type": "String", "description": "The class name applied to dynamic tabs while loading.", "guessedname": "LOADING_CLASSNAME", "guessedtype": "property"}, "header": {"type": "HTMLELement", "description": "A reference to the HTML element used for the Header", "guessedname": "header", "guessedtype": "property"}, "_anim": {"guessedname": "_anim", "type": "YAHOO.util.Anim", "description": "A reference to the Animation instance used by this LayouUnit", "private": "", "guessedtype": "property"}, "STR_COLLAPSE": {"type": "{String}", "description": "String used for collapse button title", "guessedname": "STR_COLLAPSE", "guessedtype": "property"}, "_collapsed": {"guessedname": "_collapsed", "type": "Boolean", "description": "Flag to determine if the unit is collapsed or not.", "private": "", "guessedtype": "property"}, "_lastScroll": {"guessedname": "_lastScroll", "type": "Boolean", "description": "A holder for the last known scroll state of the unit", "private": "", "guessedtype": "property"}, "_lastLeft": {"guessedname": "_lastLeft", "type": "Number", "description": "A holder for the last known left of the unit", "private": "", "guessedtype": "property"}, "_instances": {"description": "Internal hash table for all layout unit instances", "private": "", "static": "", "guessedname": "_instances", "guessedtype": "property", "type": "Object"}, "_lastHeight": {"guessedname": "_lastHeight", "type": "Number", "description": "A holder for the last known height of the unit", "private": "", "guessedtype": "property"}, "_loading": {"guessedname": "_loading", "type": "Number", "description": "During the loading process this variable will be true", "private": "", "guessedtype": "property"}, "body": {"type": "HTMLElement", "description": "A reference to the HTML element used for the body", "guessedname": "body", "guessedtype": "property"}, "_lastCenetrScroll": {"guessedname": "_lastCenterScroll", "type": "Boolean", "description": "A holder for the last known scroll state of the center unit", "private": "", "guessedtype": "property"}, "_resize": {"guessedname": "_resize", "type": "YAHOO.util.Resize", "description": "A reference to the Resize instance used by this LayoutUnit", "private": "", "guessedtype": "property"}, "_sizes": {"guessedname": "_sizes", "type": "Object", "description": "A collection of the current sizes of the contents of this Layout Unit", "private": "", "guessedtype": "property"}, "STR_CLOSE": {"type": "{String}", "description": "String used for close button title", "guessedname": "STR_CLOSE", "guessedtype": "property"}, "_lastTop": {"guessedname": "_lastTop", "type": "Number", "description": "A holder for the last known top of the unit", "private": "", "guessedtype": "property"}, "loadHandler": {"type": "Object", "description": "Callback method for the YUI Connection Manager used for load the body using AJAX", "guessedname": "loadHandler", "guessedtype": "property"}, "_collapsing": {"guessedname": "_collapsing", "type": "Boolean", "description": "A flag set while the unit is being collapsed, used so we don't fire events while animating the size", "private": "", "guessedtype": "property"}, "footer": {"type": "HTMLElement", "description": "A reference to the HTML element used for the footer", "guessedname": "footer", "guessedtype": "property"}, "_gutter": {"guessedname": "_gutter", "type": "Object", "description": "A simple hash table used to store the gutter to apply to the Unit", "private": "", "guessedtype": "property"}, "_lastScrollTop": {"guessedname": "_lastScrollTop", "type": "Number", "description": "A holder for the last known scrollTop state of the unit", "private": "", "guessedtype": "property"}, "STR_EXPAND": {"type": "{String}", "description": "String used for expand button title", "guessedname": "STR_EXPAND", "guessedtype": "property"}, "_clip": {"guessedname": "_clip", "type": "HTMLElement", "description": "A reference to the clip element used when collapsing the unit", "private": "", "guessedtype": "property"}, "dataConnection": {"type": "Object", "description": "YUI Connection Manager handler", "guessedname": "dataConnection", "guessedtype": "property"}, "browser": {"type": "Object", "description": "A modified version of the YAHOO.env.ua object", "guessedname": "browser", "guessedtype": "property"}}, "description": "<p>Provides a fixed position unit containing a header, body and footer for use with a YAHOO.widget.Layout instance.</p>"}, "YAHOO.widget.NumericAxis": {"name": "YAHOO.widget.NumericAxis", "constructors": [{"description": "A type of axis whose units are measured in numeric values."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "NumericAxis", "extends": "YAHOO.widget.Axis", "superclass": "YAHOO.widget.Axis", "file": "NumericAxis.js", "guessedtype": "function", "shortname": "NumericAxis", "properties": {"scale": {"type": "String", "description": "The scaling algorithm to use on this axis. May be \"linear\" or \"logarithmic\".", "guessedname": "scale", "guessedtype": "property"}, "stackingEnabled": {"type": "Boolean", "description": "Series that are stackable will only stack when this value is set to true.", "guessedname": "stackingEnabled", "guessedtype": "property"}, "calculateByLabelSize": {"type": "Boolean", "description": "Indicates whether to factor in the size of the labels when calculating a major unit.", "guessedname": "calculateByLabelSize", "guessedtype": "property"}, "maximum": {"type": "Number", "description": "The maximum value drawn by the axis. If not set explicitly, the axis maximum\nwill be calculated automatically.", "guessedname": "maximum", "guessedtype": "property"}, "adjustMaximumByMajorUnit": {"type": "Boolean", "description": "Indicates whether to extend maximum beyond data's maximum to the nearest \nmajorUnit.", "guessedname": "adjustMaximumByMajorUnit", "guessedtype": "property"}, "minorUnit": {"type": "Number", "description": "The spacing between minor intervals on this axis.", "guessedname": "minorUnit", "guessedtype": "property"}, "minimum": {"type": "Number", "description": "The minimum value drawn by the axis. If not set explicitly, the axis minimum\nwill be calculated automatically.", "guessedname": "minimum", "guessedtype": "property"}, "majorUnit": {"type": "Number", "description": "The spacing between major intervals on this axis.", "guessedname": "majorUnit", "guessedtype": "property"}, "adjustMinimumByMajorUnit": {"type": "Boolean", "description": "Indicates whether to extend the minimum beyond data's minimum to the nearest\nmajorUnit.", "guessedname": "adjustMinimumByMajorUnit", "guessedtype": "property"}, "snapToUnits": {"type": "Boolean", "description": "If true, the labels, ticks, gridlines, and other objects will snap to\nthe nearest major or minor unit. If false, their position will be based\non the minimum value.", "guessedname": "snapToUnits", "guessedtype": "property"}, "position": {"type": "String", "description": "Indicates the position of the axis relative to the chart", "guessedname": "position", "guessedtype": "property"}, "roundMajorUnit": {"type": "Boolean", "description": "Indicates whether to round the major unit.", "guessedname": "roundMajorUnit", "guessedtype": "property"}, "alwaysShowZero": {"type": "Boolean", "description": "If true, and the bounds are calculated automatically, either the minimum or\nmaximum will be set to zero.", "guessedname": "alwaysShowZero", "guessedtype": "property"}}, "description": "A type of axis whose units are measured in numeric values."}, "YAHOO.widget.Uploader": {"name": "YAHOO.widget.Uploader", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "String", "name": "buttonSkin", "description": "  [optional]. If defined, the uploader is \nrendered as a button. This parameter must provide the URL of a button\nskin sprite image. Acceptable types are: jpg, gif, png and swf. The \nsprite is divided evenly into four sections along its height (e.g., if\nthe sprite is 200 px tall, it's divided into four sections 50px each).\nEach section is used as a skin for a specific state of the button: top\nsection is \"up\", second section is \"over\", third section is \"down\", and\nfourth section is \"disabled\". \nIf the parameter is not supplied, the uploader is rendered transparent,\nand it's the developer's responsibility to create a visible UI below it."}, {"type": "Boolean", "name": "forceTransparent", "description": "  This parameter, if true, forces the Flash\nUI to be rendered with wmode set to \"transparent\". This behavior is useful \nin conjunction with non-rectangular button skins with PNG transparency. \nThe parameter is false by default, and ignored if no buttonSkin is defined."}], "description": "Uploader class for the YUI Uploader component."}], "namespace": "YAHOO.widget", "module": "uploader", "properties": {"Chart.SWFURL": {"description": "Location of the Uploader SWF", "default": "\"assets/uploader.swf\"", "private": "", "static": "", "guessedname": "SWFURL", "guessedtype": "property", "final": ""}}, "guessedname": "Uploader", "methods": {"uploadAll": {"params": [{"type": "String", "name": "uploadScriptPath", "description": "  The URL of the upload location."}, {"type": "String", "name": "method", "description": "  Either \"GET\" or \"POST\", specifying how the variables accompanying the file upload POST request should be submitted. \"GET\" by default."}, {"type": "Object", "name": "vars", "description": "  The object containing variables to be sent in the same request as the file upload."}, {"type": "String", "name": "fieldName", "description": "  The name of the variable in the POST request containing the file data. \"Filedata\" by default.\n</code>"}], "description": "Starts uploading all files in the queue. If this function is called, the upload queue is automatically managed.", "guessedname": "uploadAll", "guessedtype": "function"}, "enable": {"description": "Enables the mouse events on the Uploader.\nIf the uploader is being rendered as a button,\nthen the button's skin is set to \"up\"\n(first section of the button skin sprite).", "guessedname": "enable", "guessedtype": "function"}, "setAllowLogging": {"params": [{"type": "Boolean", "name": "allowLogging", "description": "  If true, logs are output; otherwise, no logs are produced."}], "description": "Turns the logging functionality on.\nUses Flash internal trace logging, as well as YUI Logger, if available.", "guessedname": "setAllowLogging", "guessedtype": "function"}, "clearFileList": {"description": "Clears the list of files queued for upload.", "guessedname": "clearFileList", "guessedtype": "function"}, "upload": {"params": [{"type": "String", "name": "fileID", "description": "  The id of the file to start uploading."}, {"type": "String", "name": "uploadScriptPath", "description": "  The URL of the upload location."}, {"type": "String", "name": "method", "description": "  Either \"GET\" or \"POST\", specifying how the variables accompanying the file upload POST request should be submitted. \"GET\" by default."}, {"type": "Object", "name": "vars", "description": "  The object containing variables to be sent in the same request as the file upload."}, {"type": "String", "name": "fieldName", "description": "  The name of the variable in the POST request containing the file data. \"Filedata\" by default.\n</code>"}], "description": "Starts the upload of the file specified by fileID to the location specified by uploadScriptPath.", "guessedname": "upload", "guessedtype": "function"}, "removeFile": {"params": [{"type": "String", "name": "fileID", "description": "  The id of the file to remove from the upload queue."}], "description": "Removes the specified file from the upload queue.", "guessedname": "removeFile", "guessedtype": "function"}, "setSimUploadLimit": {"params": [{"type": "int", "name": "simUploadLimit", "description": "  Number of simultaneous uploads, between 1 and 5."}], "description": "Sets the number of simultaneous uploads when using uploadAll()\nThe minimum value is 1, and maximum value is 5. The default value is 2.", "guessedname": "setSimUploadLimit", "guessedtype": "function"}, "disable": {"description": "Disables the mouse events on the Uploader.\nIf the uploader is being rendered as a button,\nthen the button's skin is set to \"disabled\"\n(fourth section of the button skin sprite).", "guessedname": "disable", "guessedtype": "function"}, "setAllowMultipleFiles": {"params": [{"type": "Boolean", "name": "allowMultipleFiles", "description": "  If true, multiple files can be selected. False by default."}], "description": "Sets the flag allowing users to select multiple files for the upload.", "guessedname": "setAllowMultipleFiles", "guessedtype": "function"}, "uploadThese": {"params": [{"type": "Array", "name": "fileIDs", "description": "  The ids of the files to start uploading."}, {"type": "String", "name": "uploadScriptPath", "description": "  The URL of the upload location."}, {"type": "String", "name": "method", "description": "  Either \"GET\" or \"POST\", specifying how the variables accompanying the file upload POST request should be submitted. \"GET\" by default."}, {"type": "Object", "name": "vars", "description": "  The object containing variables to be sent in the same request as the file upload."}, {"type": "String", "name": "fieldName", "description": "  The name of the variable in the POST request containing the file data. \"Filedata\" by default.\n</code>"}], "description": "Starts the upload of the files specified by fileIDs, or adds them to a currently running queue. The upload queue is automatically managed.", "guessedname": "uploadThese", "guessedtype": "function"}, "cancel": {"params": [{"type": "String", "name": "fileID", "description": "  The ID of the file whose upload should be cancelled."}], "description": "Cancels the upload of a specified file. If no file id is specified, all ongoing uploads are cancelled.", "guessedname": "cancel", "guessedtype": "function"}, "setFileFilters": {"params": [{"type": "extensions: extensionString, description: descriptionString, [optional]macType: macTypeString", "name": "newFilterArray", "description": " An array of sets of key-value pairs of the form\n\nThe extensions string is a semicolon-delimited list of elements of the form \"*.xxx\", \ne.g. \"*.jpg;*.gif;*.png\"."}], "description": "Sets the file filters for the \"Browse\" dialog.", "guessedname": "setFileFilters", "guessedtype": "function"}}, "uses": ["YAHOO.widget.FlashAdapter"], "file": "Uploader.js", "guessedtype": "function", "shortname": "Uploader", "events": {"uploadProgress": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file with which the upload progress data is associated"}, {"type": "Number", "name": "bytesLoaded", "description": "  The number of bytes of the file uploaded so far"}, {"type": "Number", "name": "bytesTotal", "description": "  The total size of the file"}], "description": "Fires when new information about the upload progress for a specific file is available."}, "uploadCompleteData": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file for which the upload has been completed."}, {"type": "String", "name": "event.data", "description": "  The raw data returned by the server in response to the upload."}], "description": "Fires when the server sends data in response to a completed upload."}, "uploadStart": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file that's started to upload"}], "description": "Fires when an upload of a specific file has started."}, "uploadComplete": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file for which the upload has been completed."}], "description": "Fires when an upload for a specific file is complete."}, "mouseUp": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the mouse is released over the Uploader.\nOnly fires when the Uploader UI is enabled and\nthe render type is 'transparent'."}, "fileSelect": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.fileList", "description": "  A dictionary of objects with file information"}, {"type": "Number", "name": "event.fileList[].size", "description": "  File size in bytes for a specific file in fileList"}, {"type": "Date", "name": "event.fileList[].cDate", "description": "  Creation date for a specific file in fileList"}, {"type": "Date", "name": "event.fileList[].mDate", "description": "  Modification date for a specific file in fileList"}, {"type": "String", "name": "event.fileList[].name", "description": "  File name for a specific file in fileList"}, {"type": "String", "name": "event.fileList[].id", "description": "  Unique file id of a specific file in fileList"}], "description": "Fires when the user has finished selecting files in the \"Open File\" dialog."}, "mouseDown": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the mouse is pressed over the Uploader.\nOnly fires when the Uploader UI is enabled and\nthe render type is 'transparent'."}, "rollOut": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the mouse rolls out of the Uploader."}, "uploadCancel": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file with which the upload has been cancelled."}], "description": "Fires when an upload for a specific file is cancelled."}, "rollOver": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the mouse rolls over the Uploader."}, "uploadError": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file that was being uploaded when the error has occurred."}, {"type": "String", "name": "event.status", "description": "  The status message associated with the error."}], "description": "Fires when an upload error occurs."}, "click": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the uploader is clicked."}}, "description": "Uploader class for the YUI Uploader component."}, "YAHOO.util.ShouldError": {"name": "YAHOO.util.ShouldError", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}], "description": "ShouldError is subclass of AssertionError that is thrown whenever\na test is expected to throw an error but doesn't."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ShouldError", "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "ShouldError", "properties": {"name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "ShouldError is subclass of AssertionError that is thrown whenever\na test is expected to throw an error but doesn't."}, "YAHOO.util.ComparisonFailure": {"name": "YAHOO.util.ComparisonFailure", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}, {"type": "Object", "name": "expected", "description": " The expected value."}, {"type": "Object", "name": "actual", "description": " The actual value that caused the assertion to fail."}], "description": "ComparisonFailure is subclass of AssertionError that is thrown whenever\na comparison between two values fails. It provides mechanisms to retrieve\nboth the expected and actual value."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ComparisonFailure", "methods": {"toString": {"return": {"type": "String", "description": "A string describing the error."}, "description": "Returns a fully formatted error for an assertion failure. This message\nprovides information about the expected and actual values.", "guessedname": "getMessage", "guessedtype": "function"}}, "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "ComparisonFailure", "properties": {"expected": {"type": "Object", "description": "The expected value."}, "actual": {"type": "Object", "description": "The actual value."}, "name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "ComparisonFailure is subclass of AssertionError that is thrown whenever\na comparison between two values fails. It provides mechanisms to retrieve\nboth the expected and actual value."}, "YAHOO.widget.ContextMenu": {"name": "YAHOO.widget.ContextMenu", "configs": {"trigger": {"default": "null", "type": "String|<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|Array", "description": "The HTML element(s) whose \"contextmenu\" event (\"mousedown\" \nfor Opera) trigger the display of the context menu.  Can be a string \nrepresenting the id attribute of the HTML element, an object reference \nfor the HTML element, or an array of strings or HTML element references."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the context menu."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source for the \ncontext menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object specifying the \n<code><div></code> element of the context menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " Object specifying \nthe <code><select></code> element to be used as the data source for \nthe context menu."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the context menu. See configuration class documentation \nfor more details."}], "description": "Creates a list of options or commands which are made visible in response to \nan HTML element's \"contextmenu\" event (\"mousedown\" for Opera)."}], "namespace": "YAHOO.widget", "module": "menu", "events": {"triggerContextMenuEvent": {"description": "Custom Event wrapper for the \"contextmenu\" DOM event \n(\"mousedown\" for Opera) fired by the element(s) that trigger the display of \nthe context menu.", "guessedname": "triggerContextMenuEvent", "guessedtype": "property"}}, "guessedname": "ContextMenu", "methods": {"initEvents": {"description": "Initializes the custom events for the context menu.", "guessedname": "initEvents", "guessedtype": "function"}, "_onTriggerClick": {"guessedname": "_onTriggerClick", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed back \nby the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.ContextMenu", "name": "p_oMenu", "description": " Object representing the context \nmenu that is handling the event."}], "description": "\"click\" event handler for the HTML element(s) identified as the \n\"trigger\" for the context menu.  Used to cancel default behaviors in Opera.", "private": "", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the context menu."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source for \nthe context menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object specifying the \n<code><div></code> element of the context menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " Object specifying \nthe <code><select></code> element to be used as the data source for \nthe context menu."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the context menu. See configuration class documentation \nfor more details."}], "description": "The ContextMenu class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references for \npre-existing markup, and creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the context menu.", "guessedname": "toString", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be \nchanged using the context menu's Config object (\"cfg\").", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "destroy": {"description": "Removes the context menu's <code><div></code> element \n(and accompanying child nodes) from the document.", "guessedname": "destroy", "guessedtype": "function"}, "cancel": {"description": "Cancels the display of the context menu.", "guessedname": "cancel", "guessedtype": "function"}, "position": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "Array", "name": "p_aPos", "description": " Array representing the xy position for the context menu."}], "description": "\"beforeShow\" event handler used to position the contextmenu.", "private": ""}, "_onTriggerContextMenu": {"guessedname": "_onTriggerContextMenu", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed back \nby the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.ContextMenu", "name": "p_oMenu", "description": " Object representing the context \nmenu that is handling the event."}], "description": "\"contextmenu\" event handler (\"mousedown\" for Opera) for the HTML \nelement(s) that trigger the display of the context menu.", "private": "", "guessedtype": "function"}, "_removeEventHandlers": {"description": "Removes all of the DOM event handlers from the HTML element(s) \nwhose \"context menu\" event (\"click\" for Opera) trigger the display of \nthe context menu.", "private": "", "guessedname": "_removeEventHandlers", "guessedtype": "function"}, "configTrigger": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.ContextMenu", "name": "p_oMenu", "description": " Object representing the context \nmenu that fired the event."}], "description": "Event handler for when the value of the \"trigger\" configuration \nproperty changes.", "guessedname": "configTrigger", "guessedtype": "function"}}, "extends": "YAHOO.widget.Menu", "superclass": "YAHOO.widget.Menu", "file": "contextmenu.js", "guessedtype": "function", "shortname": "ContextMenu", "properties": {"_oTrigger": {"description": "Object reference to the current value of the \"trigger\" \nconfiguration property.", "default": "null", "private": "", "guessedname": "_oTrigger", "guessedtype": "property", "type": "String|<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/leve\nl-one-html.html#ID-58190037\">HTMLElement</a>|Array"}, "contextEventTarget": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-58190037\">HTMLElement</a>", "description": "Object reference for the HTML element that was the target of the\n\"contextmenu\" DOM event (\"mousedown\" for Opera) that triggered the display of \nthe context menu.", "guessedname": "contextEventTarget", "guessedtype": "property"}, "EVENT_TYPES": {"description": "Constant representing the name of the ContextMenu's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "DEFAULT_CONFIG": {"description": "Constant representing the ContextMenu's configuration properties", "private": "", "guessedname": "TRIGGER_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "_bCancelled": {"description": "Boolean indicating if the display of the context menu should \nbe cancelled.", "default": "false", "private": "", "guessedname": "_bCancelled", "guessedtype": "property", "type": "Boolean"}}, "description": "Creates a list of options or commands which are made visible in response to \nan HTML element's \"contextmenu\" event (\"mousedown\" for Opera)."}, "YAHOO.widget.TVAnim": {"name": "YAHOO.widget.TVAnim", "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "TVAnim", "methods": {"isValid": {"return": {"type": "boolean", "description": "true if valid, false if not"}, "description": "Returns true if the specified animation class is available", "static": "", "guessedname": "isValid", "guessedtype": "function", "params": [{"type": "string", "name": "type", "description": "  the type of animation"}]}, "getAnim": {"return": {"type": "YAHOO.util.Animation", "description": "the animation instance"}, "description": "Returns a ygAnim instance of the given type", "static": "", "guessedname": "getAnim", "guessedtype": "function", "params": [{"type": "string", "name": "type", "description": "  the type of animation"}, {"type": "HTMLElement", "name": "el", "description": "  the element to element (probably the children div)"}, {"type": "function", "name": "callback", "description": "  function to invoke when the animation is done."}]}}, "static": "", "file": "TVAnim.js", "guessedtype": "function", "shortname": "TVAnim", "properties": {"FADE_OUT": {"type": "string", "static": "", "description": "Constant for the fade out animation", "guessedname": "FADE_OUT", "guessedtype": "property"}, "FADE_IN": {"type": "string", "static": "", "description": "Constant for the fade in animation", "guessedname": "FADE_IN", "guessedtype": "property"}}, "description": "A static factory class for tree view expand/collapse animations"}, "YAHOO.util.Easing": {"name": "YAHOO.util.Easing", "namespace": "YAHOO.util", "module": "animation", "guessedname": "Easing", "methods": {"easeIn": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins slowly and accelerates towards end.", "guessedname": "easeIn", "guessedtype": "function"}, "easeInStrong": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins slowly and accelerates towards end.", "guessedname": "easeInStrong", "guessedtype": "function"}, "bounceBoth": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Bounces off start and end.", "guessedname": "bounceBoth", "guessedtype": "function"}, "backOut": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "s", "description": " Overshoot (optional)"}], "description": "Overshoots end, then reverses and comes back to end.", "guessedname": "backOut", "guessedtype": "function"}, "elasticBoth": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "a", "description": " Amplitude (optional)"}, {"type": "Number", "name": "p", "description": " Period (optional)"}], "description": "Snap both elastic effect.", "guessedname": "elasticBoth", "guessedtype": "function"}, "elasticOut": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "a", "description": " Amplitude (optional)"}, {"type": "Number", "name": "p", "description": " Period (optional)"}], "description": "Snap out elastic effect.", "guessedname": "elasticOut", "guessedtype": "function"}, "bounceOut": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Bounces off end.", "guessedname": "bounceOut", "guessedtype": "function"}, "backBoth": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "s", "description": " Overshoot (optional)"}], "description": "Backtracks slightly, then reverses direction, overshoots end, \nthen reverses and comes back to end.", "guessedname": "backBoth", "guessedtype": "function"}, "easeBoth": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins slowly and decelerates towards end.", "guessedname": "easeBoth", "guessedtype": "function"}, "bounceIn": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Bounce off of start.", "guessedname": "bounceIn", "guessedtype": "function"}, "easeOutStrong": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins quickly and decelerates towards end.", "guessedname": "easeOutStrong", "guessedtype": "function"}, "easeNone": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Uniform speed between points.", "guessedname": "easeNone", "guessedtype": "function"}, "elasticIn": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "a", "description": " Amplitude (optional)"}, {"type": "Number", "name": "p", "description": " Period (optional)"}], "description": "Snap in elastic effect.", "guessedname": "elasticIn", "guessedtype": "function"}, "easeBothStrong": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins slowly and decelerates towards end.", "guessedname": "easeBothStrong", "guessedtype": "function"}, "easeOut": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins quickly and decelerates towards end.", "guessedname": "easeOut", "guessedtype": "function"}, "backIn": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "s", "description": " Overshoot (optional)"}], "description": "Backtracks slightly, then reverses direction and moves to end.", "guessedname": "backIn", "guessedtype": "function"}}, "file": "Easing.js", "guessedtype": "property", "shortname": "Easing", "description": "Singleton that determines how an animation proceeds from start to end."}, "YAHOO.util.DragDropMgr": {"name": "YAHOO.util.DragDropMgr", "namespace": "YAHOO.util", "module": "dragdrop", "guessedname": "DragDropMgr", "methods": {"removeDDFromGroup": {"guessedname": "removeDDFromGroup", "static": "", "description": "Removes the supplied dd instance from the supplied group. Executed\nby DragDrop.removeFromGroup, so don't call this function directly.", "private": "", "guessedtype": "function"}, "startDrag": {"static": "", "params": [{"type": "int", "name": "x", "description": "  the X position of the original mousedown"}, {"type": "int", "name": "y", "description": "  the Y position of the original mousedown"}], "description": "Fired when either the drag pixel threshold or the mousedown hold \ntime threshold has been met.", "guessedname": "startDrag", "guessedtype": "function"}, "getDDById": {"return": {"type": "DragDrop", "description": "the drag drop object, null if it is not found"}, "description": "Returns the DragDrop instance for a given id", "static": "", "guessedname": "getDDById", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the id of the DragDrop object"}]}, "unregAll": {"guessedname": "unregAll", "static": "", "description": "Cleans up the drag and drop events and objects.", "private": "", "guessedtype": "function"}, "getScrollTop": {"static": "", "return": {"type": "int", "description": "the document's scrollTop"}, "description": "Gets the scrollTop", "guessedname": "getScrollTop", "guessedtype": "function"}, "lock": {"static": "", "description": "Lock all drag and drop functionality", "guessedname": "lock", "guessedtype": "function"}, "getPosX": {"return": {"type": "int", "description": "the X coordinate"}, "description": "Returns the X position of an html element", "deprecated": "use YAHOO.util.Dom.getX instead", "static": "", "guessedname": "getPosX", "guessedtype": "function", "params": [{"type": "", "name": "el", "description": " the element for which to get the position"}]}, "getClientWidth": {"return": {"type": "int", "description": "client width in px"}, "description": "Gets the client width", "deprecated": "use YAHOO.util.Dom.getViewportWidth instead", "static": "", "guessedname": "getClientWidth", "guessedtype": "function"}, "unlock": {"static": "", "description": "Unlock all drag and drop functionality", "guessedname": "unlock", "guessedtype": "function"}, "stopDrag": {"static": "", "params": [{"type": "Event", "name": "e", "description": " the mouseup event, another event (or a fake event) \nwith pageX and pageY defined, or nothing if the \nsilent parameter is true"}, {"type": "boolean", "name": "silent", "description": " skips the enddrag and mouseup events if true"}], "description": "Ends the current drag, cleans up the state, and fires the endDrag\nand mouseUp events.  Called internally when a mouseup is detected\nduring the drag.  Can be fired manually during the drag by passing\neither another event (such as the mousemove event received in onDrag)\nor a fake event with pageX and pageY defined (so that endDrag and\nonMouseUp have usable position data.).  Alternatively, pass true\nfor the silent parameter so that the endDrag and onMouseUp events\nare skipped (so no event data is needed.)", "guessedname": "stopDrag", "guessedtype": "function"}, "_deactivateShim": {"guessedname": "_deactivateShim", "static": "", "description": "This method will hide the shim element and set the _shimActive property to false", "private": "", "guessedtype": "function"}, "_onResize": {"guessedname": "_onResize", "static": "", "description": "Reset constraints on all drag and drop objs", "private": "", "guessedtype": "function"}, "_onLoad": {"guessedname": "_onLoad", "static": "", "description": "Drag and drop initialization.  Sets up the global event handlers", "private": "", "guessedtype": "function"}, "fireEvents": {"description": "Iterates over all of the DragDrop elements to find ones we are \nhovering over or dropping on", "private": "", "static": "", "guessedname": "fireEvents", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event"}, {"type": "boolean", "name": "isDrop", "description": " is this a drop op or a mouseover op?"}]}, "handleMouseDown": {"description": "Fired after a registered DragDrop object gets the mousedown event.\nSets up the events required to track the object being dragged", "private": "", "static": "", "guessedname": "handleMouseDown", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event"}, {"type": "", "name": "oDD", "description": " the DragDrop object being dragged"}]}, "regDragDrop": {"static": "", "params": [{"type": "DragDrop", "name": "oDD", "description": " the DragDrop object to register"}, {"type": "String", "name": "sGroup", "description": " the name of the group this element belongs to"}], "description": "Each DragDrop instance must be registered with the DragDropMgr.  \nThis is executed in DragDrop.init()", "guessedname": "regDragDrop", "guessedtype": "function"}, "handleMouseMove": {"description": "Internal function to handle the mousemove event.  Will be invoked \nfrom the context of the html element.", "private": "", "static": "", "guessedname": "handleMouseMove", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event"}], "todo": "figure out what we can do about mouse events lost when the \nuser drags objects beyond the window boundary.  Currently we can \ndetect this in internet explorer by verifying that the mouse is \ndown during the mousemove event.  Firefox doesn't give us the \nbutton state on the mousemove event."}, "getElement": {"return": {"type": "Object", "description": "The element"}, "description": "Returns the actual DOM element", "deprecated": "use YAHOO.util.Dom.get instead", "static": "", "guessedname": "getElement", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the id of the elment to get"}]}, "init": {"guessedname": "init", "static": "", "description": "Called the first time an element is registered.", "private": "", "guessedtype": "function"}, "_execOnAll": {"guessedname": "_execOnAll", "static": "", "description": "Runs method on all drag and drop objects", "private": "", "guessedtype": "function"}, "getCss": {"return": {"type": "Object", "description": "The style property of the element"}, "description": "Returns the style property for the DOM element (i.e., \ndocument.getElById(id).style)", "deprecated": "use YAHOO.util.Dom instead", "static": "", "guessedname": "getCss", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the id of the elment to get"}]}, "_remove": {"guessedname": "_remove", "static": "", "description": "Unregisters a drag and drop item.  This is executed in \nDragDrop.unreg, use that method instead of calling this directly.", "private": "", "guessedtype": "function"}, "isTypeOfDD": {"return": {"type": "boolean", "description": "true if typeof oDD = DragDrop"}, "description": "My goal is to be able to transparently determine if an object is\ntypeof DragDrop, and the exact subclass of DragDrop.  typeof \nreturns \"object\", oDD.constructor.toString() always returns\n\"DragDrop\" and not the name of the subclass.  So for now it just\nevaluates a well-known variable in DragDrop.", "static": "", "guessedname": "isTypeOfDD", "guessedtype": "function", "params": [{"type": "Object", "name": "the", "description": " object to evaluate"}]}, "isLocked": {"static": "", "return": {"type": "boolean", "description": "True if drag and drop is locked, false otherwise."}, "description": "Is drag and drop locked?", "guessedname": "isLocked", "guessedtype": "function"}, "getClientHeight": {"return": {"type": "int", "description": "client height in px"}, "description": "Gets the client height", "deprecated": "use YAHOO.util.Dom.getViewportHeight instead", "static": "", "guessedname": "getClientHeight", "guessedtype": "function"}, "getBestMatch": {"return": {"type": "DragDrop", "description": "The best single match"}, "description": "Helper function for getting the best match from the list of drag \nand drop objects returned by the drag and drop events when we are \nin INTERSECT mode.  It returns either the first object that the \ncursor is over, or the object that has the greatest overlap with \nthe dragged element.", "static": "", "guessedname": "getBestMatch", "guessedtype": "function", "params": [{"type": "DragDrop[]", "name": "dds", "description": " The array of drag and drop objects \ntargeted"}]}, "_activateShim": {"guessedname": "_activateShim", "static": "", "description": "This method will create the shim element if needed, then show the shim element, size the element and set the _shimActive property to true", "private": "", "guessedtype": "function"}, "stopEvent": {"static": "", "params": [{"type": "Event", "name": "e", "description": " the event as returned by this.getEvent()"}], "description": "Utility to stop event propagation and event default, if these \nfeatures are turned on.", "guessedname": "stopEvent", "guessedtype": "function"}, "numericSort": {"static": "", "description": "Numeric array sort function", "guessedname": "numericSort", "guessedtype": "function"}, "isOverTarget": {"return": {"type": "boolean", "description": "true if the mouse is over the target"}, "description": "Checks the cursor location to see if it over the target", "private": "", "static": "", "guessedname": "isOverTarget", "guessedtype": "function", "params": [{"type": "YAHOO.util.Point", "name": "pt", "description": " The point to evaluate"}, {"type": "DragDrop", "name": "oTarget", "description": " the DragDrop object we are inspecting"}, {"type": "boolean", "name": "intersect", "description": " true if we are in intersect mode"}, {"type": "YAHOO.util.Region", "name": "pre-cached", "description": " location of the dragged element"}]}, "_sizeShim": {"guessedname": "_createShim", "static": "", "description": "This method will create a shim element (giving it the id of yui-ddm-shim), it also attaches the mousemove and mouseup listeners to it and attaches a scroll listener on the window", "private": "", "guessedtype": "function"}, "isDragDrop": {"return": {"type": "boolean", "description": "true if this element is a DragDrop item, \nfalse otherwise"}, "description": "Utility function to determine if a given element has been \nregistered as a drag drop item.", "static": "", "guessedname": "isDragDrop", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the element id to check"}]}, "_onUnload": {"guessedname": "_onUnload", "static": "", "description": "unload event handler", "private": "", "guessedtype": "function"}, "getLocation": {"return": {"type": "YAHOO.util.Region", "description": "a Region object representing the total area\nthe element occupies, including any padding\nthe instance is configured for."}, "description": "Returns a Region object containing the drag and drop element's position\nand size, including the padding configured for it", "static": "", "guessedname": "getLocation", "guessedtype": "function", "params": [{"type": "DragDrop", "name": "oDD", "description": " the drag and drop object to get the \nlocation for"}]}, "regHandle": {"static": "", "params": [{"type": "String", "name": "sDDId", "description": " the DragDrop id this element is a handle for"}, {"type": "String", "name": "sHandleId", "description": " the id of the element that is the drag \nhandle"}], "description": "Each DragDrop handle element must be registered.  This is done\nautomatically when executing DragDrop.setHandleElId()", "guessedname": "regHandle", "guessedtype": "function"}, "getRelated": {"return": {"type": "DragDrop[]", "description": "the related instances"}, "description": "Returns the drag and drop instances that are in all groups the\npassed in instance belongs to.", "static": "", "guessedname": "getRelated", "guessedtype": "function", "params": [{"type": "DragDrop", "name": "p_oDD", "description": " the obj to get related data for"}, {"type": "boolean", "name": "bTargetsOnly", "description": " if true, only return targetable objs"}]}, "handleWasClicked": {"static": "", "params": [{"type": "", "name": "node", "description": " the html element to inspect"}], "description": "Recursively searches the immediate parent and all child nodes for \nthe handle element in order to determine wheter or not it was \nclicked.", "guessedname": "handleWasClicked", "guessedtype": "function"}, "swapNode": {"static": "", "params": [{"type": "", "name": "n1", "description": " the first node to swap"}, {"type": "", "name": "n2", "description": " the other node to swap"}], "description": "Swap two nodes.  In IE, we use the native method, for others we \nemulate the IE behavior", "guessedname": "swapNode", "guessedtype": "function"}, "getScrollLeft": {"static": "", "return": {"type": "int", "description": "the document's scrollTop"}, "description": "Gets the scrollLeft", "guessedname": "getScrollLeft", "guessedtype": "function"}, "getElWrapper": {"return": {"type": "YAHOO.util.DDM.ElementWrapper", "description": "the wrapped element"}, "description": "Get the wrapper for the DOM element specified", "deprecated": "This wrapper isn't that useful", "private": "", "static": "", "guessedname": "getElWrapper", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the id of the element to get"}]}, "_addListeners": {"guessedname": "_addListeners", "static": "", "description": "Trying to make the load order less important.  Without this we get\nan error if this file is loaded before the Event Utility.", "private": "", "guessedtype": "function"}, "getStyle": {"return": {"type": "string", "description": "The value of the style property"}, "description": "Returns the specified element style property", "deprecated": "use YAHOO.util.Dom.getStyle", "static": "", "guessedname": "getStyle", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": "          the element"}, {"type": "string", "name": "styleProp", "description": "   the style property"}]}, "getPosY": {"return": {"type": "int", "description": "the Y coordinate"}, "description": "Returns the Y position of an html element", "deprecated": "use YAHOO.util.Dom.getY instead", "static": "", "guessedname": "getPosY", "guessedtype": "function", "params": [{"type": "", "name": "el", "description": " the element for which to get the position"}]}, "isLegalTarget": {"return": {"type": "boolean", "description": "true if the target is a legal target for the \ndd obj"}, "description": "Returns true if the specified dd target is a legal target for \nthe specifice drag obj", "static": "", "guessedname": "isLegalTarget", "guessedtype": "function", "params": [{"type": "DragDrop", "name": "the", "description": " drag obj"}, {"type": "DragDrop", "name": "the", "description": " target"}]}, "refreshCache": {"description": "Refreshes the cache of the top-left and bottom-right points of the \ndrag and drop objects in the specified group(s).  This is in the\nformat that is stored in the drag and drop instance, so typical \nusage is:\n<code>\nYAHOO.util.DragDropMgr.refreshCache(ddinstance.groups);\n</code>\nAlternatively:\n<code>\nYAHOO.util.DragDropMgr.refreshCache({group1:true, group2:true});\n</code>", "static": "", "guessedname": "refreshCache", "guessedtype": "function", "params": [{"type": "Object", "name": "groups", "description": " an associative array of groups to refresh"}], "todo": "this really should be an indexed array.  Alternatively this\nmethod could accept both."}, "isHandle": {"return": {"type": "boolean", "description": "true if this element is a DragDrop handle, false \notherwise"}, "description": "Utility function to determine if a given element has been \nregistered as a drag drop handle for the given Drag Drop object.", "static": "", "guessedname": "isHandle", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the element id to check"}]}, "handleMouseUp": {"description": "Internal function to handle the mouseup event.  Will be invoked \nfrom the context of the document.", "private": "", "static": "", "guessedname": "handleMouseUp", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event"}]}, "verifyEl": {"return": {"type": "boolean", "description": "true if the element looks usable"}, "description": "This checks to make sure an element exists and is in the DOM.  The\nmain purpose is to handle cases where innerHTML is used to remove\ndrag and drop objects from the DOM.  IE provides an 'unspecified\nerror' when trying to access the offsetParent of such an element", "static": "", "guessedname": "verifyEl", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": " the element to check"}]}, "getScroll": {"guessedname": "getScroll", "static": "", "description": "Returns the current scroll position", "private": "", "guessedtype": "function"}, "moveToEl": {"static": "", "params": [{"type": "HTMLElement", "name": "moveEl", "description": "      The element to move"}, {"type": "HTMLElement", "name": "targetEl", "description": "    The position reference element"}], "description": "Sets the x/y position of an element to the location of the\ntarget element.", "guessedname": "moveToEl", "guessedtype": "function"}}, "static": "", "file": "DragDropMgr.js", "guessedtype": "function", "shortname": "DragDropMgr", "properties": {"dragThreshMet": {"description": "Flag that indicates that either the drag pixel threshold or the \nmousdown time threshold has been met", "private": "", "static": "", "guessedname": "dragThreshMet", "guessedtype": "property", "type": "boolean"}, "clickPixelThresh": {"type": "int", "static": "", "description": "The number of pixels that the mouse needs to move after the \nmousedown before the drag is initiated.  Default=3;", "guessedname": "clickPixelThresh", "guessedtype": "property"}, "_timeoutCount": {"guessedname": "_timeoutCount", "static": "", "description": "Internal counter", "private": "", "guessedtype": "property"}, "initialized": {"guessedname": "initialized", "static": "", "description": "Internal flag that is set to true when drag and drop has been\ninitialized", "private": "", "guessedtype": "property"}, "elementCache": {"description": "A cache of DOM elements", "deprecated": "elements are not cached now", "private": "", "static": "", "guessedname": "elementCache", "guessedtype": "property"}, "stopPropagation": {"type": "boolean", "static": "", "description": "Flag to determine if we should stop the propagation of the events \nwe generate. This is true by default but you may want to set it to\nfalse if the html element contains other features that require the\nmouse click.", "guessedname": "stopPropagation", "guessedtype": "property"}, "clickTimeout": {"description": "Timeout used for the click time threshold", "private": "", "static": "", "guessedname": "clickTimeout", "guessedtype": "property", "type": "Object"}, "handleIds": {"description": "Array of element ids defined as drag handles.  Used to determine \nif the element that generated the mousedown event is actually the \nhandle and not the html element itself.", "private": "", "static": "", "guessedname": "handleIds", "guessedtype": "property", "type": "{string: string}"}, "POINT": {"description": "In point mode, drag and drop interaction is defined by the \nlocation of the cursor during the drag/drop", "static": "", "guessedname": "POINT", "guessedtype": "property", "type": "int", "final": ""}, "deltaX": {"description": "the X distance between the cursor and the object being dragged", "private": "", "static": "", "guessedname": "deltaX", "guessedtype": "property", "type": "int"}, "deltaY": {"description": "the Y distance between the cursor and the object being dragged", "private": "", "static": "", "guessedname": "deltaY", "guessedtype": "property", "type": "int"}, "dragOvers": {"description": "the DragDrop object(s) that are being hovered over", "private": "", "static": "", "guessedname": "dragOvers", "guessedtype": "property", "type": "Array"}, "useCache": {"type": "boolean", "static": "", "description": "Set useCache to false if you want to force object the lookup of each\ndrag and drop linked element constantly during a drag.", "guessedname": "useCache", "guessedtype": "property"}, "fromTimeout": {"description": "Flag to determine if the drag event was fired from the click timeout and\nnot the mouse move threshold.", "private": "", "static": "", "guessedname": "fromTimeout", "guessedtype": "property", "type": "boolean"}, "clickTimeThresh": {"type": "int", "static": "", "description": "The number of milliseconds after the mousedown event to initiate the\ndrag if we don't get a mouseup event. Default=1000", "guessedname": "clickTimeThresh", "guessedtype": "property"}, "mode": {"type": "int", "static": "", "description": "The current drag and drop mode.  Default: POINT", "guessedname": "mode", "guessedtype": "property"}, "startX": {"description": "The X position of the mousedown event stored for later use when a \ndrag threshold is met.", "private": "", "static": "", "guessedname": "startX", "guessedtype": "property", "type": "int"}, "startY": {"description": "The Y position of the mousedown event stored for later use when a \ndrag threshold is met.", "private": "", "static": "", "guessedname": "startY", "guessedtype": "property", "type": "int"}, "_shim": {"description": "The HTML element created to use as a shim over the document to track mouse movements", "private": "", "static": "", "guessedname": "_shim", "guessedtype": "property", "type": "HTMLElement"}, "_debugShim": {"description": "This property is used when useShim is set to true, it will set the opacity on the shim to .5 for debugging. Use: (YAHOO.util.DDM._debugShim = true;)", "private": "", "static": "", "guessedname": "_debugShim", "guessedtype": "property", "type": "Boolean"}, "STRICT_INTERSECT": {"description": "In intersect mode, drag and drop interaction is defined only by the \noverlap of two or more drag and drop objects.", "static": "", "guessedname": "STRICT_INTERSECT", "guessedtype": "property", "type": "int", "final": ""}, "interactionInfo": {"type": "object", "static": "", "description": "Provides additional information about the the current set of\ninteractions.  Can be accessed from the event handlers. It\ncontains the following properties:\nout:       onDragOut interactions\nenter:     onDragEnter interactions\nover:      onDragOver interactions\ndrop:      onDragDrop interactions\npoint:     The location of the cursor\ndraggedRegion: The location of dragged element at the time\nof the interaction\nsourceRegion: The location of the source elemtn at the time\nof the interaction\nvalidDrop: boolean", "guessedname": "interactionInfo", "guessedtype": "property"}, "locationCache": {"guessedname": "locationCache", "static": "", "description": "Location cache that is set for all drag drop objects when a drag is\ninitiated, cleared when the drag is finished.", "private": "", "guessedtype": "property"}, "INTERSECT": {"description": "In intersect mode, drag and drop interaction is defined by the \ncursor position or the amount of overlap of two or more drag and \ndrop objects.", "static": "", "guessedname": "INTERSECT", "guessedtype": "property", "type": "int", "final": ""}, "_shimState": {"description": "This property is used when useShim is set on a DragDrop object to store the current state of DDM.useShim so it can be reset when a drag operation is done.", "private": "", "static": "", "guessedname": "_shimState", "guessedtype": "property", "type": "Boolean"}, "locked": {"guessedname": "locked", "static": "", "description": "All drag and drop can be disabled.", "private": "", "guessedtype": "property"}, "useShim": {"type": "Boolean", "static": "", "description": "This property is used to turn on global use of the shim element on all DragDrop instances, defaults to false for backcompat. (Use: YAHOO.util.DDM.useShim = true)", "guessedname": "useShim", "guessedtype": "property"}, "dragCurrent": {"description": "the DragDrop object that is currently being dragged", "private": "", "static": "", "guessedname": "dragCurrent", "guessedtype": "property", "type": "DragDrop"}, "preventDefault": {"type": "boolean", "static": "", "description": "Flag to determine if we should prevent the default behavior of the\nevents we define. By default this is true, but this can be set to \nfalse if you need the default behavior (not recommended)", "guessedname": "preventDefault", "guessedtype": "property"}, "ids": {"description": "Two dimensional Array of registered DragDrop objects.  The first \ndimension is the DragDrop item group, the second the DragDrop \nobject.", "private": "", "static": "", "guessedname": "ids", "guessedtype": "property", "type": "{string: string}"}, "_shimActive": {"description": "This property is used to determine if the shim is active over the screen, default false.", "private": "", "static": "", "guessedname": "_shimActive", "guessedtype": "property", "type": "Boolean"}}, "description": "DragDropMgr is a singleton that tracks the element interaction for \nall DragDrop items in the window.  Generally, you will not call \nthis class directly, but it does have helper methods that could \nbe useful in your DragDrop implementations."}, "YAHOO.util.Chain": {"name": "YAHOO.util.Chain", "constructors": [{"params": [{"type": "Function|Object", "name": "callback*", "description": "  Any number of callbacks to initialize the queue"}], "description": "Mechanism to execute a series of callbacks in a non-blocking queue.  Each callback is executed via setTimout unless configured with a negative timeout, in which case it is run in blocking mode in the same execution thread as the previous callback.  Callbacks can be function references or object literals with the following keys:\n<ul>\n<li><code>method</code> - {Function} REQUIRED the callback function.</li>\n<li><code>scope</code> - {Object} the scope from which to execute the callback.  Default is the global window scope.</li>\n<li><code>argument</code> - {Array} parameters to be passed to method as individual arguments.</li>\n<li><code>timeout</code> - {number} millisecond delay to wait after previous callback completion before executing this callback.  Negative values cause immediate blocking execution.  Default 0.</li>\n<li><code>until</code> - {Function} boolean function executed before each iteration.  Return true to indicate completion and proceed to the next callback.</li>\n<li><code>iterations</code> - {Number} number of times to execute the callback before proceeding to the next callback in the chain. Incompatible with <code>until</code>.</li>\n</ul>"}], "namespace": "YAHOO.util", "module": "datatable", "events": {"end": {"description": "Event fired when the callback queue is emptied via execution (not via\na call to chain.stop()."}}, "guessedname": "Chain", "methods": {"stop": {"return": {"type": "Chain", "description": "the Chain instance"}, "description": "Stop and clear the Chain's queue after the current execution of the\ncurrent callback completes.", "guessedname": "stop", "guessedtype": "function"}, "add": {"return": {"type": "Chain", "description": "the Chain instance"}, "params": [{"type": "Function|Object", "name": "c", "description": "  the callback function ref or object literal"}], "description": "Add a callback to the end of the queue", "guessedname": "add", "guessedtype": "function"}, "pause": {"return": {"type": "Chain", "description": "the Chain instance"}, "description": "Pause the execution of the Chain after the current execution of the\ncurrent callback completes.  If called interstitially, clears the\ntimeout for the pending callback. Paused Chains can be restarted with\nchain.run()", "guessedname": "pause", "guessedtype": "function"}, "run": {"return": {"type": "Chain", "description": "the Chain instance"}, "description": "Begin executing the chain, or resume execution from the last paused position.", "guessedname": "run", "guessedtype": "function"}}, "file": "Chain.js", "guessedtype": "function", "shortname": "Chain", "properties": {"q": {"guessedname": "q", "type": "{Array}", "description": "The callback queue", "private": "", "guessedtype": "property"}, "id": {"guessedname": "id", "type": "{number}", "description": "Timeout id used to pause or stop execution and indicate the execution state of the Chain.  0 indicates paused or stopped, -1 indicates blocking execution, and any positive number indicates non-blocking execution.", "private": "", "guessedtype": "property"}}, "description": "Mechanism to execute a series of callbacks in a non-blocking queue.  Each callback is executed via setTimout unless configured with a negative timeout, in which case it is run in blocking mode in the same execution thread as the previous callback.  Callbacks can be function references or object literals with the following keys:\n<ul>\n<li><code>method</code> - {Function} REQUIRED the callback function.</li>\n<li><code>scope</code> - {Object} the scope from which to execute the callback.  Default is the global window scope.</li>\n<li><code>argument</code> - {Array} parameters to be passed to method as individual arguments.</li>\n<li><code>timeout</code> - {number} millisecond delay to wait after previous callback completion before executing this callback.  Negative values cause immediate blocking execution.  Default 0.</li>\n<li><code>until</code> - {Function} boolean function executed before each iteration.  Return true to indicate completion and proceed to the next callback.</li>\n<li><code>iterations</code> - {Number} number of times to execute the callback before proceeding to the next callback in the chain. Incompatible with <code>until</code>.</li>\n</ul>"}, "YAHOO.widget.ProgressBar": {"name": "YAHOO.widget.ProgressBar", "configs": {"direction": {"default": "'ltr'", "type": "String (any of \"ltr\", \"rtl\", \"ttb\" or \"btt\")", "description": "Direction of movement of the bar.  \nIt can be any of 'ltr' (left to right), 'rtl' (the reverse) , 'ttb' (top to bottom) or 'btt'.\nCan only be set once and only before rendering."}, "anim": {"default": "null", "type": "{boolean} or {instance of YAHOO.util.Anim}", "description": "it accepts either a boolean (recommended) or an instance of <a href=\"YAHOO.util.Anim.html\">YAHOO.util.Anim</a>.\nIf a boolean, it will enable/disable animation creating its own instance of the animation utility.  \nIf given an instance of <a href=\"YAHOO.util.Anim.html\">YAHOO.util.Anim</a> it will use that instance.\nThe <a href=\"YAHOO.util.Anim.html\">animation</a> utility needs to be loaded.\nWhen read, it returns the instance of the animation utility in use or null if none.  \nIt can be used to set the animation parameters such as easing methods or duration."}, "ariaTextTemplate": {"default": "\"{value}\"", "type": "String", "description": "Text to be voiced by screen readers.\nThe text is processed by <a href=\"YAHOO.lang.html#method_substitute\">YAHOO.lang.substitute</a>.  \nIt can use the placeholders {value}, {minValue} and {maxValue}"}, "maxValue": {"default": "100", "type": "Number", "description": "Represents the top value for the bar. \nThe bar will be fully extended when reaching this value.  \nValues higher than this will be ignored."}, "value": {"default": "0", "type": "Number", "description": "The value for the bar.  \nValid values are in between the minValue and maxValue attributes."}, "minValue": {"default": "0", "type": "Number", "description": "Represents the lowest value for the bar. \nThe bar will be totally collapsed when reaching this value.  \nValues lower than this will be ignored."}, "width": {"default": "\"200px\"", "type": "Number or String", "description": "Width of the ProgressBar.\nIf a number, it will be assumed to be in pixels.  \nIf a string it should be a valid setting for the CSS width attribute.  \nIt will always be returned as a string including units."}, "barEl": {"readonly": "", "type": "HTMLElement (div)", "description": "Reference to the HTML object that makes the moving bar (read-only)"}, "height": {"default": "\"20px\"", "type": "Number or String", "description": "Height of the ProgressBar.\nIf a number, it will be assumed to be in pixels.  \nIf a string it should be a valid setting for the CSS height attribute.  \nIt will always be returned as a string including units."}, "maskEl": {"readonly": "", "type": "HTMLElement (table)", "description": "Reference to the HTML object that overlays the bar providing the mask. (read-only)"}}, "constructors": [{"params": [{"type": "object", "name": "oConfigs", "description": "  An object containing any configuration attributes to be set"}], "description": "The ProgressBar widget provides an easy way to draw a bar depicting progress of an operation,\na level meter, rating or any such simple linear measure.\nIt allows for highly customized styles including animation, vertical or horizontal and forward or reverse."}], "namespace": "YAHOO.widget", "module": "progressbar", "events": {"beforeAriaTextTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAriaTextTemplateChange", "description": "Fires before the value for the configuration attribute 'ariaTextTemplate' changes. Return false to cancel the attribute change."}, "ariaTextTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "ariaTextTemplateChange", "description": "Fires when the value for the configuration attribute 'ariaTextTemplate' changes."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "minValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minValueChange", "description": "Fires when the value for the configuration attribute 'minValue' changes."}, "barElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "barElChange", "description": "Fires when the value for the configuration attribute 'barEl' changes."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "beforeAnimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimChange", "description": "Fires before the value for the configuration attribute 'anim' changes. Return false to cancel the attribute change."}, "beforeMaxValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxValueChange", "description": "Fires before the value for the configuration attribute 'maxValue' changes. Return false to cancel the attribute change."}, "start": {"type": "CustomEvent", "params": [{"type": "Number", "name": "value", "description": "  the current (initial) value"}], "description": "Fires when the value is about to change.  It reports the starting value"}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "progress": {"type": "CustomEvent", "params": [{"type": "Number", "name": "value", "description": " the current, changing value"}], "description": "If animation is active, it will trigger several times during the animation providing intermediate values\nIf animation is not active, it will fire only once providing the end value"}, "beforeMaskElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaskElChange", "description": "Fires before the value for the configuration attribute 'maskEl' changes. Return false to cancel the attribute change."}, "complete": {"type": "CustomEvent", "params": [{"type": "Number", "name": "value", "description": "  the current (final)  value"}], "description": "Fires at the end of the animation or immediately upon changing values if animation is not loaded"}, "maskElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maskElChange", "description": "Fires when the value for the configuration attribute 'maskEl' changes."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "animChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animChange", "description": "Fires when the value for the configuration attribute 'anim' changes."}, "beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "beforeBarElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBarElChange", "description": "Fires before the value for the configuration attribute 'barEl' changes. Return false to cancel the attribute change."}, "maxValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxValueChange", "description": "Fires when the value for the configuration attribute 'maxValue' changes."}, "beforeDirectionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDirectionChange", "description": "Fires before the value for the configuration attribute 'direction' changes. Return false to cancel the attribute change."}, "directionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "directionChange", "description": "Fires when the value for the configuration attribute 'direction' changes."}, "beforeMinValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinValueChange", "description": "Fires before the value for the configuration attribute 'minValue' changes. Return false to cancel the attribute change."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "Prog", "methods": {"render": {"return": {"type": "YAHOO.widget.ProgressBar", "description": ""}, "description": "Renders the ProgressBar into the given container.  \nIf the container has other content, the ProgressBar will be appended to it.\nIf the second argument is provided, the ProgressBar will be inserted before the given child.\nThe method is chainable since it returns a reference to this instance.", "chainable": "", "params": [{"type": "HTML Element", "name": "el", "description": "   HTML element that will contain the ProgressBar"}, {"type": "HTML Element", "name": "before", "description": "   (optional) If present, the ProgressBar will be inserted before this element."}], "guessedname": "render", "guessedtype": "function"}, "_init": {"protected": "", "params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal definition of configuration values."}], "description": "Initialization code for the widget, separate from the constructor to allow for overriding/patching.\nIt is called after <a href=\"#method_initAttributes\">initAttributes</a>", "guessedname": "_init", "guessedtype": "function"}, "_valueChange": {"guessedname": "_valueChange", "return": {"type": "", "description": "void"}, "description": "Called in response to a change in the <a href=\"#config_value\">value</a> attribute.\nMoves the bar to reflect the new value", "private": "", "guessedtype": "function"}, "_fixEdges": {"guessedname": "_fixEdges", "return": {"type": "", "description": "void"}, "description": "Due to rounding differences, some browsers fail to cover the whole area \nwith the mask quadrants when the width or height is odd.  This method\nstretches the lower and/or right quadrants to make the difference.", "private": "", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal definition of configuration values."}], "description": "Implementation of Element's abstract method. Sets up config values.", "private": "", "guessedtype": "function"}, "_heightChange": {"return": {"type": "", "description": "void"}, "description": "Method called when the height attribute is changed", "private": "", "params": [{"type": "int or string", "name": "value", "description": " New height, in pixels if int or string including units"}], "guessedname": "_heightChange", "guessedtype": "function"}, "_setAriaText": {"guessedname": "_setAriaText", "return": {"type": "", "description": "void"}, "description": "Utility method to set the ARIA value attributes", "private": "", "guessedtype": "function"}, "destroy": {"return": {"type": "", "description": "void"}, "description": "Destroys the ProgressBar, related objects and unsubscribes from all events", "guessedname": "destroy", "guessedtype": "function"}, "_animSetter": {"guessedname": "_animSetter", "return": {"type": "", "description": "void"}, "description": "Called in response to a change in the <a href=\"#config_anim\">anim</a> attribute.\nIt creates and sets up or destroys the instance of the animation utility that will move the bar", "private": "", "guessedtype": "function"}, "redraw": {"return": {"type": "", "description": "void"}, "description": "Recalculates the bar size and position and redraws it", "guessedname": "redraw", "guessedtype": "function"}, "_widthChange": {"return": {"type": "", "description": "void"}, "description": "Method called when the height attribute is changed", "private": "", "params": [{"type": "int or string", "name": "value", "description": " New width, in pixels if int or string including units"}], "guessedname": "_widthChange", "guessedtype": "function"}, "_recalculateConstants": {"guessedname": "_recalculateConstants", "return": {"type": "", "description": "void"}, "description": "Calculates some auxiliary values to make the rendering faster", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "ProgressBar.js", "guessedtype": "function", "shortname": "ProgressBar", "properties": {"ProgressBar.MARKUP": {"description": "String containing the HTML string which is the basis for the Progress Bar.", "default": "(too long)", "static": "", "guessedname": "MARKUP", "guessedtype": "property", "type": "String", "final": ""}, "_previousValue": {"description": "The previous value setting for the bar.  Used mostly as information to event listeners", "default": "0", "private": "", "guessedname": "_previousValue", "guessedtype": "property", "type": "Number"}, "_barSizeFunction": {"description": "Function to be used to calculate bar size.  \nIt is picked from <a href=\"#property_barSizeFunctions\">_barSizeFunctions</a>\ndepending on direction and whether animation is active.", "default": "null", "private": "", "guessedname": "_barSizeFunction", "guessedtype": "property", "type": "{function}"}, "_rendered": {"description": "A flag to signal that rendering has already happened", "default": "false", "private": "", "guessedname": "_rendered", "guessedtype": "property", "type": "boolean"}, "_barSpace": {"description": "The actual space (in pixels) available for the bar within the mask (excludes margins)", "default": "100", "private": "", "guessedname": "_barSpace", "guessedtype": "property", "type": "Number"}, "_barSizeFunctions": {"guessedname": "b", "type": "{collection of functions}", "description": "Collection of functions used by to calculate the size of the bar.\nOne of this will be used depending on direction and whether animation is active.", "private": "", "guessedtype": "property"}}, "description": "The ProgressBar widget provides an easy way to draw a bar depicting progress of an operation,\na level meter, rating or any such simple linear measure.\nIt allows for highly customized styles including animation, vertical or horizontal and forward or reverse."}, "YAHOO.widget.MenuItem": {"name": "YAHOO.widget.MenuItem", "configs": {"submenu": {"default": "null", "type": "Menu|String|Object|<a href=\"http://www.w3.org/TR/2000/\nWD-DOM-Level-1-20000929/level-one-html.html#ID-58190037\">\nHTMLElement</a>", "description": "Object specifying the submenu to be appended to the \nmenu item.  The value can be one of the following: <ul><li>Object \nspecifying a Menu instance.</li><li>Object literal specifying the\nmenu to be created.  Format: <code>{ id: [menu id], itemdata: \n[<a href=\"YAHOO.widget.Menu.html#itemData\">array of values for \nitems</a>] }</code>.</li><li>String specifying the id attribute \nof the <code><div></code> element of the menu.</li><li>\nObject specifying the <code><div></code> element of the \nmenu.</li></ul>"}, "classname": {"default": "null", "type": "String", "description": "CSS class to be applied to the menu item's root \n<code><li></code> element.  The specified class(es) are \nappended in addition to the default class as specified by the menu \nitem's CSS_CLASS_NAME constant."}, "checked": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu item should be rendered \nwith a checkmark."}, "target": {"default": "null", "type": "String", "description": "String specifying the value for the \"target\" attribute \nof the menu item's anchor element. <strong>Specifying a target will \nrequire the user to click directly on the menu item's anchor node in\norder to cause the browser to navigate to the specified URL.</strong> \nWhen building a menu from existing HTML the value of this property \nwill be interpreted from the menu's markup."}, "url": {"default": "\"#\"", "type": "String", "description": "String specifying the URL for the menu item's anchor's \n\"href\" attribute.  When building a menu from existing HTML the value \nof this property will be interpreted from the menu's markup."}, "text": {"default": "\"\"", "type": "String", "description": "String specifying the text label for the menu item.  \nWhen building a menu from existing HTML the value of this property\nwill be interpreted from the menu's markup."}, "selected": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu item should \nbe highlighted."}, "strongemphasis": {"default": "false", "deprecated": "Use the \"text\" configuration property to add strong emphasis.  \nFor example: <code>oMenuItem.cfg.setProperty(\"text\", \"<strong> \nSome Text</strong>\");</code>", "type": "Boolean", "description": "Boolean indicating if the text of the menu item will be \nrendered with strong emphasis."}, "disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu item should be disabled.  \n(Disabled menu items are  dimmed and will not respond to user input \nor fire events.)"}, "emphasis": {"default": "false", "deprecated": "Use the \"text\" configuration property to add emphasis.  \nFor example: <code>oMenuItem.cfg.setProperty(\"text\", \"<em>Some \nText</em>\");</code>", "type": "Boolean", "description": "Boolean indicating if the text of the menu item will be \nrendered with emphasis."}, "helptext": {"default": "null", "deprecated": "Use \"text\" configuration property to add help text markup.  \nFor example: <code>oMenuItem.cfg.setProperty(\"text\", \"Copy <em \nclass=\\\"helptext\\\">Ctrl + C</em>\");</code>", "type": "String|<a href=\"http://www.w3.org/TR/\n2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-58190037\">\nHTMLElement</a>", "description": "String specifying additional instructional text to \naccompany the text for the menu item."}, "onclick": {"default": "null", "type": "Object", "description": "Object literal representing the code to be executed when \nthe item is clicked.  Format:<br> <code> {<br> \n<strong>fn:</strong> Function,   // The handler to call when \nthe event fires.<br> <strong>obj:</strong> Object, // An \nobject to  pass back to the handler.<br> <strong>scope:</strong> \nObject // The object to use for the scope of the handler.\n<br> } </code>"}, "keylistener": {"default": "null", "type": "Object", "description": "Object literal representing the key(s) that can be used \nto trigger the MenuItem's \"click\" event.  Possible attributes are \nshift (boolean), alt (boolean), ctrl (boolean) and keys (either an int \nor an array of ints representing keycodes)."}}, "constructors": [{"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><li></code> element of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><option></code> element of the menu item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu item. See configuration class documentation \nfor more details."}], "description": "Creates an item for a menu."}], "namespace": "YAHOO.widget", "module": "menu", "events": {"mouseOutEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the mouse has left the menu item.  Passes back \nthe DOM Event object as an argument."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user releases a mouse button while the mouse \nis over the menu item.  Passes back the DOM Event object as an argument."}, "keyUpEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user releases a key when the menu item has \nfocus.  Passes back the DOM Event object as an argument."}, "focusEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item receives focus."}, "keyPressEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user presses an alphanumeric key when the \nmenu item has focus.  Passes back the DOM Event object as an argument."}, "mouseOverEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the mouse has entered the menu item.  Passes \nback the DOM Event object as an argument."}, "blurEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item loses the input focus."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user mouses down on the menu item.  Passes \nback the DOM Event object as an argument."}, "clickEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user clicks the on the menu item.  Passes \nback the DOM Event object as an argument."}, "destroyEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item's <code><li></code> \nelement is removed from its parent <code><ul></code> element."}, "keyDownEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user presses a key when the menu item has \nfocus.  Passes back the DOM Event object as an argument."}}, "guessedname": "MenuItem", "methods": {"_createRootNodeStructure": {"description": "Creates the core DOM structure for the menu item.", "private": "", "guessedname": "_createRootNodeStructure", "guessedtype": "function"}, "hasFocus": {"return": {"type": "Boolean", "description": ""}, "description": "Returns a boolean indicating whether or not the menu item\nhas focus.", "guessedname": "hasFocus", "guessedtype": "function"}, "configURL": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"url\" configuration property of \nthe menu item changes.", "guessedname": "configURL", "guessedtype": "function"}, "focus": {"description": "Causes the menu item to receive the focus and fires the \nfocus event.", "guessedname": "focus", "guessedtype": "function"}, "configEmphasis": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"emphasis\" configuration property\nof the menu item changes.", "guessedname": "configEmphasis", "guessedtype": "function"}, "_dispatchClickEvent": {"description": "Dispatches a DOM \"click\" event to the anchor element of a \nMenuItem instance.", "private": "", "guessedname": "_dispatchClickEvent", "guessedtype": "function"}, "configTarget": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"target\" configuration property \nof the menu item changes.", "guessedname": "configTarget", "guessedtype": "function"}, "addClassNameForState": {"guessedname": "addClassNameForState", "params": [{"type": "String", "name": "state", "description": " String representing a state - \"disabled,\" \"checked,\" etc."}], "description": "Applies a class name to a MenuItem instance's <LI> and <A> elements\nthat represents a MenuItem's state - \"disabled,\" \"checked,\" etc.", "private": "", "guessedtype": "function"}, "getClassNameForState": {"guessedname": "getClassNameForState", "params": [{"type": "String", "name": "prefix", "description": " String representing the prefix for the class name"}, {"type": "String", "name": "state", "description": " String representing a state - \"disabled,\" \"checked,\" etc."}], "description": "Returns a class name for the specified prefix and state.  If the class name does not \nyet exist, it is created and stored in the CLASS_NAMES object to increase performance.", "private": "", "guessedtype": "function"}, "configStrongEmphasis": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"strongemphasis\" configuration \nproperty of the menu item changes.", "guessedname": "configStrongEmphasis", "guessedtype": "function"}, "_createKeyListener": {"guessedname": "_createKeyListener", "params": [{"type": "String", "name": "type", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "args", "description": " Array of arguments sent when the event was fired."}, {"type": "Array", "name": "keyData", "description": " Array of arguments sent when the event was fired."}], "description": "\"show\" event handler for a Menu instance - responsible for \nsetting up the KeyListener instance for a MenuItem.", "private": "", "guessedtype": "function"}, "configSubmenu": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"submenu\" configuration property \nof the menu item changes.", "guessedname": "configSubmenu", "guessedtype": "function"}, "getNextSibling": {"return": {"type": "", "description": "YAHOO.widget.MenuItem"}, "description": "Finds the menu item's next sibling.", "guessedname": "getNextSibling", "guessedtype": "function"}, "configOnClick": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"onclick\" configuration property \nof the menu item changes.", "guessedname": "configOnClick", "guessedtype": "function"}, "getPreviousEnabledSibling": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Finds the menu item's previous enabled sibling.", "guessedname": "getPreviousEnabledSibling", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><li></code> element of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><option></code> element of the menu item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu item. See configuration class documentation \nfor more details."}], "description": "The MenuItem class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references \nfor pre-existing markup, and creates required markup if it is not \nalready present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu item.", "guessedname": "toString", "guessedtype": "function"}, "removeClassNameForState": {"guessedname": "removeClassNameForState", "params": [{"type": "String", "name": "state", "description": " String representing a state - \"disabled,\" \"checked,\" etc."}], "description": "Removes a class name from a MenuItem instance's <LI> and <A> elements\nthat represents a MenuItem's state - \"disabled,\" \"checked,\" etc.", "private": "", "guessedtype": "function"}, "_onSubmenuBeforeHide": {"guessedname": "_onSubmenuBeforeHide", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"beforehide\" Custom Event handler for a submenu.", "private": "", "guessedtype": "function"}, "blur": {"description": "Causes the menu item to lose focus and fires the \nblur event.", "guessedname": "blur", "guessedtype": "function"}, "configHelpText": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"helptext\" configuration property \nof the menu item changes.", "guessedname": "configHelpText", "guessedtype": "function"}, "destroy": {"description": "Removes the menu item's <code><li></code> element \nfrom its parent <code><ul></code> element.", "guessedname": "destroy", "guessedtype": "function"}, "getNextEnabledSibling": {"return": {"type": "", "description": "YAHOO.widget.MenuItem"}, "description": "Finds the menu item's next enabled sibling.", "guessedname": "getNextEnabledSibling", "guessedtype": "function"}, "configChecked": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"checked\" configuration property \nof the menu item changes.", "guessedname": "configChecked", "guessedtype": "function"}, "configKeyListener": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "Event handler for when the \"keylistener\" configuration \nproperty of a menu item changes.", "guessedname": "configKeyListener", "guessedtype": "function"}, "configDisabled": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"disabled\" configuration property \nof the menu item changes.", "guessedname": "configDisabled", "guessedtype": "function"}, "configSelected": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"selected\" configuration property \nof the menu item changes.", "guessedname": "configSelected", "guessedtype": "function"}, "getPreviousSibling": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Finds the menu item's previous sibling.", "guessedname": "getPreviousSibling", "guessedtype": "function"}, "_initSubTree": {"description": "Iterates the source element's childNodes collection and uses \nthe child nodes to instantiate other menus.", "private": "", "guessedname": "_initSubTree", "guessedtype": "function"}, "configClassName": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"classname\" configuration \nproperty of a menu item changes.", "guessedname": "configClassName", "guessedtype": "function"}, "configText": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"text\" configuration property of \nthe menu item changes.", "guessedname": "configText", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes an item's configurable properties.", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "file": "menuitem.js", "guessedtype": "function", "shortname": "MenuItem", "properties": {"_oSubmenu": {"description": "Object reference to the menu item's submenu.", "default": "null", "private": "", "guessedname": "_oSubmenu", "guessedtype": "property", "type": "YAHOO.widget.Menu"}, "index": {"default": "null", "type": "Number", "description": "Number indicating the ordinal position of the menu item in \nits group.", "guessedname": "index", "guessedtype": "property"}, "CSS_LABEL_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \nmenu item's <code><a></code> element.", "default": "\"yuimenuitemlabel\"", "guessedname": "CSS_LABEL_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \n<code><li></code> element of the menu item.", "default": "\"yuimenuitem\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "parent": {"default": "null", "type": "YAHOO.widget.Menu", "description": "Object reference to the menu item's parent menu.", "guessedname": "parent", "guessedtype": "property"}, "SUBMENU_TYPE": {"final": "", "type": "YAHOO.widget.Menu", "description": "Object representing the type of menu to instantiate and \nadd when parsing the child nodes of the menu item's source HTML element.", "guessedname": "SUBMENU_TYPE", "guessedtype": "property"}, "srcElement": {"default": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-74680021\">HTMLLIElement</a>|<a href=\"http://www.\nw3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247\"\n>HTMLOptGroupElement</a>|<a href=\"http://www.w3.org/TR/2000/WD-DOM-\nLevel-1-20000929/level-one-html.html#ID-70901257\">HTMLOptionElement</a>", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>|<a href=\"http://www.w3.\norg/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247\">\nHTMLOptGroupElement</a>|<a href=\"http://www.w3.org/TR/2000/WD-DOM-\nLevel-1-20000929/level-one-html.html#ID-70901257\">HTMLOptionElement</a>", "description": "Object reference to the HTML element (either \n<code><li></code>, <code><optgroup></code> or \n<code><option></code>) used create the menu item.", "guessedname": "srcElement", "guessedtype": "property"}, "value": {"default": "null", "type": "Object", "description": "Object reference to the menu item's value.", "guessedname": "value", "guessedtype": "property"}, "element": {"default": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level\n-one-html.html#ID-74680021\">HTMLLIElement</a>", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "description": "Object reference to the menu item's \n<code><li></code> element.", "guessedname": "element", "guessedtype": "property"}, "_sClassName": {"description": "The current value of the \"classname\" configuration attribute.", "default": "null", "private": "", "guessedname": "_sClassName", "guessedtype": "property", "type": "String"}, "_oAnchor": {"description": "Object reference to the menu item's \n<code><a></code> element.", "default": "null", "private": "", "guessedname": "_oAnchor", "guessedtype": "property", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-48250443\">HTMLAnchorElement</a>"}, "constructor": {"default": "YAHOO.widget.MenuItem", "type": "YAHOO.widget.MenuItem", "description": "Object reference to the menu item's constructor function.", "guessedname": "constructor", "guessedtype": "property"}, "groupIndex": {"default": "null", "type": "Number", "description": "Number indicating the index of the group to which the menu \nitem belongs.", "guessedname": "groupIndex", "guessedtype": "property"}, "browser": {"deprecated": "Use YAHOO.env.ua", "type": "String", "description": "String representing the browser.", "guessedname": "browser", "guessedtype": "property"}, "_oHelpTextEM": {"description": "Object reference to the menu item's help text \n<code><em></code> element.", "default": "null", "private": "", "guessedname": "_oHelpTextEM", "guessedtype": "property", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-58190037\">HTMLElement</a>"}, "id": {"default": "null", "type": "String", "description": "Id of the menu item's root <code><li></code> \nelement.  This property should be set via the constructor using the \nconfiguration object literal.  If an id is not specified, then one will \nbe created using the \"generateId\" method of the Dom utility.", "guessedname": "id", "guessedtype": "property"}, "_oOnclickAttributeValue": {"description": "Object reference to the menu item's current value for the \n\"onclick\" configuration attribute.", "default": "null", "private": "", "guessedname": "_oOnclickAttributeValue", "guessedtype": "property", "type": "Object"}}, "description": "Creates an item for a menu."}, "YAHOO.widget.CartesianSeries": {"name": "YAHOO.widget.CartesianSeries", "constructors": [{"description": "Functionality common to most series appearing in cartesian charts.\nGenerally, a <code>CartesianSeries</code> object shouldn't be\ninstantiated directly. Instead, a subclass with a concrete implementation\nshould be used."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "CartesianSeries", "uses": ["YAHOO.widget.Series"], "file": "Series.js", "guessedtype": "function", "shortname": "CartesianSeries", "properties": {"yField": {"type": "String", "description": "The field used to access the y-axis value from the items from the data source.", "guessedname": "yField", "guessedtype": "property"}, "xField": {"type": "String", "description": "The field used to access the x-axis value from the items from the data source.", "guessedname": "xField", "guessedtype": "property"}, "showInLegend": {"type": "Boolean", "description": "When a Legend is present, indicates whether the series will show in the legend.", "guessedname": "showInLegend", "guessedtype": "property"}, "axis": {"type": "String", "description": "Indicates which axis the series will bind to", "guessedname": "axis", "guessedtype": "property"}}, "description": "Functionality common to most series appearing in cartesian charts.\nGenerally, a <code>CartesianSeries</code> object shouldn't be\ninstantiated directly. Instead, a subclass with a concrete implementation\nshould be used."}, "YAHOO.util.Scroll": {"name": "YAHOO.util.Scroll", "constructors": [{"params": [{"type": "String or HTMLElement", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.  \nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.  \nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").  \nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Anim subclass for scrolling elements to a position defined by the \"scroll\"\nmember of \"attributes\".  All \"scroll\" members are arrays with x, y scroll positions.\n<p>Usage: <code>var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>"}], "namespace": "YAHOO.util", "module": "animation", "guessedname": "Scroll", "extends": "YAHOO.util.ColorAnim", "superclass": "YAHOO.util.ColorAnim", "file": "Scroll.js", "guessedtype": "function", "shortname": "Scroll", "requires": "YAHOO.util.Anim", "description": "Anim subclass for scrolling elements to a position defined by the \"scroll\"\nmember of \"attributes\".  All \"scroll\" members are arrays with x, y scroll positions.\n<p>Usage: <code>var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>"}, "YAHOO.widget.Dialog": {"name": "YAHOO.widget.Dialog", "configs": {"buttons": {"default": "\"none\"", "type": "{Array|String}", "description": "Array of object literals, each containing a set of properties \ndefining a button to be appended into the Dialog's footer.\n<p>Each button object in the buttons array can have three properties:</p>\n<dl>\n<dt>text:</dt>\n<dd>\nThe text that will display on the face of the button. The text can \ninclude HTML, as long as it is compliant with HTML Button specifications.\n</dd>\n<dt>handler:</dt>\n<dd>Can be either:\n<ol>\n<li>A reference to a function that should fire when the \nbutton is clicked.  (In this case scope of this function is \nalways its Dialog instance.)</li>\n<li>An object literal representing the code to be \nexecuted when the button is clicked.\n<p>Format:</p>\n<p>\n<code>{\n<br>\n<strong>fn:</strong> Function, //\nThe handler to call when  the event fires.\n<br>\n<strong>obj:</strong> Object, // \nAn  object to pass back to the handler.\n<br>\n<strong>scope:</strong> Object // \nThe object to use for the scope of the handler.\n<br>\n}</code>\n</p>\n</li>\n</ol>\n</dd>\n<dt>isDefault:</dt>\n<dd>\nAn optional boolean value that specifies that a button \nshould be highlighted and focused by default.\n</dd>\n</dl>\n<em>NOTE:</em>If the YUI Button Widget is included on the page, \nthe buttons created will be instances of YAHOO.widget.Button. \nOtherwise, HTML Buttons (<code><BUTTON></code>) will be \ncreated."}, "hideaftersubmit": {"default": "true", "type": "Boolean", "description": "This property is used to configure whether or not the \ndialog should be automatically hidden after submit."}, "postdata": {"default": "null", "type": "String", "description": "Any additional post data which needs to be sent when using the \n<a href=\"#config_postmethod\">async</a> postmethod for dialog POST submissions.\nThe format for the post data string is defined by Connection Manager's \n<a href=\"YAHOO.util.Connect.html#method_asyncRequest\">asyncRequest</a> \nmethod."}, "postmethod": {"default": "async", "type": "String", "description": "The method to use for posting the Dialog's form. Possible values \nare \"async\", \"form\", and \"manual\"."}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Dialog <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Dialog"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this Dialog. See configuration \ndocumentation for more details."}], "description": "<p>\nDialog is an implementation of Panel that can be used to submit form \ndata.\n</p>\n<p>\nBuilt-in functionality for buttons with event handlers is included. \nIf the optional YUI Button dependancy is included on the page, the buttons\ncreated will be instances of YAHOO.widget.Button, otherwise regular HTML buttons\nwill be created.\n</p>\n<p>\nForms can be processed in 3 ways -- via an asynchronous Connection utility call, \na simple form POST or GET, or manually. The YUI Connection utility should be\nincluded if you're using the default \"async\" postmethod, but is not required if\nyou're using any of the other postmethod values.\n</p>"}], "namespace": "YAHOO.widget", "module": "container", "events": {"beforeSubmitEvent": {"description": "CustomEvent fired prior to submission", "guessedname": "beforeSubmitEvent", "guessedtype": "property"}, "asyncSubmitEvent": {"params": [{"type": "Object", "name": "conn", "description": " The connection object, returned by YAHOO.util.Connect.asyncRequest"}], "description": "CustomEvent fired after asynchronous submission, before the generic submit event is fired", "guessedname": "asyncSubmitEvent", "guessedtype": "property"}, "submitEvent": {"description": "CustomEvent fired after submission", "guessedname": "submitEvent", "guessedtype": "property"}, "manualSubmitEvent": {"description": "CustomEvent fired for manual submission, before the generic submit event is fired", "guessedname": "manualSubmitEvent", "guessedtype": "property"}, "formSubmitEvent": {"description": "CustomEvent fired after form-based submission, before the generic submit event is fired", "guessedname": "formSubmitEvent", "guessedtype": "property"}, "cancelEvent": {"description": "CustomEvent fired after cancel", "guessedname": "cancelEvent", "guessedtype": "property"}}, "guessedname": "Dialog", "methods": {"configButtons": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler for the \"buttons\" configuration property", "guessedname": "configButtons", "guessedtype": "function"}, "getButtons": {"return": {"type": "Array", "description": ""}, "description": "Returns an array containing each of the Dialog's \nbuttons, by default an array of HTML <code><BUTTON></code> \nelements.  If the Dialog's buttons were created using the \nYAHOO.widget.Button class (via the inclusion of the optional Button \ndependancy on the page), an array of YAHOO.widget.Button instances \nis returned.", "guessedname": "getButtons", "guessedtype": "function"}, "doSubmit": {"description": "Submits the Dialog's form depending on the value of the \n\"postmethod\" configuration property.  <strong>Please note:\n</strong> As of version 2.3 this method will automatically handle \nasyncronous file uploads should the Dialog instance's form contain \n<code><input type=\"file\"></code> elements.  If a Dialog \ninstance will be handling asyncronous file uploads, its \n<code>callback</code> property will need to be setup with a \n<code>upload</code> handler rather than the standard \n<code>success</code> and, or <code>failure</code> handlers.  For more \ninformation, see the <a href=\"http://developer.yahoo.com/yui/\nconnection/#file\">Connection Manager documenation on file uploads</a>.", "guessedname": "doSubmit", "guessedtype": "function"}, "configClose": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For \nconfiguration handlers, args[0] will equal the newly applied value \nfor the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"close\" property is \nchanged. The method controls the appending or hiding of the close\nicon at the top right of the Dialog.", "guessedname": "configClose", "guessedtype": "function"}, "_submitHandler": {"protected": "", "params": [{"type": "DOMEvent", "name": "e", "description": " The DOM Event object"}], "description": "Internal handler for the form submit event", "guessedname": "_submitHandler", "guessedtype": "function"}, "_doClose": {"protected": "", "params": [{"type": "DOMEvent", "name": "e", "description": ""}], "description": "Event handler for the close icon", "guessedname": "_doClose", "guessedtype": "function"}, "cancel": {"description": "Executes the cancel of the Dialog followed by a hide.", "guessedname": "cancel", "guessedtype": "function"}, "configPostMethod": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For \nconfiguration handlers, args[0] will equal the newly applied value \nfor the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler for the \"postmethod\" configuration property", "guessedname": "configPostMethod", "guessedtype": "function"}, "focusFirstButton": {"description": "Sets the focus to the first button created via the \"buttons\"\nconfiguration property.", "guessedname": "focusFirstButton", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Dialog which are fired \nautomatically at appropriate times by the Dialog class.", "guessedname": "initEvents", "guessedtype": "function"}, "focusFirst": {"description": "<p>\nSets focus to the first focusable element in the Dialog's form if found, \nelse, the default button if found, else the first button defined via the \n\"buttons\" configuration property.\n</p>\n<p>\nThis method is invoked when the Dialog is made visible.\n</p>", "guessedname": "focusFirst", "guessedtype": "function"}, "submit": {"description": "Executes a submit of the Dialog if validation \nis successful. By default the Dialog is hidden\nafter submission, but you can set the \"hideaftersubmit\"\nconfiguration property to false, to prevent the Dialog\nfrom being hidden.", "guessedname": "submit", "guessedtype": "function"}, "focusLastButton": {"description": "Sets the focus to the last button created via the \"buttons\" \nconfiguration property.", "guessedname": "focusLastButton", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Dialog <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Dialog"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this Dialog. \nSee configuration documentation for more details."}], "description": "The Dialog initialization method, which is executed for Dialog and \nall of its subclasses. This method is automatically called by the \nconstructor, and  sets up all DOM references for pre-existing markup, \nand creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Dialog"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "focusDefaultButton": {"description": "Sets the focus to the button that is designated as the default via \nthe \"buttons\" configuration property. By default, this method is \ncalled when the Dialog is made visible.", "guessedname": "focusDefaultButton", "guessedtype": "function"}, "getData": {"return": {"type": "Object", "description": "A JSON object reprsenting the data of the \ncurrent form."}, "description": "Returns a JSON-compatible data structure representing the data \ncurrently contained in the form.", "guessedname": "getData", "guessedtype": "function"}, "blurButtons": {"description": "Blurs all the buttons defined via the \"buttons\" \nconfiguration property.", "guessedname": "blurButtons", "guessedtype": "function"}, "focusLast": {"description": "Sets focus to the last element in the Dialog's form or the last \nbutton defined via the \"buttons\" configuration property.", "guessedname": "focusLast", "guessedtype": "function"}, "destroy": {"description": "Removes the Panel element from the DOM and sets all child elements \nto null.", "guessedname": "destroy", "guessedtype": "function"}, "validate": {"description": "Built-in function hook for writing a validation function that will \nbe checked for a \"true\" value prior to a submit. This function, as \nimplemented by default, always returns true, so it should be \noverridden if validation is necessary.", "guessedname": "validate", "guessedtype": "function"}, "registerForm": {"description": "Prepares the Dialog's internal FORM object, creating one if one is\nnot currently present.", "guessedname": "registerForm", "guessedtype": "function"}, "setFirstLastFocusable": {"description": "Configures instance properties, pointing to the \nfirst and last focusable elements in the Dialog's form.", "guessedname": "setFirstLastFocusable", "guessedtype": "function"}, "_getFormAttributes": {"return": {"type": "Object", "description": "Object literal, with method and action String properties."}, "description": "Retrieves important attributes (currently method and action) from\nthe form element, accounting for any elements which may have the same name \nas the attributes. Defaults to \"POST\" and \"\" for method and action respectively\nif the attribute cannot be retrieved.", "protected": "", "params": [{"type": "HTMLFormElement", "name": "oForm", "description": " The HTML Form element from which to retrieve the attributes"}], "guessedname": "_getFormAttributes", "guessedtype": "function"}, "setTabLoop": {"params": [{"type": "HTMLElement", "name": "firstElement", "description": ""}, {"type": "HTMLElement", "name": "lastElement", "description": ""}], "description": "Sets up a tab, shift-tab loop between the first and last elements\nprovided. NOTE: Sets up the preventBackTab and preventTabOut KeyListener\ninstance properties, which are reset everytime this method is invoked.", "guessedname": "setTabLoop", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be changed \nusing the Dialog's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "_getButton": {"return": {"type": "YAHOO.widget.Button|HTMLElement", "description": ""}, "description": "Helper method to normalize button references. It either returns the \nYUI Button instance for the given element if found,\nor the passes back the HTMLElement reference if a corresponding YUI Button\nreference is not found or YAHOO.widget.Button does not exist on the page.", "private": "", "params": [{"type": "HTMLElement", "name": "button", "description": ""}], "guessedname": "_getButton", "guessedtype": "function"}}, "extends": "YAHOO.widget.Panel", "superclass": "YAHOO.widget.Panel", "file": "Dialog.js", "guessedtype": "function", "shortname": "Dialog", "properties": {"YAHOO.widget.Dialog.CSS_DIALOG": {"description": "Constant representing the default CSS class used for a Dialog", "static": "", "guessedname": "CSS_DIALOG", "guessedtype": "property", "type": "String", "final": ""}, "form": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-40002357\">HTMLFormElement</a>", "description": "Object reference to the Dialog's \n<code><form></code> element.", "guessedname": "form", "guessedtype": "property"}, "callback.success": {"type": "Function", "description": "The function to execute upon success of the \nConnection submission (when the form does not\ncontain a file input element).", "guessedname": "success", "guessedtype": "property"}, "callback.failure": {"type": "Function", "description": "The function to execute upon failure of the \nConnection submission", "guessedname": "failure", "guessedtype": "property"}, "callback": {"type": "Object", "description": "The internally maintained callback object for use with the \nConnection utility. The format of the callback object is \nsimilar to Connection Manager's callback object and is \nsimply passed through to Connection Manager when the async \nrequest is made.", "guessedname": "callback", "guessedtype": "property"}, "EVENT_TYPES": {"description": "Constant representing the name of the Dialog's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "callback.upload": {"type": "Function", "description": "<p>\nThe function to execute upon success of the \nConnection submission, when the form contains\na file input element.\n</p>\n<p>\n<em>NOTE:</em> Connection manager will not\ninvoke the success or failure handlers for the file\nupload use case. This will be the only callback\nhandler invoked.\n</p>\n<p>\nFor more information, see the <a href=\"http://developer.yahoo.com/yui/connection/#file\">\nConnection Manager documenation on file uploads</a>.\n</p>"}, "DEFAULT_CONFIG": {"description": "Constant representing the Dialog's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "callback.argument": {"type": "Object", "description": "The arbitraty argument or arguments to pass to the Connection \ncallback functions", "guessedname": "argument", "guessedtype": "property"}}, "description": "<p>\nDialog is an implementation of Panel that can be used to submit form \ndata.\n</p>\n<p>\nBuilt-in functionality for buttons with event handlers is included. \nIf the optional YUI Button dependancy is included on the page, the buttons\ncreated will be instances of YAHOO.widget.Button, otherwise regular HTML buttons\nwill be created.\n</p>\n<p>\nForms can be processed in 3 ways -- via an asynchronous Connection utility call, \na simple form POST or GET, or manually. The YUI Connection utility should be\nincluded if you're using the default \"async\" postmethod, but is not required if\nyou're using any of the other postmethod values.\n</p>"}, "YAHOO.util.Color": {"description": "Provides color conversion and validation utils", "namespace": "YAHOO.util", "module": "colorpicker", "guessedname": "Color", "methods": {"hsv2rgb": {"return": {"type": "[int, int, int]", "description": "the red, green, blue values in\ndecimal."}, "params": [{"type": "int|[int, float, float]", "name": "h", "description": "  the hue, or an\narray containing all three parameters"}, {"type": "float", "name": "s", "description": "  the saturation"}, {"type": "float", "name": "v", "description": "  the value/brightness"}], "description": "Converts HSV (h[0-360], s[0-1]), v[0-1] to RGB [255,255,255]", "guessedname": "hsv2rgb", "guessedtype": "function"}, "websafe": {"return": {"type": "[int, int, int]", "description": "an array containing the closes\nwebsafe rgb colors."}, "params": [{"type": "int|[int, int, int]", "name": "r", "description": "  the red value, or an\narray containing all three parameters"}, {"type": "int", "name": "g", "description": "  the green value"}, {"type": "int", "name": "b", "description": "  the blue value"}], "description": "Returns the closest websafe color to the supplied rgb value.", "guessedname": "websafe", "guessedtype": "function"}, "rgb2hsv": {"return": {"type": "[int, float, float]", "description": "the value converted to hsv"}, "params": [{"type": "int|[int, int, int]", "name": "r", "description": "  the red value, or an\narray containing all three parameters"}, {"type": "int", "name": "g", "description": "  the green value"}, {"type": "int", "name": "b", "description": "  the blue value"}], "description": "Converts to RGB [255,255,255] to HSV (h[0-360], s[0-1]), v[0-1]", "guessedname": "rgb2hsv", "guessedtype": "function"}, "hex2dec": {"return": {"type": "int", "description": "the decimal"}, "params": [{"type": "string", "name": "str", "description": "  the hex pair to convert"}], "description": "Converts a hex pair 00...FF to an int 0...255", "guessedname": "hex2dec", "guessedtype": "function"}, "rgb2hex": {"return": {"type": "string", "description": "the hex string"}, "params": [{"type": "int|[int, int, int]", "name": "r", "description": "  the red value, or an\narray containing all three parameters"}, {"type": "int", "name": "g", "description": "  the green value"}, {"type": "int", "name": "b", "description": "  the blue value"}], "description": "Converts decimal rgb values into a hex string\n255,255,255 -> FFFFFF", "guessedname": "rgb2hex", "guessedtype": "function"}, "real2dec": {"return": {"type": "int", "description": "a number 0-255"}, "params": [{"type": "float", "name": "n", "description": "  the number to convert"}], "description": "Converts 0-1 to 0-255", "guessedname": "real2dec", "guessedtype": "function"}, "dec2hex": {"return": {"type": "string", "description": "the hex equivalent"}, "params": [{"type": "int", "name": "n", "description": "  the number to convert"}], "description": "Converts an int 0...255 to hex pair 00...FF", "guessedname": "dec2hex", "guessedtype": "function"}, "hex2rgb": {"return": {"type": "[int, int, int]", "description": "an array containing the rgb values"}, "params": [{"type": "string", "name": "str", "description": "  the hex string"}], "description": "Converts a hex string to rgb", "guessedname": "hex2rgb", "guessedtype": "function"}}, "file": "Color.js", "guessedtype": "function", "shortname": "Color", "name": "YAHOO.util.Color"}, "YAHOO.widget.SimpleDialog": {"name": "YAHOO.widget.SimpleDialog", "configs": {"text": {"default": "\"\"", "type": "String", "description": "Sets the text for the SimpleDialog"}, "icon": {"default": "\"none\"", "type": "String", "description": "Sets the informational icon for the SimpleDialog"}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the SimpleDialog \n<em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the SimpleDialog"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this SimpleDialog. See \nconfiguration documentation for more details."}], "description": "SimpleDialog is a simple implementation of Dialog that can be used to \nsubmit a single value. Forms can be processed in 3 ways -- via an \nasynchronous Connection utility call, a simple form POST or GET, \nor manually."}], "namespace": "YAHOO.widget", "module": "container", "guessedname": "SimpleDialog", "methods": {"configIcon": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "Fired when the \"icon\" property is set.", "guessedname": "configIcon", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the SimpleDialog \n<em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the SimpleDialog"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this \nSimpleDialog. See configuration documentation for more details."}], "description": "The SimpleDialog initialization method, which is executed for \nSimpleDialog and all of its subclasses. This method is automatically \ncalled by the constructor, and  sets up all DOM references for \npre-existing markup, and creates required markup if it is not \nalready present.", "guessedname": "init", "guessedtype": "function"}, "setBody": {"params": [{"type": "String", "name": "bodyContent", "description": " The HTML used to set the body. \nAs a convenience, non HTMLElement objects can also be passed into \nthe method, and will be treated as strings, with the body innerHTML\nset to their default toString implementations.\n<em>OR</em>"}, {"type": "HTMLElement", "name": "bodyContent", "description": " The HTMLElement to add as the first and only child of the body element.\n<em>OR</em>"}, {"type": "DocumentFragment", "name": "bodyContent", "description": " The document fragment \ncontaining elements which are to be added to the body"}], "description": "<p>\nSets the SimpleDialog's body content to the HTML specified. \nIf no body is present, one will be automatically created. \nAn empty string can be passed to the method to clear the contents of the body.\n</p>\n<p><strong>NOTE:</strong> SimpleDialog provides the <a href=\"#config_text\">text</a>\nand <a href=\"#config_icon\">icon</a> configuration properties to set the contents\nof it's body element in accordance with the UI design for a SimpleDialog (an \nicon and message text). Calling setBody on the SimpleDialog will not enforce this \nUI design constraint and will replace the entire contents of the SimpleDialog body. \nIt should only be used if you wish the replace the default icon/text body structure \nof a SimpleDialog with your own custom markup.</p>"}, "toString": {"return": {"type": "String", "description": "The string representation of the SimpleDialog"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "configText": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "Fired when the \"text\" property is set.", "guessedname": "configText", "guessedtype": "function"}, "registerForm": {"description": "Prepares the SimpleDialog's internal FORM object, creating one if one \nis not currently present, and adding the value hidden field.", "guessedname": "registerForm", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be changed \nusing the SimpleDialog's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Dialog", "superclass": "YAHOO.widget.Dialog", "file": "SimpleDialog.js", "guessedtype": "function", "shortname": "SimpleDialog", "properties": {"YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG": {"description": "Constant representing the default CSS class used for a SimpleDialog", "static": "", "guessedname": "CSS_SIMPLEDIALOG", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_INFO": {"description": "Constant for the standard network icon for info", "static": "", "guessedname": "ICON_INFO", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_CSS_CLASSNAME": {"description": "Constant representing the name of the CSS class applied to the element \ncreated by the \"icon\" configuration property.", "static": "", "guessedname": "ICON_CSS_CLASSNAME", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_BLOCK": {"description": "Constant for the standard network icon for a blocking action", "static": "", "guessedname": "ICON_BLOCK", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_WARN": {"description": "Constant for the standard network icon for warn", "static": "", "guessedname": "ICON_WARN", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_ALARM": {"description": "Constant for the standard network icon for alarm", "static": "", "guessedname": "ICON_ALARM", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_TIP": {"description": "Constant for the standard network icon for a tip", "static": "", "guessedname": "ICON_TIP", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_HELP": {"description": "Constant for the standard network icon for help", "static": "", "guessedname": "ICON_HELP", "guessedtype": "property", "type": "String", "final": ""}, "DEFAULT_CONFIG": {"description": "Constant representing the SimpleDialog's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}}, "description": "SimpleDialog is a simple implementation of Dialog that can be used to \nsubmit a single value. Forms can be processed in 3 ways -- via an \nasynchronous Connection utility call, a simple form POST or GET, \nor manually."}, "YAHOO.util.Connect": {"name": "YAHOO.util.Connect", "namespace": "YAHOO.util", "module": "connection", "guessedname": "Connect", "methods": {"asyncRequest": {"return": {"type": "object", "description": "Returns the connection object"}, "description": "Method for initiating an asynchronous request via the XHR object.", "static": "", "guessedname": "asyncRequest", "guessedtype": "function", "params": [{"type": "string", "name": "method", "description": " HTTP transaction method"}, {"type": "string", "name": "uri", "description": " Fully qualified path of resource"}, {"type": "callback", "name": "callback", "description": " User-defined callback function or object"}, {"type": "string", "name": "postData", "description": " POST body"}], "public": ""}, "isCallInProgress": {"return": {"type": "boolean", "description": ""}, "description": "Determines if the transaction is still being processed.", "static": "", "guessedname": "isCallInProgress", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object returned by asyncRequest"}], "public": ""}, "createResponseObject": {"return": {"type": "object", "description": ""}, "description": "This method evaluates the server response, creates and returns the results via\nits properties.  Success and failure cases will differ in the response\nobject's property values.", "private": "", "static": "", "guessedname": "createResponseObject", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}, {"type": "callbackArg", "name": "callbackArg", "description": " The user-defined argument or arguments to be passed to the callback"}]}, "_xdrStart": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "object", "name": "The", "description": " transaction object."}, {"type": "string", "name": "The", "description": " transaction's callback object."}], "description": "This method fires the global and transaction start\nevents.", "private": ""}, "abort": {"return": {"type": "boolean", "description": ""}, "description": "Method to terminate a transaction, if it has not reached readyState 4.", "static": "", "guessedname": "abort", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object returned by asyncRequest."}, {"type": "object", "name": "callback", "description": "  User-defined callback object."}, {"type": "string", "name": "isTimeout", "description": " boolean to indicate if abort resulted from a callback timeout."}], "public": ""}, "transport": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "string", "name": "URI", "description": " to connection.swf."}], "description": "This method instantiates the Flash transport and\nestablishes a static reference to it, used for all XDR requests.", "public": ""}, "setDefaultXhrHeader": {"return": {"type": "", "description": "void"}, "description": "Member to override the default transaction header..", "static": "", "guessedname": "setDefaultXhrHeader", "guessedtype": "function", "params": [{"type": "boolean", "name": "b", "description": " Set and use default header - true or false ."}], "public": ""}, "setForm": {"return": {"type": "string", "description": "string of the HTML form field name and value pairs.."}, "static": "", "params": [{"type": "string || object", "name": "form", "description": " id or name attribute, or form object."}, {"type": "boolean", "name": "optional", "description": " enable file upload."}, {"type": "boolean", "name": "optional", "description": " enable file upload over SSL in IE only."}], "description": "This method assembles the form label and value pairs and\nconstructs an encoded string.\nasyncRequest() will automatically initialize the transaction with a\na HTTP header Content-Type of application/x-www-form-urlencoded.", "public": ""}, "uploadFile": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "int", "name": "id", "description": " The transaction id."}, {"type": "object", "name": "callback", "description": " User-defined callback object."}, {"type": "string", "name": "uri", "description": " Fully qualified path of resource."}, {"type": "string", "name": "postData", "description": " POST data to be submitted in addition to HTML form."}], "description": "Uploads HTML form, inclusive of files/attachments, using the\niframe created in createFrame to facilitate the transaction.", "private": ""}, "resetFormState": {"static": "", "return": {"type": "void", "description": ""}, "description": "Resets HTML form properties when an HTML form or HTML form\nwith file upload transaction is sent.", "private": ""}, "getConnectionObject": {"return": {"type": "object", "description": ""}, "description": "This method is called by asyncRequest to create a\nvalid connection object for the transaction.  It also passes a\ntransaction id and increments the transaction id counter.", "private": "", "static": "", "guessedname": "getConnectionObject", "guessedtype": "function"}, "createExceptionObject": {"return": {"type": "object", "description": ""}, "description": "If a transaction cannot be completed due to dropped or closed connections,\nthere may be not be enough information to build a full response object.\nThe failure callback will be fired and this specific condition can be identified\nby a status property value of 0.\nIf an abort was successful, the status property will report a value of -1.", "private": "", "static": "", "guessedname": "createExceptionObject", "guessedtype": "function", "params": [{"type": "int", "name": "tId", "description": " The Transaction Id"}, {"type": "callbackArg", "name": "callbackArg", "description": " The user-defined argument or arguments to be passed to the callback"}, {"type": "boolean", "name": "isAbort", "description": " Determines if the exception case is caused by a transaction abort"}]}, "handleXdrResponse": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "object", "name": "The", "description": " response object sent from the Flash transport."}], "description": "This method is the initial response handler\nfor XDR transactions.  The Flash transport calls this\nfunction and sends the response payload.", "private": ""}, "resetDefaultHeaders": {"return": {"type": "void", "description": ""}, "description": "Resets the default HTTP headers object", "static": "", "guessedname": "resetDefaultHeaders", "guessedtype": "function", "public": ""}, "xdr": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "object", "name": "The", "description": " transaction object."}, {"type": "string", "name": "HTTP", "description": " request method."}, {"type": "string", "name": "URI", "description": " for the transaction."}, {"type": "object", "name": "The", "description": " transaction's callback object."}, {"type": "object", "name": "The", "description": " JSON object used as HTTP POST data."}], "description": "This method calls the public method on the\nFlash transport to start the XDR transaction.  It is analogous\nto Connection Manager's asyncRequest method.", "private": ""}, "appendPostData": {"return": {"type": "array", "description": "formElements Collection of hidden fields."}, "static": "", "params": [{"type": "string", "name": "postData", "description": " The HTTP POST data"}], "description": "Parses the POST data and creates hidden form elements\nfor each key-value, and appends them to the HTML form object.", "private": ""}, "releaseObject": {"return": {"type": "void", "description": ""}, "description": "Dereference the XHR instance and the connection object after the transaction is completed.", "private": "", "static": "", "guessedname": "releaseObject", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}]}, "createXhrObject": {"return": {"type": "", "description": "object"}, "description": "Instantiates a XMLHttpRequest object and returns an object with two properties:\nthe XMLHttpRequest instance and the transaction id.", "private": "", "static": "", "guessedname": "createXhrObject", "guessedtype": "function", "params": [{"type": "int", "name": "transactionId", "description": " Property containing the transaction id for this transaction."}]}, "handleTransactionResponse": {"return": {"type": "void", "description": ""}, "description": "This method attempts to interpret the server response and\ndetermine whether the transaction was successful, or if an error or\nexception was encountered.", "private": "", "static": "", "guessedname": "handleTransactionResponse", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}, {"type": "object", "name": "callback", "description": " The user-defined callback object"}, {"type": "boolean", "name": "isAbort", "description": " Determines if the transaction was terminated via abort()."}]}, "createFrame": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "string", "name": "optional", "description": " qualified path of iframe resource for SSL in IE."}], "description": "Creates an iframe to be used for form file uploads.  It is remove from the\ndocument upon completion of the upload transaction.", "private": ""}, "initCustomEvents": {"return": {"type": "void", "description": ""}, "description": "This method creates and subscribes custom events,\nspecific to each transaction", "private": "", "static": "", "guessedname": "initCustomEvents", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}, {"type": "callback", "name": "callback", "description": " The user-defined callback object"}]}, "handleReadyState": {"return": {"type": "void", "description": ""}, "description": "This method serves as a timer that polls the XHR object's readyState\nproperty during a transaction, instead of binding a callback to the\nonreadystatechange event.  Upon readyState 4, handleTransactionResponse\nwill process the response, and the timer will be cleared.", "private": "", "static": "", "guessedname": "handleReadyState", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}, {"type": "callback", "name": "callback", "description": " The user-defined callback object"}]}, "setDefaultPostHeader": {"return": {"type": "", "description": "void"}, "description": "Member to override the default POST header.", "static": "", "guessedname": "setDefaultPostHeader", "guessedtype": "function", "params": [{"type": "boolean", "name": "b", "description": " Set and use default header - true or false ."}], "public": ""}, "initHeader": {"return": {"type": "void", "description": ""}, "description": "Method that initializes the custom HTTP headers for the each transaction.", "static": "", "guessedname": "initHeader", "guessedtype": "function", "params": [{"type": "string", "name": "label", "description": " The HTTP header label"}, {"type": "string", "name": "value", "description": " The HTTP header value"}, {"type": "string", "name": "isDefault", "description": " Determines if the specific header is a default header\nautomatically sent with each transaction."}], "public": ""}, "setProgId": {"return": {"type": "", "description": "void"}, "description": "Member to add an ActiveX id to the existing xml_progid array.\nIn the event(unlikely) a new ActiveX id is introduced, it can be added\nwithout internal code modifications.", "static": "", "guessedname": "setProgId", "guessedtype": "function", "params": [{"type": "string", "name": "id", "description": " The ActiveX id to be added to initialize the XHR object."}], "public": ""}, "setPollingInterval": {"return": {"type": "", "description": "void"}, "description": "Member to modify the default polling interval.", "static": "", "guessedname": "setPollingInterval", "guessedtype": "function", "params": [{"type": "int", "name": "i", "description": " The polling interval in milliseconds."}], "public": ""}, "setHeader": {"return": {"type": "void", "description": ""}, "description": "Accessor that sets the HTTP headers for each transaction.", "private": "", "static": "", "guessedname": "setHeader", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object for the transaction."}]}, "_swf": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "string", "name": "URI", "description": " to connection.swf."}], "description": "This method creates and instantiates the Flash transport.", "private": ""}}, "file": "connection_core.js", "guessedtype": "property", "shortname": "Connect", "properties": {"successEvent": {"description": "Custom event that fires when handleTransactionResponse() determines a\nresponse in the HTTP 2xx range.", "private": "", "static": "", "guessedname": "successEvent", "guessedtype": "property", "type": "CustomEvent"}, "_default_xhr_header": {"description": "The default header value for the label\n\"X-Requested-With\".  This is sent with each\ntransaction, by default, to identify the\nrequest as being made by YUI Connection Manager.", "private": "", "static": "", "guessedname": "_default_xhr_header", "guessedtype": "property", "type": "boolean"}, "completeEvent": {"description": "Custom event that fires when a transaction response has completed.", "private": "", "static": "", "guessedname": "completeEvent", "guessedtype": "property", "type": "CustomEvent"}, "_polling_interval": {"description": "The polling frequency, in milliseconds, for HandleReadyState.\nwhen attempting to determine a transaction's XHR readyState.\nThe default is 50 milliseconds.", "private": "", "static": "", "guessedname": "_polling_interval", "guessedtype": "property", "type": "int"}, "_formNode": {"description": "Property modified by setForm() to set a reference to the HTML\nform node if the desired action is file upload.", "private": "", "static": "", "guessedname": "_formNode", "guessedtype": "property", "type": "object"}, "_msxml_progid": {"description": "Array of MSFT ActiveX ids for XMLHttpRequest.", "private": "", "static": "", "guessedname": "_msxml_progid", "guessedtype": "property", "type": "array"}, "_http_header": {"description": "Object literal of HTTP header(s)", "private": "", "static": "", "guessedname": "_http_headers", "guessedtype": "property", "type": "object"}, "failureEvent": {"description": "Custom event that fires when handleTransactionResponse() determines a\nresponse in the HTTP 4xx/5xx range.", "private": "", "static": "", "guessedname": "failureEvent", "guessedtype": "property", "type": "CustomEvent"}, "_default_post_header": {"description": "The default header used for POST transactions.", "private": "", "static": "", "guessedname": "_default_post_header", "guessedtype": "property", "type": "boolean"}, "_isFormSubmit": {"description": "Property modified by setForm() to determine if the data\nshould be submitted as an HTML form.", "private": "", "static": "", "guessedname": "_isFormSubmit", "guessedtype": "property", "type": "boolean"}, "_has_default_header": {"description": "Determines if custom, default headers\nare set for each transaction.", "private": "", "static": "", "guessedname": "_has_default_headers", "guessedtype": "property", "type": "boolean"}, "_hasSubmitListener": {"guessedname": "_hasSubmitListener", "static": "", "description": "Determines whether YAHOO.util.Event is available and returns true or false.\nIf true, an event listener is bound at the document level to trap click events that\nresolve to a target type of \"Submit\".  This listener will enable setForm() to determine\nthe clicked \"Submit\" value in a multi-Submit button, HTML form.", "private": "", "guessedtype": "function"}, "_default_form_header": {"description": "The default header used for transactions involving the\nuse of HTML forms.", "private": "", "static": "", "guessedname": "_default_form_header", "guessedtype": "property", "type": "boolean"}, "_use_default_xhr_header": {"description": "Determines if a default header of\n'X-Requested-With: XMLHttpRequest'\nwill be added to each transaction.", "private": "", "static": "", "guessedname": "_use_default_xhr_header", "guessedtype": "property", "type": "boolean"}, "_poll": {"description": "Collection of polling references to the polling mechanism in handleReadyState.", "private": "", "static": "", "guessedname": "_poll", "guessedtype": "property", "type": "object"}, "_timeOut": {"description": "Queue of timeout values for each transaction callback with a defined timeout value.", "private": "", "static": "", "guessedname": "_timeOut", "guessedtype": "property", "type": "object"}, "abortEvent": {"description": "Custom event that fires when a transaction is successfully aborted.", "private": "", "static": "", "guessedname": "abortEvent", "guessedtype": "property", "type": "CustomEvent"}, "_transaction_id": {"description": "A transaction counter that increments the transaction id for each transaction.", "private": "", "static": "", "guessedname": "_transaction_id", "guessedtype": "property", "type": "int"}, "_sFormData": {"description": "Property modified by setForm() to set the HTML form data\nfor each transaction.", "private": "", "static": "", "guessedname": "_sFormData", "guessedtype": "property", "type": "string"}, "_use_default_post_header": {"description": "Determines if a default header of\nContent-Type of 'application/x-www-form-urlencoded'\nwill be added to any client HTTP headers sent for POST\ntransactions.", "private": "", "static": "", "guessedname": "_use_default_post_header", "guessedtype": "property", "type": "boolean"}, "_customEvents": {"description": "A reference table that maps callback custom events members to its specific\nevent name.", "private": "", "static": "", "guessedname": "_customEvents", "guessedtype": "property", "type": "object"}, "startEvent": {"description": "Custom event that fires at the start of a transaction", "private": "", "static": "", "guessedname": "startEvent", "guessedtype": "property", "type": "CustomEvent"}, "_isFileUpload": {"description": "Property modified by setForm() to determine if a file(s)\nupload is expected.", "private": "", "static": "", "guessedname": "_isFileUpload", "guessedtype": "property", "type": "boolean"}, "_has_http_headers": {"description": "Determines if HTTP headers are set.", "private": "", "static": "", "guessedname": "_has_http_headers", "guessedtype": "property", "type": "boolean"}, "_submitElementValue": {"description": "Tracks the name-value pair of the \"clicked\" submit button if multiple submit\nbuttons are present in an HTML form; and, if YAHOO.util.Event is available.", "private": "", "static": "", "guessedname": "_submitElementValue", "guessedtype": "property", "type": "string"}}, "description": "The Connection Manager singleton provides methods for creating and managing\nasynchronous transactions."}, "YAHOO.widget.LineChart": {"name": "YAHOO.widget.LineChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "LineChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "LineChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "LineChart", "description": "LineChart class for the YUI Charts widget."}, "YAHOO.widget.FlashAdapter": {"name": "YAHOO.widget.FlashAdapter", "configs": {"altText": {"type": "String", "description": "The alternative text to provide for screen readers and other assistive technology."}, "version": {"type": "String", "description": "Minimum required version for the SWF file. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "swfURL": {"type": "String", "description": "Absolute or relative URL to the SWF displayed by the FlashAdapter. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "expressInstall": {"type": "String", "description": "URL pointing to a SWF file that handles Flash Player's express\ninstall feature. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "wmode": {"type": "String", "description": "Sets the window mode of the Flash Player control. May be\n\"window\", \"opaque\", or \"transparent\". Only available in the constructor\nbecause it may not be set after Flash Player has been embedded in the page."}, "backgroundColor": {"type": "String", "description": "The background color of the SWF. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}}, "namespace": "YAHOO.widget", "module": "uploader", "properties": {"_swfURL": {"guessedname": "_swfURL", "type": "String", "description": "The URL of the SWF file.", "private": "", "guessedtype": "property"}, "_initialized": {"guessedname": "_initialized", "type": "Boolean", "description": "Indicates whether the SWF has been initialized and is ready\nto communicate with JavaScript", "private": "", "guessedtype": "property"}, "_attributes": {"guessedname": "_attributes", "type": "Object", "description": "The initializing attributes are stored here until the SWF is ready.", "private": "", "guessedtype": "property"}, "_containerID": {"guessedname": "_containerID", "type": "String", "description": "The ID of the containing DIV.", "private": "", "guessedtype": "property"}, "_swf": {"private": "", "description": "A reference to the embedded SWF file.", "guessedname": "_swf", "guessedtype": "property"}, "_id": {"guessedname": "_id", "type": "String", "description": "The id of this instance.", "private": "", "guessedtype": "property"}, "proxyFunctionCount": {"guessedname": "proxyFunctionCount", "static": "", "description": "The number of proxy functions that have been created.", "private": "", "guessedtype": "property"}}, "guessedname": "FlashAdapter", "methods": {"_loadHandler": {"private": "", "description": "Called when the SWF has been initialized.", "guessedname": "_loadHandler", "guessedtype": "function"}, "YAHOO.widget.FlashAdapter.createProxyFunction": {"guessedname": "createProxyFunction", "static": "", "description": "Creates a globally accessible function that wraps a function reference.\nReturns the proxy function's name as a string for use by the SWF through\nExternalInterface.", "private": "", "guessedtype": "function"}, "YAHOO.widget.FlashAdapter.removeProxyFunction": {"guessedname": "removeProxyFunction", "static": "", "description": "Removes a function created with createProxyFunction()", "private": "", "guessedtype": "function"}, "_initAttributes": {"private": "", "description": "Initializes the attributes.", "guessedname": "_initAttributes", "guessedtype": "function"}, "_getAltText": {"private": "", "description": "Getter for altText attribute.", "guessedname": "_getAltText", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the FlashAdapter instance."}, "description": "Public accessor to the unique name of the FlashAdapter instance.", "guessedname": "toString", "guessedtype": "function"}, "YAHOO.widget.FlashAdapter.eventHandler": {"guessedname": "eventHandler", "static": "", "description": "Receives event messages from SWF and passes them to the correct instance\nof FlashAdapter.", "private": "", "guessedtype": "function"}, "_eventHandler": {"private": "", "description": "Handles or re-dispatches events received from the SWF.", "guessedname": "_eventHandler", "guessedtype": "function"}, "_embedSWF": {"private": "", "description": "Embeds the SWF in the page and associates it with this instance.", "guessedname": "_embedSWF", "guessedtype": "function"}, "_getSWFURL": {"private": "", "description": "Getter for swfURL attribute.", "guessedname": "_getSWFURL", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire FlashAdapter instance and related objects and removes attached\nevent listeners and clears out DOM elements inside the container. After calling\nthis method, the instance reference should be expliclitly nulled by implementer,\nas in myChart = null. Use with caution!", "guessedname": "destroy", "guessedtype": "function"}, "_setAltText": {"private": "", "description": "Setter for altText attribute.", "guessedname": "_setAltText", "guessedtype": "function"}}, "uses": ["YAHOO.util.AttributeProvider"], "file": "FlashAdapter.js", "guessedtype": "function", "shortname": "FlashAdapter", "events": {"contentReady": {"description": "Fires when the SWF is initialized and communication is possible."}, "backgroundColorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "backgroundColorChange", "description": "Fires when the value for the configuration attribute 'backgroundColor' changes."}, "altTextChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "altTextChange", "description": "Fires when the value for the configuration attribute 'altText' changes."}, "swfURLChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "swfURLChange", "description": "Fires when the value for the configuration attribute 'swfURL' changes."}, "beforeBackgroundColorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBackgroundColorChange", "description": "Fires before the value for the configuration attribute 'backgroundColor' changes. Return false to cancel the attribute change."}, "beforeWmodeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWmodeChange", "description": "Fires before the value for the configuration attribute 'wmode' changes. Return false to cancel the attribute change."}, "beforeExpressInstallChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeExpressInstallChange", "description": "Fires before the value for the configuration attribute 'expressInstall' changes. Return false to cancel the attribute change."}, "beforeAltTextChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAltTextChange", "description": "Fires before the value for the configuration attribute 'altText' changes. Return false to cancel the attribute change."}, "versionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "versionChange", "description": "Fires when the value for the configuration attribute 'version' changes."}, "wmodeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "wmodeChange", "description": "Fires when the value for the configuration attribute 'wmode' changes."}, "beforeVersionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeVersionChange", "description": "Fires before the value for the configuration attribute 'version' changes. Return false to cancel the attribute change."}, "expressInstallChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "expressInstallChange", "description": "Fires when the value for the configuration attribute 'expressInstall' changes."}, "beforeSwfURLChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSwfURLChange", "description": "Fires before the value for the configuration attribute 'swfURL' changes. Return false to cancel the attribute change."}}, "description": "Wraps Flash embedding functionality and allows communication with SWF through\nattributes."}, "YAHOO.util.Date": {"name": "YAHOO.util.Date", "namespace": "YAHOO.util", "module": "datasource", "guessedname": "Dt", "methods": {"format": {"return": {"type": "String", "description": "Formatted date for display."}, "description": "Takes a native JavaScript Date and formats to string for display to user.", "params": [{"type": "Date", "name": "oDate", "description": "  Date."}, {"type": "Object", "name": "oConfig", "description": "  (Optional) Object literal of configuration values:\n<dl>\n<dt>format <String></dt>\n<dd>\n<p>\nAny strftime string is supported, such as \"%I:%M:%S %p\". strftime has several format specifiers defined by the Open group at \n<a href=\"http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html\">http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html</a>\n</p>\n<p>   \nPHP added a few of its own, defined at <a href=\"http://www.php.net/strftime\">http://www.php.net/strftime</a>\n</p>\n<p>\nThis javascript implementation supports all the PHP specifiers and a few more.  The full list is below:\n</p>\n<dl>\n<dt>%a</dt> <dd>abbreviated weekday name according to the current locale</dd>\n<dt>%A</dt> <dd>full weekday name according to the current locale</dd>\n<dt>%b</dt> <dd>abbreviated month name according to the current locale</dd>\n<dt>%B</dt> <dd>full month name according to the current locale</dd>\n<dt>%c</dt> <dd>preferred date and time representation for the current locale</dd>\n<dt>%C</dt> <dd>century number (the year divided by 100 and truncated to an integer, range 00 to 99)</dd>\n<dt>%d</dt> <dd>day of the month as a decimal number (range 01 to 31)</dd>\n<dt>%D</dt> <dd>same as %m/%d/%y</dd>\n<dt>%e</dt> <dd>day of the month as a decimal number, a single digit is preceded by a space (range ' 1' to '31')</dd>\n<dt>%F</dt> <dd>same as %Y-%m-%d (ISO 8601 date format)</dd>\n<dt>%g</dt> <dd>like %G, but without the century</dd>\n<dt>%G</dt> <dd>The 4-digit year corresponding to the ISO week number</dd>\n<dt>%h</dt> <dd>same as %b</dd>\n<dt>%H</dt> <dd>hour as a decimal number using a 24-hour clock (range 00 to 23)</dd>\n<dt>%I</dt> <dd>hour as a decimal number using a 12-hour clock (range 01 to 12)</dd>\n<dt>%j</dt> <dd>day of the year as a decimal number (range 001 to 366)</dd>\n<dt>%k</dt> <dd>hour as a decimal number using a 24-hour clock (range 0 to 23); single digits are preceded by a blank. (See also %H.)</dd>\n<dt>%l</dt> <dd>hour as a decimal number using a 12-hour clock (range 1 to 12); single digits are preceded by a blank. (See also %I.) </dd>\n<dt>%m</dt> <dd>month as a decimal number (range 01 to 12)</dd>\n<dt>%M</dt> <dd>minute as a decimal number</dd>\n<dt>%n</dt> <dd>newline character</dd>\n<dt>%p</dt> <dd>either `AM' or `PM' according to the given time value, or the corresponding strings for the current locale</dd>\n<dt>%P</dt> <dd>like %p, but lower case</dd>\n<dt>%r</dt> <dd>time in a.m. and p.m. notation equal to %I:%M:%S %p</dd>\n<dt>%R</dt> <dd>time in 24 hour notation equal to %H:%M</dd>\n<dt>%s</dt> <dd>number of seconds since the Epoch, ie, since 1970-01-01 00:00:00 UTC</dd>\n<dt>%S</dt> <dd>second as a decimal number</dd>\n<dt>%t</dt> <dd>tab character</dd>\n<dt>%T</dt> <dd>current time, equal to %H:%M:%S</dd>\n<dt>%u</dt> <dd>weekday as a decimal number [1,7], with 1 representing Monday</dd>\n<dt>%U</dt> <dd>week number of the current year as a decimal number, starting with the\nfirst Sunday as the first day of the first week</dd>\n<dt>%V</dt> <dd>The ISO 8601:1988 week number of the current year as a decimal number,\nrange 01 to 53, where week 1 is the first week that has at least 4 days\nin the current year, and with Monday as the first day of the week.</dd>\n<dt>%w</dt> <dd>day of the week as a decimal, Sunday being 0</dd>\n<dt>%W</dt> <dd>week number of the current year as a decimal number, starting with the\nfirst Monday as the first day of the first week</dd>\n<dt>%x</dt> <dd>preferred date representation for the current locale without the time</dd>\n<dt>%X</dt> <dd>preferred time representation for the current locale without the date</dd>\n<dt>%y</dt> <dd>year as a decimal number without a century (range 00 to 99)</dd>\n<dt>%Y</dt> <dd>year as a decimal number including the century</dd>\n<dt>%z</dt> <dd>numerical time zone representation</dd>\n<dt>%Z</dt> <dd>time zone name or abbreviation</dd>\n<dt>%%</dt> <dd>a literal `%' character</dd>\n</dl>\n</dd>\n</dl>"}, {"type": "String", "name": "sLocale", "description": "  (Optional) The locale to use when displaying days of week,\nmonths of the year, and other locale specific strings.  The following locales are\nbuilt in:\n<dl>\n<dt>en</dt>\n<dd>English</dd>\n<dt>en-US</dt>\n<dd>US English</dd>\n<dt>en-GB</dt>\n<dd>British English</dd>\n<dt>en-AU</dt>\n<dd>Australian English (identical to British English)</dd>\n</dl>\nMore locales may be added by subclassing of YAHOO.util.DateLocale.\nSee YAHOO.util.DateLocale for more information."}], "guessedname": "format", "guessedtype": "function", "sa": "YAHOO.util.DateLocale"}}, "static": "", "file": "Type.js", "guessedtype": "property", "shortname": "Date", "requires": "yahoo", "description": "The static Date class provides helper functions to deal with data of type Date."}, "YAHOO.widget.StackedColumnSeries": {"name": "YAHOO.widget.StackedColumnSeries", "constructors": [{"description": "StackedColumnSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "StackedColumnSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "StackedColumnSeries", "description": "StackedColumnSeries class for the YUI Charts widget."}, "YAHOO.util.SWFDetect": {"name": "YAHOO.util.SWFDetect", "namespace": "YAHOO.util", "module": "swfdetect", "static": "", "file": "swfdetect.js", "shortname": "SWFDetect", "description": "Flafh detection utility."}, "LogWriter": {"name": "LogWriter", "constructors": [{"params": [{"type": "String", "name": "sSource", "description": "  Source of LogWriter instance."}], "description": "The LogWriter class provides a mechanism to log messages through\nYAHOO.widget.Logger from a named source."}], "namespace": "", "module": "logger", "guessedname": "LogWriter", "methods": {"getSource": {"return": {"type": "String", "description": "The LogWriter source."}, "description": "Public accessor to get the source name.", "guessedname": "getSource", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the LogWriter instance."}, "description": "Public accessor to the unique name of the LogWriter instance.", "guessedname": "toString", "guessedtype": "function"}, "log": {"params": [{"type": "String", "name": "sMsg", "description": "  The log message."}, {"type": "String", "name": "sCategory", "description": "  Category name."}], "description": "Logs a message attached to the source of the LogWriter.", "guessedname": "log", "guessedtype": "function"}, "setSource": {"params": [{"type": "String", "name": "sSource", "description": "  Source of LogWriter instance."}], "description": "Public accessor to set the source name.", "guessedname": "setSource", "guessedtype": "function"}}, "file": "LogWriter.js", "guessedtype": "function", "shortname": "LogWriter", "properties": {"_source": {"guessedname": "_source", "type": "String", "description": "Source of the LogWriter instance.", "private": "", "guessedtype": "property"}}, "description": "The LogWriter class provides a mechanism to log messages through\nYAHOO.widget.Logger from a named source."}, "YAHOO.widget.ColorPicker": {"name": "YAHOO.widget.ColorPicker", "configs": {"blue": {"type": "int", "description": "The current blue value 0-255"}, "hue": {"type": "int", "description": "The current hue value 0-360"}, "saturation": {"type": "int", "description": "The current saturation value 0-100"}, "pickersize": {"default": "180", "type": "int", "description": "The size of the picker. Trying to change this is not recommended."}, "container": {"type": "YAHOO.widget.Panel", "description": "If the color picker will live inside of a container object,\nset, provide a reference to it so the control can use the\ncontainer's events."}, "showrgbcontrols": {"default": "true", "type": "boolean", "description": "Hide/show the rgb controls"}, "showhsvcontrols": {"default": "false", "type": "boolean", "description": "Hide/show the hsv controls"}, "hex": {"readonly": "", "type": "string", "description": "The current hex value #000000-#FFFFFF, without the #"}, "ids": {"type": "{referenceid: realid}", "description": "A list of element ids and/or element references used by the \ncontrol.  The default is the this.ID list, and can be customized\nby passing a list in the contructor", "writeonce": ""}, "value": {"type": "int", "description": "The current value/brightness value 0-100"}, "showwebsafe": {"default": "true", "type": "boolean", "description": "Hide/show the websafe swatch"}, "showhexsummary": {"default": "true", "type": "boolean", "description": "Hide/show the hex summary"}, "elements": {"readonly": "", "type": "{id: HTMLElement}", "description": "The element refs used by this control.  Set at initialization"}, "green": {"type": "int", "description": "The current green value 0-255"}, "websafe": {"type": "int", "description": "The closest current websafe value"}, "images": {"type": "{key: image}", "description": "The img src default list\nis this.IMAGES", "writeonce": ""}, "txt": {"type": "{key: txt}", "description": "A list of txt strings for internationalization.  Default\nis this.TXT", "writeonce": ""}, "showcontrols": {"default": "true", "type": "boolean", "description": "Hide/show the entire set of controls"}, "red": {"type": "int", "description": "The current red value 0-255"}, "showhexcontrols": {"default": "true", "type": "boolean", "description": "Hide/show the hex controls"}}, "constructors": [{"params": [{"type": "HTMLElement | String | Object", "name": "el(optional)", "description": " The html \nelement that represents the colorpicker, or the attribute object to use. \nAn element will be created if none provided."}, {"type": "Object", "name": "attr", "description": " (optional) A key map of the colorpicker's \ninitial attributes.  Ignored if first arg is attributes object."}], "description": "A widget to select colors"}], "namespace": "YAHOO.widget", "module": "colorpicker", "events": {"websafeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "websafeChange", "description": "Fires when the value for the configuration attribute 'websafe' changes."}, "beforeShowcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowcontrolsChange", "description": "Fires before the value for the configuration attribute 'showcontrols' changes. Return false to cancel the attribute change."}, "beforeShowhsvcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowhsvcontrolsChange", "description": "Fires before the value for the configuration attribute 'showhsvcontrols' changes. Return false to cancel the attribute change."}, "saturationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "saturationChange", "description": "Fires when the value for the configuration attribute 'saturation' changes."}, "showhexsummaryChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showhexsummaryChange", "description": "Fires when the value for the configuration attribute 'showhexsummary' changes."}, "beforeSaturationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSaturationChange", "description": "Fires before the value for the configuration attribute 'saturation' changes. Return false to cancel the attribute change."}, "beforeShowwebsafeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowwebsafeChange", "description": "Fires before the value for the configuration attribute 'showwebsafe' changes. Return false to cancel the attribute change."}, "showhexcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showhexcontrolsChange", "description": "Fires when the value for the configuration attribute 'showhexcontrols' changes."}, "containerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containerChange", "description": "Fires when the value for the configuration attribute 'container' changes."}, "beforeImagesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeImagesChange", "description": "Fires before the value for the configuration attribute 'images' changes. Return false to cancel the attribute change."}, "imagesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "imagesChange", "description": "Fires when the value for the configuration attribute 'images' changes."}, "showrgbcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showrgbcontrolsChange", "description": "Fires when the value for the configuration attribute 'showrgbcontrols' changes."}, "redChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "redChange", "description": "Fires when the value for the configuration attribute 'red' changes."}, "beforeBlueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBlueChange", "description": "Fires before the value for the configuration attribute 'blue' changes. Return false to cancel the attribute change."}, "idsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "idsChange", "description": "Fires when the value for the configuration attribute 'ids' changes."}, "beforeRedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRedChange", "description": "Fires before the value for the configuration attribute 'red' changes. Return false to cancel the attribute change."}, "beforeIdsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeIdsChange", "description": "Fires before the value for the configuration attribute 'ids' changes. Return false to cancel the attribute change."}, "beforeGreenChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGreenChange", "description": "Fires before the value for the configuration attribute 'green' changes. Return false to cancel the attribute change."}, "showcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showcontrolsChange", "description": "Fires when the value for the configuration attribute 'showcontrols' changes."}, "beforeShowhexcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowhexcontrolsChange", "description": "Fires before the value for the configuration attribute 'showhexcontrols' changes. Return false to cancel the attribute change."}, "beforeHueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHueChange", "description": "Fires before the value for the configuration attribute 'hue' changes. Return false to cancel the attribute change."}, "beforeTxtChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTxtChange", "description": "Fires before the value for the configuration attribute 'txt' changes. Return false to cancel the attribute change."}, "beforePickersizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePickersizeChange", "description": "Fires before the value for the configuration attribute 'pickersize' changes. Return false to cancel the attribute change."}, "beforeShowhexsummaryChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowhexsummaryChange", "description": "Fires before the value for the configuration attribute 'showhexsummary' changes. Return false to cancel the attribute change."}, "hexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hexChange", "description": "Fires when the value for the configuration attribute 'hex' changes."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "beforeHexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHexChange", "description": "Fires before the value for the configuration attribute 'hex' changes. Return false to cancel the attribute change."}, "pickersizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pickersizeChange", "description": "Fires when the value for the configuration attribute 'pickersize' changes."}, "txtChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "txtChange", "description": "Fires when the value for the configuration attribute 'txt' changes."}, "hueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hueChange", "description": "Fires when the value for the configuration attribute 'hue' changes."}, "beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "greenChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "greenChange", "description": "Fires when the value for the configuration attribute 'green' changes."}, "beforeElementsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeElementsChange", "description": "Fires before the value for the configuration attribute 'elements' changes. Return false to cancel the attribute change."}, "beforeWebsafeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWebsafeChange", "description": "Fires before the value for the configuration attribute 'websafe' changes. Return false to cancel the attribute change."}, "blueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "blueChange", "description": "Fires when the value for the configuration attribute 'blue' changes."}, "showhsvcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showhsvcontrolsChange", "description": "Fires when the value for the configuration attribute 'showhsvcontrols' changes."}, "beforeContainerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainerChange", "description": "Fires before the value for the configuration attribute 'container' changes. Return false to cancel the attribute change."}, "elementsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "elementsChange", "description": "Fires when the value for the configuration attribute 'elements' changes."}, "showwebsafeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showwebsafeChange", "description": "Fires when the value for the configuration attribute 'showwebsafe' changes."}, "beforeShowrgbcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowrgbcontrolsChange", "description": "Fires before the value for the configuration attribute 'showrgbcontrols' changes. Return false to cancel the attribute change."}}, "methods": {"_hexFieldKeypress": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the keypress event"}, {"type": "HTMLElement", "name": "el", "description": "  the field"}, {"type": "string", "name": "prop", "description": "  the key to the linked property"}], "description": "Handle keydown on the hex field", "guessedname": "_hexFieldKeypress", "guessedtype": "function"}, "_updateRGBFromHSV": {"protected": "", "description": "Updates the RGB values from the current state of the HSV\nvalues.  Executed when the one of the HSV form fields are\nupdated\n_updateRGBFromHSV", "guessedname": "_updateRGBFromHSV", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "", "name": "attr", "description": " An object containing default attribute values"}], "description": "Sets up the config attributes and the change listeners for this\nproperties", "guessedname": "initAttributes", "guessedtype": "function"}, "_initSliders": {"protected": "", "description": "Creates the Hue and Value/Saturation Sliders.", "guessedname": "_initSliders", "guessedtype": "function"}, "_onHueSliderChange": {"protected": "", "params": [{"type": "int", "name": "newOffset", "description": "  pixels from the start position"}], "description": "Event handler for the hue slider.", "guessedname": "_onHueSliderChange", "guessedtype": "function"}, "initPicker": {"description": "Sets the initial state of the sliders", "guessedname": "initPicker", "guessedtype": "function"}, "_updateRGB": {"protected": "", "description": "Updates the rgb attribute with the current state of the r,g,b\nfields.  This is invoked from change listeners on these\nattributes to facilitate updating these values from the\nindividual form fields", "guessedname": "_updateRGB", "guessedtype": "function"}, "_useFieldValue": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  an event"}, {"type": "HTMLElement", "name": "el", "description": "  the field"}, {"type": "string", "name": "prop", "description": "  the key to the linked property"}], "description": "Use the value of the text field to update the control", "guessedname": "_useFieldValue", "guessedtype": "function"}, "getElement": {"return": {"type": "HTMLElement", "description": "a reference to the element"}, "params": [{"type": "string", "name": "id", "description": "  the element id, or key"}], "description": "Returns the element reference that is saved.  The id can be either\nthe element id, or the key for this id in the \"id\" config attribute.\nFor instance, the host element id can be obtained by passing its\nid (default: \"yui_picker\") or by its key \"YUI_PICKER\".", "guessedname": "getElement", "guessedtype": "function"}, "_bindUI": {"protected": "", "description": "Adds event listeners to Sliders and UI elements.  Wires everything\nup.", "guessedname": "_bindUI", "guessedtype": "function"}, "_updateSwatch": {"protected": "", "description": "Updates the background of the swatch with the current rbg value.\nAlso updates the websafe swatch to the closest websafe color", "guessedname": "_updateSwatch", "guessedtype": "function"}, "_initElements": {"protected": "", "description": "Creates any missing DOM structure.", "guessedname": "_initElements", "guessedtype": "function"}, "_updateSliders": {"protected": "", "description": "Moves the sliders into the position dictated by the current state\nof the control", "guessedname": "_updateSliders", "guessedtype": "function"}, "_updateHex": {"protected": "", "description": "Parses the hex string to normalize shorthand values, converts\nthe hex value to rgb and updates the rgb attribute (which\nupdates the state for all of the other values)\nmethod _updateHex", "guessedname": "_updateHex", "guessedtype": "function"}, "_onPickerSliderChange": {"protected": "", "params": [{"type": "{x: int, y: int}", "name": "newOffset", "description": "  x/y pixels from the start position"}], "description": "Event handler for the picker slider, which controls the\nsaturation and value/brightness.", "guessedname": "_onPickerSliderChange", "guessedtype": "function"}, "_getCommand": {"return": {"type": "int", "description": "a command code\n<ul>\n<li>0 = not a number, letter in range, or special key</li>\n<li>1 = number</li>\n<li>2 = a-fA-F</li>\n<li>3 = increment (up arrow)</li>\n<li>4 = decrement (down arrow)</li>\n<li>5 = special key (tab, delete, return, escape, left, right)</li> \n<li>6 = return</li>\n</ul>"}, "description": "Key map to well-known commands for txt field input", "protected": "", "params": [{"type": "Event", "name": "e", "description": "  the keypress or keydown event"}], "guessedname": "_getCommand", "guessedtype": "function"}, "setValue": {"params": [{"type": "[int, int, int]", "name": "rgb", "description": "  the rgb value"}, {"type": "boolean", "name": "silent", "description": "  whether or not to fire the change event"}], "description": "Sets the control to the specified rgb value and\nmoves the sliders to the proper positions", "guessedname": "setValue", "guessedtype": "function"}, "_createHostElement": {"protected": "", "description": "Creates the host element if it doesn't exist", "guessedname": "_createHostElement", "guessedtype": "function"}, "_updateFormFields": {"protected": "", "description": "Updates the form field controls with the state data contained\nin the control.", "guessedname": "_updateFormFields", "guessedtype": "function"}, "_hexOnly": {"return": {"type": "boolean", "description": "false if we are canceling the event"}, "description": "Allows numbers and special chars, and by default allows a-f.  \nUsed for the hex field keypress handler.", "protected": "", "params": [{"type": "Event", "name": "e", "description": "  the event"}, {"type": "", "name": "numbersOnly", "description": " omits a-f if set to true"}], "guessedname": "_hexOnly", "guessedtype": "function"}, "_updatePickerSlider": {"protected": "", "description": "Moves the picker slider into the position dictated by the current state\nof the control", "guessedname": "_updatePickerSlider", "guessedtype": "function"}, "_hideShowEl": {"protected": "", "params": [{"type": "string|HTMLElement", "name": "id", "description": "  the element key, id, or ref"}, {"type": "boolean", "name": "on", "description": "  hide or show.  If true, show"}], "description": "Returns the cached element reference.  If the id is not a string, it\nis assumed that it is an element and this is returned.", "guessedname": "_hideShowEl", "guessedtype": "function"}, "_updateHueSlider": {"protected": "", "description": "Moves the hue slider into the position dictated by the current state\nof the control", "guessedname": "_updateHueSlider", "guessedtype": "function"}, "_numbersOnly": {"return": {"type": "boolean", "description": "false if we are canceling the event"}, "description": "Allows numbers and special chars only.  Used for the\nrgb and hsv fields keypress handler.", "protected": "", "params": [{"type": "Event", "name": "e", "description": "  the event"}], "guessedname": "_numbersOnly", "guessedtype": "function"}, "syncUI": {"params": [{"type": "Boolean", "name": "skipAnim", "description": "  Omit Slider animation for this action"}], "description": "Wrapper for _updateRGB, but allows setting", "guessedname": "syncUI", "guessedtype": "function"}, "_getS": {"protected": "", "return": {"type": "int", "description": "the saturation from 0 to 1"}, "description": "Translates the slider value into saturation, int[0,1], left to right", "guessedname": "_getS", "guessedtype": "function"}, "_getValuesFromSliders": {"protected": "", "description": "Reads the sliders and converts the values to RGB, updating the\ninternal state for all the individual form fields", "guessedname": "_getValuesFromSliders", "guessedtype": "function"}, "_getV": {"protected": "", "return": {"type": "int", "description": "the value from 0 to 1"}, "description": "Translates the slider value into value/brightness, int[0,1], top\nto bottom", "guessedname": "_getV", "guessedtype": "function"}, "_getH": {"protected": "", "return": {"type": "int", "description": "the hue from 0 to 359"}, "description": "Translates the slider value into hue, int[0,359]", "guessedname": "_getH", "guessedtype": "function"}, "_rgbFieldKeypress": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the keypress event"}, {"type": "HTMLElement", "name": "el", "description": "  the field"}, {"type": "string", "name": "prop", "description": "  the key to the linked property"}], "description": "Handle keypress on one of the rgb or hsv fields.", "guessedname": "_rgbFieldKeypress", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "ColorPicker.js", "shortname": "ColorPicker", "properties": {"DEFAULT": {"final": "", "description": "Constants for the control's default default values", "guessedname": "DEFAULT", "guessedtype": "property"}, "pickerSlider": {"type": "YAHOO.widget.Slider", "description": "The picker region", "guessedname": "pickerSlider", "guessedtype": "property"}, "ID.PICKER_BG": {"description": "The id for the picker region slider", "default": "yui-picker-bg", "guessedname": "PICKER_BG", "guessedtype": "property", "type": "String", "final": ""}, "skipAnim": {"default": "true", "type": "Boolean", "description": "Flag to allow individual UI updates to forego animation if available.\nTrue during construction for initial thumb placement.  Set to false\nafter that.", "guessedname": "skipAnim", "guessedtype": "property"}, "ID.G": {"description": "The id for the \"green\" form field", "default": "yui-picker-g", "guessedname": "G", "guessedtype": "property", "type": "String", "final": ""}, "ID.G_HEX": {"description": "The id for the \"green\" hex pair output", "default": "yui-picker-ghex", "guessedname": "G_HEX", "guessedtype": "property", "type": "String", "final": ""}, "ID.HSV_CONTROLS": {"default": "yui-picker-hsv-controls", "final": "", "description": "The id for the hsv controls", "guessedname": "HSV_CONTROLS", "guessedtype": "property"}, "ID.SWATCH": {"description": "The id for the color swatch", "default": "yui-picker-swatch", "guessedname": "SWATCH", "guessedtype": "property", "type": "String", "final": ""}, "ID.HEX_CONTROLS": {"default": "yui-picker-hex-controls", "final": "", "description": "The id for the hsv controls", "guessedname": "HEX_CONTROLS", "guessedtype": "property"}, "IMAGE": {"final": "", "description": "Constants for the default image locations for img tags that are\ngenerated by the control.  They can be modified by passing the\ncomplete list to the contructor for the \"images\" attribute", "guessedname": "IMAGE", "guessedtype": "property"}, "ID.B_HEX": {"description": "The id for the \"blue\" hex pair output", "default": "yui-picker-bhex", "guessedname": "B_HEX", "guessedtype": "property", "type": "String", "final": ""}, "TXT": {"final": "", "description": "Constants for any script-generated messages.  The values here\nare the default messages.  They can be updated by providing\nthe complete list to the constructor for the \"txt\" attribute.", "guessedname": "TXT", "guessedtype": "property"}, "ID.HEX": {"description": "The id for the hex value form field", "default": "yui-picker-hex", "guessedname": "HEX", "guessedtype": "property", "type": "String", "final": ""}, "ID.HUE_BG": {"description": "The id for the hue slider", "default": "yui-picker-hue-bg", "guessedname": "HUE_BG", "guessedtype": "property", "type": "String", "final": ""}, "ID.CONTROLS": {"default": "yui-picker-controls", "final": "", "description": "The id for the control details", "guessedname": "CONTROLS", "guessedtype": "property"}, "ID.V": {"description": "The id for the \"value\" form field", "default": "yui-picker-v", "guessedname": "V", "guessedtype": "property", "type": "String", "final": ""}, "ID.S": {"description": "The id for the \"saturation\" form field", "default": "yui-picker-s", "guessedname": "S", "guessedtype": "property", "type": "String", "final": ""}, "ID.R": {"description": "The id for the \"red\" form field", "default": "yui-picker-r", "guessedname": "R", "guessedtype": "property", "type": "String", "final": ""}, "ID.H": {"description": "The id for the \"hue\" form field", "default": "yui-picker-h", "guessedname": "H", "guessedtype": "property", "type": "String", "final": ""}, "ID.WEBSAFE_SWATCH": {"description": "The id for the websafe color swatch", "default": "yui-picker-websafe-swatch", "guessedname": "WEBSAFE_SWATCH", "guessedtype": "property", "type": "String", "final": ""}, "ID": {"final": "", "description": "The element ids used by this control", "guessedname": "ID", "guessedtype": "property"}, "ID.B": {"description": "The id for the \"blue\" form field", "default": "yui-picker-b", "guessedname": "B", "guessedtype": "property", "type": "String", "final": ""}, "OPT": {"final": "", "description": "Constants for the control's configuration attributes", "guessedname": "OPT", "guessedtype": "property"}, "ID.HUE_THUMB": {"description": "The id for the hue thumb", "default": "yui-picker-hue-thumb", "guessedname": "HUE_THUMB", "guessedtype": "property", "type": "String", "final": ""}, "ID.R_HEX": {"description": "The id for the \"red\" hex pair output", "default": "yui-picker-rhex", "guessedname": "R_HEX", "guessedtype": "property", "type": "String", "final": ""}, "ID.RGB_CONTROLS": {"default": "yui-picker-rgb-controls", "final": "", "description": "The id for the rgb controls", "guessedname": "RGB_CONTROLS", "guessedtype": "property"}, "ID.PICKER_THUMB": {"description": "The id for the picker region thumb", "default": "yui-picker-thumb", "guessedname": "PICKER_THUMB", "guessedtype": "property", "type": "String", "final": ""}, "hueSlider": {"type": "YAHOO.widget.Slider", "description": "The hue slider", "guessedname": "hueSlider", "guessedtype": "property"}, "ID.HEX_SUMMARY": {"default": "yui-picker-hex-summary", "final": "", "description": "The id for the hex summary", "guessedname": "HEX_SUMMARY", "guessedtype": "property"}, "ID.CONTROLS_LABEL": {"default": "yui-picker-controls-label", "final": "", "description": "The id for the controls section header", "guessedname": "CONTROLS_LABEL", "guessedtype": "property"}}, "description": "A widget to select colors"}, "YAHOO.widget.ToolbarButton": {"name": "YAHOO.widget.ToolbarButton", "configs": {"container": {"type": "String", "description": "The container that the button is rendered to, handled by Toolbar"}, "title": {"type": "String", "description": "The title of the button"}, "menu": {"type": "Object", "description": "The menu attribute, see YAHOO.widget.Button"}, "value": {"type": "String", "description": "The value of the button"}, "label": {"type": "String", "description": "The text label for the button"}, "disabled": {"type": "String", "description": "Set the button into a disabled state"}, "type": {"type": "String", "description": "The type of button to create: push, menu, color, select, spin"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to turn into a button."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Creates a basic custom Toolbar Button. Primarily used with the Rich Text Editor's Toolbar</p><p>Provides a toolbar button based on the button and menu widgets, <select> elements are used in place of menu's.</p>"}], "namespace": "YAHOO.widget", "module": "editor", "events": {"beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "beforeMenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenuChange", "description": "Fires before the value for the configuration attribute 'menu' changes. Return false to cancel the attribute change."}, "titleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "titleChange", "description": "Fires when the value for the configuration attribute 'title' changes."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "labelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "labelChange", "description": "Fires when the value for the configuration attribute 'label' changes."}, "beforeTitleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTitleChange", "description": "Fires before the value for the configuration attribute 'title' changes. Return false to cancel the attribute change."}, "typeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "typeChange", "description": "Fires when the value for the configuration attribute 'type' changes."}, "menuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menuChange", "description": "Fires when the value for the configuration attribute 'menu' changes."}, "beforeLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLabelChange", "description": "Fires before the value for the configuration attribute 'label' changes. Return false to cancel the attribute change."}, "beforeTypeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTypeChange", "description": "Fires before the value for the configuration attribute 'type' changes. Return false to cancel the attribute change."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}}, "guessedname": "ToolbarButton", "methods": {"_handleSelect": {"guessedname": "_handleSelect", "params": [{"type": "Event", "name": "ev", "description": " The change event."}], "description": "The event fired when a change event gets fired on a select element", "private": "", "guessedtype": "function"}, "getMenu": {"description": "A stub function to mimic YAHOO.widget.Button's getMenu method", "guessedname": "getMenu", "guessedtype": "function"}, "_handleMouseOut": {"description": "Removes classes from the button elements on mouseout (hover)", "private": "", "guessedname": "_handleMouseOut", "guessedtype": "function"}, "init": {"description": "The ToolbarButton class's initialization method", "guessedname": "init", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the toolbar."}], "description": "Initializes all of the configuration attributes used to create \nthe toolbar.", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the toolbar.", "guessedname": "toString", "guessedtype": "function"}, "checkValue": {"params": [{"type": "String", "name": "value", "description": " The value of the option that we want to mark as selected"}], "description": "Select an option by value", "guessedname": "checkValue", "guessedtype": "function"}, "destroy": {"description": "Destroy the button", "guessedname": "destroy", "guessedtype": "function"}, "_handleMouseOver": {"description": "Adds classes to the button elements on mouseover (hover)", "private": "", "guessedname": "_handleMouseOver", "guessedtype": "function"}, "fireEvent": {"description": "Overridden fireEvent method to prevent DOM events from firing if the button is disabled.", "guessedname": "fireEvent", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "toolbar-button.js", "guessedtype": "function", "shortname": "ToolbarButton", "requires": "yahoo, dom, element, event", "properties": {"buttonType": {"private": "", "description": "Tells if the Button is a Rich Button or a Simple Button", "guessedname": "buttonType", "guessedtype": "property"}}, "description": "<p>Creates a basic custom Toolbar Button. Primarily used with the Rich Text Editor's Toolbar</p><p>Provides a toolbar button based on the button and menu widgets, <select> elements are used in place of menu's.</p>"}, "YAHOO.util.Attribute": {"name": "YAHOO.util.Attribute", "constructors": [{"params": [{"type": "Object", "name": "hash", "description": "  The intial Attribute."}, {"type": "YAHOO.util.AttributeProvider", "name": "The", "description": " owner of the Attribute instance."}], "description": "Provides Attribute configurations."}], "namespace": "YAHOO.util", "module": "element", "guessedname": "Attribute", "methods": {"setValue": {"return": {"type": "Boolean", "description": "Whether or not the value was set."}, "params": [{"type": "Any", "name": "value", "description": " The value to apply to the attribute."}, {"type": "Boolean", "name": "silent", "description": " If true the change events will not be fired."}], "description": "Sets the value of the attribute and fires beforeChange and change events.", "guessedname": "setValue", "guessedtype": "function"}, "configure": {"params": [{"type": "Object", "name": "map", "description": " A key-value map of Attribute properties."}, {"type": "Boolean", "name": "init", "description": " Whether or not this should become the initial config."}], "description": "Allows for configuring the Attribute's properties.", "guessedname": "configure", "guessedtype": "function"}, "resetValue": {"return": {"type": "Boolean", "description": "Whether or not the value was set."}, "description": "Resets the value to the initial config value.", "guessedname": "resetValue", "guessedtype": "function"}, "refresh": {"return": {"type": "Boolean", "description": "Whether or not the value was set."}, "description": "Resets the value to the current value.\nUseful when values may have gotten out of sync with actual properties.", "guessedname": "refresh", "guessedtype": "function"}, "getValue": {"return": {"type": "any", "description": "The current value of the attribute."}, "description": "Retrieves the current value of the attribute.", "guessedname": "getValue", "guessedtype": "function"}, "resetConfig": {"description": "Resets the attribute config to the initial config state.", "guessedname": "resetConfig", "guessedtype": "function"}}, "file": "Attribute.js", "guessedtype": "function", "shortname": "Attribute", "properties": {"_written": {"guessedname": "_written", "type": "Boolean", "description": "Whether or not the attribute's value has been set.", "private": "", "guessedtype": "property"}, "name": {"type": "String", "description": "The name of the attribute.", "guessedname": "name", "guessedtype": "property"}, "writeOnce": {"type": "Boolean", "description": "Whether or not the attribute can only be written once.", "guessedname": "writeOnce", "guessedtype": "property"}, "_initialConfig": {"guessedname": "_initialConfig", "type": "Object", "description": "The attribute's initial configuration.", "private": "", "guessedtype": "property"}, "value": {"type": "String", "description": "The value of the attribute.", "guessedname": "value", "guessedtype": "property"}, "validator": {"type": "Function", "return": "Boolean", "description": "The validator to use when setting the attribute's value.", "guessedname": "validator", "guessedtype": "property"}, "readOnly": {"type": "Boolean", "description": "Whether or not the attribute is read only.", "guessedname": "readOnly", "guessedtype": "property"}, "getter": {"type": "Function", "description": "The function to use when getting the attribute's value.\nThe getter receives the new value as the first arg and the attribute name as the 2nd\nThe return value of the getter will be used as the return from get().", "guessedname": "getter", "guessedtype": "property"}, "owner": {"type": "YAHOO.util.AttributeProvider", "description": "The owner of the attribute.", "guessedname": "owner", "guessedtype": "property"}, "method": {"type": "Function", "description": "A function to call when setting the attribute's value.\nThe method receives the new value as the first arg and the attribute name as the 2nd", "guessedname": "method", "guessedtype": "property"}, "setter": {"type": "Function", "description": "The function to use when setting the attribute's value.\nThe setter receives the new value as the first arg and the attribute name as the 2nd\nThe return value of the setter replaces the value passed to set().", "guessedname": "setter", "guessedtype": "property"}}, "description": "Provides Attribute configurations."}, "YAHOO.util.DateAssert": {"name": "YAHOO.util.DateAssert", "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "DateAssert", "methods": {"datesAreEqual": {"static": "", "params": [{"type": "Date", "name": "expected", "description": " The expected date."}, {"type": "Date", "name": "actual", "description": " The actual date to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a date's month, day, and year are equal to another date's.", "guessedname": "datesAreEqual", "guessedtype": "function"}, "timesAreEqual": {"static": "", "params": [{"type": "Date", "name": "expected", "description": " The expected date."}, {"type": "Date", "name": "actual", "description": " The actual date to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a date's hour, minutes, and seconds are equal to another date's.", "guessedname": "timesAreEqual", "guessedtype": "function"}}, "static": "", "file": "DateAssert.js", "guessedtype": "property", "shortname": "DateAssert", "description": "The DateAssert object provides functions to test JavaScript Date objects\nfor a variety of cases."}, "YAHOO.widget.Editor": {"name": "YAHOO.widget.Editor", "configs": {"hiddencss": {"default": "<code><pre>\n.yui-hidden font, .yui-hidden strong, .yui-hidden b, .yui-hidden em, .yui-hidden i, .yui-hidden u,\n.yui-hidden div, .yui-hidden p, .yui-hidden span, .yui-hidden img, .yui-hidden ul, .yui-hidden ol,\n.yui-hidden li, .yui-hidden table {\nborder: 1px dotted #ccc;\n}\n.yui-hidden .yui-non {\nborder: none;\n}\n.yui-hidden img {\npadding: 2px;\n}</pre></code>", "type": "String", "description": "The CSS used to show/hide hidden elements on the page, these rules must be prefixed with the class provided in <code>this.CLASS_HIDDEN</code>"}, "localFileWarning": {"default": "true", "type": "Boolean", "description": "Should we throw the warning if we detect a file that is local to their machine?"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The textarea element to turn into an editor."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "The Rich Text Editor is a UI control that replaces a standard HTML textarea; it allows for the rich formatting of text content, including common structural treatments like lists, formatting treatments like bold and italic text, and drag-and-drop inclusion and sizing of images. The Rich Text Editor's toolbar is extensible via a plugin architecture so that advanced implementations can achieve a high degree of customization."}], "namespace": "YAHOO.widget", "module": "editor", "events": {"hiddencssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hiddencssChange", "description": "Fires when the value for the configuration attribute 'hiddencss' changes."}, "beforeLocalFileWarningChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLocalFileWarningChange", "description": "Fires before the value for the configuration attribute 'localFileWarning' changes. Return false to cancel the attribute change."}, "afterOpenWindow": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Event fires after an Editor Window is opened. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "windowCreateLinkRender": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}, {"type": "HTMLElement", "name": "body", "description": " The HTML element used as the body of the window.."}], "description": "Event fired when the pre render of the Create Link window has finished."}, "windowInsertImageRender": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}, {"type": "HTMLElement", "name": "body", "description": " The HTML element used as the body of the window.."}, {"type": "Toolbar", "name": "toolbar", "description": " A reference to the toolbar object used inside this window."}], "description": "Event fired when the pre render of the Insert Image window has finished."}, "beforeHiddencssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHiddencssChange", "description": "Fires before the value for the configuration attribute 'hiddencss' changes. Return false to cancel the attribute change."}, "closeWindow": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}], "description": "Event fires after an Editor Window is closed. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "windowRender": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Event fired when the initial Overlay is rendered. Can be used to manipulate the content of the panel."}, "windowCMDOpen": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Dynamic event fired when an <a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a> is opened.. The dynamic event is based on the name of the window. Example Window: createlink, opening this window would fire the windowcreatelinkOpen event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeOpenWindow": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Event fires before an Editor Window is opened. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "windowCMDClose": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Dynamic event fired when an <a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a> is closed.. The dynamic event is based on the name of the window. Example Window: createlink, opening this window would fire the windowcreatelinkClose event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "localFileWarningChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "localFileWarningChange", "description": "Fires when the value for the configuration attribute 'localFileWarning' changes."}}, "guessedname": "Editor", "methods": {"_handleWindowInputs": {"params": [{"type": "Boolean", "name": "disable", "description": " The state to set all inputs in all Editor windows to. Defaults to: false."}], "description": "Disables/Enables all fields inside Editor windows. Used in show/hide events to keep window fields from submitting when the parent form is submitted.", "guessedname": "_handleWindowInputs", "guessedtype": "function"}, "_fixNodes": {"description": "Fix href and imgs as well as remove invalid HTML.", "private": "", "guessedname": "_fixNodes", "guessedtype": "function"}, "cmd_justifyright": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('justifyright') is used.", "guessedname": "cmd_justifyright", "guessedtype": "function"}, "_defaultImageToolbar": {"description": "A reference to the Toolbar Object inside Image Editor Window.", "private": "", "guessedname": "_defaultImageToolbar", "guessedtype": "property"}, "moveWindow": {"params": [{"type": "Boolean", "name": "force", "description": " Boolean to tell it to move but not use any animation (Usually done the first time the window is loaded.)"}], "description": "Realign the window with the currentElement and reposition the knob above the panel.", "guessedname": "moveWindow", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the editor."}], "description": "Initializes all of the configuration attributes used to create \nthe editor.", "guessedname": "initAttributes", "guessedtype": "function"}, "openWindow": {"params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">YAHOO.widget.EditorWindow</a>", "name": "win", "description": " A <a href=\"YAHOO.widget.EditorWindow.html\">YAHOO.widget.EditorWindow</a> instance"}], "description": "Opens a new \"window/panel\"", "guessedname": "openWindow", "guessedtype": "function"}, "cmd_superscript": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('superscript') is used.", "guessedname": "cmd_superscript", "guessedtype": "function"}, "_renderCreateLinkWindow": {"description": "Pre renders the CreateLink window so we get faster window opening.", "private": "", "guessedname": "_renderCreateLinkWindow", "guessedtype": "function"}, "_hasUndoLevel": {"guessedname": "_hasUndoLevel", "return": {"type": "", "description": "Boolean"}, "description": "Checks to see if we have an undo level available", "private": "", "guessedtype": "function"}, "_defaultImageToolbarConfig": {"description": "Config to be used for the default Image Editor Window.", "private": "", "guessedname": "_defaultImageToolbarConfig", "guessedtype": "property"}, "cmd_justifycenter": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('justifycenter') is used.", "guessedname": "cmd_justifycenter", "guessedtype": "function"}, "cmd_heading": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('heading') is used.", "guessedname": "cmd_heading", "guessedtype": "function"}, "_renderPanel": {"guessedname": "_renderPanel", "return": {"type": "<a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>", "description": ""}, "description": "Renders the panel used for Editor Windows to the document so we can start using it..", "private": "", "guessedtype": "function"}, "cmd_justifyleft": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('justifyleft') is used.", "guessedname": "cmd_justifyleft", "guessedtype": "function"}, "init": {"description": "The Editor class' initialization method", "guessedname": "init", "guessedtype": "function"}, "closeWindow": {"description": "Close the currently open EditorWindow.", "guessedname": "closeWindow", "guessedtype": "function"}, "cmd_script": {"params": [{"type": "", "name": "action", "description": " action passed from the execCommand method"}, {"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is a combined execCommand override method. It is called from the cmd_superscript and cmd_subscript methods.", "guessedname": "cmd_script", "guessedtype": "function"}, "cmd_justify": {"params": [{"type": "", "name": "dir", "description": " The direction to justify"}], "description": "This is a factory method for the justify family of commands.", "guessedname": "cmd_justify", "guessedtype": "function"}, "_renderInsertImageWindow": {"description": "Pre renders the InsertImage window so we get faster window opening.", "private": "", "guessedname": "_renderInsertImageWindow", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the editor.", "guessedname": "toString", "guessedtype": "function"}, "cmd_hiddenelements": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('hiddenelements') is used.", "guessedname": "cmd_hiddenelements", "guessedtype": "function"}, "_handleCreateLinkWindowClose": {"description": "Handles the closing of the Link Properties Window.", "private": "", "guessedname": "_handleCreateLinkWindowClose", "guessedtype": "function"}, "_handleInsertImageWindowClose": {"description": "Handles the closing of the Image Properties Window.", "private": "", "guessedname": "_handleInsertImageWindowClose", "guessedtype": "function"}, "_storeUndo": {"description": "Method to call when you want to store an undo state. Currently called from nodeChange and _handleKeyUp", "private": "", "guessedname": "_storeUndo", "guessedtype": "function"}, "_checkUndo": {"description": "Prunes the undo cache when it reaches the maxUndo config", "private": "", "guessedname": "_checkUndo", "guessedtype": "function"}, "cmd_subscript": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('subscript') is used.", "guessedname": "cmd_subscript", "guessedtype": "function"}, "_getUndo": {"return": {"type": "String", "description": ""}, "description": "Get's a level from the undo cache.", "private": "", "params": [{"type": "Number", "name": "index", "description": " The index of the undo level we want to get."}], "guessedname": "_getUndo", "guessedtype": "function"}, "_handleInsertImageClick": {"description": "Opens the Image Properties Window when the insert Image button is clicked or an Image is Double Clicked.", "private": "", "guessedname": "_handleInsertImageClick", "guessedtype": "function"}, "_windows": {"description": "A reference to the HTML elements used for the body of Editor Windows.", "private": "", "guessedname": "_windows", "guessedtype": "property"}, "cmd_redo": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "Pulls an item from the Undo stack and updates the Editor", "guessedname": "cmd_redo", "guessedtype": "function"}, "_putUndo": {"guessedname": "_putUndo", "params": [{"type": "String", "name": "str", "description": " The content of the Editor"}], "description": "Puts the content of the Editor into the _undoCache.\n//TODO Convert the hash to a series of TEXTAREAS to store state in.", "private": "", "guessedtype": "function"}, "cmd_indent": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('indent') is used.", "guessedname": "cmd_indent", "guessedtype": "function"}, "cmd_undo": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "Pulls an item from the Undo stack and updates the Editor", "guessedname": "cmd_undo", "guessedtype": "function"}, "_undoNodeChange": {"description": "nodeChange listener for undo processing", "private": "", "guessedname": "_undoNodeChange", "guessedtype": "function"}, "_handleKeyDown": {"guessedname": "_handleKeyDown", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Override method that handles some new keydown events inside the iFrame document.", "private": "", "guessedtype": "function"}, "cmd_outdent": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('outdent') is used.", "guessedname": "cmd_outdent", "guessedtype": "function"}, "_closeWindow": {"guessedname": "_closeWindow", "params": [{"type": "Event", "name": "ev", "description": " The keypress Event that we are trapping"}], "description": "Close the currently open EditorWindow with the Escape key.", "private": "", "guessedtype": "function"}, "cmd_removeformat": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('removeformat') is used.", "guessedname": "cmd_removeformat", "guessedtype": "function"}}, "extends": "YAHOO.widget.SimpleEditor", "superclass": "YAHOO.widget.SimpleEditor", "file": "editor.js", "guessedtype": "function", "shortname": "Editor", "properties": {"_alwaysDisabled": {"guessedname": "_alwaysDisabled", "type": "Object", "description": "The Toolbar items that should ALWAYS be disabled event if there is a selection present in the editor.", "private": "", "guessedtype": "property"}, "STR_LOCAL_FILE_WARNING": {"type": "String", "description": "The label string for the local file warning.", "guessedname": "STR_LOCAL_FILE_WARNING", "guessedtype": "property"}, "STR_CLOSE_WINDOW_NOTE": {"type": "String", "description": "A note appearing in the Editor Window to tell the user that the Escape key will close the window", "guessedname": "STR_CLOSE_WINDOW_NOTE", "guessedtype": "property"}, "STR_NONE": {"type": "String", "description": "The string for the word none.", "guessedname": "STR_NONE", "guessedtype": "property"}, "CLASS_HIDDEN": {"protected": "", "type": "String", "description": "CSS class applied to the body when the hiddenelements button is pressed.", "guessedname": "CLASS_HIDDEN", "guessedtype": "property"}, "STR_IMAGE_SIZE": {"type": "String", "description": "The label string for Image Size", "guessedname": "STR_IMAGE_SIZE", "guessedtype": "property"}, "STR_IMAGE_COPY": {"type": "String", "description": "The label string for the image copy and paste message for Opera and Safari", "guessedname": "STR_IMAGE_COPY", "guessedtype": "property"}, "STR_LINK_NEW_WINDOW": {"type": "String", "description": "The string for the open in a new window label.", "guessedname": "STR_LINK_NEW_WINDOW", "guessedtype": "property"}, "STR_CLOSE_WINDOW": {"type": "String", "description": "The Title of the close button in the Editor Window", "guessedname": "STR_CLOSE_WINDOW", "guessedtype": "property"}, "_undoCache": {"guessedname": "_undoCache", "type": "Array", "description": "An Array hash of the Undo Levels.", "private": "", "guessedtype": "property"}, "STR_BEFORE_EDITOR": {"type": "String", "description": "The accessibility string for the element before the iFrame", "guessedname": "STR_BEFORE_EDITOR", "guessedtype": "property"}, "_undoLevel": {"guessedname": "_undoLevel", "type": "Number", "description": "The index of the current undo state.", "private": "", "guessedtype": "property"}, "STR_IMAGE_BORDER": {"type": "String", "description": "The label string for the image border.", "guessedname": "STR_IMAGE_BORDER", "guessedtype": "property"}, "STR_IMAGE_TITLE": {"type": "String", "description": "The label string for Image Description", "guessedname": "STR_IMAGE_TITLE", "guessedtype": "property"}, "_alwaysEnabled": {"guessedname": "_alwaysEnabled", "type": "Object", "description": "The Toolbar items that should ALWAYS be enabled event if there isn't a selection present in the editor.", "private": "", "guessedtype": "property"}, "STR_LINK_TITLE": {"type": "String", "description": "The string for the link description.", "guessedname": "STR_LINK_TITLE", "guessedtype": "property"}, "_disabled": {"guessedname": "_disabled", "type": "Array", "description": "The Toolbar items that should be disabled if there is no selection present in the editor.", "private": "", "guessedtype": "property"}, "STR_IMAGE_TEXTFLOW": {"type": "String", "description": "The label string for the image text flow.", "guessedname": "STR_IMAGE_TEXTFLOW", "guessedtype": "property"}, "STR_LINK_PROP_TITLE": {"type": "String", "description": "The label string for the Link Property Editor Window.", "guessedname": "STR_LINK_PROP_TITLE", "guessedtype": "property"}, "STR_IMAGE_BORDER_TYPE": {"type": "String", "description": "The label string for the image border type.", "guessedname": "STR_IMAGE_BORDER_TYPE", "guessedtype": "property"}, "EDITOR_PANEL_ID": {"type": "String", "description": "HTML id to give the properties window in the DOM.", "guessedname": "EDITOR_PANEL_ID", "guessedtype": "property"}, "STR_IMAGE_ORIG_SIZE": {"type": "String", "description": "The label string for Original Image Size", "guessedname": "STR_IMAGE_ORIG_SIZE", "guessedtype": "property"}, "STR_IMAGE_PADDING": {"type": "String", "description": "The label string for the image padding.", "guessedname": "STR_IMAGE_PADDING", "guessedtype": "property"}, "STR_IMAGE_PROP_TITLE": {"type": "String", "description": "The title for the Image Property Editor Window", "guessedname": "STR_IMAGE_PROP_TITLE", "guessedtype": "property"}, "CLASS_LOCAL_FILE": {"protected": "", "type": "String", "description": "CSS class applied to an element when it's found to have a local url.", "guessedname": "CLASS_LOCAL_FILE", "guessedtype": "property"}, "STR_LINK_PROP_REMOVE": {"type": "String", "description": "The label string for the Remove link from text link inside the property editor.", "guessedname": "STR_LINK_PROP_REMOVE", "guessedtype": "property"}, "STR_IMAGE_BORDER_SIZE": {"type": "String", "description": "The label string for the image border size.", "guessedname": "STR_IMAGE_BORDER_SIZE", "guessedtype": "property"}}, "description": "The Rich Text Editor is a UI control that replaces a standard HTML textarea; it allows for the rich formatting of text content, including common structural treatments like lists, formatting treatments like bold and italic text, and drag-and-drop inclusion and sizing of images. The Rich Text Editor's toolbar is extensible via a plugin architecture so that advanced implementations can achieve a high degree of customization."}, "YAHOO.widget.Paginator.ui.RowsPerPageDropdown": {"properties": {"all": {"protected": "", "type": "HTMLElement", "description": "option node for the optional All value", "guessedname": "all", "guessedtype": "property"}, "select": {"guessedname": "select", "type": "HTMLElement", "description": "select node", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.RowsPerPageDropdown", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the rows-per-page dropdown"}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"rowsPerPageDropdownClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "rowsPerPageDropdownClassChange", "description": "Fires when the value for the configuration attribute 'rowsPerPageDropdownClass' changes."}, "rowsPerPageOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "rowsPerPageOptionsChange", "description": "Fires when the value for the configuration attribute 'rowsPerPageOptions' changes."}, "beforeRowsPerPageOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRowsPerPageOptionsChange", "description": "Fires before the value for the configuration attribute 'rowsPerPageOptions' changes. Return false to cancel the attribute change."}, "beforeRowsPerPageDropdownClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRowsPerPageDropdownClassChange", "description": "Fires before the value for the configuration attribute 'rowsPerPageDropdownClass' changes. Return false to cancel the attribute change."}}, "guessedname": "RowsPerPageDropdown", "methods": {"render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the select and option nodes and returns the select node.", "guessedname": "render", "guessedtype": "function"}, "rebuild": {"description": "(Re)generate the select options.", "guessedname": "rebuild", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Select the appropriate option if changed.", "guessedname": "update", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the select node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "onChange": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The change event"}], "description": "Listener for the select's onchange event.  Sent to setRowsPerPage method.", "guessedname": "onChange", "guessedtype": "function"}, "_handleTotalRecordsChange": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  attribute change event"}], "description": "Updates the all option value (and Paginator's rowsPerPage attribute if\nnecessary) in response to a change in the Paginator's totalRecords.", "guessedname": "_handleTotalRecordsChange", "guessedtype": "function"}}, "file": "RowsPerPageDropDown.js", "guessedtype": "function", "shortname": "RowsPerPageDropdown", "configs": {"rowsPerPageDropdownClass": {"default": "'yui-pg-rpp-options'", "description": "CSS class assigned to the select node"}, "rowsPerPageOptions": {"default": "[]", "description": "Array of available rows-per-page sizes.  Converted into select options.\nArray values may be positive integers or object literals in the form<br>\n{ value : NUMBER, text : STRING }"}}, "description": "ui Component to generate the rows-per-page dropdown"}, "YAHOO.util.StyleSheet": {"name": "YAHOO.util.StyleSheet", "constructors": [{"params": [{"type": "String|HTMLElement", "name": "seed", "description": "  a style or link node, its id, or a name or\nyuiSSID of a StyleSheet, or a string of css text (see above)"}, {"type": "String", "name": "name", "description": "  OPTIONAL name to register instance for future static\naccess"}], "description": "Create an instance of YAHOO.util.StyleSheet to encapsulate a css stylesheet.\nThe constructor can be called using function or constructor syntax.\n<pre><code>var sheet = YAHOO.util.StyleSheet(..);</pre></code>\nor\n<pre><code>var sheet = new YAHOO.util.StyleSheet(..);</pre></code>\nThe first parameter passed can be any of the following things:\n<ul>\n<li>The desired string name to register a new empty sheet</li>\n<li>The string name of an existing YAHOO.util.StyleSheet instance</li>\n<li>The unique yuiSSID generated for an existing YAHOO.util.StyleSheet instance</li>\n<li>The id of an existing <code><link></code> or <code><style></code> node</li>\n<li>The node reference for an existing <code><link></code> or <code><style></code> node</li>\n<li>A chunk of css text to create a new stylesheet from</li>\n</ul>\n<p>If a string is passed, StyleSheet will first look in its static name\nregistry for an existing sheet, then in the DOM for an element with that id.\nIf neither are found and the string contains the { character, it will be\nused as a the initial cssText for a new StyleSheet.  Otherwise, a new empty\nStyleSheet is created, assigned the string value as a name, and registered\nstatically by that name.</p>\n<p>The optional second parameter is a string name to register the sheet as.\nThis param is largely useful when providing a node id/ref or chunk of css\ntext to create a populated instance.</p>"}], "namespace": "YAHOO.util", "module": "stylesheet", "methods": {"enable": {"chainable": "", "return": {"type": "StyleSheet", "description": "the instance"}, "description": "Enable all the rules in the sheet"}, "StyleSheet.isValidSelector": {"return": {"type": "Boolean", "description": ""}, "description": "<p>Determines if a selector string is safe to use.  Used internally\nin set to prevent IE from locking up when attempting to add a rule for a\n"bad selector".</p>\n<p>Bad selectors are considered to be any string containing unescaped\n`~!@$%^&()+=|{}[];'\"?< or space. Also forbidden are . or # followed by\nanything other than an alphanumeric.  Additionally -abc or .-abc or\n#_abc or '# ' all fail.  There are likely more failure cases, so\nplease file a bug if you encounter one.</p>", "static": "", "guessedname": "isValidSelector", "guessedtype": "function", "params": [{"type": "String", "name": "sel", "description": "  the selector string"}]}, "getCssText": {"return": {"type": "String", "description": ""}, "params": [{"type": "String", "name": "sel", "description": "  Selector string"}], "description": "Get the current cssText for a rule or the entire sheet.  If the\nselector param is supplied, only the cssText for that rule will be\nreturned, if found.  If the selector string targets multiple\nselectors separated by commas, the cssText of the first rule only\nwill be returned.  If no selector string, the stylesheet's full\ncssText will be returned.", "guessedname": "getCssText", "guessedtype": "function"}, "isEnabled": {"return": {"type": "Boolean", "description": "is it enabled?"}, "description": "Returns boolean indicating whether the StyleSheet is enabled", "guessedname": "isEnabled", "guessedtype": "function"}, "disable": {"chainable": "", "return": {"type": "StyleSheet", "description": "the instance"}, "description": "Disable all the rules in the sheet.  Rules may be changed while the\nStyleSheet is disabled.", "guessedname": "disable", "guessedtype": "function"}, "set": {"return": {"type": "StyleSheet", "description": "the StyleSheet instance"}, "description": "<p>Set style properties for a provided selector string.\nIf the selector includes commas, it will be split into individual\nselectors and applied accordingly.  If the selector string does not\nhave a corresponding rule in the sheet, it will be added.</p>\n<p>The second parameter can be either a string of CSS text,\nformatted as CSS (\"font-size: 10px;\"), or an object collection of\nproperties and their new values.  Object properties must be in\nJavaScript format ({ fontSize: \"10px\" }).</p>\n<p>The float style property will be set by any of "float",\n"styleFloat", or "cssFloat" if passed in the\nobject map.  Use \"float: left;\" format when passing a CSS text\nstring.</p>", "chainable": "", "params": [{"type": "String", "name": "sel", "description": "  the selector string to apply the changes to"}, {"type": "Object|String", "name": "css", "description": "  Object literal of style properties and\nnew values, or a string of cssText"}], "guessedname": "set", "guessedtype": "function"}, "getId": {"return": {"type": "Number", "description": "the static id"}, "description": "Get the unique yuiSSID for this StyleSheet instance", "guessedname": "getId", "guessedtype": "function"}, "StyleSheet.register": {"return": {"type": "Boolean", "description": "false if no name or sheet is not a StyleSheet\ninstance. true otherwise."}, "description": "Registers a StyleSheet instance in the static registry by the given name", "static": "", "guessedname": "register", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": "  the name to assign the StyleSheet in the registry"}, {"type": "StyleSheet", "name": "sheet", "description": "  The StyleSheet instance"}]}, "unset": {"return": {"type": "StyleSheet", "description": "the StyleSheet instance"}, "description": "<p>Unset style properties for a provided selector string, removing\ntheir effect from the style cascade.</p>\n<p>If the selector includes commas, it will be split into individual\nselectors and applied accordingly.  If there are no properties\nremaining in the rule after unsetting, the rule is removed.</p>\n<p>The style property or properties in the second parameter must be the\n<p>JavaScript style property names. E.g. fontSize rather than font-size.</p>\n<p>The float style property will be unset by any of "float",\n"styleFloat", or "cssFloat".</p>", "chainable": "", "params": [{"type": "String", "name": "sel", "description": "  the selector string to apply the changes to"}, {"type": "String|Array", "name": "css", "description": "  style property name or Array of names"}], "guessedname": "unset", "guessedtype": "function"}, "StyleSheet.toCssText": {"return": {"type": "String", "description": "the resulting cssText string"}, "description": "<p>Converts an object literal of style properties and values into a string\nof css text.  This can then be assigned to el.style.cssText.</p>\n<p>The optional second parameter is a cssText string representing the\nstarting state of the style prior to alterations.  This is most often\nextracted from the eventual target's current el.style.cssText.</p>", "static": "", "guessedname": "toCssText", "guessedtype": "property", "params": [{"type": "Object", "name": "css", "description": "  object literal of style properties and values"}, {"type": "String", "name": "cssText", "description": "  OPTIONAL starting cssText value"}]}}, "file": "stylesheet.js", "shortname": "StyleSheet", "properties": {"node": {"type": "HTMLElement", "description": "The HTMLElement that this instance encapsulates", "guessedname": "node", "guessedtype": "property"}}, "description": "Create an instance of YAHOO.util.StyleSheet to encapsulate a css stylesheet.\nThe constructor can be called using function or constructor syntax.\n<pre><code>var sheet = YAHOO.util.StyleSheet(..);</pre></code>\nor\n<pre><code>var sheet = new YAHOO.util.StyleSheet(..);</pre></code>\nThe first parameter passed can be any of the following things:\n<ul>\n<li>The desired string name to register a new empty sheet</li>\n<li>The string name of an existing YAHOO.util.StyleSheet instance</li>\n<li>The unique yuiSSID generated for an existing YAHOO.util.StyleSheet instance</li>\n<li>The id of an existing <code><link></code> or <code><style></code> node</li>\n<li>The node reference for an existing <code><link></code> or <code><style></code> node</li>\n<li>A chunk of css text to create a new stylesheet from</li>\n</ul>\n<p>If a string is passed, StyleSheet will first look in its static name\nregistry for an existing sheet, then in the DOM for an element with that id.\nIf neither are found and the string contains the { character, it will be\nused as a the initial cssText for a new StyleSheet.  Otherwise, a new empty\nStyleSheet is created, assigned the string value as a name, and registered\nstatically by that name.</p>\n<p>The optional second parameter is a string name to register the sheet as.\nThis param is largely useful when providing a node id/ref or chunk of css\ntext to create a populated instance.</p>"}, "YAHOO.widget.Calendar": {"name": "YAHOO.widget.Calendar", "configs": {"MY_LABEL_YEAR_POSITION": {"default": "2", "type": "Number", "description": "The position of the year in the month year label string used as the Calendar header", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEKDAYS": {"default": "true", "type": "Boolean", "description": "True if the Calendar should show weekday labels. True by default.", "guessedname": "value", "guessedtype": "property"}, "MDY_DAY_POSITION": {"default": "2", "type": "Number", "description": "The position of the day in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "MY_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "MONTHS_SHORT": {"default": "[\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]", "type": "String[]", "description": "The short month labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MULTI_SELECT": {"default": "false", "type": "Boolean", "description": "True if the Calendar should allow multiple selections. False by default.", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_YEAR_SUFFIX": {"default": "\"\"", "type": "String", "description": "The suffix used after the year when rendering the Calendar header", "guessedname": "value", "guessedtype": "property"}, "DATE_FIELD_DELIMITER": {"default": "\"/\"", "type": "String", "description": "The value used to delimit date fields in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "MY_YEAR_POSITION": {"default": "2", "type": "Number", "description": "The position of the year in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "close": {"default": "false", "type": "Boolean", "description": "Whether or not a close button should be displayed for this Calendar", "guessedname": "value", "guessedtype": "property"}, "MONTHS_LONG": {"default": "[\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"", "type": "String[]", "description": "The long month labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_MEDIUM": {"default": "[\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]", "type": "String[]", "description": "The medium weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in the month year label string used as the Calendar header", "guessedname": "value", "guessedtype": "property"}, "YEAR_OFFSET": {"default": "0", "type": "Number", "description": "The positive or negative year offset from the Gregorian calendar year (assuming a January 1st rollover) to \nbe used when displaying and parsing dates. NOTE: All JS Date objects returned by methods, or expected as input by\nmethods will always represent the Gregorian year, in order to maintain date/month/week values.", "guessedname": "value", "guessedtype": "property"}, "navigator": {"default": "null", "type": "{Object|Boolean}", "description": "Configuration for the Month/Year CalendarNavigator UI which allows the user to jump directly to a \nspecific Month/Year without having to scroll sequentially through months.\n<p>\nSetting this property to null (default value) or false, will disable the CalendarNavigator UI.\n</p>\n<p>\nSetting this property to true will enable the CalendarNavigatior UI with the default CalendarNavigator configuration values.\n</p>\n<p>\nThis property can also be set to an object literal containing configuration properties for the CalendarNavigator UI.\nThe configuration object expects the the following case-sensitive properties, with the \"strings\" property being a nested object.\nAny properties which are not provided will use the default values (defined in the CalendarNavigator class).\n</p>\n<dl>\n<dt>strings</dt>\n<dd><em>Object</em> :  An object with the properties shown below, defining the string labels to use in the Navigator's UI\n<dl>\n<dt>month</dt><dd><em>String</em> : The string to use for the month label. Defaults to \"Month\".</dd>\n<dt>year</dt><dd><em>String</em> : The string to use for the year label. Defaults to \"Year\".</dd>\n<dt>submit</dt><dd><em>String</em> : The string to use for the submit button label. Defaults to \"Okay\".</dd>\n<dt>cancel</dt><dd><em>String</em> : The string to use for the cancel button label. Defaults to \"Cancel\".</dd>\n<dt>invalidYear</dt><dd><em>String</em> : The string to use for invalid year values. Defaults to \"Year needs to be a number\".</dd>\n</dl>\n</dd>\n<dt>monthFormat</dt><dd><em>String</em> : The month format to use. Either YAHOO.widget.Calendar.LONG, or YAHOO.widget.Calendar.SHORT. Defaults to YAHOO.widget.Calendar.LONG</dd>\n<dt>initialFocus</dt><dd><em>String</em> : Either \"year\" or \"month\" specifying which input control should get initial focus. Defaults to \"year\"</dd>\n</dl>\n<p>E.g.</p>\n<pre>\nvar navConfig = {\nstrings: {\nmonth:\"Calendar Month\",\nyear:\"Calendar Year\",\nsubmit: \"Submit\",\ncancel: \"Cancel\",\ninvalidYear: \"Please enter a valid year\"\n},\nmonthFormat: YAHOO.widget.Calendar.SHORT,\ninitialFocus: \"month\"\n}\n</pre>", "guessedname": "value", "guessedtype": "property"}, "DATE_RANGE_DELIMITER": {"default": "\"-\"", "type": "String", "description": "The value used to delimit date ranges in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEK_HEADER": {"default": "false", "type": "Boolean", "description": "True if the Calendar should show week row headers. False by default.", "guessedname": "value", "guessedtype": "property"}, "title": {"default": "\"\"", "type": "String", "description": "The title to display above the Calendar's month header", "guessedname": "value", "guessedtype": "property"}, "maxdate": {"default": "null", "type": "String | Date", "description": "The maximum selectable date in the current Calendar (mm/dd/yyyy)", "guessedname": "value", "guessedtype": "property"}, "selected": {"default": "[]", "type": "String", "description": "The date or range of dates representing the current Calendar selection", "guessedname": "value", "guessedtype": "property"}, "LOCALE_WEEKDAYS": {"default": "\"short\"", "type": "String", "description": "The setting that determines which length of weekday labels should be used. Possible values are \"1char\", \"short\", \"medium\", and \"long\".", "guessedname": "value", "guessedtype": "property"}, "NAV_ARROW_RIGHT": {"description": "The image that should be used for the right navigation arrow.", "default": "null", "deprecated": "You can customize the image by overriding the default CSS class for the right arrow - \"calnavright\"", "guessedname": "value", "guessedtype": "property", "type": "String"}, "HIDE_BLANK_WEEKS": {"default": "false", "type": "Boolean", "description": "True if the Calendar should suppress weeks that are not a part of the current month. False by default.", "guessedname": "value", "guessedtype": "property"}, "today": {"default": "The client side date (new Date()) when the Calendar is instantiated.", "type": "Date", "description": "The date to use to represent \"Today\".", "guessedname": "value", "guessedtype": "property"}, "mindate": {"default": "null", "type": "String | Date", "description": "The minimum selectable date in the current Calendar (mm/dd/yyyy)", "guessedname": "value", "guessedtype": "property"}, "START_WEEKDAY": {"default": "0", "type": "number", "description": "The weekday the week begins on. Default is 0 (Sunday = 0, Monday = 1 ... Saturday = 6).", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEK_FOOTER": {"default": "false", "type": "Boolean", "description": "True if the Calendar should show week row footers. False by default.", "guessedname": "value", "guessedtype": "property"}, "MDY_YEAR_POSITION": {"default": "3", "type": "Number", "description": "The position of the year in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_LONG": {"default": "[\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]", "type": "String[]", "description": "The long weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MDY_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "pagedate": {"default": "Today's date", "type": "String | Date", "description": "The month/year representing the current visible Calendar date (mm/yyyy)", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_MONTH_SUFFIX": {"default": "\" \"", "type": "String", "description": "The suffix used after the month when rendering the Calendar header", "guessedname": "value", "guessedtype": "property"}, "MD_DAY_POSITION": {"default": "2", "type": "Number", "description": "The position of the day in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "NAV_ARROW_LEFT": {"description": "The image that should be used for the left navigation arrow.", "default": "null", "deprecated": "You can customize the image by overriding the default CSS class for the left arrow - \"calnavleft\"", "guessedname": "value", "guessedtype": "property", "type": "String"}, "MD_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/day date string", "guessedname": "value", "guessedtype": "property"}, "DATE_DELIMITER": {"default": "\",\"", "type": "String", "description": "The value used to delimit individual dates in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "LOCALE_MONTHS": {"default": "\"long\"", "type": "String", "description": "The setting that determines which length of month labels should be used. Possible values are \"short\" and \"long\".", "guessedname": "value", "guessedtype": "property"}, "iframe": {"default": "true for IE6 and below, false for all other browsers", "type": "Boolean", "description": "Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below.\nThis property is enabled by default for IE6 and below. It is disabled by default for other browsers for performance reasons, but can be \nenabled if required.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_1CHAR": {"default": "[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]", "type": "String[]", "description": "The 1-character weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_SHORT": {"default": "[\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]", "type": "String[]", "description": "The short weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "strings": {"default": "An object with the properties shown below:\n<dl>\n<dt>previousMonth</dt><dd><em>String</em> : The string to use for the \"Previous Month\" navigation UI. Defaults to \"Previous Month\".</dd>\n<dt>nextMonth</dt><dd><em>String</em> : The string to use for the \"Next Month\" navigation UI. Defaults to \"Next Month\".</dd>\n<dt>close</dt><dd><em>String</em> : The string to use for the close button label. Defaults to \"Close\".</dd>\n</dl>", "type": "{Object}", "description": "The map of UI strings which the Calendar UI uses."}}, "constructors": [{"params": [{"type": "String", "name": "id", "description": " optional The id of the table element that will represent the Calendar widget. As of 2.4.0, this argument is optional."}, {"type": "String | HTMLElement", "name": "container", "description": " The id of the container div element that will wrap the Calendar table, or a reference to a DIV element which exists in the document."}, {"type": "Object", "name": "config", "description": " optional The configuration object containing the initial configuration values for the Calendar."}], "description": "Calendar is the base class for the Calendar widget. In its most basic\nimplementation, it has the ability to render a calendar widget on the page\nthat can be manipulated to select a single date, move back and forth between\nmonths and years.\n<p>To construct the placeholder for the calendar widget, the code is as\nfollows:\n<xmp>\n<div id=\"calContainer\"></div>\n</xmp>\n</p>\n<p>\n<strong>NOTE: As of 2.4.0, the constructor's ID argument is optional.</strong>\nThe Calendar can be constructed by simply providing a container ID string, \nor a reference to a container DIV HTMLElement (the element needs to exist \nin the document).\nE.g.:\n<xmp>\nvar c = new YAHOO.widget.Calendar(\"calContainer\", configOptions);\n</xmp>\nor:\n<xmp>\nvar containerDiv = YAHOO.util.Dom.get(\"calContainer\");\nvar c = new YAHOO.widget.Calendar(containerDiv, configOptions);\n</xmp>\n</p>\n<p>\nIf not provided, the ID will be generated from the container DIV ID by adding an \"_t\" suffix.\nFor example if an ID is not provided, and the container's ID is \"calContainer\", the Calendar's ID will be set to \"calContainer_t\".\n</p>"}], "namespace": "YAHOO.widget", "module": "calendar", "events": {"showNavEvent": {"description": "Fired after the CalendarNavigator is shown", "guessedname": "showNavEvent", "guessedtype": "property"}, "beforeDeselectEvent": {"description": "Fired before a date or set of dates is deselected", "guessedname": "beforeDeselectEvent", "guessedtype": "property"}, "beforeRenderNavEvent": {"description": "Fired just before the CalendarNavigator is to be rendered", "guessedname": "beforeRenderNavEvent", "guessedtype": "property"}, "beforeHideNavEvent": {"description": "Fired just before the CalendarNavigator is to be hidden", "guessedname": "beforeHideNavEvent", "guessedtype": "property"}, "hideEvent": {"description": "Fired after the Calendar is hidden", "guessedname": "hideEvent", "guessedtype": "property"}, "hideNavEvent": {"description": "Fired after the CalendarNavigator is hidden", "guessedname": "hideNavEvent", "guessedtype": "property"}, "renderNavEvent": {"description": "Fired after the CalendarNavigator is rendered", "guessedname": "renderNavEvent", "guessedtype": "property"}, "beforeRenderEvent": {"description": "Fired before the Calendar is rendered", "guessedname": "beforeRenderEvent", "guessedtype": "property"}, "beforeShowEvent": {"description": "Fired just before the Calendar is to be shown", "guessedname": "beforeShowEvent", "guessedtype": "property"}, "beforeSelectEvent": {"description": "Fired before a date selection is made", "guessedname": "beforeSelectEvent", "guessedtype": "property"}, "renderEvent": {"description": "Fired when the Calendar is rendered", "guessedname": "renderEvent", "guessedtype": "property"}, "changePageEvent": {"params": [{"type": "Date", "name": "prevDate", "description": " The date before the page was changed"}, {"type": "Date", "name": "newDate", "description": " The date after the page was changed"}], "description": "Fired when the Calendar page is changed", "guessedname": "changePageEvent", "guessedtype": "property"}, "destroyEvent": {"description": "Fired after the Calendar is destroyed. This event should be used\nfor notification only. When this event is fired, important Calendar instance\nproperties, dom references and event listeners have already been \nremoved/dereferenced, and hence the Calendar instance is not in a usable \nstate.", "guessedname": "destroyEvent", "guessedtype": "property"}, "clearEvent": {"description": "Fired when the Calendar is cleared", "guessedname": "clearEvent", "guessedtype": "property"}, "showEvent": {"description": "Fired after the Calendar is shown", "guessedname": "showEvent", "guessedtype": "property"}, "beforeDestroyEvent": {"description": "Fired just before the Calendar is to be destroyed", "guessedname": "beforeDestroyEvent", "guessedtype": "property"}, "selectEvent": {"params": [{"type": "Array", "name": "Array", "description": " of Date field arrays in the format [YYYY, MM, DD]."}], "description": "Fired when a date selection is made", "guessedname": "selectEvent", "guessedtype": "property"}, "beforeHideEvent": {"description": "Fired just before the Calendar is to be hidden", "guessedname": "beforeHideEvent", "guessedtype": "property"}, "beforeShowNavEvent": {"description": "Fired just before the CalendarNavigator is to be shown", "guessedname": "beforeShowNavEvent", "guessedtype": "property"}, "deselectEvent": {"params": [{"type": "Array", "name": "Array", "description": " of Date field arrays in the format [YYYY, MM, DD]."}], "description": "Fired when a date or set of dates is deselected", "guessedname": "deselectEvent", "guessedtype": "property"}, "resetEvent": {"description": "Fired when the Calendar is reset", "guessedname": "resetEvent", "guessedtype": "property"}}, "methods": {"show": {"description": "Shows the Calendar's outer container.", "guessedname": "show", "guessedtype": "function"}, "nextYear": {"description": "Navigates to the next year in the currently selected month in the calendar widget.", "guessedname": "nextYear", "guessedtype": "function"}, "configLocale": {"description": "The default handler for all configuration locale properties", "guessedname": "configLocale", "guessedtype": "function"}, "subtractYears": {"params": [{"type": "Number", "name": "count", "description": " The number of years to subtract from the current calendar"}], "description": "Subtcats the designated number of years from the current calendar, and sets the current\ncalendar page date to the new month.", "guessedname": "subtractYears", "guessedtype": "function"}, "buildWeekdays": {"return": {"type": "Array", "description": "The current working HTML array"}, "params": [{"type": "Array", "name": "html", "description": " The current working HTML array"}], "description": "Renders the Calendar's weekday headers.", "guessedname": "buildWeekdays", "guessedtype": "function"}, "_parseArgs": {"return": {"type": "Object", "description": "Object with id, container, config properties containing\nthe reconciled argument values."}, "description": "Protected helper used to parse Calendar constructor/init arguments.\nAs of 2.4.0, Calendar supports a simpler constructor \nsignature. This method reconciles arguments\nreceived in the pre 2.4.0 and 2.4.0 formats.", "protected": "", "params": [{"type": "Array", "name": "Function", "description": " \"arguments\" array"}], "guessedname": "_parseArgs", "guessedtype": "function"}, "previousMonth": {"description": "Navigates to the previous month page in the calendar widget.", "guessedname": "previousMonth", "guessedtype": "function"}, "getSelectedDates": {"return": {"type": "Date[]", "description": "An array of currently selected JavaScript Date objects."}, "description": "Gets the list of currently selected dates from the calendar.", "guessedname": "getSelectedDates", "guessedtype": "function"}, "renderOutOfBoundsDate": {"return": {"type": "String", "description": "YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering\nshould not be terminated"}, "params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a cell that falls before the minimum date or after the maximum date.\nwidget class.", "guessedname": "renderOutOfBoundsDate", "guessedtype": "function"}, "previousYear": {"description": "Navigates to the previous year in the currently selected month in the calendar widget.", "guessedname": "previousYear", "guessedtype": "function"}, "addMonths": {"params": [{"type": "Number", "name": "count", "description": " The number of months to add to the current calendar"}], "description": "Adds the designated number of months to the current calendar month, and sets the current\ncalendar page date to the new month.", "guessedname": "addMonths", "guessedtype": "function"}, "renderBody": {"return": {"type": "Array", "description": "The current working HTML array"}, "params": [{"type": "Date", "name": "workingDate", "description": " The current working Date being used for the render process"}, {"type": "Array", "name": "html", "description": " The current working HTML array"}], "description": "Renders the calendar body.", "guessedname": "renderBody", "guessedtype": "function"}, "addMonthRenderer": {"params": [{"type": "Number", "name": "month", "description": "  The month (1-12) to associate with this renderer"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a month to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the month passed to this method.", "guessedname": "addMonthRenderer", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "id", "description": " optional The id of the table element that will represent the Calendar widget. As of 2.4.0, this argument is optional."}, {"type": "String | HTMLElement", "name": "container", "description": " The id of the container div element that will wrap the Calendar table, or a reference to a DIV element which exists in the document."}, {"type": "Object", "name": "config", "description": " optional The configuration object containing the initial configuration values for the Calendar."}], "description": "Initializes the Calendar widget.", "guessedname": "init", "guessedtype": "function"}, "addRenderer": {"params": [{"type": "String", "name": "sDates", "description": "  A date string to associate with the specified renderer. Valid formats\ninclude date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a renderer to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the conditions specified in the date string for this renderer.", "guessedname": "addRenderer", "guessedtype": "function"}, "applyListeners": {"description": "Applies the Calendar's DOM listeners to applicable elements.", "guessedname": "applyListeners", "guessedtype": "function"}, "clearAllBodyCellStyles": {"params": [{"type": "style", "name": "style", "description": " The CSS class name to remove from all calendar body cells"}], "description": "Removes all styles from all body cells in the current calendar table.", "guessedname": "clearAllBodyCellStyles", "guessedtype": "function"}, "_parsePageDate": {"return": {"type": "Date", "description": "The Date object representing the pagedate"}, "description": "Parses a pagedate configuration property value. The value can either be specified as a string of form \"mm/yyyy\" or a Date object \nand is parsed into a Date object normalized to the first day of the month. If no value is passed in, the month and year from today's date are used to create the Date object", "private": "", "params": [{"type": "Date|String", "name": "date", "description": " Pagedate value which needs to be parsed"}], "guessedname": "_parsePageDate", "guessedtype": "function"}, "getIndexFromId": {"return": {"type": "Number", "description": "The index of the cell, or -1 if id does not contain an index number"}, "params": [{"type": "String", "name": "strId", "description": " The cell id"}], "description": "Given the id used to mark each Calendar cell, this method\nextracts the index number from the id.", "guessedname": "getIndexFromId", "guessedtype": "function"}, "createTitleBar": {"return": {"type": "", "description": "The title bar element"}, "params": [{"type": "String", "name": "strTitle", "description": " The title to display in the title bar"}], "description": "Creates the title bar element and adds it to Calendar container DIV", "guessedname": "createTitleBar", "guessedtype": "function"}, "onBeforeSelect": {"deprecated": "Event handlers for this event should be susbcribed to beforeSelectEvent.", "description": "Event executed before a date is selected in the calendar widget.", "guessedname": "onBeforeSelect", "guessedtype": "function"}, "removeCloseButton": {"description": "Removes the close button HTML element from the DOM", "guessedname": "removeCloseButton", "guessedtype": "function"}, "renderCellStyleHighlight2": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell using the CSS hightlight2 style", "guessedname": "renderCellStyleHighlight2", "guessedtype": "function"}, "renderCellStyleHighlight3": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell using the CSS hightlight3 style", "guessedname": "renderCellStyleHighlight3", "guessedtype": "function"}, "renderCellStyleHighlight1": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell using the CSS hightlight1 style", "guessedname": "renderCellStyleHighlight1", "guessedtype": "function"}, "renderCellStyleHighlight4": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell using the CSS hightlight4 style", "guessedname": "renderCellStyleHighlight4", "guessedtype": "function"}, "renderHeader": {"return": {"type": "Array", "description": "The current working HTML array"}, "params": [{"type": "Array", "name": "html", "description": " The current working HTML array"}], "description": "Renders the calendar header.", "guessedname": "renderHeader", "guessedtype": "function"}, "addYears": {"params": [{"type": "Number", "name": "count", "description": " The number of years to add to the current calendar"}], "description": "Adds the designated number of years to the current calendar, and sets the current\ncalendar page date to the new month.", "guessedname": "addYears", "guessedtype": "function"}, "deselectCell": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "Number", "name": "cellIndex", "description": " The index of the cell to deselect in the current calendar."}], "description": "Deselects a date on the current calendar by referencing the index of the cell that should be deselected.\nThis method is used to easily deselect a single cell (usually with a mouse click) without having to do\na full render. The selected style is removed from the cell directly.\nIf the cell is not marked with the CSS_CELL_SELECTABLE class (as is the case by default for out of month \nor out of bounds cells), the method will not attempt to deselect it and in such a case, beforeDeselect and \ndeselect events will not be fired.", "guessedname": "deselectCell", "guessedtype": "function"}, "removeRenderers": {"description": "Removes all custom renderers added to the Calendar through the addRenderer, addMonthRenderer and \naddWeekdayRenderer methods. Calendar's render method needs to be called after removing renderers \nto re-render the Calendar without custom renderers applied.", "guessedname": "removeRenderers", "guessedtype": "function"}, "configOptions": {"description": "The default handler for all configuration options properties", "guessedname": "configOptions", "guessedtype": "function"}, "deselect": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "String/Date/Date[]", "name": "date", "description": " The date string of dates to deselect in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "description": "Deselects a date or a collection of dates on the current calendar. This method, by default,\ndoes not call the render method explicitly. Once deselection has completed, render must be \ncalled for the changes to be reflected visually.\nThe method will not attempt to deselect any dates which are OOB (out of bounds, and hence not selectable) \nand the array of deselected dates passed to the deselectEvent will not contain any OOB dates.\nIf all dates are OOB, beforeDeselect and deselect events will not be fired.", "guessedname": "deselect", "guessedtype": "function"}, "_indexOfSelectedFieldArray": {"return": {"type": "Number", "description": "The index of the date field array within the collection of selected dates.\n-1 will be returned if the date is not found."}, "description": "Gets the index of a date field array [yyyy,mm,dd] in the current list of selected dates.", "private": "", "params": [{"type": "Number[]", "name": "find", "description": " The date field array to search for"}], "guessedname": "_indexOfSelectedFieldArray", "guessedtype": "function"}, "_parseRange": {"return": {"type": "", "description": "An array of date field arrays"}, "description": "Converts a date range to the full list of included dates", "private": "", "params": [{"type": "Number[]", "name": "startDate", "description": " Date field array representing the first date in the range"}, {"type": "Number[]", "name": "endDate", "description": "  Date field array representing the last date in the range"}], "guessedname": "_parseRange", "guessedtype": "function", "type": "Array[](Number[])"}, "toString": {"return": {"type": "String", "description": "A string representation of the Calendar object."}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "renderCellNotThisMonth": {"return": {"type": "String", "description": "YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering\nshould not be terminated"}, "params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Applies the default style used for rendering dates that are not a part of the current\nmonth (preceding or trailing the cells for the current month)", "guessedname": "renderCellNotThisMonth", "guessedtype": "function"}, "configLocaleValues": {"description": "The default handler for all configuration locale field length properties", "guessedname": "configLocaleValues", "guessedtype": "function"}, "buildMonthLabel": {"return": {"type": "String", "description": "The formatted calendar month label"}, "description": "Builds the date label that will be displayed in the calendar header or\nfooter, depending on configuration.", "guessedname": "buildMonthLabel", "guessedtype": "function"}, "_parseDates": {"return": {"type": "", "description": "An array of date field arrays"}, "description": "Converts a multi or single-date string to an array of date field arrays", "private": "", "params": [{"type": "String", "name": "sDates", "description": "  Date string with one or more comma-delimited dates. Valid formats are mm/dd, mm/dd/yyyy, mm/dd/yyyy-mm/dd/yyyy"}], "guessedname": "_parseDates", "guessedtype": "function", "type": "Array[](Number[])"}, "getDateFieldsByCellId": {"return": {"type": "Array", "description": "The array of Date fields for the specified Calendar cell"}, "params": [{"type": "String", "name": "id", "description": " The id of the cell"}], "description": "Retrieves the Date object for the specified Calendar cell", "guessedname": "getDateFieldsByCellId", "guessedtype": "function"}, "configMaxDate": {"description": "The default handler for the \"maxdate\" property", "guessedname": "configMaxDate", "guessedtype": "function"}, "_addRenderer": {"guessedname": "_addRenderer", "params": [{"type": "String", "name": "type", "description": "  The type string that indicates the type of date renderer being added.\nValues are YAHOO.widget.Calendar.DATE, YAHOO.widget.Calendar.MONTH_DAY, YAHOO.widget.Calendar.WEEKDAY,\nYAHOO.widget.Calendar.RANGE, YAHOO.widget.Calendar.MONTH"}, {"type": "Array", "name": "aDates", "description": "  An array of dates used to construct the renderer. The format varies based\non the renderer type"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "The private method used for adding cell renderers to the local render stack.\nThis method is called by other methods that set the renderer type prior to the method call.", "private": "", "guessedtype": "function"}, "setMonth": {"params": [{"type": "Number", "name": "month", "description": "  The numeric month, from 0 (January) to 11 (December)"}], "description": "Sets the calendar's month explicitly", "guessedname": "setMonth", "guessedtype": "function"}, "_fieldArraysAreEqual": {"return": {"type": "Boolean", "description": "The boolean that represents the equality of the two arrays"}, "description": "Determines if 2 field arrays are equal.", "private": "", "params": [{"type": "Number[]", "name": "array1", "description": " The first date field array to compare"}, {"type": "Number[]", "name": "array2", "description": " The first date field array to compare"}], "guessedname": "_fieldArraysAreEqual", "guessedtype": "function"}, "styleCellDefault": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Styles a selectable cell.", "guessedname": "styleCellDefault", "guessedtype": "function"}, "_parseDate": {"return": {"type": "", "description": "A date field array representing the string passed to the method"}, "description": "Converts a date string to a date field array", "private": "", "params": [{"type": "String", "name": "sDate", "description": "   Date string. Valid formats are mm/dd and mm/dd/yyyy."}], "guessedname": "_parseDate", "guessedtype": "function", "type": "Array[](Number[])"}, "doCellMouseOver": {"params": [{"type": "DOMEvent", "name": "e", "description": " The event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar passed by the Event utility"}], "description": "The event that is executed when the user hovers over a cell", "guessedname": "doCellMouseOver", "guessedtype": "function"}, "doCellMouseOut": {"params": [{"type": "DOMEvent", "name": "e", "description": " The event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar passed by the Event utility"}], "description": "The event that is executed when the user moves the mouse out of a cell", "guessedname": "doCellMouseOut", "guessedtype": "function"}, "onClear": {"deprecated": "Event handlers for this event should be susbcribed to clearEvent.", "description": "Event executed when the calendar widget is completely cleared to the current month with no selections.", "guessedname": "onClear", "guessedtype": "function"}, "onDeselect": {"deprecated": "Event handlers for this event should be susbcribed to deselectEvent.", "params": [{"type": "Array", "name": "selected", "description": " An array of date field arrays representing which date or dates were deselected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]"}], "description": "Event executed when a date is deselected in the calendar widget.", "guessedname": "onDeselect", "guessedtype": "function"}, "configNavigator": {"description": "The default handler for the \"navigator\" property", "guessedname": "configNavigator", "guessedtype": "function"}, "configClose": {"description": "Default handler for the \"close\" property", "guessedname": "configClose", "guessedtype": "function"}, "render": {"description": "Renders the calendar after it has been configured. The render() method has a specific call chain that will execute\nwhen the method is called: renderHeader, renderBody, renderFooter.\nRefer to the documentation for those methods for information on \nindividual render tasks.", "guessedname": "render", "guessedtype": "function"}, "_buildMonthLabel": {"return": {"type": "String", "description": "Formated month, year string"}, "description": "Helper method, to format a Month Year string, given a JavaScript Date, based on the \nCalendar localization settings", "private": "", "params": [{"type": "Date", "name": "date", "description": ""}], "guessedname": "_buildMonthLabel", "guessedtype": "function"}, "initStyles": {"description": "Defines the style constants for the Calendar", "guessedname": "initStyles", "guessedtype": "function"}, "resetRenderers": {"description": "Resets the render stack of the current calendar to its original pre-render value.", "guessedname": "resetRenderers", "guessedtype": "function"}, "select": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "String/Date/Date[]", "name": "date", "description": " The date string of dates to select in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "description": "Selects a date or a collection of dates on the current calendar. This method, by default,\ndoes not call the render method explicitly. Once selection has completed, render must be \ncalled for the changes to be reflected visually.\nAny dates which are OOB (out of bounds, not selectable) will not be selected and the array of \nselected dates passed to the selectEvent will not contain OOB dates.\nIf all dates are OOB, the no state change will occur; beforeSelect and select events will not be fired.", "guessedname": "select", "guessedtype": "function"}, "refreshLocale": {"private": "", "description": "Refreshes the locale values used to build the Calendar.", "guessedname": "refreshLocale", "guessedtype": "function"}, "initEvents": {"description": "Initializes Calendar's built-in CustomEvents", "guessedname": "initEvents", "guessedtype": "function"}, "nextMonth": {"description": "Navigates to the next month page in the calendar widget.", "guessedname": "nextMonth", "guessedtype": "function"}, "onReset": {"deprecated": "Event handlers for this event should be susbcribed to resetEvemt.", "description": "Event executed when the calendar widget is reset to its original state.", "guessedname": "onReset", "guessedtype": "function"}, "addWeekdayRenderer": {"params": [{"type": "Number", "name": "weekday", "description": "  The weekday (Sunday = 1, Monday = 2 ... Saturday = 7) to associate with this renderer"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a weekday to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the weekday passed to this method.", "guessedname": "addWeekdayRenderer", "guessedtype": "function"}, "isDateOOM": {"return": {"type": "Boolean", "description": "true if the date is OOM"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object for which to check the OOM status"}], "description": "Determines whether a given date is OOM (out of month).", "guessedname": "isDateOOM", "guessedtype": "function"}, "getCellIndex": {"return": {"type": "Number", "description": "The index of the date in Calendars cellDates/cells arrays, or -1 if the date \nis not on the curently rendered Calendar page."}, "params": [{"type": "Date", "name": "date", "description": " JavaScript Date object, for which to find a cell index."}], "description": "Find the Calendar's cell index for a given date.\nIf the date is not found, the method returns -1.\n<p>\nThe returned index can be used to lookup the cell HTMLElement  \nusing the Calendar's cells array or passed to selectCell to select \ncells by index. \n</p>\nSee <a href=\"#cells\">cells</a>, <a href=\"#selectCell\">selectCell</a>.", "guessedname": "getCellIndex", "guessedtype": "function"}, "isDateOOB": {"return": {"type": "Boolean", "description": "true if the date is OOB"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object for which to check the OOB status"}], "description": "Determines whether a given date is OOB (out of bounds - less than the mindate or more than the maxdate).", "guessedname": "isDateOOB", "guessedtype": "function"}, "doSelectCell": {"params": [{"type": "DOMEvent", "name": "e", "description": " The DOM event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar"}], "description": "The default event handler for date cell selection. Currently attached to \nthe Calendar's bounding box, referenced by it's <a href=\"#property_oDomContainer\">oDomContainer</a> property.", "guessedname": "doSelectCell", "guessedtype": "function"}, "configStrings": {"description": "The default handler for the \"strings\" property", "guessedname": "configStrings", "guessedtype": "function"}, "onRender": {"deprecated": "Event handlers for this event should be susbcribed to renderEvent.", "description": "Event executed when the calendar widget is rendered.", "guessedname": "onRender", "guessedtype": "function"}, "renderRowHeader": {"params": [{"type": "Number", "name": "weekNum", "description": " The week number of the current row"}, {"type": "Array", "name": "cell", "description": " The current working HTML array"}], "description": "Renders the row header for a week.", "guessedname": "renderRowHeader", "guessedtype": "function"}, "renderFooter": {"return": {"type": "Array", "description": "The current working HTML array"}, "params": [{"type": "Array", "name": "html", "description": " The current working HTML array"}], "description": "Renders the calendar footer. In the default implementation, there is\nno footer.", "guessedname": "renderFooter", "guessedtype": "function"}, "configSelected": {"description": "The default handler for the \"selected\" property", "guessedname": "configSelected", "guessedtype": "function"}, "renderRowFooter": {"params": [{"type": "Number", "name": "weekNum", "description": " The week number of the current row"}, {"type": "Array", "name": "cell", "description": " The current working HTML array"}], "description": "Renders the row footer for a week.", "guessedname": "renderRowFooter", "guessedtype": "function"}, "reset": {"description": "Resets the calendar widget to the originally selected month and year, and \nsets the calendar to the initial selection(s).", "guessedname": "reset", "guessedtype": "function"}, "deselectAll": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected.\nAssuming that this function executes properly, the return value should be an empty array.\nHowever, the empty array is returned for the sake of being able to check the selection status\nof the calendar."}, "description": "Deselects all dates on the current calendar.", "guessedname": "deselectAll", "guessedtype": "function"}, "renderBodyCellRestricted": {"return": {"type": "String", "description": "YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering\nshould not be terminated"}, "params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders the current calendar cell as a non-selectable \"black-out\" date using the default\nrestricted style.", "guessedname": "renderBodyCellRestricted", "guessedtype": "function"}, "onBeforeDeselect": {"deprecated": "Event handlers for this event should be susbcribed to beforeDeselectEvent.", "description": "Event executed before a date is deselected in the calendar widget.", "guessedname": "onBeforeDeselect", "guessedtype": "function"}, "onChangePage": {"deprecated": "Event handlers for this event should be susbcribed to changePageEvent.", "description": "Event executed when the user navigates to a different calendar page.", "guessedname": "onChangePage", "guessedtype": "function"}, "_toFieldArray": {"return": {"type": "Array[](Number[])", "description": "Array of date field arrays"}, "description": "Converts a date (either a JavaScript Date object, or a date string) to the internal data structure\nused to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]].", "private": "", "params": [{"type": "String/Date/Date[]", "name": "date", "description": " The date string of dates to deselect in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "guessedname": "_toFieldArray", "guessedtype": "function"}, "renderCellStyleSelected": {"return": {"type": "String", "description": "YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering\nshould not be terminated"}, "params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Applies the default style used for rendering selected dates to the current calendar cell", "guessedname": "renderCellStyleSelected", "guessedtype": "function"}, "configToday": {"description": "The default handler for the \"today\" property", "guessedname": "configToday", "guessedtype": "function"}, "clearElement": {"params": [{"type": "HTMLTableCellElement", "name": "cell", "description": " The cell to clear"}], "description": "Clears the inner HTML, CSS class and style information from the specified cell.", "guessedname": "clearElement", "guessedtype": "function"}, "renderCellDefault": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell in the calendar widget table.\nAll logic for determining how a standard default cell will be rendered is \nencapsulated in this method, and must be accounted for when extending the\nwidget class.", "guessedname": "renderCellDefault", "guessedtype": "function"}, "subtractMonths": {"params": [{"type": "Number", "name": "count", "description": " The number of months to subtract from the current calendar"}], "description": "Subtracts the designated number of months from the current calendar month, and sets the current\ncalendar page date to the new month.", "guessedname": "subtractMonths", "guessedtype": "function"}, "buildDayLabel": {"return": {"type": "String", "description": "The formatted day label"}, "params": [{"type": "Date", "name": "workingDate", "description": " The current working date"}], "description": "Builds the date digit that will be displayed in calendar cells", "guessedname": "buildDayLabel", "guessedtype": "function"}, "toDate": {"return": {"type": "Date", "description": "JavaScript Date object representing the date field array."}, "params": [{"type": "Number[]", "name": "dateFieldArray", "description": " The date field array to convert to a JavaScript Date."}], "description": "Converts a date field array [yyyy,mm,dd] to a JavaScript Date object. The date field array\nis the format in which dates are as provided as arguments to selectEvent and deselectEvent listeners.", "guessedname": "toDate", "guessedtype": "function"}, "configPageDate": {"description": "The default handler for the \"pagedate\" property", "guessedname": "configPageDate", "guessedtype": "function"}, "createCloseButton": {"return": {"type": "", "description": "The close HTML element created"}, "description": "Creates the close button HTML element and adds it to Calendar container DIV", "guessedname": "createCloseButton", "guessedtype": "function"}, "destroy": {"description": "Destroys the Calendar instance. The method will remove references\nto HTML elements, remove any event listeners added by the Calendar,\nand destroy the Config and CalendarNavigator instances it has created.", "guessedname": "destroy", "guessedtype": "function"}, "configTitle": {"description": "Default handler for the \"title\" property", "guessedname": "configTitle", "guessedtype": "function"}, "selectCell": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "Number", "name": "cellIndex", "description": " The index of the cell to select in the current calendar."}], "description": "Selects a date on the current calendar by referencing the index of the cell that should be selected.\nThis method is used to easily select a single cell (usually with a mouse click) without having to do\na full render. The selected style is applied to the cell directly.\nIf the cell is not marked with the CSS_CELL_SELECTABLE class (as is the case by default for out of month \nor out of bounds cells), it will not be selected and in such a case beforeSelect and select events will not be fired.", "guessedname": "selectCell", "guessedtype": "function"}, "doPreviousMonthNav": {"params": [{"type": "DOMEvent", "name": "e", "description": " The DOM event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar"}], "description": "The default event handler for clicks on the \"Previous Month\" navigation UI", "guessedname": "doPreviousMonthNav", "guessedtype": "function"}, "removeTitleBar": {"description": "Removes the title bar element from the DOM", "guessedname": "removeTitleBar", "guessedtype": "function"}, "configMinDate": {"description": "The default handler for the \"mindate\" property", "guessedname": "configMinDate", "guessedtype": "function"}, "hide": {"description": "Hides the Calendar's outer container from view.", "guessedname": "hide", "guessedtype": "function"}, "validate": {"type": "Boolean", "return": {"type": "", "description": "Should return true if the widget validates, and false if\nit doesn't."}, "description": "Validates the calendar widget. This method has no default implementation\nand must be extended by subclassing the widget.", "guessedname": "validate", "guessedtype": "function"}, "getDateByCellId": {"return": {"type": "Date", "description": "The Date object for the specified Calendar cell"}, "params": [{"type": "String", "name": "id", "description": " The id of the cell"}], "description": "Retrieves the Date object for the specified Calendar cell", "guessedname": "getDateByCellId", "guessedtype": "function"}, "clear": {"description": "Clears the selected dates in the current calendar widget and sets the calendar\nto the current month and year.", "guessedname": "clear", "guessedtype": "function"}, "configIframe": {"description": "Default Config listener for the iframe property. If the iframe config property is set to true, \nrenders the built-in IFRAME shim if the container is relatively or absolutely positioned.", "guessedname": "configIframe", "guessedtype": "function"}, "_toDate": {"return": {"type": "Date", "description": "JavaScript Date object representing the date field array"}, "description": "Converts a date field array [yyyy,mm,dd] to a JavaScript Date object.", "deprecated": "Made public, toDate", "private": "", "params": [{"type": "Number[]", "name": "dateFieldArray", "description": " The date field array to convert to a JavaScript Date."}], "guessedname": "_toDate", "guessedtype": "function"}, "onSelect": {"deprecated": "Event handlers for this event should be susbcribed to selectEvent.", "params": [{"type": "Array", "name": "selected", "description": " An array of date field arrays representing which date or dates were selected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]"}], "description": "Event executed when a date is selected in the calendar widget.", "guessedname": "onSelect", "guessedtype": "function"}, "setYear": {"params": [{"type": "Number", "name": "year", "description": "  The numeric 4-digit year"}], "description": "Sets the calendar's year explicitly.", "guessedname": "setYear", "guessedtype": "function"}, "renderCellStyleToday": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Applies the default style used for rendering today's date to the current calendar cell", "guessedname": "renderCellStyleToday", "guessedtype": "function"}, "doNextMonthNav": {"params": [{"type": "DOMEvent", "name": "e", "description": " The DOM event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar"}], "description": "The default event handler for clicks on the \"Next Month\" navigation UI", "guessedname": "doNextMonthNav", "guessedtype": "function"}}, "file": "Calendar.js", "shortname": "Calendar", "properties": {"Style.CSS_HEADER_TEXT": {"guessedname": "CSS_HEADER_TEXT", "guessedtype": "property"}, "Style.CSS_CELL_RIGHT": {"guessedname": "CSS_CELL_RIGHT", "guessedtype": "property"}, "Style.CSS_CELL_BOTTOM": {"guessedname": "CSS_CELL_BOTTOM", "guessedtype": "property"}, "YAHOO.widget.Calendar.WEEKDAY": {"description": "Type constant used for renderers to represent a weekday", "static": "", "guessedname": "WEEKDAY", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Calendar.LONG": {"description": "Constant used to represent long date field string formats (e.g. Monday or February)", "static": "", "guessedname": "LONG", "guessedtype": "property", "type": "String", "final": ""}, "cfg": {"type": "YAHOO.util.Config", "description": "The Config object used to hold the configuration variables for the Calendar", "guessedname": "cfg", "guessedtype": "property"}, "Style.CSS_HEADER": {"guessedname": "CSS_HEADER", "guessedtype": "property"}, "Style.CSS_CELL_HIGHLIGHT4": {"guessedname": "CSS_CELL_HIGHLIGHT4", "guessedtype": "property"}, "Style.CSS_CONTAINER": {"guessedname": "CSS_CONTAINER", "guessedtype": "property"}, "YAHOO.widget.Calendar.MONTH_DAY": {"description": "Type constant used for renderers to represent an individual date across any year (M/D)", "static": "", "guessedname": "MONTH_DAY", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Calendar.IMG_ROOT": {"description": "The path to be used for images loaded for the Calendar", "deprecated": "You can now customize images by overriding the calclose, calnavleft and calnavright default CSS classes for the close icon, left arrow and right arrow respectively", "static": "", "guessedname": "IMG_ROOT", "guessedtype": "property", "type": "String"}, "Style.CSS_NAV_RIGHT": {"guessedname": "CSS_NAV_RIGHT", "guessedtype": "property"}, "Config": {"description": "The configuration object used to set up the calendars various locale and style options.", "deprecated": "Configuration properties should be set by calling Calendar.cfg.setProperty.", "private": "", "guessedname": "Config", "guessedtype": "property", "type": "Object"}, "id": {"type": "String", "description": "The id that uniquely identifies this Calendar.", "guessedname": "id", "guessedtype": "property"}, "_selectedDates": {"guessedname": "_selectedDates", "type": "Array", "description": "The private list of initially selected dates.", "private": "", "guessedtype": "property"}, "index": {"type": "Number", "description": "The index of this item in the parent group", "guessedname": "index", "guessedtype": "property"}, "YAHOO.widget.Calendar.ONE_CHAR": {"description": "Constant used to represent single character date field string formats (e.g. M, T, W)", "static": "", "guessedname": "ONE_CHAR", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Calendar.STOP_RENDER": {"description": "Constant used for halting the execution of the remainder of the render stack", "static": "", "guessedname": "STOP_RENDER", "guessedtype": "property", "type": "String", "final": ""}, "oNavigator": {"type": "CalendarNavigator", "description": "A reference to the CalendarNavigator instance created for this Calendar.\nWill be null if the \"navigator\" configuration property has not been set", "guessedname": "oNavigator", "guessedtype": "property"}, "YAHOO.widget.Calendar.MONTH": {"description": "Type constant used for renderers to represent a month across any year", "static": "", "guessedname": "MONTH", "guessedtype": "property", "type": "String", "final": ""}, "Style.CSS_LINK_CLOSE": {"guessedname": "CSS_LINK_CLOSE", "guessedtype": "property"}, "Style.CSS_CELL": {"guessedname": "CSS_CELL", "guessedtype": "property"}, "renderStack": {"type": "Array[]", "description": "The list of render functions, along with required parameters, used to render cells.", "guessedname": "renderStack", "guessedtype": "property"}, "Style.CSS_CELL_LEFT": {"guessedname": "CSS_CELL_LEFT", "guessedtype": "property"}, "Style.CSS_BODY": {"guessedname": "CSS_BODY", "guessedtype": "property"}, "Style.CSS_CELL_HIGHLIGHT1": {"guessedname": "CSS_CELL_HIGHLIGHT1", "guessedtype": "property"}, "Style.CSS_SINGLE": {"guessedname": "CSS_SINGLE", "guessedtype": "property"}, "_renderStack": {"guessedname": "_renderStack", "type": "Array", "description": "A copy of the initial render functions created before rendering.", "private": "", "guessedtype": "property"}, "Style.CSS_CELL_HIGHLIGHT3": {"guessedname": "CSS_CELL_HIGHLIGHT3", "guessedtype": "property"}, "Style.CSS_FIXED_SIZE": {"guessedname": "CSS_FIXED_SIZE", "guessedtype": "property"}, "today": {"deprecated": "Use the \"today\" configuration property", "type": "Date", "description": "A Date object representing today's date.", "guessedname": "today", "guessedtype": "property"}, "Style.CSS_CELL_HIGHLIGHT2": {"guessedname": "CSS_CELL_HIGHLIGHT2", "guessedtype": "property"}, "Style.CSS_WITH_TITLE": {"guessedname": "CSS_WITH_TITLE", "guessedtype": "property"}, "Style.CSS_WEEKDAY_CELL": {"guessedname": "CSS_WEEKDAY_CELL", "guessedtype": "property"}, "YAHOO.widget.Calendar.STYLES": {"type": "Object An object with name/value pairs for the class name identifier/value.", "static": "", "description": "The set of default style constants for the Calendar", "guessedname": "STYLES", "guessedtype": "property"}, "browser": {"description": "Returns a string representing the current browser.", "deprecated": "As of 2.3.0, environment information is available in YAHOO.env.ua", "see": "YAHOO.env.ua", "guessedname": "browser", "guessedtype": "function", "type": "String"}, "containerId": {"type": "String", "description": "The unique id associated with the Calendar's container", "guessedname": "containerId", "guessedtype": "property"}, "parent": {"type": "CalendarGroup", "description": "The parent CalendarGroup, only to be set explicitly by the parent group", "guessedname": "parent", "guessedtype": "property"}, "Style.CSS_CELL_OOM": {"guessedname": "CSS_CELL_OOM", "guessedtype": "property"}, "Style.CSS_CELL_OOB": {"guessedname": "CSS_CELL_OOB", "guessedtype": "property"}, "YAHOO.widget.Calendar._EVENT_TYPES": {"description": "The set of Custom Event types supported by the Calendar", "private": "", "static": "", "guessedname": "_EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "Style.CSS_CLOSE": {"guessedname": "CSS_CLOSE", "guessedtype": "property"}, "Style.CSS_CALENDAR": {"guessedname": "CSS_CALENDAR", "guessedtype": "property"}, "Style.CSS_CELL_TODAY": {"guessedname": "CSS_CELL_TODAY", "guessedtype": "property"}, "Style.CSS_FOOTER": {"guessedname": "CSS_FOOTER", "guessedtype": "property"}, "YAHOO.widget.Calendar._DEFAULT_CONFIG": {"description": "The set of default Config property keys and values for the Calendar", "deprecated": "Made public. See the public DEFAULT_CONFIG property for details", "private": "", "static": "", "guessedname": "_DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "YAHOO.widget.Calendar.MEDIUM": {"description": "Constant used to represent medium date field string formats (e.g. Mon)", "static": "", "guessedname": "MEDIUM", "guessedtype": "property", "type": "String", "final": ""}, "Style.CSS_CELL_SELECTABLE": {"guessedname": "CSS_CELL_SELECTABLE", "guessedtype": "property"}, "YAHOO.widget.Calendar.RANGE": {"description": "Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y)", "static": "", "guessedname": "RANGE", "guessedtype": "property", "type": "String", "final": ""}, "Style.CSS_CELL_HOVER": {"guessedname": "CSS_CELL_HOVER", "guessedtype": "property"}, "Style.CSS_CELL_SELECTOR": {"guessedname": "CSS_CELL_SELECTOR", "guessedtype": "property"}, "YAHOO.widget.Calendar.DEFAULT_CONFIG": {"type": "Object", "static": "", "description": "The set of default Config property keys and values for the Calendar.\n<p>\nNOTE: This property is made public in order to allow users to change \nthe default values of configuration properties. Users should not \nmodify the key string, unless they are overriding the Calendar implementation\n</p>\n<p>\nThe property is an object with key/value pairs, the key being the \nuppercase configuration property name and the value being an object \nliteral with a key string property, and a value property, specifying the \ndefault value of the property. To override a default value, you can set\nthe value property, for example, <code>YAHOO.widget.Calendar.DEFAULT_CONFIG.MULTI_SELECT.value = true;</code>", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property"}, "Options": {"type": "Object", "description": "The local object which contains the Calendar's options", "guessedname": "Options", "guessedtype": "property"}, "Style.CSS_WEEKDAY_ROW": {"guessedname": "CSS_WEEKDAY_ROW", "guessedtype": "property"}, "Style.CSS_CELL_RESTRICTED": {"guessedname": "CSS_CELL_RESTRICTED", "guessedtype": "property"}, "cellDates": {"type": "Array[](Number[])", "description": "The collection of calendar cell dates that is parallel to the cells collection. The array contains dates field arrays in the format of [YYYY, M, D].", "guessedname": "cellDates", "guessedtype": "property"}, "Style.CSS_ROW_HEADER": {"guessedname": "CSS_ROW_HEADER", "guessedtype": "property"}, "Style.CSS_ROW_FOOTER": {"guessedname": "CSS_ROW_FOOTER", "guessedtype": "property"}, "Style.CSS_CELL_TOP": {"guessedname": "CSS_CELL_TOP", "guessedtype": "property"}, "Locale": {"type": "Object", "description": "The local object which contains the Calendar's locale settings", "guessedname": "Locale", "guessedtype": "property"}, "cells": {"type": "HTMLTableCellElement[]", "description": "The collection of calendar table cells", "guessedname": "cells", "guessedtype": "property"}, "Style.CSS_CELL_SELECTED": {"guessedname": "CSS_CELL_SELECTED", "guessedtype": "property"}, "YAHOO.widget.Calendar.DATE": {"description": "Type constant used for renderers to represent an individual date (M/D/Y)", "static": "", "guessedname": "DATE", "guessedtype": "property", "type": "String", "final": ""}, "domEventMap": {"type": "Object", "description": "A map of DOM event handlers to attach to cells associated with specific CSS class names", "guessedname": "domEventMap", "guessedtype": "property"}, "YAHOO.widget.Calendar.DISPLAY_DAYS": {"description": "Constant that represents the total number of date cells that are displayed in a given month", "static": "", "guessedname": "DISPLAY_DAYS", "guessedtype": "property", "type": "Number", "final": ""}, "oDomContainer": {"type": "HTMLElement", "description": "The DOM element reference that points to this calendar's container element. The calendar will be inserted into this element when the shell is rendered.", "guessedname": "oDomContainer", "guessedtype": "property"}, "YAHOO.widget.Calendar._STYLES": {"description": "The set of default style constants for the Calendar", "deprecated": "Made public. See the public STYLES property for details", "private": "", "static": "", "guessedname": "_STYLES", "guessedtype": "property", "type": "Object", "final": ""}, "Style.CSS_NAV_LEFT": {"guessedname": "CSS_NAV_LEFT", "guessedtype": "property"}, "Style.CSS_NAV": {"guessedname": "CSS_NAV", "guessedtype": "property"}, "YAHOO.widget.Calendar.SHORT": {"description": "Constant used to represent short date field string formats (e.g. Tu or Feb)", "static": "", "guessedname": "SHORT", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Calendar is the base class for the Calendar widget. In its most basic\nimplementation, it has the ability to render a calendar widget on the page\nthat can be manipulated to select a single date, move back and forth between\nmonths and years.\n<p>To construct the placeholder for the calendar widget, the code is as\nfollows:\n<xmp>\n<div id=\"calContainer\"></div>\n</xmp>\n</p>\n<p>\n<strong>NOTE: As of 2.4.0, the constructor's ID argument is optional.</strong>\nThe Calendar can be constructed by simply providing a container ID string, \nor a reference to a container DIV HTMLElement (the element needs to exist \nin the document).\nE.g.:\n<xmp>\nvar c = new YAHOO.widget.Calendar(\"calContainer\", configOptions);\n</xmp>\nor:\n<xmp>\nvar containerDiv = YAHOO.util.Dom.get(\"calContainer\");\nvar c = new YAHOO.widget.Calendar(containerDiv, configOptions);\n</xmp>\n</p>\n<p>\nIf not provided, the ID will be generated from the container DIV ID by adding an \"_t\" suffix.\nFor example if an ID is not provided, and the container's ID is \"calContainer\", the Calendar's ID will be set to \"calContainer_t\".\n</p>"}, "YAHOO.widget.StackedBarSeries": {"name": "YAHOO.widget.StackedBarSeries", "constructors": [{"description": "StackedBarSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "StackedBarSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "StackedBarSeries", "description": "StackedBarSeries class for the YUI Charts widget."}, "YAHOO.widget.Axis": {"name": "YAHOO.widget.Axis", "constructors": [{"description": "Defines a CartesianChart's vertical or horizontal axis."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "Axis", "file": "Axis.js", "guessedtype": "function", "shortname": "Axis", "properties": {"title": {"type": "String", "description": "The text that will appear next to the axis to indicate information about the data that it displays.", "guessedname": "title", "guessedtype": "property"}, "labelFunction": {"type": "String", "description": "A string reference to the globally-accessible function that may be called to\ndetermine each of the label values for this axis. Also accepts function references.", "guessedname": "labelFunction", "guessedtype": "property"}, "type": {"type": "String", "description": "The type of axis.", "guessedname": "type", "guessedtype": "property"}, "reverse": {"type": "Boolean", "description": "If true, the items on the axis will be drawn in opposite direction.", "guessedname": "reverse", "guessedtype": "property"}, "labelSpacing": {"type": "Number", "description": "The space, in pixels, between labels on an axis.", "guessedname": "labelSpacing", "guessedtype": "property"}}, "description": "Defines a CartesianChart's vertical or horizontal axis."}, "YAHOO.util.Cookie": {"name": "YAHOO.util.Cookie", "namespace": "YAHOO.util", "module": "cookie", "guessedname": "Cookie", "methods": {"setSub": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Sets a sub cookie with a given name to a particular value.", "static": "", "guessedname": "setSub", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to set."}, {"type": "String", "name": "subName", "description": " The name of the subcookie to set."}, {"type": "Variant", "name": "value", "description": " The value to set."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string), expires (a Date object),\nand secure (true/false)."}]}, "_parseCookieHash": {"return": {"type": "Object", "description": "An object containing entries for each cookie value."}, "description": "Parses a cookie hash string into an object.", "private": "", "static": "", "guessedname": "_parseCookieHash", "guessedtype": "function", "params": [{"type": "String", "name": "text", "description": " The cookie hash string to parse. The string should already be URL-decoded."}]}, "set": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Sets a cookie with a given name and value.", "static": "", "guessedname": "set", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to set."}, {"type": "Variant", "name": "value", "description": " The value to set for the cookie."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string), expires (a Date object),\nraw (true/false), and secure (true/false)."}]}, "setSubs": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Sets a cookie with a given name to contain a hash of name-value pairs.", "static": "", "guessedname": "setSubs", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to set."}, {"type": "Object", "name": "value", "description": " An object containing name-value pairs."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string), expires (a Date object),\nand secure (true/false)."}]}, "exists": {"return": {"type": "Boolean", "description": "True if the cookie exists, false if not."}, "description": "Determines if the cookie with the given name exists. This is useful for\nBoolean cookies (those that do not follow the name=value convention).", "static": "", "guessedname": "exists", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to check."}]}, "get": {"return": {"type": "Variant", "description": "If no converter is specified, returns a string or null if\nthe cookie doesn't exist. If the converter is specified, returns the value\nreturned from the converter or null if the cookie doesn't exist."}, "description": "Returns the cookie value for the given name.", "static": "", "guessedname": "get", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to retrieve."}, {"type": "Object|Function", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: raw (true/false) and converter (a function).\nThe converter function is run on the value before returning it. The\nfunction is not used if the cookie doesn't exist. The function can be\npassed instead of the options object for backwards compatibility."}]}, "_parseCookieString": {"return": {"type": "Object", "description": "An object containing entries for each accessible cookie."}, "description": "Parses a cookie string into an object representing all accessible cookies.", "private": "", "static": "", "guessedname": "_parseCookieString", "guessedtype": "function", "params": [{"type": "String", "name": "text", "description": " The cookie string to parse."}, {"type": "Boolean", "name": "decode", "description": " (Optional) Indicates if the cookie values should be decoded or not. Default is true."}]}, "remove": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Removes a cookie from the machine by setting its expiration date to\nsometime in the past.", "static": "", "guessedname": "remove", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to remove."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string),\nand secure (true/false). The expires option will be overwritten\nby the method."}]}, "removeSub": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Removes a subcookie with a given name. Removing the last subcookie\nwon't remove the entire cookie unless options.removeIfEmpty is true.", "static": "", "guessedname": "removeSub", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie in which the subcookie exists."}, {"type": "String", "name": "subName", "description": " The name of the subcookie to remove."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string), expires (a Date object),\nremoveIfEmpty (true/false), and secure (true/false). This must be the same\nsettings as the original subcookie."}]}, "_createCookieHashString": {"return": {"type": "String", "description": "A string suitable for use as a cookie value."}, "description": "Formats a cookie value for an object containing multiple values.", "private": "", "static": "", "guessedname": "_createCookieHashString", "guessedtype": "function", "params": [{"type": "Object", "name": "hash", "description": " An object of key-value pairs to create a string for."}]}, "getSubs": {"return": {"type": "Object", "description": "An object of name-value pairs if the cookie with the given name\nexists, null if it does not."}, "description": "Returns an object containing name-value pairs stored in the cookie with the given name.", "static": "", "guessedname": "getSubs", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to retrieve."}]}, "getSub": {"return": {"type": "Variant", "description": "If the cookie doesn't exist, null is returned. If the subcookie\ndoesn't exist, null if also returned. If no converter is specified and the\nsubcookie exists, a string is returned. If a converter is specified and the\nsubcookie exists, the value returned from the converter is returned."}, "description": "Returns the value of a subcookie.", "static": "", "guessedname": "getSub", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to retrieve."}, {"type": "String", "name": "subName", "description": " The name of the subcookie to retrieve."}, {"type": "Function", "name": "converter", "description": " (Optional) A function to run on the value before returning\nit. The function is not used if the cookie doesn't exist."}]}, "_createCookieString": {"return": {"type": "String", "description": "The formatted cookie string."}, "description": "Creates a cookie string that can be assigned into document.cookie.", "private": "", "static": "", "guessedname": "_createCookieString", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie."}, {"type": "String", "name": "value", "description": " The value of the cookie."}, {"type": "Boolean", "name": "encodeValue", "description": " True to encode the value, false to leave as-is."}, {"type": "Object", "name": "options", "description": " (Optional) Options for the cookie."}]}}, "static": "", "file": "Cookie.js", "guessedtype": "property", "shortname": "Cookie", "description": "Cookie utility."}, "YAHOO.widget.EditorInfo": {"name": "YAHOO.widget.EditorInfo", "namespace": "YAHOO.widget", "module": "editor", "guessedname": "EditorInfo", "methods": {"saveAll": {"params": [{"type": "HTMLElement", "name": "form", "description": " The form to check if this Editor instance belongs to"}], "description": "Saves all Editor instances on the page. If a form reference is passed, only Editor's bound to this form will be saved.", "guessedname": "saveAll", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the EditorInfo.", "guessedname": "toString", "guessedtype": "function"}, "getEditorById": {"return": {"type": "", "description": "Object <a href=\"YAHOO.widget.Editor.html\">YAHOO.widget.Editor</a>"}, "params": [{"type": "String/HTMLElement", "name": "id", "description": " The id or reference of the textarea to return the Editor instance of"}], "description": "Returns a reference to the Editor object associated with the given textarea", "guessedname": "getEditorById", "guessedtype": "function"}}, "static": "", "file": "simple-editor.js", "guessedtype": "property", "shortname": "EditorInfo", "properties": {"blankImage": {"guessedname": "blankImage", "type": "String", "description": "A reference to the blankImage url", "private": "", "guessedtype": "property"}, "_instances": {"guessedname": "_instances", "type": "Object", "description": "A reference to all editors on the page.", "private": "", "guessedtype": "property"}, "window": {"guessedname": "window", "type": "Object <a href=\"YAHOO.widget.EditorWindow.html\">YAHOO.widget.EditorWindow</a>", "description": "A reference to the currently open window object in any editor on the page.", "private": "", "guessedtype": "property"}, "panel": {"guessedname": "panel", "type": "Object <a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>", "description": "A reference to the currently open panel in any editor on the page.", "private": "", "guessedtype": "property"}}, "description": "Singleton object used to track the open window objects and panels across the various open editors"}, "YAHOO.widget.HTMLNode": {"name": "YAHOO.widget.HTMLNode", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node.  \nProviding a string is the same as providing an object with a single property named html.\nAll values in the oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private or functions.\nAll other attributes are made available in noderef.data, which\ncan be used to store custom attributes.  TreeView.getNode(s)ByProperty\ncan be used to retrieve a node by one of the attributes."}, {"type": "YAHOO.widget.Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated; use oData.expanded)"}, {"type": "boolean", "name": "hasIcon", "description": "  specifies whether or not leaf nodes should\nbe rendered with or without a horizontal line line and/or toggle icon. If the icon\nis not displayed, the content fills the space it would have occupied.\nThis option operates independently of the leaf node presentation logic\nfor dynamic nodes.\n(deprecated; use oData.hasIcon)"}], "description": "This implementation takes either a string or object for the\noData argument.  If is it a string, it will use it for the display\nof this node (and it can contain any html code).  If the parameter\nis an object,it looks for a parameter called \"html\" that will be\nused for this node's display."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "HTMLNode", "methods": {"getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if any node is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nIt will return false if any node loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getNodeDefinition", "guessedtype": "function"}}, "extends": "YAHOO.widget.Node", "superclass": "YAHOO.widget.Node", "file": "HTMLNode.js", "guessedtype": "function", "shortname": "HTMLNode", "properties": {"setHtml": {"param": "o {object} An html string or object containing an html property", "description": "Synchronizes the node.html, and the node's content", "guessedname": "setHtml", "guessedtype": "function"}, "_type": {"description": "The node type", "default": "\"HTMLNode\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}, "html": {"type": "string", "description": "The HTML content to use for this node's display", "guessedname": "html", "guessedtype": "property"}, "initContent": {"param": "oData {object} An html string or object containing an html property", "description": "Sets up the node label", "guessedname": "initContent", "guessedtype": "function"}, "contentStyle": {"type": "string", "description": "The CSS class for the html content container.  Defaults to ygtvhtml, but \ncan be overridden to provide a custom presentation for a specific node.", "guessedname": "contentStyle", "guessedtype": "property"}}, "description": "This implementation takes either a string or object for the\noData argument.  If is it a string, it will use it for the display\nof this node (and it can contain any html code).  If the parameter\nis an object,it looks for a parameter called \"html\" that will be\nused for this node's display."}, "YAHOO.util.ArrayAssert": {"name": "YAHOO.util.ArrayAssert", "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ArrayAssert", "methods": {"containsMatch": {"static": "", "params": [{"type": "Function", "name": "matcher", "description": " A function that returns true if the items matches or false if not."}, {"type": "Array", "name": "haystack", "description": " An array of values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value matching some condition is present in an array. This uses\na function to determine a match.", "guessedname": "containsMatch", "guessedtype": "function"}, "doesNotContain": {"static": "", "params": [{"type": "Object", "name": "needle", "description": " The value that is expected in the array."}, {"type": "Array", "name": "haystack", "description": " An array of values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not present in an array. This uses the triple equals \nsign so no type cohersion may occur.", "guessedname": "doesNotContain", "guessedtype": "function"}, "indexOf": {"static": "", "params": [{"type": "Object", "name": "needle", "description": " The value to look for."}, {"type": "Array", "name": "haystack", "description": " The array to search in."}, {"type": "int", "name": "index", "description": " The index at which the value should exist."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that the given value is contained in an array at the specified index.\nThis uses the triple equals sign so no type cohersion will occur.", "guessedname": "indexOf", "guessedtype": "function"}, "itemsAreSame": {"static": "", "params": [{"type": "Array", "name": "expected", "description": " An array of the expected values."}, {"type": "Array", "name": "actual", "description": " Any array of the actual values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that the values in an array are the same, and in the same position,\nas values in another array. This uses the triple equals sign\nso no type cohersion will occur. Note that the array objects themselves\nneed not be the same for this test to pass.", "guessedname": "itemsAreSame", "guessedtype": "function"}, "contains": {"static": "", "params": [{"type": "Object", "name": "needle", "description": " The value that is expected in the array."}, {"type": "Array", "name": "haystack", "description": " An array of values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is present in an array. This uses the triple equals \nsign so no type cohersion may occur.", "guessedname": "contains", "guessedtype": "function"}, "containsItems": {"static": "", "params": [{"type": "Object[]", "name": "needles", "description": " An array of values that are expected in the array."}, {"type": "Array", "name": "haystack", "description": " An array of values to check."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a set of values are present in an array. This uses the triple equals \nsign so no type cohersion may occur. For this assertion to pass, all values must\nbe found.", "guessedname": "containsItems", "guessedtype": "function"}, "doesNotContainItems": {"static": "", "params": [{"type": "Object[]", "name": "needles", "description": " An array of values that are not expected in the array."}, {"type": "Array", "name": "haystack", "description": " An array of values to check."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a set of values are not present in an array. This uses the triple equals \nsign so no type cohersion may occur. For this assertion to pass, all values must\nnot be found.", "guessedname": "doesNotContainItems", "guessedtype": "function"}, "itemsAreEquivalent": {"return": {"type": "Void", "description": ""}, "description": "Asserts that the values in an array are equivalent, and in the same position,\nas values in another array. This uses a function to determine if the values\nare equivalent. Note that the array objects themselves\nneed not be the same for this test to pass.", "static": "", "guessedname": "itemsAreEquivalent", "guessedtype": "function", "params": [{"type": "Array", "name": "expected", "description": " An array of the expected values."}, {"type": "Array", "name": "actual", "description": " Any array of the actual values."}, {"type": "Function", "name": "comparator", "description": " A function that returns true if the values are equivalent\nor false if not."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}]}, "itemsAreEqual": {"static": "", "params": [{"type": "Array", "name": "expected", "description": " An array of the expected values."}, {"type": "Array", "name": "actual", "description": " Any array of the actual values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that the values in an array are equal, and in the same position,\nas values in another array. This uses the double equals sign\nso type cohersion may occur. Note that the array objects themselves\nneed not be the same for this test to pass.", "guessedname": "itemsAreEqual", "guessedtype": "function"}, "isEmpty": {"static": "", "params": [{"type": "Array", "name": "actual", "description": " The array to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that an array is empty.", "guessedname": "isEmpty", "guessedtype": "function"}, "lastIndexOf": {"static": "", "params": [{"type": "Object", "name": "needle", "description": " The value to look for."}, {"type": "Array", "name": "haystack", "description": " The array to search in."}, {"type": "int", "name": "index", "description": " The index at which the value should exist."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that the given value is contained in an array at the specified index,\nstarting from the back of the array.\nThis uses the triple equals sign so no type cohersion will occur.", "guessedname": "lastIndexOf", "guessedtype": "function"}, "isNotEmpty": {"static": "", "params": [{"type": "Array", "name": "actual", "description": " The array to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that an array is not empty.", "guessedname": "isNotEmpty", "guessedtype": "function"}, "doesNotContainMatch": {"static": "", "params": [{"type": "Function", "name": "matcher", "description": " A function that returns true if the items matches or false if not."}, {"type": "Array", "name": "haystack", "description": " An array of values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that no values matching a condition are present in an array. This uses\na function to determine a match.", "guessedname": "doesNotContainMatch", "guessedtype": "function"}}, "static": "", "file": "ArrayAssert.js", "guessedtype": "property", "shortname": "ArrayAssert", "description": "The ArrayAssert object provides functions to test JavaScript array objects\nfor a variety of cases."}, "YAHOO.widget.StackedColumnChart": {"name": "YAHOO.widget.StackedColumnChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "StackedColumnChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "StackedColumnChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "StackedColumnChart", "description": "StackedColumnChart class for the YUI Charts widget."}, "YAHOO.util.DataSourceBase": {"name": "YAHOO.util.DataSourceBase", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "Base class for the YUI DataSource utility."}], "namespace": "YAHOO.util", "module": "datasource", "properties": {"TYPE_HTMLTABLE": {"description": "Type is an HTML TABLE element. Data is parsed out of TR elements from all TBODY elements.", "default": "6", "guessedname": "TYPE_HTMLTABLE", "guessedtype": "property", "type": "Number", "final": ""}, "maxCacheEntries": {"default": "0", "type": "Number", "description": "Max size of the local cache.  Set to 0 to turn off caching.  Caching is\nuseful to reduce the number of server connections.  Recommended only for data\nsources that return comprehensive results for queries or when stale data is\nnot an issue.", "guessedname": "maxCacheEntries", "guessedtype": "property"}, "_oQueue": {"guessedname": "_oQueue", "type": "Object", "description": "Local queue of request connections, enabled if queue needs to be managed.", "private": "", "guessedtype": "property"}, "TYPE_SCRIPTNODE": {"description": "Type is hosted on a server via a dynamic script node.", "default": "7", "guessedname": "TYPE_SCRIPTNODE", "guessedtype": "property", "type": "Number", "final": ""}, "TYPE_TEXT": {"description": "Type is plain text.", "default": "5", "guessedname": "TYPE_TEXT", "guessedtype": "property", "type": "Number", "final": ""}, "_sName": {"guessedname": "_sName", "type": "String", "description": "Name of DataSource instance.", "private": "", "guessedtype": "property"}, "DataSourceBase._nTransactionId": {"description": "Internal class variable to assign unique transaction IDs.", "private": "", "static": "", "guessedname": "_nTransactionId", "guessedtype": "property", "type": "Number"}, "responseType": {"default": "YAHOO.util.DataSourceBase.TYPE_UNKNOWN", "type": "Number", "description": "Format of response:\n<dl>  \n<dt>TYPE_UNKNOWN</dt>\n<dt>TYPE_JSARRAY</dt>\n<dt>TYPE_JSON</dt>\n<dt>TYPE_XML</dt>\n<dt>TYPE_TEXT</dt>\n<dt>TYPE_HTMLTABLE</dt> \n</dl>", "guessedname": "responseType", "guessedtype": "property"}, "DataSourceBase._nIndex": {"description": "Internal class variable to index multiple DataSource instances.", "private": "", "static": "", "guessedname": "_nIndex", "guessedtype": "property", "type": "Number"}, "TYPE_XHR": {"description": "Type is hosted on a server via an XHR connection.", "default": "2", "guessedname": "TYPE_XHR", "guessedtype": "property", "type": "Number", "final": ""}, "useXPath": {"default": "false", "type": "Boolean", "description": "When working with XML data, setting this property to true enables support for\nXPath-syntaxed locators in schema definitions.", "guessedname": "useXPath", "guessedtype": "property"}, "TYPE_JSON": {"description": "Type is JSON.", "default": "3", "guessedname": "TYPE_JSON", "guessedtype": "property", "type": "Number", "final": ""}, "TYPE_UNKNOWN": {"description": "Type is unknown.", "default": "-1", "guessedname": "TYPE_UNKNOWN", "guessedtype": "property", "type": "Number", "final": ""}, "TYPE_JSFUNCTION": {"description": "Type is a JavaScript Function.", "default": "1", "guessedname": "TYPE_JSFUNCTION", "guessedtype": "property", "type": "Number", "final": ""}, "dataType": {"default": "YAHOO.util.DataSourceBase.TYPE_UNKNOWN", "type": "Number", "description": "Where the live data is held:\n<dl>  \n<dt>TYPE_UNKNOWN</dt>\n<dt>TYPE_LOCAL</dt>\n<dt>TYPE_XHR</dt>\n<dt>TYPE_SCRIPTNODE</dt>\n<dt>TYPE_JSFUNCTION</dt>\n</dl>", "guessedname": "dataType", "guessedtype": "property"}, "_aCache": {"guessedname": "_aCache", "type": "Object[]", "description": "Local cache of data result object literals indexed chronologically.", "private": "", "guessedtype": "property"}, "liveData": {"type": "Object", "description": "Pointer to live database.", "guessedname": "liveData", "guessedtype": "property"}, "TYPE_LOCAL": {"description": "Type is local.", "default": "8", "guessedname": "TYPE_LOCAL", "guessedtype": "property", "type": "Number", "final": ""}, "ERROR_DATAINVALID": {"description": "Error message for invalid dataresponses.", "default": "\"Invalid data\"", "guessedname": "ERROR_DATAINVALID", "guessedtype": "property", "type": "String", "final": ""}, "responseSchema": {"type": "Object", "description": "Response schema object literal takes a combination of the following properties:\n<dl>\n<dt>resultsList</dt> <dd>Pointer to array of tabular data</dd>\n<dt>resultNode</dt> <dd>Pointer to node name of row data (XML data only)</dd>\n<dt>recordDelim</dt> <dd>Record delimiter (text data only)</dd>\n<dt>fieldDelim</dt> <dd>Field delimiter (text data only)</dd>\n<dt>fields</dt> <dd>Array of field names (aka keys), or array of object literals\nsuch as: {key:\"fieldname\",parser:YAHOO.util.DataSourceBase.parseDate}</dd>\n<dt>metaFields</dt> <dd>Object literal of keys to include in the oParsedResponse.meta collection</dd>\n<dt>metaNode</dt> <dd>Name of the node under which to search for meta information in XML response data</dd>\n</dl>", "guessedname": "responseSchema", "guessedtype": "property"}, "TYPE_JSARRAY": {"description": "Type is a JavaScript Array.", "default": "0", "guessedname": "TYPE_JSARRAY", "guessedtype": "property", "type": "Number", "final": ""}, "TYPE_XML": {"description": "Type is XML.", "default": "4", "guessedname": "TYPE_XML", "guessedtype": "property", "type": "Number", "final": ""}, "ERROR_DATANULL": {"description": "Error message for null data responses.", "default": "\"Null data\"", "guessedname": "ERROR_DATANULL", "guessedtype": "property", "type": "String", "final": ""}, "parseJSONArgs": {"type": "{MIXED|Array} If an Array, contents are used as individual arguments.\nOtherwise, value is used as an additional argument.", "description": "Additional arguments passed to the JSON parse routine.  The JSON string\nis the assumed first argument (where applicable).  This property is not\nset by default, but the parse methods will use it if present."}, "DataSource.Parser": {"type": "Object", "static": "", "description": "Data parsing functions.", "guessedname": "Parser", "guessedtype": "property"}, "_aIntervals": {"guessedname": "_aIntervals", "type": "Array", "description": "Array of polling interval IDs that have been enabled, needed to clear all intervals.", "private": "", "guessedtype": "property"}}, "guessedname": "DataSourceBase", "methods": {"flushCache": {"description": "Flushes cache.", "guessedname": "flushCache", "guessedtype": "function"}, "getCachedResponse": {"return": {"type": "Object", "description": "Cached response object or null."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use callback object."}], "description": "Overridable method passes request to cache and returns cached response if any,\nrefreshing the hit in the cache as the newest item. Returns null if there is\nno cache hit.", "guessedname": "getCachedResponse", "guessedtype": "function"}, "parseArrayData": {"return": {"type": "Object", "description": "Parsed response object with the following properties:<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full Array from the live database."}], "description": "Overridable method parses Array data into a response object.", "guessedname": "parseArrayData", "guessedtype": "function"}, "sendRequest": {"return": {"type": "Number", "description": "Transaction ID, or null if response found in cache."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  An object literal with the following properties:\n<dl>\n<dt><code>success</code></dt>\n<dd>The function to call when the data is ready.</dd>\n<dt><code>failure</code></dt>\n<dd>The function to call upon a response failure condition.</dd>\n<dt><code>scope</code></dt>\n<dd>The object to serve as the scope for the success and failure handlers.</dd>\n<dt><code>argument</code></dt>\n<dd>Arbitrary data that will be passed back to the success and failure handlers.</dd>\n</dl>"}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "First looks for cached response, then sends request to live data. The\nfollowing arguments are passed to the callback function:\n<dl>\n<dt><code>oRequest</code></dt>\n<dd>The same value that was passed in as the first argument to sendRequest.</dd>\n<dt><code>oParsedResponse</code></dt>\n<dd>An object literal containing the following properties:\n<dl>\n<dt><code>tId</code></dt>\n<dd>Unique transaction ID number.</dd>\n<dt><code>results</code></dt>\n<dd>Schema-parsed data results.</dd>\n<dt><code>error</code></dt>\n<dd>True in cases of data error.</dd>\n<dt><code>cached</code></dt>\n<dd>True when response is returned from DataSource cache.</dd> \n<dt><code>meta</code></dt>\n<dd>Schema-parsed meta data.</dd>\n</dl>\n<dt><code>oPayload</code></dt>\n<dd>The same value as was passed in as <code>argument</code> in the oCallback object literal.</dd>\n</dl>", "guessedname": "sendRequest", "guessedtype": "function"}, "issueCallback": {"static": "", "params": [{"type": "Function|Object", "name": "callback", "description": "  the callback to execute"}, {"type": "Array", "name": "params", "description": "  params to be passed to the callback method"}, {"type": "Boolean", "name": "error", "description": "  whether an error occurred"}, {"type": "Object", "name": "scope", "description": "  the scope from which to execute the callback\n(deprecated - use an object literal callback)"}], "description": "Executes a configured callback.  For object literal callbacks, the third\nparam determines whether to execute the success handler or failure handler.", "guessedname": "issueCallback", "guessedtype": "function"}, "parseData": {"return": {"type": "Object} Parsed response object with the following properties:<br>\n- results {Array} Array of parsed data results<br>\n- meta {Object} Object literal of meta values<br>\n- error {Boolean", "description": "(optional) True if there was an error<br>"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full Array from the live database."}], "description": "Overridable method parses data of generic RESPONSE_TYPE into a response object.", "guessedname": "parseData", "guessedtype": "function"}, "parseTextData": {"return": {"type": "Object", "description": "Parsed response object with the following properties:<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full text response from the live database."}], "description": "Overridable method parses plain text data into a response object.", "guessedname": "parseTextData", "guessedtype": "function"}, "parseHTMLTableData": {"return": {"type": "Object", "description": "Parsed response object with the following properties<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full HTML element reference from the live database."}], "description": "Overridable method parses an HTML TABLE element reference into a response object.\nData is parsed out of TR elements from all TBODY elements.", "guessedname": "parseHTMLTableData", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the DataSource instance."}, "description": "Public accessor to the unique name of the DataSource instance.", "guessedname": "toString", "guessedtype": "function"}, "parseJSONData": {"return": {"type": "Object", "description": "Parsed response object with the following properties<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full JSON from the live database."}], "description": "Overridable method parses JSON data into a response object.", "guessedname": "parseJSONData", "guessedtype": "function"}, "doBeforeCallback": {"return": {"type": "Object", "description": "Parsed response object."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full response from the live database."}, {"type": "Object", "name": "oParsedResponse", "description": "  The parsed response to return to calling object."}, {"type": "Object", "name": "oCallback", "description": "  The callback object."}], "description": "Overridable method gives implementers access to the original full response and\nthe parsed response (parsed against the given schema) before the data\nis added to the cache (if applicable) and then sent back to callback function.\nThis is your chance to access the raw response and/or populate the parsed\nresponse with any custom data.", "guessedname": "doBeforeCallback", "guessedtype": "function"}, "addToCache": {"params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oResponse", "description": "  Response object to cache."}], "description": "Adds a new item to the cache. If cache is full, evicts the stalest item\nbefore adding the new item.", "guessedname": "addToCache", "guessedtype": "function"}, "DataSourceBase.parseNumber": {"return": {"type": "Number", "description": "A number, or null."}, "description": "Converts data to type Number.", "static": "", "guessedname": "parseNumber", "guessedtype": "function", "params": [{"type": "String | Number | Boolean", "name": "oData", "description": "  Data to convert. Note, the following\nvalues return as null: null, undefined, NaN, \"\"."}]}, "setInterval": {"return": {"type": "Number", "description": "Interval ID."}, "params": [{"type": "Number", "name": "nMsec", "description": "  Length of interval in milliseconds."}, {"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Function", "name": "oCallback", "description": "  Handler function to receive the response."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Sets up a polling mechanism to send requests at set intervals and forward\nresponses to given callback.", "guessedname": "setInterval", "guessedtype": "function"}, "parseXMLResult": {"return": {"type": "Object", "description": "Object literal of data for one result."}, "params": [{"type": "XML", "name": "result", "description": "  XML for one result."}], "description": "Overridable method parses XML data for one result into an object literal.", "guessedname": "parseXMLResult", "guessedtype": "function"}, "handleResponse": {"params": [{"type": "Object", "name": "oRequest", "description": "  Request object"}, {"type": "Object", "name": "oRawResponse", "description": "  The raw response from the live database."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}, {"type": "Number", "name": "tId", "description": "  Transaction ID."}], "description": "Receives raw data response and type converts to XML, JSON, etc as necessary.\nForwards oFullResponse to appropriate parsing function to get turned into\noParsedResponse. Calls doBeforeCallback() and adds oParsedResponse to \nthe cache when appropriate before calling issueCallback().\nThe oParsedResponse object literal has the following properties:\n<dl>\n<dd><dt>tId {Number}</dt> Unique transaction ID</dd>\n<dd><dt>results {Array}</dt> Array of parsed data results</dd>\n<dd><dt>meta {Object}</dt> Object literal of meta values</dd> \n<dd><dt>error {Boolean}</dt> (optional) True if there was an error</dd>\n<dd><dt>cached {Boolean}</dt> (optional) True if response was cached</dd>\n</dl>", "guessedname": "handleResponse", "guessedtype": "function"}, "clearInterval": {"params": [{"type": "Number", "name": "nId", "description": "  Interval ID."}], "description": "Disables polling mechanism associated with the given interval ID.", "guessedname": "clearInterval", "guessedtype": "function"}, "parseXMLData": {"return": {"type": "Object", "description": "Parsed response object with the following properties<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full XML response from the live database."}], "description": "Overridable method parses XML data into a response object.", "guessedname": "parseXMLData", "guessedtype": "function"}, "DataSourceBase.parseDate": {"return": {"type": "Date", "description": "A Date instance."}, "description": "Converts data to type Date.", "static": "", "guessedname": "parseDate", "guessedtype": "function", "params": [{"type": "Date | String | Number", "name": "oData", "description": "  Data to convert."}]}, "makeConnection": {"return": {"type": "Number", "description": "Transaction ID."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Overridable default method generates a unique transaction ID and passes \nthe live data reference directly to the  handleResponse function. This\nmethod should be implemented by subclasses to achieve more complex behavior\nor to access remote data.", "guessedname": "makeConnection", "guessedtype": "function"}, "doBeforeParseData": {"return": {"type": "Object", "description": "Full response for parsing."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full response from the live database."}, {"type": "Object", "name": "oCallback", "description": "  The callback object."}], "description": "Overridable method gives implementers access to the original full response\nbefore the data gets parsed. Implementers should take care not to return an\nunparsable or otherwise invalid response.", "guessedname": "doBeforeParseData", "guessedtype": "function"}, "DataSourceBase.parseString": {"return": {"type": "String", "description": "A string, or null."}, "description": "Converts data to type String.", "static": "", "guessedname": "parseString", "guessedtype": "function", "params": [{"type": "String | Number | Boolean | Date | Array | Object", "name": "oData", "description": "  Data to parse.\nThe special values null and undefined will return null."}]}, "_getLocationValue": {"return": {"type": "Object", "description": "Data value or null."}, "description": "Get an XPath-specified value for a given field from an XML node or document.", "private": "", "static": "", "guessedname": "_getLocationValue", "guessedtype": "function", "params": [{"type": "String | Object", "name": "field", "description": "  Field definition."}, {"type": "Object", "name": "context", "description": "  XML node or document to search within."}]}, "isCacheHit": {"return": {"type": "Boolean", "description": "True if given request matches cached request, false otherwise."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCachedRequest", "description": "  Cached request object."}], "description": "Default overridable method matches given request to given cached request.\nReturns true if is a hit, returns false otherwise.  Implementers should\noverride this method to customize the cache-matching algorithm.", "guessedname": "isCacheHit", "guessedtype": "function"}, "clearAllIntervals": {"description": "Disables all known polling intervals.", "guessedname": "clearAllIntervals", "guessedtype": "function"}}, "file": "DataSource.js", "guessedtype": "function", "shortname": "DataSourceBase", "events": {"dataErrorEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "String", "name": "oArgs.response", "description": "  The response object (if available)."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}, {"type": "String", "name": "oArgs.message", "description": "  The error message."}], "description": "Fired when an error is encountered with the live data source."}, "responseEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.response", "description": "  The raw response object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Number", "name": "oArgs.tId", "description": "  Transaction ID."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when live data source sends response."}, "responseCacheEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.response", "description": "  The parsed response object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when response is cached."}, "cacheFlushEvent": {"description": "Fired when the local cache is flushed."}, "requestEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Number", "name": "oArgs.tId", "description": "  Transaction ID."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when a request is sent to the live data source."}, "cacheRequestEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when a request is made to the local cache."}, "responseParseEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.response", "description": "  The parsed response object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when response is parsed."}, "cacheResponseEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.response", "description": "  The response object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when data is retrieved from the local cache."}}, "description": "Base class for the YUI DataSource utility."}, "YAHOO.util.UnexpectedError": {"name": "YAHOO.util.UnexpectedError", "constructors": [{"params": [{"type": "Error", "name": "cause", "description": " The unexpected error that caused this error to be \nthrown."}], "description": "UnexpectedError is subclass of AssertionError that is thrown whenever\nan error occurs within the course of a test and the test was not expected\nto throw an error."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "UnexpectedError", "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "UnexpectedError", "properties": {"cause": {"type": "Error", "description": "The unexpected error that occurred."}, "name": {"type": "String", "description": "The name of the error that occurred."}, "stack": {"type": "String", "description": "Stack information for the error (if provided)."}}, "description": "UnexpectedError is subclass of AssertionError that is thrown whenever\nan error occurs within the course of a test and the test was not expected\nto throw an error."}, "YAHOO.util.DataSource": {"name": "YAHOO.util.DataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "Factory class for creating a BaseDataSource subclass instance. The sublcass is\ndetermined by oLiveData's type, unless the dataType config is explicitly passed in."}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "DataSource", "file": "DataSource.js", "guessedtype": "function", "shortname": "DataSource", "description": "Factory class for creating a BaseDataSource subclass instance. The sublcass is\ndetermined by oLiveData's type, unless the dataType config is explicitly passed in."}, "YAHOO.tool.TestRunner": {"name": "YAHOO.tool.TestRunner", "namespace": "YAHOO.tool", "module": "yuitest", "events": {"testcasebegin": {"description": "Fires when a test case is opened but before the first \ntest is executed."}, "testcasecomplete": {"description": "Fires when all tests in a test case have been executed."}, "begin": {"description": "Fires when the run() method is called."}, "ignore": {"description": "Fires when a test has been ignored."}, "testsuitebegin": {"description": "Fires when a test suite is opened but before the first \ntest is executed."}, "testsuitecomplete": {"description": "Fires when all test cases in a test suite have been\ncompleted."}, "pass": {"description": "Fires when a test has passed."}, "fail": {"description": "Fires when a test has failed."}, "complete": {"description": "Fires when all test suites and test cases have been completed."}}, "methods": {"_run": {"return": {"type": "Object", "description": "Results of the execution with properties passed, failed, and total."}, "description": "Runs a test case or test suite, returning the results.", "private": "", "static": "", "guessedname": "_run", "guessedtype": "function", "params": [{"type": "YAHOO.tool.TestCase|YAHOO.tool.TestSuite", "name": "testObject", "description": " The test case or test suite to run."}]}, "run": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Runs the test suite.", "guessedname": "run", "guessedtype": "function"}, "resume": {"return": {"type": "Void", "description": ""}, "description": "Resumes the TestRunner after wait() was called.", "static": "", "guessedname": "resume", "guessedtype": "function", "params": [{"type": "Function", "name": "segment", "description": " The function to run as the rest\nof the haulted test."}]}, "_handleTestObjectComplete": {"return": {"type": "Void", "description": ""}, "description": "Handles the completion of a test object's tests. Tallies test results \nfrom one level up to the next.", "private": "", "static": "", "guessedname": "_handleTestObjectComplete", "guessedtype": "function", "params": [{"type": "TestNode", "name": "node", "description": " The TestNode representing the test object."}]}, "_addTestCaseToTestTree": {"return": {"type": "Void", "description": ""}, "description": "Adds a test case to the test tree as a child of the specified node.", "private": "", "static": "", "guessedname": "_addTestCaseToTestTree", "guessedtype": "function", "params": [{"type": "TestNode", "name": "parentNode", "description": " The node to add the test case to as a child."}, {"type": "YAHOO.tool.TestCase", "name": "testCase", "description": " The test case to add."}]}, "clear": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Removes all test objects from the runner.", "guessedname": "clear", "guessedtype": "function"}, "_buildTestTree": {"return": {"type": "Void", "description": ""}, "description": "Builds the test tree based on items in the master suite. The tree is a hierarchical\nrepresentation of the test suites, test cases, and test functions. The resulting tree\nis stored in _root and the pointer _cur is set to the root initially.", "private": "", "static": "", "guessedname": "_buildTestTree", "guessedtype": "function"}, "_addTestSuiteToTestTree": {"return": {"type": "Void", "description": ""}, "description": "Adds a test suite to the test tree as a child of the specified node.", "private": "", "static": "", "guessedname": "_addTestSuiteToTestTree", "guessedtype": "function", "params": [{"type": "TestNode", "name": "parentNode", "description": " The node to add the test suite to as a child."}, {"type": "YAHOO.tool.TestSuite", "name": "testSuite", "description": " The test suite to add."}]}, "add": {"return": {"type": "Void", "description": ""}, "description": "Adds a test suite or test case to the list of test objects to run.", "static": "", "guessedname": "add", "guessedtype": "function", "params": [{"type": "", "name": "testObject", "description": " Either a TestCase or a TestSuite that should be run."}]}, "_next": {"return": {"type": "TestNode", "description": "The next node in the test tree or null if the end is reached."}, "description": "Retrieves the next node in the test tree.", "private": "", "static": "", "guessedname": "_next", "guessedtype": "function"}, "fireEvent": {"description": "Fires events for the TestRunner. This overrides the default fireEvent()\nmethod from EventProvider to add the type property to the data that is\npassed through on each event call.", "protected": "", "static": "", "guessedname": "fireEvent", "guessedtype": "function", "params": [{"type": "String", "name": "type", "description": " The type of event to fire."}, {"type": "Object", "name": "data", "description": " (Optional) Data for the event."}]}, "_runTest": {"return": {"type": "Void", "description": ""}, "description": "Runs a single test based on the data provided in the node.", "private": "", "static": "", "guessedname": "_runTest", "guessedtype": "function", "params": [{"type": "TestNode", "name": "node", "description": " The TestNode representing the test to run."}], "name": "_runTest"}}, "static": "", "file": "TestRunner.js", "shortname": "TestRunner", "properties": {"_root": {"description": "Pointer to the root node in the test tree.", "private": "", "static": "", "guessedname": "_root", "guessedtype": "property", "type": "TestNode"}, "_cur": {"description": "Pointer to the current node in the test tree.", "private": "", "static": "", "guessedname": "_cur", "guessedtype": "property", "type": "TestNode"}, "masterSuite": {"type": "YAHOO.tool.TestSuite", "static": "", "description": "Suite on which to attach all TestSuites and TestCases to be run.", "private": ""}}, "description": "Runs test suites and test cases, providing events to allowing for the\ninterpretation of test results."}, "YAHOO.widget.Series": {"name": "YAHOO.widget.Series", "constructors": [{"description": "Functionality common to most series. Generally, a <code>Series</code> \nobject shouldn't be instantiated directly. Instead, a subclass with a \nconcrete implementation should be used."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "Series", "file": "Series.js", "guessedtype": "function", "shortname": "Series", "properties": {"displayName": {"type": "String", "description": "The human-readable name of the series.", "guessedname": "displayName", "guessedtype": "property"}, "type": {"type": "String", "description": "The type of series.", "guessedname": "type", "guessedtype": "property"}}, "description": "Functionality common to most series. Generally, a <code>Series</code> \nobject shouldn't be instantiated directly. Instead, a subclass with a \nconcrete implementation should be used."}, "YAHOO.util.Dom.Color": {"name": "YAHOO.util.Dom.Color", "namespace": "YAHOO.util.Dom", "module": "dom", "guessedname": "TO_STRING", "methods": {"toRGB": {"returns": "{String} The converted string", "params": [{"type": "String", "name": "val", "description": " The string to convert to RGB notation."}], "description": "Converts a hex or color string to an rgb string: rgb(0,0,0)", "guessedname": "toRGB", "guessedtype": "function"}, "toHex": {"returns": "{String} The converted string", "params": [{"type": "String", "name": "val", "description": " The string to convert to hex notation."}], "description": "Converts an rgb or color string to a hex string: #123456", "guessedname": "toHex", "guessedtype": "function"}}, "file": "Color.js", "guessedtype": "property", "shortname": "Color", "properties": {"KEYWORDS": {"type": "Object", "description": "Color keywords used when converting to Hex", "guessedname": "KEYWORDS", "guessedtype": "property"}, "re_RGB": {"guessedname": "re_RGB", "type": "Regex", "description": "Regex to parse rgb(0,0,0) formatted strings", "private": "", "guessedtype": "property"}, "re_hex3": {"guessedname": "re_hex3", "type": "Regex", "description": "Regex to parse #123 formatted strings", "private": "", "guessedtype": "property"}, "re_hex": {"guessedname": "re_hex", "type": "Regex", "description": "Regex to parse #123456 formatted strings", "private": "", "guessedtype": "property"}}, "description": "Add style management functionality to DOM."}, "YAHOO.util.DDTarget": {"name": "YAHOO.util.DDTarget", "constructors": [{"params": [{"type": "String", "name": "id", "description": " the id of the element that is a drop target"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop objects"}, {"type": "object", "name": "config", "description": " an object containing configurable attributes\nValid properties for DDTarget in addition to those in \nDragDrop: \nnone"}], "description": "A DragDrop implementation that does not move, but can be a drop \ntarget.  You would get the same result by simply omitting implementation \nfor the event callbacks, but this way we reduce the processing cost of the \nevent listener and the callbacks."}], "namespace": "YAHOO.util", "module": "dragdrop", "guessedname": "DDTarget", "extends": "YAHOO.util.DragDrop", "superclass": "YAHOO.util.DragDrop", "file": "DDTarget.js", "guessedtype": "function", "shortname": "DDTarget", "description": "A DragDrop implementation that does not move, but can be a drop \ntarget.  You would get the same result by simply omitting implementation \nfor the event callbacks, but this way we reduce the processing cost of the \nevent listener and the callbacks."}, "YAHOO.widget.ButtonGroup": {"name": "YAHOO.widget.ButtonGroup", "configs": {"disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the button group should be \ndisabled.  Disabling the button group will disable each button \nin the button group.  Disabled buttons are dimmed and will not \nrespond to user input or fire events."}, "checkedButton": {"default": "null", "type": "{<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>}", "description": "Reference for the button in the button group that \nis checked."}, "container": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|String", "description": "HTML element reference or string specifying the id \nattribute of the HTML element that the button group's markup\nshould be rendered into.", "writeonce": ""}, "name": {"default": "null", "type": "String", "description": "String specifying the name for the button group.  \nThis name will be applied to each button in the button group."}, "value": {"default": "null", "type": "Object", "description": "Object specifying the value for the button group."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the button group."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><div></code> element of the button group."}, {"type": "Object", "name": "p_oElement", "description": " Object literal specifying a set of \nconfiguration attributes used to create the button group."}, {"type": "Object", "name": "p_oAttributes", "description": " Optional. Object literal specifying a set \nof configuration attributes used to create the button group."}], "description": "The ButtonGroup class creates a set of buttons that are mutually \nexclusive; checking one button in the set will uncheck all others in the \nbutton group."}], "namespace": "YAHOO.widget", "module": "button", "events": {"beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "beforeCheckedButtonChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCheckedButtonChange", "description": "Fires before the value for the configuration attribute 'checkedButton' changes. Return false to cancel the attribute change."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "beforeContainerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainerChange", "description": "Fires before the value for the configuration attribute 'container' changes. Return false to cancel the attribute change."}, "checkedButtonChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "checkedButtonChange", "description": "Fires when the value for the configuration attribute 'checkedButton' changes."}, "containerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containerChange", "description": "Fires when the value for the configuration attribute 'container' changes."}, "nameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "nameChange", "description": "Fires when the value for the configuration attribute 'name' changes."}, "beforeNameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNameChange", "description": "Fires before the value for the configuration attribute 'name' changes. Return false to cancel the attribute change."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}}, "guessedname": "ButtonGroup", "methods": {"getButton": {"return": {"type": "<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>", "description": ""}, "params": [{"type": "Number", "name": "p_nIndex", "description": " The index of the button to retrieve from the \nbutton group."}], "description": "Returns the button at the specified index.", "guessedname": "getButton", "guessedtype": "function"}, "_setDisabled": {"protected": "", "params": [{"type": "Boolean", "name": "p_bDisabled", "description": " Boolean indicating the value for\nthe button group's \"disabled\" attribute."}], "description": "Sets the value of the button groups's \n\"disabled\" attribute.", "guessedname": "_setDisabled", "guessedtype": "function"}, "getButtons": {"return": {"type": "Array", "description": ""}, "description": "Returns an array of the buttons in the button group.", "guessedname": "getButtons", "guessedtype": "function"}, "destroy": {"description": "Removes the button group's element from its parent \nelement and removes all event handlers.", "guessedname": "destroy", "guessedtype": "function"}, "addButtons": {"return": {"type": "Array", "description": ""}, "params": [{"type": "Array", "name": "p_aButtons", "description": " Array of <a href=\"YAHOO.widget.Button.html\">\nYAHOO.widget.Button</a> instances to be added \nto the button group."}, {"type": "Array", "name": "p_aButtons", "description": " Array of strings specifying the id \nattribute of the <code><input></code> or <code><span>\n</code> elements to be used to create the buttons to be added to the \nbutton group."}, {"type": "Array", "name": "p_aButtons", "description": " Array of object references for the \n<code><input></code> or <code><span></code> elements \nto be used to create the buttons to be added to the button group."}, {"type": "Array", "name": "p_aButtons", "description": " Array of object literals, each containing\na set of <a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>  \nconfiguration attributes used to configure each button to be added \nto the button group."}], "description": "Adds the array of buttons to the button group.", "guessedname": "addButtons", "guessedtype": "function"}, "focus": {"params": [{"type": "Number", "name": "p_nIndex", "description": " Number indicating the index of the button \nto focus."}], "description": "Sets focus to the button at the specified index.", "guessedname": "focus", "guessedtype": "function"}, "addButton": {"return": {"type": "<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>", "description": ""}, "params": [{"type": "<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>", "name": "p_oButton", "description": " Object reference for the <a href=\"YAHOO.widget.Button.html\">\nYAHOO.widget.Button</a> instance to be added to the button group."}, {"type": "String", "name": "p_oButton", "description": " String specifying the id attribute of the \n<code><input></code> or <code><span></code> element \nto be used to create the button to be added to the button group."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|<a href=\"\nhttp://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#\nID-33759296\">HTMLElement</a>", "name": "p_oButton", "description": " Object reference for the \n<code><input></code> or <code><span></code> element \nto be used to create the button to be added to the button group."}, {"type": "Object", "name": "p_oButton", "description": " Object literal specifying a set of \n<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a> \nconfiguration attributes used to configure the button to be added to \nthe button group."}], "description": "Adds the button to the button group.", "guessedname": "addButton", "guessedtype": "function"}, "removeButton": {"params": [{"type": "Number", "name": "p_nIndex", "description": " Number specifying the index of the button \nto be removed from the button group."}], "description": "Removes the button at the specified index from the \nbutton group.", "guessedname": "removeButton", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the button group."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><div></code> element of the button group."}, {"type": "Object", "name": "p_oElement", "description": " Object literal specifying a set of  \nconfiguration attributes used to create the button group."}, {"type": "Object", "name": "p_oAttributes", "description": " Optional. Object literal specifying a\nset of configuration attributes used to create the button group."}], "description": "The ButtonGroup class's initialization method.", "guessedname": "init", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "p_oAttributes", "description": " Object literal specifying a set of \nconfiguration attributes used to create the button group."}], "description": "Initializes all of the configuration attributes used to  \ncreate the button group.", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the button group.", "guessedname": "toString", "guessedtype": "function"}, "getCount": {"return": {"type": "Number", "description": ""}, "description": "Returns the number of buttons in the button group.", "guessedname": "getCount", "guessedtype": "function"}, "_onAppendTo": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the event that was fired."}], "description": "\"appendTo\" event handler for the button group.", "guessedname": "_onAppendTo", "guessedtype": "function"}, "_onButtonCheckedChange": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the event that was fired."}, {"type": "<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>", "name": "p_oButton", "description": " Object representing the button that fired the event."}], "description": "\"checkedChange\" event handler for each button in the \nbutton group.", "guessedname": "_onButtonCheckedChange", "guessedtype": "function"}, "_onKeyDown": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"keydown\" event handler for the button group.", "guessedname": "_onKeyDown", "guessedtype": "function"}, "check": {"params": [{"type": "Number", "name": "p_nIndex", "description": " Number indicating the index of the button \nto check."}], "description": "Checks the button at the specified index.", "guessedname": "check", "guessedtype": "function"}, "_createGroupElement": {"protected": "", "return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "description": ""}, "description": "Creates the button group's element.", "guessedname": "_createGroupElement", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "buttongroup.js", "guessedtype": "function", "shortname": "ButtonGroup", "properties": {"CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied  \nto the button group's element.", "default": "\"buttongroup\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "_buttons": {"description": "Array of buttons in the button group.", "default": "null", "protected": "", "guessedname": "_buttons", "guessedtype": "property", "type": "Array"}, "CLASS_NAME_PREFIX": {"description": "Prefix used for all class names applied to a ButtonGroup.", "default": "\"yui-\"", "guessedname": "CLASS_NAME_PREFIX", "guessedtype": "property", "type": "String", "final": ""}, "NODE_NAME": {"description": "The name of the tag to be used for the button \ngroup's element.", "default": "\"DIV\"", "guessedname": "NODE_NAME", "guessedtype": "property", "type": "String", "final": ""}}, "description": "The ButtonGroup class creates a set of buttons that are mutually \nexclusive; checking one button in the set will uncheck all others in the \nbutton group."}, "YAHOO.util.ImageLoader.pngBgImgObj": {"name": "YAHOO.util.ImageLoader.pngBgImgObj", "constructors": [{"params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}, {"type": "Object", "name": "ailProps", "description": " The AlphaImageLoader properties to be set for the image\nValid properties are 'sizingMethod' and 'enabled'"}], "description": "PNG background image object. A PNG background image is one whose URL is specified through AlphaImageLoader or by \"background-image\" in the element's style"}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "pngBgImgObj", "methods": {"_applyUrl": {"guessedname": "_applyUrl", "params": [{"type": "Object", "name": "el", "description": "\tHTML DOM element"}], "description": "Inserts the image URL into the DOM so that the image is displayed.\nIf the browser is determined to be IE6 (or older), sets the AlphaImageLoader src; otherwise sets style.backgroundImage", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.ImageLoader.imgObj", "superclass": "YAHOO.util.ImageLoader.imgObj", "file": "ImageLoader.js", "guessedtype": "function", "shortname": "pngBgImgObj", "properties": {"props": {"type": "Object", "description": "AlphaImageLoader properties to be set for the image.\nValid properties are \"sizingMethod\" and \"enabled\".", "guessedname": "props", "guessedtype": "property"}}, "description": "PNG background image object. A PNG background image is one whose URL is specified through AlphaImageLoader or by \"background-image\" in the element's style"}, "YAHOO.widget.MenuManager": {"name": "YAHOO.widget.MenuManager", "namespace": "YAHOO.widget", "module": "menu", "guessedname": "MenuManager", "methods": {"getFocusedMenu": {"return": {"type": "YAHOO.widget.Menu", "description": ""}, "description": "Returns a reference to the menu that currently \nhas focus.", "guessedname": "getFocusedMenu", "guessedtype": "function"}, "getMenuItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "String", "name": "p_sId", "description": " String specifying the id of the \n<code><li></code> element representing the menu item to\nbe retrieved."}], "description": "Returns a menu item with the specified id.", "guessedname": "getMenuItem", "guessedtype": "function"}, "onDOMEvent": {"params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "Generic, global event handler for all of a menu's \nDOM-based events.  This listens for events against the document \nobject.  If the target of a given event is a member of a menu or \nmenu item's DOM, the instance's corresponding Custom Event is fired.", "private": ""}, "getMenu": {"return": {"type": "YAHOO.widget.Menu", "description": ""}, "params": [{"type": "String", "name": "p_sId", "description": " String specifying the id of the \n<code><div></code> element representing the menu to\nbe retrieved."}], "description": "Returns a menu with the specified id.", "guessedname": "getMenu", "guessedtype": "function"}, "onMenuVisibleConfigChange": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "Event handler for when the \"visible\" configuration  \nproperty of a Menu instance changes.", "private": ""}, "getMenuRootElement": {"params": [{"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>", "name": "p_oElement", "description": " Object \nspecifying an HTML element."}], "description": "Finds the root DIV node of a menu or the root LI node of \na menu item.", "private": ""}, "addMenu": {"params": [{"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object specifying the Menu  \ninstance to be added."}], "description": "Adds a menu to the collection of known menus.", "guessedname": "addMenu", "guessedtype": "function"}, "onMenuDestroy": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The menu that fired the event."}], "description": "\"destroy\" event handler for a menu.", "private": ""}, "onMenuBlur": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"blur\" event handler for a MenuItem instance.", "private": ""}, "getVisible": {"return": {"type": "Object", "description": ""}, "description": "Returns a collection of all visible menus registered\nwith the menu manger.", "guessedname": "getVisible", "guessedtype": "function"}, "getFocusedMenuItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Returns a reference to the menu item that currently \nhas focus.", "guessedname": "getFocusedMenuItem", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu manager.", "guessedname": "toString", "guessedtype": "function"}, "getMenuItemGroup": {"return": {"type": "Array", "description": ""}, "params": [{"type": "String", "name": "p_sId", "description": " String specifying the id of the \n<code><ul></code> element representing the group of \nmenu items to be retrieved."}], "description": "Returns an array of menu item instances whose \ncorresponding <code><li></code> elements are child \nnodes of the <code><ul></code> element with the \nspecified id.", "guessedname": "getMenuItemGroup", "guessedtype": "function"}, "removeItem": {"params": [{"type": "MenuItem", "name": "p_oMenuItem", "description": " The MenuItem instance to be removed."}], "description": "Removes a MenuItem instance from the MenuManager's collection of MenuItems.", "private": ""}, "getMenus": {"return": {"type": "Object", "description": ""}, "description": "Returns a collection of all menus registered with the \nmenu manger.", "guessedname": "getMenus", "guessedtype": "function"}, "onItemDestroy": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"destroy\" event handler for a MenuItem instance.", "private": ""}, "onItemAdded": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"itemadded\" event handler for a Menu instance.", "private": ""}, "onMenuFocus": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"focus\" event handler for a MenuItem instance.", "private": ""}, "hideVisible": {"description": "Hides all visible, dynamically positioned menus \n(excluding instances of YAHOO.widget.MenuBar).", "guessedname": "hideVisible", "guessedtype": "function"}, "removeMenu": {"params": [{"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object specifying the Menu  \ninstance to be removed."}], "description": "Removes a menu from the collection of known menus.", "guessedname": "removeMenu", "guessedtype": "function"}}, "static": "", "file": "menumanager.js", "guessedtype": "function", "shortname": "MenuManager", "description": "Singleton that manages a collection of all menus and menu items.  Listens \nfor DOM events at the document level and dispatches the events to the \ncorresponding menu or menu item."}, "YAHOO.widget.Logger": {"name": "YAHOO.widget.Logger", "namespace": "YAHOO.widget", "module": "logger", "events": {"logResetEvent": {"description": "Fired when the Logger has been reset has been created.", "guessedname": "logResetEvent", "guessedtype": "property"}, "newLogEvent": {"params": [{"type": "String", "name": "sMsg", "description": "  Log message."}], "description": "Fired when a new log message has been created.", "guessedname": "newLogEvent", "guessedtype": "property"}, "sourceCreateEvent": {"params": [{"type": "String", "name": "sSource", "description": "  Source name."}], "description": "Fired when a new source has been named.", "guessedname": "sourceCreateEvent", "guessedtype": "property"}, "categoryCreateEvent": {"params": [{"type": "String", "name": "sCategory", "description": "  Category name."}], "description": "Fired when a new category has been created.", "guessedname": "categoryCreateEvent", "guessedtype": "property"}}, "guessedname": "Logger", "methods": {"reset": {"description": "Resets internal stack and startTime, enables Logger, and fires logResetEvent.", "guessedname": "reset", "guessedtype": "function"}, "_isNewSource": {"return": {"type": "Boolean", "description": "Returns true if source is unknown, else returns false."}, "description": "Checks to see if a source already exists.", "private": "", "params": [{"type": "String", "name": "sSource", "description": "  Source name."}], "guessedname": "_isNewSource", "guessedtype": "function"}, "getStack": {"return": {"type": "Object[]", "description": "Array of log message objects."}, "description": "Public accessor to internal stack of log message objects.", "guessedname": "getStack", "guessedtype": "function"}, "log": {"params": [{"type": "String", "name": "sMsg", "description": "  The log message."}, {"type": "String", "name": "sCategory", "description": "  Category of log message, or null."}, {"type": "String", "name": "sSource", "description": "  Source of LogWriter, or null if global."}], "description": "Saves a log message to the stack and fires newLogEvent. If the log message is\nassigned to an unknown category, creates a new category. If the log message is\nfrom an unknown source, creates a new source.  If browser console is enabled,\noutputs the log message to browser console.", "guessedname": "log", "guessedtype": "function"}, "_onWindowError": {"guessedname": "_onWindowError", "params": [{"type": "String", "name": "sMsg", "description": "  The error message."}, {"type": "String", "name": "sUrl", "description": "  URL of the error."}, {"type": "String", "name": "sLine", "description": "  Line number of the error."}], "description": "Handles logging of messages due to window error events.", "private": "", "guessedtype": "function"}, "_isNewCategory": {"return": {"type": "Boolean", "description": "Returns true if category is unknown, else returns false."}, "description": "Checks to see if a category has already been created.", "private": "", "params": [{"type": "String", "name": "sCategory", "description": "  Category name."}], "guessedname": "_isNewCategory", "guessedtype": "function"}, "handleWindowErrors": {"description": "Surpresses native JavaScript errors and outputs to console. By default,\nLogger does not handle JavaScript window error events.\nNB: Not all browsers support the window.onerror event.", "guessedname": "handleWindowErrors", "guessedtype": "function"}, "_printToBrowserConsole": {"guessedname": "_printToBrowserConsole", "params": [{"type": "Object", "name": "oEntry", "description": "  Log entry object."}], "description": "Outputs a log message to global console.log() function.", "private": "", "guessedtype": "function"}, "_createNewCategory": {"guessedname": "_createNewCategory", "params": [{"type": "String", "name": "sCategory", "description": "  Category name."}], "description": "Creates a new category of log messages and fires categoryCreateEvent.", "private": "", "guessedtype": "function"}, "_createNewSource": {"guessedname": "_createNewSource", "params": [{"type": "String", "name": "sSource", "description": "  Source name."}], "description": "Creates a new source of log messages and fires sourceCreateEvent.", "private": "", "guessedtype": "function"}, "enableBrowserConsole": {"description": "Enables output to the browser's global console.log() function, which is used\nby the Firebug extension to Firefox as well as Safari.", "guessedname": "enableBrowserConsole", "guessedtype": "function"}, "disableBrowserConsole": {"description": "Disables output to the browser's global console.log() function, which is used\nby the Firebug extension to Firefox as well as Safari.", "guessedname": "disableBrowserConsole", "guessedtype": "function"}, "unhandleWindowErrors": {"description": "Unsurpresses native JavaScript errors. By default,\nLogger does not handle JavaScript window error events.\nNB: Not all browsers support the window.onerror event.", "guessedname": "unhandleWindowErrors", "guessedtype": "function"}, "getStartTime": {"return": {"type": "Date", "description": "Internal date of when Logger singleton was initialized."}, "description": "Public accessor to internal start time.", "guessedname": "getStartTime", "guessedtype": "function"}}, "static": "", "file": "Logger.js", "guessedtype": "property", "shortname": "Logger", "properties": {"maxStackEntries": {"default": "2500", "type": "Number", "static": "", "description": "Upper limit on size of internal stack."}, "_lastTime": {"type": "Date", "static": "", "description": "Timestamp of last logged message.", "private": ""}, "_startTime": {"type": "Date", "static": "", "description": "Static timestamp of Logger initialization.", "private": ""}, "_browserConsoleEnabled": {"default": "false", "type": "Boolean", "static": "", "description": "Internal property to track whether output to browser console is enabled.", "private": ""}, "loggerEnabled": {"default": "true", "type": "Boolean", "static": "", "description": "True if Logger is enabled, false otherwise."}, "sources": {"default": "[\"global\"]", "type": "String[]", "static": "", "description": "Array of sources."}, "_stack": {"type": "Array", "static": "", "description": "Array to hold all log messages.", "private": ""}, "categories": {"default": "[\"info\",\"warn\",\"error\",\"time\",\"window\"]", "type": "String[]", "static": "", "description": "Array of categories."}}, "description": "The singleton Logger class provides core log management functionality. Saves\nlogs written through the global YAHOO.log function or written by a LogWriter\ninstance. Provides access to logs for reading by a LogReader instance or\nnative browser console such as the Firebug extension to Firefox or Safari's\nJavaScript console through integration with the console.log() method."}, "YAHOO.widget.Overlay": {"name": "YAHOO.widget.Overlay", "configs": {"iframe": {"default": "true for IE6 and below, false for all other browsers.", "type": "Boolean", "description": "Boolean indicating whether or not the Overlay should \nhave an IFRAME shim; used to prevent SELECT elements from \npoking through an Overlay instance in IE6.  When set to \"true\", \nthe iframe shim is created when the Overlay instance is intially\nmade visible."}, "constraintoviewport": {"default": "false", "type": "Boolean", "description": "True if the Overlay should be prevented from being positioned \nout of the viewport."}, "height": {"default": "null", "type": "String", "description": "CSS height of the Overlay."}, "zIndex": {"default": "null", "type": "Number", "description": "CSS z-index of the Overlay."}, "width": {"default": "null", "type": "String", "description": "CSS width of the Overlay."}, "xy": {"default": "null", "type": "Number[]", "description": "An array with the absolute x and y positions of the Overlay"}, "preventcontextoverlap": {"default": "false", "type": "Boolean", "description": "Boolean indicating whether or not the Overlay should overlap its \ncontext element (defined using the \"context\" configuration property) when the \n\"constraintoviewport\" configuration property is set to \"true\"."}, "context": {"default": "null", "type": "Array", "description": "<p>\nThe array of context arguments for context-sensitive positioning. \n</p>\n<p>\nThe format of the array is: <code>[contextElementOrId, overlayCorner, contextCorner, arrayOfTriggerEvents (optional), xyOffset (optional)]</code>, the\nthe 5 array elements described in detail below:\n</p>\n<dl>\n<dt>contextElementOrId <String|HTMLElement></dt>\n<dd>A reference to the context element to which the overlay should be aligned (or it's id).</dd>\n<dt>overlayCorner <String></dt>\n<dd>The corner of the overlay which is to be used for alignment. This corner will be aligned to the \ncorner of the context element defined by the \"contextCorner\" entry which follows. Supported string values are: \n\"tr\" (top right), \"tl\" (top left), \"br\" (bottom right), or \"bl\" (bottom left).</dd>\n<dt>contextCorner <String></dt>\n<dd>The corner of the context element which is to be used for alignment. Supported string values are the same ones listed for the \"overlayCorner\" entry above.</dd>\n<dt>arrayOfTriggerEvents (optional) <Array[String|CustomEvent]></dt>\n<dd>\n<p>\nBy default, context alignment is a one time operation, aligning the Overlay to the context element when context configuration property is set, or when the <a href=\"#method_align\">align</a> \nmethod is invoked. However, you can use the optional \"arrayOfTriggerEvents\" entry to define the list of events which should force the overlay to re-align itself with the context element. \nThis is useful in situations where the layout of the document may change, resulting in the context element's position being modified.\n</p>\n<p>\nThe array can contain either event type strings for events the instance publishes (e.g. \"beforeShow\") or CustomEvent instances. Additionally the following\n3 static container event types are also currently supported : <code>\"windowResize\", \"windowScroll\", \"textResize\"</code> (defined in <a href=\"#property__TRIGGER_MAP\">_TRIGGER_MAP</a> private property).\n</p>\n</dd>\n<dt>xyOffset <Number[]></dt>\n<dd>\nA 2 element Array specifying the X and Y pixel amounts by which the Overlay should be offset from the aligned corner. e.g. [5,0] offsets the Overlay 5 pixels to the left, <em>after</em> aligning the given context corners.\nNOTE: If using this property and no triggers need to be defined, the arrayOfTriggerEvents property should be set to null to maintain correct array positions for the arguments. \n</dd>\n</dl>\n<p>\nFor example, setting this property to <code>[\"img1\", \"tl\", \"bl\"]</code> will \nalign the Overlay's top left corner to the bottom left corner of the\ncontext element with id \"img1\".\n</p>\n<p>\nSetting this property to <code>[\"img1\", \"tl\", \"bl\", null, [0,5]</code> will \nalign the Overlay's top left corner to the bottom left corner of the\ncontext element with id \"img1\", and then offset it by 5 pixels on the Y axis (providing a 5 pixel gap between the bottom of the context element and top of the overlay).\n</p>\n<p>\nAdding the optional trigger values: <code>[\"img1\", \"tl\", \"bl\", [\"beforeShow\", \"windowResize\"], [0,5]]</code>,\nwill re-align the overlay position, whenever the \"beforeShow\" or \"windowResize\" events are fired.\n</p>"}, "autofillheight": {"default": "null", "type": "String", "description": "Standard module element which should auto fill out the height of the Overlay if the height config property is set.\nSupported values are \"header\", \"body\", \"footer\"."}, "y": {"default": "null", "type": "Number", "description": "The absolute y-coordinate position of the Overlay"}, "x": {"default": "null", "type": "Number", "description": "The absolute x-coordinate position of the Overlay"}, "fixedcenter": {"default": "false", "type": "Boolean | String", "description": "Determines whether or not the Overlay should be anchored \nto the center of the viewport.\n<p>This property can be set to:</p>\n<dl>\n<dt>true</dt>\n<dd>\nTo enable fixed center positioning\n<p>\nWhen enabled, the overlay will \nbe positioned in the center of viewport when initially displayed, and \nwill remain in the center of the viewport whenever the window is \nscrolled or resized.\n</p>\n<p>\nIf the overlay is too big for the viewport, \nit's top left corner will be aligned with the top left corner of the viewport.\n</p>\n</dd>\n<dt>false</dt>\n<dd>\nTo disable fixed center positioning.\n<p>In this case the overlay can still be \ncentered as a one-off operation, by invoking the <code>center()</code> method,\nhowever it will not remain centered when the window is scrolled/resized.\n</dd>\n<dt>\"contained\"<dt>\n<dd>To enable fixed center positioning, as with the <code>true</code> option.\n<p>However, unlike setting the property to <code>true</code>, \nwhen the property is set to <code>\"contained\"</code>, if the overlay is \ntoo big for the viewport, it will not get automatically centered when the \nuser scrolls or resizes the window (until the window is large enough to contain the \noverlay). This is useful in cases where the Overlay has both header and footer \nUI controls which the user may need to access.\n</p>\n</dd>\n</dl>"}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Overlay <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Overlay"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this Overlay. See configuration \ndocumentation for more details."}], "description": "Overlay is a Module that is absolutely positioned above the page flow. It \nhas convenience methods for positioning and sizing, as well as options for \ncontrolling zIndex and constraining the Overlay's position to the current \nvisible viewport. Overlay also contains a dynamicly generated IFRAME which \nis placed beneath it for Internet Explorer 6 and 5.x so that it will be \nproperly rendered above SELECT elements."}], "namespace": "YAHOO.widget", "module": "container", "events": {"YAHOO.widget.Overlay.windowScrollEvent": {"description": "A singleton CustomEvent used for reacting to the DOM event for \nwindow scroll", "guessedname": "windowScrollEvent", "guessedtype": "property"}, "moveEvent": {"params": [{"type": "Number", "name": "x", "description": " x coordinate"}, {"type": "Number", "name": "y", "description": " y coordinate"}], "description": "CustomEvent fired after the Overlay is moved.", "guessedname": "moveEvent", "guessedtype": "property"}, "YAHOO.widget.Overlay.windowResizeEvent": {"description": "A singleton CustomEvent used for reacting to the DOM event for\nwindow resize", "guessedname": "windowResizeEvent", "guessedtype": "property"}, "beforeMoveEvent": {"params": [{"type": "Number", "name": "x", "description": " x coordinate"}, {"type": "Number", "name": "y", "description": " y coordinate"}], "description": "CustomEvent fired before the Overlay is moved.", "guessedname": "beforeMoveEvent", "guessedtype": "property"}}, "guessedname": "Overlay", "methods": {"moveTo": {"params": [{"type": "Number", "name": "x", "description": " The Overlay's new x position"}, {"type": "Number", "name": "y", "description": " The Overlay's new y position"}], "description": "Moves the Overlay to the specified position. This function is  \nidentical to calling this.cfg.setProperty(\"xy\", [x,y]);", "guessedname": "moveTo", "guessedtype": "function"}, "stackIframe": {"description": "Sets the zindex of the iframe shim, if it exists, based on the zindex of\nthe Overlay element. The zindex of the iframe is set to be one less \nthan the Overlay element's zindex.\n<p>NOTE: This method will not bump up the zindex of the Overlay element\nto ensure that the iframe shim has a non-negative zindex.\nIf you require the iframe zindex to be 0 or higher, the zindex of \nthe Overlay element should be set to a value greater than 0, before \nthis method is called.\n</p>", "guessedname": "stackIframe", "guessedtype": "function"}, "showIframe": {"description": "Shows the iframe shim, if it has been enabled.", "guessedname": "showIframe", "guessedtype": "function"}, "configFixedCenter": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"fixedcenter\" property \nis changed.", "guessedname": "configFixedCenter", "guessedtype": "function"}, "YAHOO.widget.Overlay.windowResizeHandler": {"static": "", "params": [{"type": "DOMEvent", "name": "e", "description": " The DOM resize event"}], "description": "The DOM event handler used to fire the CustomEvent for window resize", "guessedname": "windowResizeHandler", "guessedtype": "function"}, "showMacGeckoScrollbars": {"description": "Adds a CSS class (\"show-scrollbars\") and removes a CSS class \n(\"hide-scrollbars\") to the Overlay to fix a bug in Gecko on Mac OS X \n(https://bugzilla.mozilla.org/show_bug.cgi?id=187435)", "guessedname": "showMacGeckoScrollbars", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Overlay."}, "description": "Returns a String representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "_getConstrainedPos": {"return": {"type": "Number", "description": "The constrained coordinate value"}, "description": "Shared implementation method for getConstrainedX and getConstrainedY.\n<p>\nGiven a coordinate value, returns the calculated coordinate required to \nposition the Overlay if it is to be constrained to the viewport, based on the \ncurrent element size, viewport dimensions, scroll values and preventoverlap \nsettings\n</p>", "protected": "", "params": [{"type": "String", "name": "pos", "description": " The coordinate which needs to be constrained, either \"x\" or \"y\""}, {"type": "Number", "name": "The", "description": " coordinate value which needs to be constrained"}], "guessedname": "_getConstrainedPos", "guessedtype": "function"}, "hideMacGeckoScrollbars": {"description": "Adds a CSS class (\"hide-scrollbars\") and removes a CSS class \n(\"show-scrollbars\") to the Overlay to fix a bug in Gecko on Mac OS X \n(https://bugzilla.mozilla.org/show_bug.cgi?id=187435)", "guessedname": "hideMacGeckoScrollbars", "guessedtype": "function"}, "_setDomVisibility": {"protected": "", "params": [{"type": "boolean", "name": "visible", "description": " Whether to show or hide the Overlay's outer element"}], "description": "Internal implementation to set the visibility of the overlay in the DOM.", "guessedname": "_setDomVisibility", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Overlay which are fired  \nautomatically at appropriate times by the Overlay class.", "guessedname": "initEvents", "guessedtype": "function"}, "fitsInViewport": {"return": {"type": "", "description": "boolean true if the Overlay will fit, false if not"}, "description": "Determines if the Overlay (including the offset value defined by Overlay.VIEWPORT_OFFSET) \nwill fit entirely inside the viewport, in both dimensions - width and height.", "guessedname": "fitsInViewport", "guessedtype": "function"}, "bringToTop": {"description": "Places the Overlay on top of all other instances of \nYAHOO.widget.Overlay.", "guessedname": "bringToTop", "guessedtype": "function"}, "_processTriggers": {"protected": "", "params": [{"type": "Array[String|CustomEvent]", "name": "triggers", "description": " An array of either CustomEvents, event type strings \n(e.g. \"beforeShow\", \"windowScroll\") to/from which the provided function should be \nsubscribed/unsubscribed respectively."}, {"type": "String", "name": "mode", "description": " Either \"subscribe\" or \"unsubscribe\", specifying whether or not\nwe are subscribing or unsubscribing trigger listeners"}, {"type": "Function", "name": "fn", "description": " The function to be subscribed/unsubscribed to/from the trigger event.\nContext is always set to the overlay instance, and no additional object argument \nget passed to the subscribed function."}], "description": "Utility method that subscribes or unsubscribes the given \nfunction from the list of trigger events provided.", "guessedname": "_processTriggers", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Overlay <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Overlay"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this Overlay. \nSee configuration documentation for more details."}], "description": "The Overlay initialization method, which is executed for Overlay and  \nall of its subclasses. This method is automatically called by the \nconstructor, and  sets up all DOM references for pre-existing markup, \nand creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "configXY": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"xy\" property is changed.", "guessedname": "configXY", "guessedtype": "function"}, "_getPreciseHeight": {"return": {"type": "Float", "description": "The sub-pixel height if supported by the browser, else the rounded height."}, "description": "Returns the sub-pixel height of the el, using getBoundingClientRect, if available,\notherwise returns the offsetHeight", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": ""}], "guessedname": "_getPreciseHeight", "guessedtype": "function"}, "_autoFillOnHeightChange": {"protected": "", "params": [{"type": "String", "name": "type", "description": " The event type"}, {"type": "Array", "name": "args", "description": " The array of arguments passed to event subscribers"}, {"type": "HTMLElement", "name": "el", "description": " The header, body or footer element which is to be resized to fill\nout the containers height"}], "description": "The default custom event handler executed when the overlay's height is changed, \nif the autofillheight property has been set.", "guessedname": "_autoFillOnHeightChange", "guessedtype": "function"}, "fillHeight": {"params": [{"type": "HTMLElement", "name": "el", "description": " The element which should be resized to fill out the height\nof the container element."}], "description": "<p>\nSets the height on the provided header, body or footer element to \nfill out the height of the container. It determines the height of the \ncontainers content box, based on it's configured height value, and \nsets the height of the autofillheight element to fill out any \nspace remaining after the other standard module element heights \nhave been accounted for.\n</p>\n<p><strong>NOTE:</strong> This method is not designed to work if an explicit \nheight has not been set on the container, since for an \"auto\" height container, \nthe heights of the header/body/footer will drive the height of the container.</p>", "guessedname": "fillHeight", "guessedtype": "function"}, "syncPosition": {"description": "Synchronizes the Panel's \"xy\", \"x\", and \"y\" properties with the \nPanel's position in the DOM. This is primarily used to update  \nposition information during drag & drop.", "guessedname": "syncPosition", "guessedtype": "function"}, "hideIframe": {"description": "Hides the iframe shim, if it has been enabled.", "guessedname": "hideIframe", "guessedtype": "function"}, "configHeight": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"height\" property is changed.", "guessedname": "configHeight", "guessedtype": "function"}, "getConstrainedXY": {"return": {"type": "Array", "description": "The constrained x and y coordinates at index 0 and 1 respectively;"}, "params": [{"type": "Number", "name": "x", "description": " The X coordinate value to be constrained"}, {"type": "Number", "name": "y", "description": " The Y coordinate value to be constrained"}], "description": "Given x, y coordinate values, returns the calculated coordinates required to \nposition the Overlay if it is to be constrained to the viewport, based on the \ncurrent element size, viewport dimensions and scroll values.", "guessedname": "getConstrainedXY", "guessedtype": "function"}, "configContext": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"context\" property\nis changed.", "guessedname": "configContext", "guessedtype": "function"}, "_preventOverlap": {"return": {"type": "Number", "description": "The new coordinate value which was set to prevent overlap"}, "description": "Helper method, used to position the Overlap to prevent overlap with the \ncontext element (used when preventcontextoverlap is enabled)", "protected": "", "params": [{"type": "String", "name": "pos", "description": " The coordinate to prevent overlap for, either \"x\" or \"y\"."}, {"type": "HTMLElement", "name": "contextEl", "description": " The context element"}, {"type": "Number", "name": "overlaySize", "description": " The related overlay dimension value (for \"x\", the width, for \"y\", the height)"}, {"type": "Number", "name": "viewportSize", "description": " The related viewport dimension value (for \"x\", the width, for \"y\", the height)"}, {"type": "Object", "name": "docScroll", "description": "  The related document scroll value (for \"x\", the scrollLeft, for \"y\", the scrollTop)"}], "guessedname": "_preventOverlap", "guessedtype": "function"}, "onDomResize": {"params": [{"type": "DOMEvent", "name": "e", "description": " The resize DOM event"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "Event handler fired when the resize monitor element is resized.", "guessedname": "onDomResize", "guessedtype": "function"}, "configConstrainToViewport": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for \nthe property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"constraintoviewport\" \nproperty is changed.", "guessedname": "configConstrainToViewport", "guessedtype": "function"}, "configVisible": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration\nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"visible\" property is \nchanged.  This method is responsible for firing showEvent\nand hideEvent.", "guessedname": "configVisible", "guessedtype": "function"}, "_validateAutoFillHeight": {"return": {"type": "", "description": "true, if valid, false otherwise"}, "description": "autofillheight validator. Verifies that the autofill value is either null \nor one of the strings : \"body\", \"header\" or \"footer\".", "protected": "", "params": [{"type": "String", "name": "val", "description": ""}], "guessedname": "_validateAutoFillHeight", "guessedtype": "function"}, "_alignOnTrigger": {"protected": "", "params": [{"type": "String", "name": "type", "description": " The event type (not used by the default implementation)"}, {"type": "Any[]", "name": "args", "description": " The array of arguments for the trigger event (not used by the default implementation)"}], "description": "Custom Event handler for context alignment triggers. Invokes the align method", "guessedname": "_alignOnTrigger", "guessedtype": "function"}, "configWidth": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"width\" property is changed.", "guessedname": "configWidth", "guessedtype": "function"}, "destroy": {"description": "Removes the Overlay element from the DOM and sets all child \nelements to null.", "guessedname": "destroy", "guessedtype": "function"}, "forceContainerRedraw": {"description": "Can be used to force the container to repaint/redraw it's contents.\n<p>\nBy default applies and then removes a 1px bottom margin through the \napplication/removal of a \"yui-force-redraw\" class.\n</p>\n<p>\nIt is currently used by Overlay to force a repaint for webkit \nbrowsers, when centering.\n</p>", "guessedname": "forceContainerRedraw", "guessedtype": "function"}, "_primeXYFromDOM": {"protected": "", "description": "Set's the container's XY value from DOM if not already set.\nDiffers from syncPosition, in that the XY value is only sync'd with DOM if \nnot already set. The method also refire's the XY config property event, so any\nbeforeMove, Move event listeners are invoked.", "guessedname": "_primeXYFromDOM", "guessedtype": "function"}, "configAutoFillHeight": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"autofillheight\" property is changed.", "guessedname": "configAutoFillHeight", "guessedtype": "function"}, "YAHOO.widget.Overlay.windowScrollHandler": {"static": "", "params": [{"type": "DOMEvent", "name": "e", "description": " The DOM scroll event"}], "description": "The DOM event handler used to fire the CustomEvent for window scroll", "guessedname": "windowScrollHandler", "guessedtype": "function"}, "center": {"description": "Centers the container in the viewport.", "guessedname": "center", "guessedtype": "function"}, "_findTriggerCE": {"guessedname": "_findTriggerCE", "params": [{"type": "String|CustomEvent", "name": "t", "description": " Either a CustomEvent, or event type (e.g. \"windowScroll\") for which a \ncustom event instance needs to be looked up from the Overlay._TRIGGER_MAP."}], "description": "Helper method to locate the custom event instance for the event name string\npassed in. As a convenience measure, any custom events passed in are returned.", "private": "", "guessedtype": "function"}, "align": {"params": [{"type": "String", "name": "elementAlign", "description": "  The String representing the corner of \nthe Overlay that should be aligned to the context element"}, {"type": "String", "name": "contextAlign", "description": "  The corner of the context element \nthat the elementAlign corner should stick to."}, {"type": "Number[]", "name": "xyOffset", "description": " Optional. A 2 element array specifying the x and y pixel offsets which should be applied\nafter aligning the element and context corners. For example, passing in [5, -10] for this value, would offset the \nOverlay by 5 pixels along the X axis (horizontally) and -10 pixels along the Y axis (vertically) after aligning the specified corners."}], "description": "Aligns the Overlay to its context element using the specified corner \npoints (represented by the constants TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, \nand BOTTOM_RIGHT.", "guessedname": "align", "guessedtype": "function"}, "syncIframe": {"description": "Syncronizes the size and position of iframe shim to that of its \ncorresponding Overlay instance.", "guessedname": "syncIframe", "guessedtype": "function"}, "configIframe": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"iframe\" property is changed.", "guessedname": "configIframe", "guessedtype": "function"}, "_getComputedHeight": {"return": {"type": "Number", "description": "The content box height of the given element, or null if it could not be determined."}, "description": "Determines the content box height of the given element (height of the element, without padding or borders) in pixels.", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The element for which the content height needs to be determined"}], "guessedname": "_getComputedHeight", "guessedtype": "function"}, "configY": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"y\" property is changed.", "guessedname": "configY", "guessedtype": "function"}, "configX": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"x\" property is changed.", "guessedname": "configX", "guessedtype": "function"}, "getConstrainedY": {"return": {"type": "Number", "description": "The constrained y coordinate"}, "params": [{"type": "Number", "name": "y", "description": " The Y coordinate value to be constrained"}], "description": "Given y coordinate value, returns the calculated y coordinate required to \nposition the Overlay if it is to be constrained to the viewport, based on the \ncurrent element size, viewport dimensions and scroll values.", "guessedname": "getConstrainedY", "guessedtype": "function"}, "getConstrainedX": {"return": {"type": "Number", "description": "The constrained x coordinate"}, "params": [{"type": "Number", "name": "x", "description": " The X coordinate value to be constrained"}], "description": "Given x coordinate value, returns the calculated x coordinate required to \nposition the Overlay if it is to be constrained to the viewport, based on the \ncurrent element size, viewport dimensions and scroll values.", "guessedname": "getConstrainedX", "guessedtype": "function"}, "configzIndex": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"zIndex\" property is changed.", "guessedname": "configzIndex", "guessedtype": "function"}, "doCenterOnDOMEvent": {"description": "Fixed center event handler used for centering on scroll/resize, but only if \nthe overlay is visible and, if \"fixedcenter\" is set to \"contained\", only if \nthe overlay fits within the viewport.", "guessedname": "doCenterOnDOMEvent", "guessedtype": "function"}, "enforceConstraints": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler executed when the moveEvent is fired, if the \n\"constraintoviewport\" is set to true.", "guessedname": "enforceConstraints", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be changed \nusing the Overlay's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Module", "superclass": "YAHOO.widget.Module", "file": "Overlay.js", "guessedtype": "function", "shortname": "Overlay", "properties": {"DEFAULT_CONFIG": {"description": "Constant representing the Overlay's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "YAHOO.widget.Overlay.CSS_IFRAME": {"description": "Constant representing the default CSS class used for an Overlay iframe shim.", "static": "", "guessedname": "CSS_IFRAME", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay.STD_MOD_RE": {"description": "Constant representing the names of the standard module elements\nused in the overlay.", "static": "", "guessedname": "STD_MOD_RE", "guessedtype": "property", "type": "RegExp", "final": ""}, "YAHOO.widget.Overlay.CSS_HIDDEN": {"description": "Constant representing the default hidden CSS class used for an Overlay. This class is \napplied to the overlay's outer DIV whenever it's hidden.", "static": "", "guessedname": "CSS_HIDDEN", "guessedtype": "property", "type": "String", "final": ""}, "CONTEXT_TRIGGERS": {"final": "", "type": "Array", "description": "<p>\nArray of default event types which will trigger\ncontext alignment for the Overlay class.\n</p>\n<p>The array is empty by default for Overlay,\nbut maybe populated in future releases, so classes extending\nOverlay which need to define their own set of CONTEXT_TRIGGERS\nshould concatenate their super class's prototype.CONTEXT_TRIGGERS \nvalue with their own array of values.\n</p>\n<p>\nE.g.:\n<code>CustomOverlay.prototype.CONTEXT_TRIGGERS = YAHOO.widget.Overlay.prototype.CONTEXT_TRIGGERS.concat([\"windowScroll\"]);</code>\n</p>", "guessedname": "CONTEXT_TRIGGERS", "guessedtype": "property"}, "YAHOO.widget.Overlay._TRIGGER_MAP": {"description": "Internal map of special event types, which are provided\nby the instance. It maps the event type to the custom event \ninstance. Contains entries for the \"windowScroll\", \"windowResize\" and\n\"textResize\" static container events.", "private": "", "static": "", "guessedname": "_TRIGGER_MAP", "guessedtype": "property", "type": "Object"}, "YAHOO.widget.Overlay.CSS_OVERLAY": {"description": "Constant representing the default CSS class used for an Overlay", "static": "", "guessedname": "CSS_OVERLAY", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay._initialized": {"guessedname": "_initialized", "type": "Boolean", "description": "A boolean that indicated whether the window resize and scroll events have \nalready been subscribed to.", "private": "", "guessedtype": "property"}, "YAHOO.widget.Overlay.BOTTOM_RIGHT": {"description": "Constant representing the bottom right corner of an element, used for \nconfiguring the context element alignment", "static": "", "guessedname": "BOTTOM_RIGHT", "guessedtype": "property", "type": "String", "final": ""}, "EVENT_TYPES": {"description": "Constant representing the name of the Overlay's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "YAHOO.widget.Overlay.VIEWPORT_OFFSET": {"description": "Number representing the minimum distance an Overlay instance should be \npositioned relative to the boundaries of the browser's viewport, in pixels.", "default": "10", "static": "", "guessedname": "VIEWPORT_OFFSET", "guessedtype": "property", "type": "Number", "final": ""}, "YAHOO.widget.Overlay.TOP_RIGHT": {"description": "Constant representing the top right corner of an element, used for \nconfiguring the context element alignment", "static": "", "guessedname": "TOP_RIGHT", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay.TOP_LEFT": {"description": "Constant representing the top left corner of an element, used for \nconfiguring the context element alignment", "static": "", "guessedname": "TOP_LEFT", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay.IFRAME_SRC": {"description": "The URL that will be placed in the iframe", "default": "3", "static": "", "guessedname": "IFRAME_SRC", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay.BOTTOM_LEFT": {"description": "Constant representing the top bottom left corner of an element, used for \nconfiguring the context element alignment", "static": "", "guessedname": "BOTTOM_LEFT", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Overlay is a Module that is absolutely positioned above the page flow. It \nhas convenience methods for positioning and sizing, as well as options for \ncontrolling zIndex and constraining the Overlay's position to the current \nvisible viewport. Overlay also contains a dynamicly generated IFRAME which \nis placed beneath it for Internet Explorer 6 and 5.x so that it will be \nproperly rendered above SELECT elements."}, "YAHOO.widget.EditorWindow": {"file": "editor.js", "description": "Class to hold Window information between uses. We use the same panel to show the windows, so using this will allow you to configure a window before it is shown.\nThis is what you pass to Editor.openWindow();. These parameters will not take effect until the openWindow() is called in the editor.", "namespace": "YAHOO.widget", "module": "editor", "methods": {"setFooter": {"params": [{"type": "String/HTMLElement", "name": "str", "description": " The string or DOM reference to be used as the windows footer."}], "description": "Sets the footer for the window.", "guessedname": "setFooter", "guessedtype": "function"}, "setBody": {"params": [{"type": "String/HTMLElement", "name": "str", "description": " The string or DOM reference to be used as the windows body."}], "description": "Sets the body for the window.", "guessedname": "setBody", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the EditorWindow.", "guessedname": "toString", "guessedtype": "function"}, "setHeader": {"params": [{"type": "String/HTMLElement", "name": "str", "description": " The string or DOM reference to be used as the windows header."}], "description": "Sets the header for the window.", "guessedname": "setHeader", "guessedtype": "function"}}, "param": "{String} name The name of the window.", "guessedname": "EditorWindow", "guessedtype": "function", "shortname": "EditorWindow", "properties": {"body": {"private": "", "description": "Holder for the body of the window, used in Editor.openWindow", "guessedname": "body", "guessedtype": "property"}, "header": {"private": "", "description": "Holder for the header of the window, used in Editor.openWindow", "guessedname": "header", "guessedtype": "property"}, "footer": {"private": "", "description": "Holder for the footer of the window, used in Editor.openWindow", "guessedname": "footer", "guessedtype": "property"}, "name": {"private": "", "description": "A unique name for the window", "guessedname": "name", "guessedtype": "property"}, "attrs": {"private": "", "description": "The window attributes", "guessedname": "attrs", "guessedtype": "property"}}, "name": "YAHOO.widget.EditorWindow"}, "YAHOO.widget.SWF": {"name": "YAHOO.widget.SWF", "constructors": [{"params": [{"type": "String|HTMLElement", "name": "id", "description": " The id of the element, or the element itself that the SWF will be inserted into.  \nThe width and height of the SWF will be set to the width and height of this container element."}, {"type": "String", "name": "swfURL", "description": " The URL of the SWF to be embedded into the page."}, {"type": "Object", "name": "p_oAttributes", "description": " (optional) Configuration parameters for the Flash application and values for Flashvars\nto be passed to the SWF."}], "description": "Creates the SWF instance and keeps the configuration data"}], "namespace": "YAHOO.widget", "module": "swf", "guessedname": "SWF", "methods": {"eventHandler": {"guessedname": "eventHandler", "params": [{"type": "String", "name": "swfid", "description": "  the id of the SWF dispatching the event"}, {"type": "Object", "name": "event", "description": "  the event being transmitted."}], "description": "Handles an event coming from within the SWF and delegate it\nto a specific instance of SWF.", "private": "", "guessedtype": "function"}, "callSWF": {"params": [{"type": "String", "name": "func", "description": "  the name of the function to call"}, {"type": "Object", "name": "args", "description": "  the set of arguments to pass to the function."}], "description": "Calls a specific function exposed by the SWF's\nExternalInterface.", "guessedname": "callSWF", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the SWF instance."}, "description": "Public accessor to the unique name of the SWF instance.", "guessedname": "toString", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "swf.js", "guessedtype": "function", "shortname": "SWF", "properties": {"_instances": {"guessedname": "_instances", "type": "Object", "description": "The static collection of all instances of the SWFs on the page.", "private": "", "guessedtype": "property"}, "_id": {"type": "String", "description": "The DOM id of this instance of the element. Automatically generated.", "guessedname": "_id", "guessedtype": "property"}}, "description": "Creates the SWF instance and keeps the configuration data"}, "YAHOO.widget.Paginator": {"name": "YAHOO.widget.Paginator", "configs": {"alwaysVisible": {"default": "true", "type": "boolean", "description": "Display pagination controls even when there is only one page.  Set\nto false to forgo rendering and/or hide the containers when there\nis only one page of data.  Note if you are using the rowsPerPage\ndropdown ui component, visibility will be maintained as long as the\nnumber of records exceeds the smallest page size."}, "updateOnChange": {"default": "false", "deprecated": "use changeRequest listener that calls setState", "type": "boolean", "description": "Update the UI immediately upon interaction.  If false, changeRequest\nsubscribers or other external code will need to explicitly set the\nnew values in the paginator to trigger repaint."}, "containerClass": {"default": "'yui-pg-container'", "type": "string", "description": "Class assigned to the element(s) containing pagination controls."}, "initialPage": {"default": "1", "type": "integer", "description": "Page to display on initial paint"}, "totalRecords": {"default": "0", "type": "integer", "description": "Total number of records to paginate through"}, "recordOffset": {"default": "0", "type": "integer", "description": "Zero based index of the record considered first on the current page.\nFor page based interactions, don't modify this attribute directly;\nuse setPage(n)."}, "rendered": {"type": "boolean", "description": "Indicator of whether the DOM nodes have been initially created", "final": ""}, "rowsPerPage": {"type": "integer", "description": "REQUIRED. Number of records constituting a "page""}, "template": {"see": "Paginator.TEMPLATE_DEFAULT", "type": "string", "description": "Template used to render controls.  The string will be used as\ninnerHTML on all specified container nodes.  Bracketed keys\n(e.g. {pageLinks}) in the string will be replaced with an instance\nof the so named ui component."}, "id": {"type": "integer", "description": "Unique id assigned to this instance", "final": ""}, "containers": {"type": "{string|HTMLElement|Array(string|HTMLElement)}", "description": "REQUIRED. Node references or ids of nodes in which to render the\npagination controls."}}, "constructors": [{"params": [{"type": "Object", "name": "config", "description": "  Object literal to set instance and ui component\nconfiguration."}], "description": "Instantiate a Paginator, passing a configuration object to the contructor.\nThe configuration object should contain the following properties:\n<ul>\n<li>rowsPerPage : <em>n</em> (int)</li>\n<li>totalRecords : <em>n</em> (int or Paginator.VALUE_UNLIMITED)</li>\n<li>containers : <em>id | el | arr</em> (HTMLElement reference, its id, or an array of either)</li>\n</ul>"}], "namespace": "YAHOO.widget", "module": "paginator", "events": {"rendered": {"deprecated": "use render event", "description": "Event fired when the Paginator is initially rendered"}, "templateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "templateChange", "description": "Fires when the value for the configuration attribute 'template' changes."}, "render": {"description": "Event fired when the Paginator is initially rendered"}, "initialPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initialPageChange", "description": "Fires when the value for the configuration attribute 'initialPage' changes."}, "beforeContainerClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainerClassChange", "description": "Fires before the value for the configuration attribute 'containerClass' changes. Return false to cancel the attribute change."}, "alwaysVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "alwaysVisibleChange", "description": "Fires when the value for the configuration attribute 'alwaysVisible' changes."}, "beforeRenderedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRenderedChange", "description": "Fires before the value for the configuration attribute 'rendered' changes. Return false to cancel the attribute change."}, "beforeRecordOffsetChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRecordOffsetChange", "description": "Fires before the value for the configuration attribute 'recordOffset' changes. Return false to cancel the attribute change."}, "beforeTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTemplateChange", "description": "Fires before the value for the configuration attribute 'template' changes. Return false to cancel the attribute change."}, "beforeTotalRecordsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTotalRecordsChange", "description": "Fires before the value for the configuration attribute 'totalRecords' changes. Return false to cancel the attribute change."}, "updateOnChangeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "updateOnChangeChange", "description": "Fires when the value for the configuration attribute 'updateOnChange' changes."}, "renderedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "renderedChange", "description": "Fires when the value for the configuration attribute 'rendered' changes."}, "destroy": {"description": "Event used to trigger cleanup of ui components"}, "beforeContainersChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainersChange", "description": "Fires before the value for the configuration attribute 'containers' changes. Return false to cancel the attribute change."}, "changeRequest": {"description": "Event fired when a change in pagination values is requested,\neither by interacting with the various ui components or via the\nsetStartIndex(n) etc APIs.\nSubscribers will receive the proposed state as the first parameter.\nThe proposed state object will contain the following keys:\n<ul>\n<li>paginator - the Paginator instance</li>\n<li>page</li>\n<li>totalRecords</li>\n<li>recordOffset - index of the first record on the new page</li>\n<li>rowsPerPage</li>\n<li>records - array containing [start index, end index] for the records on the new page</li>\n<li>before - object literal with all these keys for the current state</li>\n</ul>"}, "pageChange": {"description": "Event fired when attribute changes have resulted in the calculated\ncurrent page changing."}, "beforeRowsPerPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRowsPerPageChange", "description": "Fires before the value for the configuration attribute 'rowsPerPage' changes. Return false to cancel the attribute change."}, "rowsPerPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "rowsPerPageChange", "description": "Fires when the value for the configuration attribute 'rowsPerPage' changes."}, "beforeDestroy": {"description": "Event that fires before the destroy event."}, "totalRecordsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "totalRecordsChange", "description": "Fires when the value for the configuration attribute 'totalRecords' changes."}, "recordOffsetChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "recordOffsetChange", "description": "Fires when the value for the configuration attribute 'recordOffset' changes."}, "containersChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containersChange", "description": "Fires when the value for the configuration attribute 'containers' changes."}, "containerClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containerClassChange", "description": "Fires when the value for the configuration attribute 'containerClass' changes."}, "beforeInitialPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitialPageChange", "description": "Fires before the value for the configuration attribute 'initialPage' changes. Return false to cancel the attribute change."}, "beforeIdChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeIdChange", "description": "Fires before the value for the configuration attribute 'id' changes. Return false to cancel the attribute change."}, "beforeUpdateOnChangeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUpdateOnChangeChange", "description": "Fires before the value for the configuration attribute 'updateOnChange' changes. Return false to cancel the attribute change."}, "beforeAlwaysVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAlwaysVisibleChange", "description": "Fires before the value for the configuration attribute 'alwaysVisible' changes. Return false to cancel the attribute change."}, "idChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "idChange", "description": "Fires when the value for the configuration attribute 'id' changes."}}, "methods": {"render": {"chainable": "", "return": {"type": "", "description": "the Paginator instance"}, "description": "Render the pagination controls per the format attribute into the\nspecified container nodes.", "guessedname": "render", "guessedtype": "function"}, "getRowsPerPage": {"return": {"type": "number", "description": "the current setting of the rowsPerPage attribute"}, "description": "Get the number of rows per page.", "guessedname": "getRowsPerPage", "guessedtype": "function"}, "getTotalRecords": {"return": {"type": "number", "description": "the current setting of totalRecords attribute"}, "description": "Get the total number of records.", "guessedname": "getTotalRecords", "guessedtype": "function"}, "getPreviousPage": {"return": {"type": "number", "description": ""}, "description": "Get the page number of the previous page, or null if the current page\nis the first page.", "guessedname": "getPreviousPage", "guessedtype": "function"}, "getTotalPages": {"return": {"type": "number", "description": ""}, "description": "Get the total number of pages in the data set according to the current\nrowsPerPage and totalRecords values.  If totalRecords is not set, or\nset to YAHOO.widget.Paginator.VALUE_UNLIMITED, returns\nYAHOO.widget.Paginator.VALUE_UNLIMITED.", "guessedname": "getTotalPages", "guessedtype": "function"}, "setState": {"params": [{"type": "Object", "name": "state", "description": "  Object literal of attribute:value pairs to set"}], "description": "Convenience method to facilitate setting state attributes rowsPerPage,\ntotalRecords, recordOffset in batch.  Also supports calculating\nrecordOffset from state.page if state.recordOffset is not provided.\nFires only a single pageChange event, if appropriate.\nThis will not fire a changeRequest event.", "guessedname": "setState", "guessedtype": "function"}, "updateVisibility": {"description": "Hides the containers if there is only one page of data and attribute\nalwaysVisible is false.  Conversely, it displays the containers if either\nthere is more than one page worth of data or alwaysVisible is turned on.", "guessedname": "updateVisibility", "guessedtype": "function"}, "_selfSubscribe": {"protected": "", "description": "Subscribes to instance attribute change events to automate certain\nbehaviors.", "guessedname": "_selfSubscribe", "guessedtype": "function"}, "initEvents": {"private": "", "description": "Initialize this instance's CustomEvents.", "guessedname": "initEvents", "guessedtype": "function"}, "_firePageChange": {"protected": "", "params": [{"type": "Object", "name": "state", "description": "  the result of getState(oldState)"}], "description": "Fires a pageChange event in the form of a standard attribute change\nevent with additional properties prevState and newState.", "guessedname": "_firePageChange", "guessedtype": "function"}, "setStartIndex": {"params": [{"type": "number", "name": "offset", "description": "  the new record offset"}, {"type": "boolean", "name": "silent", "description": "  whether to forcibly avoid firing the changeRequest event"}], "description": "Move the record offset to a new starting index.  This will likely cause\nthe calculated current page to change.  You should probably use setPage.", "guessedname": "setStartIndex", "guessedtype": "function"}, "destroy": {"description": "Removes controls from the page and unhooks events.", "guessedname": "destroy", "guessedtype": "function"}, "getCurrentPage": {"return": {"type": "number", "description": ""}, "description": "Get the page number corresponding to the current record offset.", "guessedname": "getCurrentPage", "guessedtype": "function"}, "getState": {"return": {"type": "object", "description": ""}, "params": [{"type": "object", "name": "changes", "description": "  OPTIONAL object literal with proposed values\nSupported change keys include:\n<ul>\n<li>rowsPerPage</li>\n<li>totalRecords</li>\n<li>recordOffset OR</li>\n<li>page</li>\n</ul>"}], "description": "Get an object literal describing the current state of the paginator.  If\nan object literal of proposed values is passed, the proposed state will\nbe returned as an object literal with the following keys:\n<ul>\n<li>paginator - instance of the Paginator</li>\n<li>page - number</li>\n<li>totalRecords - number</li>\n<li>recordOffset - number</li>\n<li>rowsPerPage - number</li>\n<li>records - [ start_index, end_index ]</li>\n<li>before - (OPTIONAL) { state object literal for current state }</li>\n</ul>", "guessedname": "getState", "guessedtype": "function"}, "hasPreviousPage": {"return": {"type": "boolean", "description": ""}, "description": "Is there a page before the current page?", "guessedname": "hasPreviousPage", "guessedtype": "function"}, "getStartIndex": {"return": {"type": "number", "description": "the index of the first record on the current page"}, "description": "Get the index of the first record on the current page", "guessedname": "getStartIndex", "guessedtype": "function"}, "setTotalRecords": {"params": [{"type": "number", "name": "total", "description": "  the new total number of records"}, {"type": "boolean", "name": "silent", "description": "  whether to forcibly avoid firing the changeRequest event"}], "description": "Set the total number of records.", "guessedname": "setTotalRecords", "guessedtype": "function"}, "_handleStateChange": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the attribute change event"}], "description": "Fires the pageChange event when the state attributes have changed in\nsuch a way as to locate the current recordOffset on a new page.", "guessedname": "_handleStateChange", "guessedtype": "function"}, "hasPage": {"return": {"type": "boolean", "description": ""}, "params": [{"type": "number", "name": "page", "description": "  the page in question"}], "description": "Does the requested page have any records?", "guessedname": "hasPage", "guessedtype": "function"}, "setRowsPerPage": {"params": [{"type": "number", "name": "rpp", "description": "  the new number of rows per page"}, {"type": "boolean", "name": "silent", "description": "  whether to forcibly avoid firing the\nchangeRequest event"}], "description": "Set the number of rows per page.", "guessedname": "setRowsPerPage", "guessedtype": "function"}, "setPage": {"params": [{"type": "number", "name": "newPage", "description": "  the new page number"}, {"type": "boolean", "name": "silent", "description": "  whether to forcibly avoid firing the\nchangeRequest event"}], "description": "Set the current page to the provided page number if possible.", "guessedname": "setPage", "guessedtype": "function"}, "hasNextPage": {"return": {"type": "boolean", "description": ""}, "description": "Are there records on the next page?", "guessedname": "hasNextPage", "guessedtype": "function"}, "initUIComponents": {"private": "", "description": "Initialize registered ui components onto this instance.", "guessedname": "initUIComponents", "guessedtype": "function"}, "_syncRecordOffset": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  totalRecordsChange event"}], "description": "Sets recordOffset to the starting index of the previous page when\ntotalRecords is reduced below the current recordOffset.", "guessedname": "_syncRecordOffset", "guessedtype": "function"}, "_renderTemplate": {"protected": "", "params": [{"type": "HTMLElement", "name": "container", "description": "  where to add the ui components"}, {"type": "String", "name": "template", "description": "  the template to use as a guide for rendering"}, {"type": "String", "name": "id_base", "description": "  id base for the container's ui components"}, {"type": "Boolean", "name": "hide", "description": "  leave the container hidden after assembly"}], "description": "Creates the individual ui components and renders them into a container.", "guessedname": "_renderTemplate", "guessedtype": "function"}, "Paginator.isNumeric": {"description": "Similar to YAHOO.lang.isNumber, but allows numeric strings.  This is\nis used for attribute validation in conjunction with getters that return\nnumbers.", "returns": "{Boolean} true if the input is coercable into a finite number", "static": "", "guessedname": "isNumeric", "guessedtype": "function", "params": [{"type": "Number|String", "name": "v", "description": "  value to be checked for number or numeric string"}]}, "initConfig": {"private": "", "description": "Initialize the Paginator's attributes (see YAHOO.util.Element class\nAttributeProvider).", "guessedname": "initConfig", "guessedtype": "function"}, "getContainerNodes": {"return": {"type": "Array", "description": "array of HTMLElement nodes"}, "description": "Get the configured container nodes", "guessedname": "getContainerNodes", "guessedtype": "function"}, "getPageRecords": {"return": {"type": "Array", "description": "[start_index, end_index]"}, "params": [{"type": "number", "name": "page", "description": "  (optional) The page (current page if not specified)"}], "description": "Get the start and end record indexes of the specified page.", "guessedname": "getPageRecords", "guessedtype": "function"}, "getNextPage": {"return": {"type": "number", "description": ""}, "description": "Get the page number of the next page, or null if the current page is the\nlast page.", "guessedname": "getNextPage", "guessedtype": "function"}, "renderUIComponent": {"params": [{"type": "HTMLElement", "name": "marker", "description": "  the marker node to replace"}, {"type": "String", "name": "id_base", "description": "  string base the component's generated id"}], "description": "Replaces a marker node with a rendered UI component, determined by the\nyui-pg-ui-(UI component class name) in the marker's className. e.g.\nyui-pg-ui-PageLinks => new YAHOO.widget.Paginator.ui.PageLinks(this)", "guessedname": "renderUIComponent", "guessedtype": "function"}, "Paginator.toNumber": {"return": {"type": "", "description": "Number"}, "description": "Return a number or null from input", "static": "", "guessedname": "toNumber", "guessedtype": "function", "params": [{"type": "Number|String", "name": "n", "description": "  a number or numeric string"}]}}, "file": "Paginator.js", "shortname": "Paginator", "properties": {"_pageChanged": {"protected": "", "type": "boolean", "description": "Used by setState to indicate when a page change has occurred", "guessedname": "_pageChanged", "guessedtype": "property"}, "Paginator.TEMPLATE_DEFAULT": {"type": "string", "static": "", "description": "Default template used by Paginator instances.  Update this if you want\nall new Paginators to use a different default template.", "guessedname": "TEMPLATE_DEFAULT", "guessedtype": "property"}, "Paginator.TEMPLATE_ROWS_PER_PAGE": {"type": "string", "static": "", "description": "Common alternate pagination format, including page links, links for\nprevious, next, first and last pages as well as a rows-per-page\ndropdown.  Offered as a convenience.", "guessedname": "TEMPLATE_ROWS_PER_PAGE", "guessedtype": "property"}, "_batch": {"protected": "", "type": "boolean", "description": "Flag used to indicate multiple attributes are being updated via setState", "guessedname": "_batch", "guessedtype": "property"}, "_containers": {"guessedname": "_containers", "type": "Array(HTMLElement)", "description": "Array of nodes in which to render pagination controls.  This is set via\nthe "containers" attribute.", "private": "", "guessedtype": "property"}, "Paginator.id": {"description": "Incrementing index used to give instances unique ids.", "private": "", "static": "", "guessedname": "id", "guessedtype": "property", "type": "number"}, "_state": {"protected": "", "type": "Object", "description": "Temporary state cache used by setState to keep track of the previous\nstate for eventual pageChange event firing", "guessedname": "_state", "guessedtype": "property"}, "Paginator.ui": {"static": "", "description": "Storage object for UI Components", "guessedname": "ui", "guessedtype": "property"}, "Paginator.VALUE_UNLIMITED": {"description": "Used to identify unset, optional configurations, or used explicitly in\nthe case of totalRecords to indicate unlimited pagination.", "static": "", "guessedname": "VALUE_UNLIMITED", "guessedtype": "property", "type": "number", "final": ""}, "Paginator.ID_BASE": {"description": "Base of id strings used for ui components.", "private": "", "static": "", "guessedname": "ID_BASE", "guessedtype": "property", "type": "string"}}, "description": "Instantiate a Paginator, passing a configuration object to the contructor.\nThe configuration object should contain the following properties:\n<ul>\n<li>rowsPerPage : <em>n</em> (int)</li>\n<li>totalRecords : <em>n</em> (int or Paginator.VALUE_UNLIMITED)</li>\n<li>containers : <em>id | el | arr</em> (HTMLElement reference, its id, or an array of either)</li>\n</ul>"}, "YAHOO.util.AnimMgr": {"name": "YAHOO.util.AnimMgr", "namespace": "YAHOO.util", "module": "animation", "guessedname": "AnimMgr", "methods": {"run": {"description": "Called per Interval to handle each animation frame.", "guessedname": "run", "guessedtype": "function"}, "unRegister": {"guessedname": "unRegister", "params": [{"type": "object", "name": "tween", "description": " The Anim instance to be be registered"}, {"type": "Int", "name": "index", "description": " The index of the Anim instance"}], "description": "removes an animation instance from the animation queue.\nAll animation instances must be registered in order to animate.", "private": "", "guessedtype": "function"}, "stop": {"params": [{"type": "object", "name": "tween", "description": " A specific Anim instance to stop (optional)\nIf no instance given, Manager stops thread and all animations."}], "description": "Stops the animation thread or a specific animation instance.", "guessedname": "stop", "guessedtype": "function"}, "start": {"description": "Starts the animation thread.\nOnly one thread can run at a time.", "guessedname": "start", "guessedtype": "function"}, "registerElement": {"params": [{"type": "object", "name": "tween", "description": " The Anim instance to be be registered"}], "description": "Adds an animation instance to the animation queue.\nAll animation instances must be registered in order to animate.", "guessedname": "registerElement", "guessedtype": "function"}, "correctFrame": {"guessedname": "correctFrame", "params": [{"type": "Object", "name": "tween", "description": " The Anim instance being corrected."}], "description": "On the fly frame correction to keep animation on time.", "private": "", "guessedtype": "function"}}, "file": "AnimMgr.js", "guessedtype": "function", "shortname": "AnimMgr", "properties": {"queue": {"guessedname": "queue", "type": "Array", "description": "The current queue of registered animation objects.", "private": "", "guessedtype": "property"}, "tweenCount": {"guessedname": "tweenCount", "type": "Int", "description": "The number of active animations.", "private": "", "guessedtype": "property"}, "delay": {"type": "Int", "description": "Interval delay in milliseconds, defaults to fastest possible.", "guessedname": "delay", "guessedtype": "property"}, "fps": {"type": "Int", "description": "Base frame rate (frames per second). \nArbitrarily high for better x-browser calibration (slower browsers drop more frames).", "guessedname": "fps", "guessedtype": "property"}, "thread": {"guessedname": "thread", "type": "Int", "description": "Reference to the animation Interval.", "private": "", "guessedtype": "property"}}, "description": "Handles animation queueing and threading.\nUsed by Anim and subclasses."}, "YAHOO.util.ImageLoader.group": {"name": "YAHOO.util.ImageLoader.group", "constructors": [{"params": [{"type": "String|HTMLElement", "name": "trigEl", "description": "\tThe HTML element id or reference to assign the trigger event to. Can be null for no trigger"}, {"type": "String", "name": "trigAct", "description": " The type of event to assign to trigEl. Can be null for no trigger"}, {"type": "Number", "name": "timeout", "description": "\tTimeout (time limit) length, in seconds. Can be undefined, or <= 0, for no time limit"}], "description": "A group for images. A group can have one time limit and a series of triggers. Thus the images belonging to this group must share these constraints."}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "group", "methods": {"registerBgImage": {"return": {"type": "Object", "description": "bgImgObj that was registered, for modifying any attributes in the object"}, "params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}], "description": "Registers a background image with the group", "guessedname": "registerBgImage", "guessedtype": "function"}, "addCustomTrigger": {"params": [{"type": "Object", "name": "event", "description": " A YAHOO.util.CustomEvent object"}], "description": "Adds a custom event trigger to the group.", "guessedname": "addCustomTrigger", "guessedtype": "function"}, "addTrigger": {"params": [{"type": "String|HTMLElement", "name": "trigEl", "description": "  The HTML element id or reference to assign the trigger event to"}, {"type": "String", "name": "trigAct", "description": " The type of event to assign to trigEl"}], "description": "Adds a trigger to the group. Call this with the same style as YAHOO.util.Event.addListener", "guessedname": "addTrigger", "guessedtype": "function"}, "_getFetchTimeout": {"guessedname": "_getFetchTimeout", "return": {"type": "Function", "description": "group's fetch method"}, "description": "Returns the group's fetch method, with the proper closure, for use with setTimeout", "private": "", "guessedtype": "function"}, "registerSrcImage": {"return": {"type": "Object", "description": "srcImgObj that was registered, for modifying any attributes in the object"}, "params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}, {"type": "Int", "name": "width", "description": "\tpixel width of the image - defaults to image's natural size"}, {"type": "Int", "name": "height", "description": "\tpixel height of the image - defaults to image's natural size"}], "description": "Registers a src image with the group", "guessedname": "registerSrcImage", "guessedtype": "function"}, "registerPngBgImage": {"return": {"type": "Object", "description": "pngBgImgObj that was registered, for modifying any attributes in the object"}, "params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}, {"type": "Object", "name": "ailProps", "description": " The AlphaImageLoader properties to be set for the image\nValid properties are 'sizingMethod' and 'enabled'"}], "description": "Registers an alpha-channel-type png background image with the group", "guessedname": "registerPngBgImage", "guessedtype": "function"}, "_onloadTasks": {"private": "", "description": "Setup to do in the window's onload\nInitiates time limit for group; executes the fold check for the images", "guessedname": "_onloadTasks", "guessedtype": "function"}, "_foldCheck": {"private": "", "description": "Checks the position of each image in the group. If any part of the image is within the client viewport, shows the image immediately.", "guessedname": "_foldCheck", "guessedtype": "function"}, "fetch": {"description": "Displays the images in the group", "guessedname": "fetch", "guessedtype": "function"}, "_fetchByClass": {"private": "", "description": "Finds all elements in the Dom with the class name specified in the group. Removes the class from the element in order to let the style definitions trigger the image fetching", "guessedname": "_fetchByClass", "guessedtype": "function"}}, "file": "ImageLoader.js", "guessedtype": "function", "shortname": "group", "requires": "YAHOO.util.Dom", "properties": {"name": {"type": "String", "description": "Name for the group. Only used to identify the group in logging statements", "guessedname": "name", "guessedtype": "property"}, "_classImageEls": {"guessedname": "_classImageEls", "type": "Array", "description": "HTML elements having the class name that is associated with this group\nElements are stored during the _foldCheck function and reused later during the fetch function. Gives a slight performance improvement when className and foldConditional are both used", "private": "", "guessedtype": "property"}, "_imgObjs": {"guessedname": "_imgObjs", "type": "Object", "description": "Collection of images registered with this group", "private": "", "guessedtype": "property"}, "timeoutLen": {"type": "Number", "description": "Timeout (time limit) length, in seconds", "guessedname": "timeoutLen", "guessedtype": "property"}, "className": {"type": "String", "description": "Class name that will identify images belonging to the group. This class name will be removed from each element in order to fetch images.\nThis class should have, in its CSS style definition, \"background:none !important;\"", "guessedname": "className", "guessedtype": "property"}, "_triggers": {"guessedname": "_triggers", "type": "Array", "description": "Collection of triggers for this group.\nKeeps track of each trigger's element, event, and event-listener-callback \"fetch\" function", "private": "", "guessedtype": "property"}, "_customTriggers": {"guessedname": "_customTriggers", "type": "Array", "description": "Collection of custom-event triggers for this group.\nKeeps track of each trigger's event object and event-listener-callback \"fetch\" function", "private": "", "guessedtype": "property"}, "_timeout": {"guessedname": "_timeout", "type": "Object", "description": "Timeout object to keep a handle on the time limit", "private": "", "guessedtype": "property"}, "foldConditional": {"type": "Boolean", "description": "Flag to check if images are above the fold. If foldConditional is true, the group will check each of its image locations at page load. If any part of the image is within the client viewport, the image is displayed immediately", "guessedname": "foldConditional", "guessedtype": "property"}}, "description": "A group for images. A group can have one time limit and a series of triggers. Thus the images belonging to this group must share these constraints."}, "YAHOO.util.XHRDataSource": {"name": "YAHOO.util.XHRDataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "XHRDataSource class for accessing remote data via the YUI Connection Manager\nUtility"}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "XHRDataSource", "methods": {"_xhrFailure": {"guessedname": "_xhrFailure", "params": [{"type": "Object", "name": "oResponse", "description": "  HTTPXMLRequest object"}], "description": "Define Connection Manager failure handler", "private": "", "guessedtype": "function"}, "_xhrSuccess": {"guessedname": "_xhrSuccess", "params": [{"type": "Object", "name": "oResponse", "description": "  HTTPXMLRequest object"}], "description": "Define Connection Manager success handler", "private": "", "guessedtype": "function"}, "makeConnection": {"return": {"type": "Number", "description": "Transaction ID."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Overriding method passes query to Connection Manager. The returned\nresponse is then forwarded to the handleResponse function.", "guessedname": "makeConnection", "guessedtype": "function"}}, "extends": "YAHOO.util.DataSourceBase", "superclass": "YAHOO.util.DataSourceBase", "file": "DataSource.js", "guessedtype": "function", "shortname": "XHRDataSource", "properties": {"connTimeout": {"default": "0", "type": "Number", "description": "The connection timeout defines how many  milliseconds the XHR connection will\nwait for a server response. Any non-zero value will enable the Connection Manager's\nAuto-Abort feature.", "guessedname": "connTimeout", "guessedtype": "property"}, "connMethodPost": {"default": "false", "type": "Boolean", "description": "True if data is to be sent via POST. By default, data will be sent via GET.", "guessedname": "connMethodPost", "guessedtype": "property"}, "_xhrCallback": {"guessedname": "_xhrCallback", "param": "oResponse {Object} HTTPXMLRequest object", "description": "Define Connection Manager callback object", "private": "", "guessedtype": "property"}, "connXhrMode": {"default": "\"allowAll\"", "type": "String", "description": "Defines request/response management in the following manner:\n<dl>\n<dt>queueRequests</dt>\n<dd>If a request is already in progress, wait until response is returned\nbefore sending the next request.</dd>\n<dt>cancelStaleRequests</dt>\n<dd>If a request is already in progress, cancel it before sending the next\nrequest.</dd>\n<dt>ignoreStaleResponses</dt>\n<dd>Send all requests, but handle only the response for the most recently\nsent request.</dd>\n<dt>allowAll</dt>\n<dd>Send all requests and handle all responses.</dd>\n</dl>", "guessedname": "connXhrMode", "guessedtype": "property"}, "connMgr": {"default": "YAHOO.util.Connect", "type": "Object", "description": "Alias to YUI Connection Manager, to allow implementers to use a custom class.", "guessedname": "connMgr", "guessedtype": "property"}}, "description": "XHRDataSource class for accessing remote data via the YUI Connection Manager\nUtility"}, "YAHOO": {"name": "YAHOO", "description": "The YAHOO global namespace object.  If YAHOO is already defined, the\nexisting YAHOO object will not be overwritten so that defined\nnamespaces are preserved.", "namespace": "", "module": "yahoo", "guessedname": "YAHOO", "static": "", "file": "YAHOO.js", "guessedtype": "property", "shortname": "YAHOO", "methods": {"register": {"static": "", "params": [{"type": "String", "name": "name", "description": "    the name of the module (event, slider, etc)"}, {"type": "Function", "name": "mainClass", "description": " a reference to class in the module.  This\nclass will be tagged with the version info\nso that it will be possible to identify the\nversion that is in use when multiple versions\nhave loaded"}, {"type": "Object", "name": "data", "description": "      metadata object for the module.  Currently it\nis expected to contain a \"version\" property\nand a \"build\" property at minimum."}], "description": "Registers a module with the YAHOO object", "guessedname": "register", "guessedtype": "function"}, "namespace": {"return": {"type": "Object", "description": "A reference to the last namespace object created"}, "description": "Returns the namespace specified and creates it if it doesn't exist\n<pre>\nYAHOO.namespace(\"property.package\");\nYAHOO.namespace(\"YAHOO.property.package\");\n</pre>\nEither of the above would create YAHOO.property, then\nYAHOO.property.package\nBe careful when naming packages. Reserved words may work in some browsers\nand not others. For instance, the following will fail in Safari:\n<pre>\nYAHOO.namespace(\"really.long.nested.namespace\");\n</pre>\nThis fails because \"long\" is a future reserved word in ECMAScript\nFor implementation code that uses YUI, do not create your components\nin the namespaces defined by YUI (\n<code>YAHOO.util</code>, \n<code>YAHOO.widget</code>, \n<code>YAHOO.lang</code>, \n<code>YAHOO.tool</code>, \n<code>YAHOO.example</code>, \n<code>YAHOO.env</code>) -- create your own namespace (e.g., 'companyname').", "static": "", "guessedname": "namespace", "guessedtype": "function", "params": [{"type": "String*", "name": "arguments", "description": " 1-n namespaces to create"}]}, "extend": {"static": "", "params": [{"type": "Function", "name": "subc", "description": "   the object to modify"}, {"type": "Function", "name": "superc", "description": " the object to inherit"}, {"type": "Object", "name": "overrides", "description": "  additional properties/methods to add to the\nsubclass prototype.  These will override the\nmatching items obtained from the superclass if present."}], "description": "An alias for <a href=\"YAHOO.lang.html#extend\">YAHOO.lang.extend</a>", "guessedname": "extend", "guessedtype": "property"}, "augment": {"static": "", "params": [{"type": "Function", "name": "r", "description": "  the object to receive the augmentation"}, {"type": "Function", "name": "s", "description": "  the object that supplies the properties to augment"}, {"type": "String*", "name": "arguments", "description": " zero or more properties methods to \naugment the receiver with.  If none specified, everything\nin the supplier will be used unless it would\noverwrite an existing property in the receiver"}], "description": "An alias for <a href=\"YAHOO.lang.html#augment\">YAHOO.lang.augment</a>", "guessedname": "augment", "guessedtype": "property"}, "log": {"return": {"type": "Boolean", "description": "True if the log operation was successful."}, "description": "Uses YAHOO.widget.Logger to output a log message, if the widget is\navailable.", "static": "", "guessedname": "log", "guessedtype": "function", "params": [{"type": "String", "name": "msg", "description": "  The message to log."}, {"type": "String", "name": "cat", "description": "  The log category for the message.  Default\ncategories are \"info\", \"warn\", \"error\", time\".\nCustom categories can be used as well. (opt)"}, {"type": "String", "name": "src", "description": "  The source of the the message (opt)"}]}}}, "YAHOO.util.Event": {"name": "YAHOO.util.Event", "namespace": "YAHOO.util", "module": "event", "events": {"DOMReadyEvent": {"description": "Custom event the fires when the dom is initially usable", "guessedname": "DOMReadyEvent", "guessedtype": "property"}}, "guessedname": "Event", "methods": {"regCE": {"description": "Used by old versions of CustomEvent, restored for backwards\ncompatibility", "deprecated": "still here for backwards compatibility", "private": "", "static": "", "guessedname": "regCE", "guessedtype": "function"}, "_simpleRemove": {"description": "Basic remove listener", "private": "", "static": "", "guessedname": "_simpleRemove", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": "      the element to bind the handler to"}, {"type": "string", "name": "sType", "description": "   the type of event handler"}, {"type": "function", "name": "fn", "description": "      the callback to invoke"}, {"type": "boolen", "name": "capture", "description": " capture or bubble phase"}]}, "_getScrollLeft": {"guessedname": "_getScrollLeft", "static": "", "description": "Returns scrollLeft", "private": "", "guessedtype": "function"}, "getTime": {"return": {"type": "Date", "description": "the time of the event"}, "description": "Returns the time of the event.  If the time is not included, the\nevent is modified using the current time.", "static": "", "guessedname": "getTime", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "addBlurListener": {"return": {"type": "Boolean", "description": "True if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Attaches a focusout event listener to the specified element for \nthe purpose of listening for the blur event on the element's \ndescendants.", "deprecated": "use YAHOO.util.Event.on and specify \"focusout\" as the event type.", "static": "", "guessedname": "addBlurListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the handler"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the obj passed in becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}]}, "generateId": {"return": {"type": "string", "description": "the resulting id of the element"}, "description": "Generates an unique ID for the element if it does not already \nhave one.", "static": "", "guessedname": "generateId", "guessedtype": "function", "params": [{"type": "", "name": "el", "description": " the element to create the id for"}]}, "getTarget": {"return": {"type": "HTMLElement", "description": "the event's target"}, "description": "Returns the event's target element.  Safari sometimes provides\na text node, and this is automatically resolved to the text\nnode's parent so that it behaves like other browsers.", "static": "", "guessedname": "getTarget", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}, {"type": "boolean", "name": "resolveTextNode", "description": " when set to true the target's\nparent will be returned if the target is a \ntext node.  @deprecated, the text node is\nnow resolved automatically"}]}, "_createDelegate": {"return": {"type": "Function", "description": "Function that will call the event listener \nspecified by the <code>YAHOO.util.Event.delegate</code> method."}, "description": "Creates a delegate function used to call event listeners specified \nvia the <code>YAHOO.util.Event.delegate</code> method.", "private": "", "static": "", "guessedname": "_createDelegate", "guessedtype": "function", "params": [{"type": "Function", "name": "fn", "description": "        The method (event listener) to call."}, {"type": "Function|string", "name": "filter", "description": " Function or CSS selector used to \ndetermine for what element(s) the event listener should be called."}, {"type": "Object", "name": "obj", "description": "\tAn arbitrary object that will be \npassed as a parameter to the listener."}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the value of the \nobj parameter becomes the execution context\nof the listener. If an object, this object\nbecomes the execution context."}]}, "removeDelegate": {"return": {"type": "boolean", "description": "Returns true if the unbind was successful, false \notherwise."}, "description": "Removes a delegated event listener.", "static": "", "guessedname": "removeDelegate", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "container", "description": " An id, an element \nreference, or a collection of ids and/or elements to remove\nthe listener from."}, {"type": "String", "name": "type", "description": " The type of event to remove."}, {"type": "Function", "name": "fn", "description": " The method the event invokes.  If fn is\nundefined, then all event listeners for the type of event are \nremoved."}]}, "stopPropagation": {"static": "", "params": [{"type": "Event", "name": "ev", "description": " the event"}], "description": "Stops event propagation", "guessedname": "stopPropagation", "guessedtype": "function"}, "getCharCode": {"return": {"type": "int", "description": "the event's charCode"}, "description": "Returns the charcode for an event", "static": "", "guessedname": "getCharCode", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "_getType": {"guessedname": "_getType", "params": [{"type": "String", "name": "sType", "description": "     The type to look up"}], "description": "Checks to see if the type requested is a special type \n(as defined by the _specialTypes hash), and (if so) returns \nthe special type name.", "private": "", "guessedtype": "function"}, "_simpleAdd": {"description": "Adds a DOM event directly without the caching, cleanup, context adj, etc", "private": "", "static": "", "guessedname": "_simpleAdd", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": "      the element to bind the handler to"}, {"type": "string", "name": "sType", "description": "   the type of event handler"}, {"type": "function", "name": "fn", "description": "      the callback to invoke"}, {"type": "boolen", "name": "capture", "description": " capture or bubble phase"}]}, "_isValidCollection": {"return": {"type": "boolean", "description": "true if the object is array-like and populated"}, "description": "We want to be able to use getElementsByTagName as a collection\nto attach a group of events to.  Unfortunately, different \nbrowsers return different types of collections.  This function\ntests to determine if the object is array-like.  It will also \nfail if the object is an array, but is empty.", "private": "", "static": "", "guessedname": "_isValidCollection", "guessedtype": "function", "params": [{"type": "", "name": "o", "description": " the object to test"}]}, "getEl": {"description": "We cache elements bound by id because when the unload event \nfires, we can no longer use document.getElementById", "deprecated": "Elements are not cached any longer", "private": "", "static": "", "guessedname": "getEl", "guessedtype": "function"}, "_load": {"guessedname": "_load", "static": "", "description": "hook up any deferred listeners", "private": "", "guessedtype": "function"}, "resolveTextNode": {"return": {"type": "HTMLElement", "description": "the normized node"}, "description": "In some cases, some browsers will return a text node inside\nthe actual element that was targeted.  This normalizes the\nreturn value for getTarget and getRelatedTarget.", "static": "", "guessedname": "resolveTextNode", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "node", "description": " node to resolve"}]}, "stopEvent": {"static": "", "params": [{"type": "Event", "name": "ev", "description": " the event"}], "description": "Convenience method for stopPropagation + preventDefault", "guessedname": "stopEvent", "guessedtype": "function"}, "addFocusListener": {"return": {"type": "Boolean", "description": "True if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Attaches a focusin event listener to the specified element for \nthe purpose of listening for the focus event on the element's \ndescendants.", "deprecated": "use YAHOO.util.Event.on and specify \"focusin\" as the event type.", "static": "", "guessedname": "addFocusListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the handler"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the obj passed in becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}]}, "getXY": {"return": {"type": "[x, y]", "description": "the pageX and pageY properties of the event"}, "description": "Returns the pageX and pageY properties as an indexed array.", "static": "", "guessedname": "getXY", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "addListener": {"return": {"type": "Boolean", "description": "True if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Appends an event handler", "static": "", "guessedname": "addListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "String", "name": "sType", "description": "     The type of event to append"}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the handler"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the obj passed in becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}]}, "_createMouseDelegate": {"return": {"type": "Function", "description": "Function that will call the event listener \nspecified by either the <code>YAHOO.util.Event.addListener</code> \nor <code>YAHOO.util.Event.on</code> method."}, "description": "Creates a delegate function used to call mouseover and mouseleave \nevent listeners specified via the \n<code>YAHOO.util.Event.addListener</code> \nor <code>YAHOO.util.Event.on</code> method.", "private": "", "static": "", "guessedname": "_createMouseDelegate", "guessedtype": "function", "params": [{"type": "Function", "name": "fn", "description": "        The method (event listener) to call"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the listener"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the value of the \nobj parameter becomes the execution context\nof the listener. If an object, this object\nbecomes the execution context."}]}, "_unload": {"guessedname": "_unload", "static": "", "description": "Removes all listeners registered by pe.event.  Called \nautomatically during the unload event.", "private": "", "guessedtype": "function"}, "_tryPreloadAttach": {"guessedname": "_tryPreloadAttach", "static": "", "description": "Polling function that runs before the onload event fires, \nattempting to attach to DOM Nodes as soon as they are \navailable", "private": "", "guessedtype": "function"}, "onBlur": {"description": "YAHOO.util.Event.onBlur is an alias for addBlurListener", "deprecated": "use YAHOO.util.Event.on and specify \"focusout\" as the event type.", "see": "addBlurListener", "static": "", "guessedname": "onBlur", "guessedtype": "property"}, "_getScrollTop": {"guessedname": "_getScrollTop", "static": "", "description": "Returns scrollTop", "private": "", "guessedtype": "function"}, "onContentReady": {"static": "", "params": [{"type": "string", "name": "id", "description": " the id of the element to look for."}, {"type": "function", "name": "fn", "description": " what to execute when the element is ready."}, {"type": "object", "name": "obj", "description": " an optional object to be passed back as\na parameter to fn."}, {"type": "boolean|object", "name": "overrideContext", "description": " If set to true, fn will execute\nin the context of obj.  If an object, fn will\nexectute in the context of that object"}], "description": "Works the same way as onAvailable, but additionally checks the\nstate of sibling elements to determine if the content of the\navailable element is safe to modify.\n<p>The callback is executed with a single parameter:\nthe custom object parameter, if provided.</p>", "guessedname": "onContentReady", "guessedtype": "function"}, "startInterval": {"static": "", "private": "", "guessedname": "startInterval", "guessedtype": "function"}, "onAvailable": {"static": "", "params": [{"type": "string||string[]", "name": "id", "description": " the id of the element, or an array\nof ids to look for."}, {"type": "function", "name": "fn", "description": " what to execute when the element is found."}, {"type": "object", "name": "obj", "description": " an optional object to be passed back as\na parameter to fn."}, {"type": "boolean|object", "name": "overrideContext", "description": " If set to true, fn will execute\nin the context of obj, if set to an object it\nwill execute in the context of that object"}, {"type": "boolean", "name": "checkContent", "description": "  check child node readiness (onContentReady)"}], "description": "Executes the supplied callback when the item with the supplied\nid is found.  This is meant to be used to execute behavior as\nsoon as possible as the page loads.  If you use this after the\ninitial page load it will poll for a fixed time for the element.\nThe number of times it will poll and the frequency are\nconfigurable.  By default it will poll for 10 seconds.\n<p>The callback is executed with a single parameter:\nthe custom object parameter, if provided.</p>", "guessedname": "onAvailable", "guessedtype": "function"}, "onFocus": {"description": "YAHOO.util.Event.onFocus is an alias for addFocusListener", "deprecated": "use YAHOO.util.Event.on and specify \"focusin\" as the event type.", "see": "addFocusListener", "static": "", "guessedname": "onFocus", "guessedtype": "property"}, "clearCache": {"description": "Clears the element cache", "deprecated": "Elements are not cached any longer", "private": "", "static": "", "guessedname": "clearCache", "guessedtype": "function"}, "removeListener": {"return": {"type": "boolean", "description": "true if the unbind was successful, false \notherwise."}, "description": "Removes an event listener", "static": "", "guessedname": "removeListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to remove\nthe listener from."}, {"type": "String", "name": "sType", "description": " the type of event to remove."}, {"type": "Function", "name": "fn", "description": " the method the event invokes.  If fn is\nundefined, then all event handlers for the type of event are \nremoved."}]}, "removeBlurListener": {"return": {"type": "boolean", "description": "true if the unbind was successful, false \notherwise."}, "description": "Removes a focusout event listener to the specified element for \nthe purpose of listening for the blur event on the element's \ndescendants.", "deprecated": "use YAHOO.util.Event.removeListener and specify \"focusout\" as the event type.", "static": "", "guessedname": "removeBlurListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to remove\nthe listener from."}, {"type": "Function", "name": "fn", "description": " the method the event invokes.  If fn is\nundefined, then all event handlers for the type of event are \nremoved."}]}, "onDOMReady": {"static": "", "params": [{"type": "function", "name": "fn", "description": " what to execute when the element is found."}, {"type": "object", "name": "obj", "description": " an optional object to be passed back as\na parameter to fn."}, {"type": "boolean|object", "name": "overrideContext", "description": " If set to true, fn will execute\nin the context of obj, if set to an object it\nwill execute in the context of that object"}], "description": "Executes the supplied callback when the DOM is first usable.  This\nwill execute immediately if called after the DOMReady event has\nfired.   @todo the DOMContentReady event does not fire when the\nscript is dynamically injected into the page.  This means the\nDOMReady custom event will never fire in FireFox or Opera when the\nlibrary is injected.  It _will_ fire in Safari, and the IE \nimplementation would allow for us to fire it if the defered script\nis not available.  We want this to behave the same in all browsers.\nIs there a way to identify when the script has been injected \ninstead of included inline?  Is there a way to know whether the \nwindow onload event has fired without having had a listener attached \nto it when it did so?\n<p>The callback is a CustomEvent, so the signature is:</p>\n<p>type <string>, args <array>, customobject <object></p>\n<p>For DOMReady events, there are no fire argments, so the\nsignature is:</p>\n<p>\"DOMReady\", [], obj</p>"}, "on": {"see": "addListener", "static": "", "description": "YAHOO.util.Event.on is an alias for addListener", "guessedname": "on", "guessedtype": "property"}, "_getScroll": {"guessedname": "_getScroll", "static": "", "description": "Returns the scrollTop and scrollLeft.  Used to calculate the \npageX and pageY in Internet Explorer", "private": "", "guessedtype": "function"}, "getListeners": {"return": {"type": "Object", "description": "the listener. Contains the following fields:\n  type:   (string)   the type of event\n  fn:     (function) the callback supplied to addListener\n  obj:    (object)   the custom object supplied to addListener\n  adjust: (boolean|object)  whether or not to adjust the default context\n  scope: (boolean)  the derived context based on the adjust parameter\n  index:  (int)      its position in the Event util listener cache"}, "description": "Returns all listeners attached to the given element via addListener.\nOptionally, you can specify a specific type of event to return.", "static": "", "guessedname": "getListeners", "guessedtype": "function", "params": [{"type": "HTMLElement|string", "name": "el", "description": "  the element or element id to inspect"}, {"type": "string", "name": "sType", "description": "  optional type of listener to return. If\nleft out, all listeners will be returned"}]}, "getEvent": {"return": {"type": "Event", "description": "the event"}, "description": "Finds the event in the window object, the caller's arguments, or\nin the arguments of another method in the callstack.  This is\nexecuted automatically for events registered through the event\nmanager, so the implementer should not normally need to execute\nthis function at all.", "static": "", "guessedname": "getEvent", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event parameter from the handler"}, {"type": "HTMLElement", "name": "boundEl", "description": " the element the listener is attached to"}]}, "purgeElement": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": " the element to purge"}, {"type": "boolean", "name": "recurse", "description": " recursively purge this element's children\nas well.  Use with caution."}, {"type": "string", "name": "sType", "description": " optional type of listener to purge. If\nleft out, all listeners will be removed"}], "description": "Removes all listeners attached to the given element via addListener.\nOptionally, the node's children can also be purged.\nOptionally, you can specify a specific type of event to remove.", "guessedname": "purgeElement", "guessedtype": "function"}, "_addListener": {"return": {"type": "Boolean", "description": "True if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Appends an event handler", "private": "", "static": "", "guessedname": "_addListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "String", "name": "sType", "description": "     The type of event to append"}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the handler"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the obj passed in becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}, {"type": "boolen", "name": "capture", "description": " capture or bubble phase"}]}, "preventDefault": {"static": "", "params": [{"type": "Event", "name": "ev", "description": " the event"}], "description": "Prevents the default behavior of the event", "guessedname": "preventDefault", "guessedtype": "function"}, "_getCacheIndex": {"guessedname": "_getCacheIndex", "static": "", "description": "Locating the saved event handler data by function ref", "private": "", "guessedtype": "function"}, "_ready": {"guessedname": "_ready", "static": "", "description": "Fires the DOMReady event listeners the first time the document is\nusable.", "private": "", "guessedtype": "function"}, "delegate": {"return": {"type": "Boolean", "description": "Returns true if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Appends a delegated event listener.  Delegated event listeners \nreceive three arguments by default: the DOM event, the element  \nspecified by the filtering function or CSS selector, and the \ncontainer element (the element to which the event listener is \nbound).  (Note: Using the delegate method requires the event-delegate \nmodule.  Using CSS selectors as the filtering criteria for delegated \nevent listeners requires inclusion of the Selector Utility.)", "static": "", "guessedname": "delegate", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "container", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "String", "name": "type", "description": "     The type of event listener to append"}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Function|string", "name": "filter", "description": " Function or CSS selector used to \ndetermine for what element(s) the event listener should be called. \nWhen a function is specified, the function should return an \nHTML element.  Using a CSS Selector requires the inclusion of the \nCSS Selector Utility."}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the listener"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the value of the obj parameter becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}]}, "getPageY": {"return": {"type": "int", "description": "the event's pageY"}, "description": "Returns the event's pageY", "static": "", "guessedname": "getPageY", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "getPageX": {"return": {"type": "int", "description": "the event's pageX"}, "description": "Returns the event's pageX", "static": "", "guessedname": "getPageX", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "removeFocusListener": {"return": {"type": "boolean", "description": "true if the unbind was successful, false \notherwise."}, "description": "Removes a focusin event listener to the specified element for \nthe purpose of listening for the focus event on the element's \ndescendants.", "deprecated": "use YAHOO.util.Event.removeListener and specify \"focusin\" as the event type.", "static": "", "guessedname": "removeFocusListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to remove\nthe listener from."}, {"type": "Function", "name": "fn", "description": " the method the event invokes.  If fn is\nundefined, then all event handlers for the type of event are \nremoved."}]}, "getRelatedTarget": {"return": {"type": "HTMLElement", "description": "the event's relatedTarget"}, "description": "Returns the event's related target", "static": "", "guessedname": "getRelatedTarget", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}}, "static": "", "file": "Event.js", "guessedtype": "function", "shortname": "Event", "properties": {"isSafari": {"description": "Safari detection", "deprecated": "use YAHOO.env.ua.webkit", "private": "", "static": "", "guessedname": "isSafari", "guessedtype": "property"}, "CAPTURE": {"description": "The original capture parameter passed into addListener", "static": "", "guessedname": "CAPTURE", "guessedtype": "property", "type": "int", "final": ""}, "WFN": {"description": "Function wrapped for context correction and cleanup, int constant", "static": "", "guessedname": "WFN", "guessedtype": "property", "type": "int", "final": ""}, "throwErrors": {"default": "false", "type": "boolean", "description": "Errors thrown by subscribers of custom events are caught\nand the error message is written to the debug console.  If\nthis property is set to true, it will also re-throw the\nerror.", "guessedname": "throwErrors", "guessedtype": "property"}, "FN": {"description": "Function to execute, int constant", "static": "", "guessedname": "FN", "guessedtype": "property", "type": "int", "final": ""}, "DOMReady": {"type": "boolean", "static": "", "description": "True when the document is initially usable", "guessedname": "DOMReady", "guessedtype": "property"}, "POLL_RETRYS": {"description": "The number of times we should look for elements that are not\nin the DOM at the time the event is requested after the document\nhas been loaded.  The default is 500 at amp;40 ms, so it will poll\nfor 20 seconds or until all outstanding handlers are bound\n(whichever comes first).", "static": "", "guessedname": "POLL_RETRYS", "guessedtype": "property", "type": "int", "final": ""}, "listeners": {"description": "Cache of wrapped listeners", "private": "", "static": "", "guessedname": "listeners", "guessedtype": "property", "type": "array"}, "_specialTypes": {"guessedname": "_specialTypes", "static": "", "description": "Map of special event types", "private": "", "guessedtype": "property"}, "unloadListeners": {"description": "User-defined unload function that will be fired before all events\nare detached", "private": "", "static": "", "guessedname": "unloadListeners", "guessedtype": "property", "type": "array"}, "OVERRIDE": {"description": "The original context parameter passed into addListener", "static": "", "guessedname": "OVERRIDE", "guessedtype": "property", "type": "int", "final": ""}, "EL": {"description": "Element to bind, int constant", "static": "", "guessedname": "EL", "guessedtype": "property", "type": "int", "final": ""}, "OBJ": {"description": "Object passed in by the user that will be returned as a \nparameter to the callback, int constant.  Specific to\nunload listeners", "static": "", "guessedname": "UNLOAD_OBJ", "guessedtype": "property", "type": "int", "final": ""}, "elCache\nDOM element cache": {"deprecated": "Elements are not cached due to issues that arise when\nelements are removed and re-added", "static": "", "guessedname": "elCache", "private": "", "guessedtype": "property"}, "_interval": {"guessedname": "_interval", "static": "", "description": "poll handle", "private": "", "guessedtype": "property"}, "webkit": {"description": "webkit version", "deprecated": "use YAHOO.env.ua.webkit", "private": "", "static": "", "guessedname": "webkit", "guessedtype": "property", "type": "string"}, "loadComplete": {"description": "True after the onload event has fired", "private": "", "static": "", "guessedname": "loadComplete", "guessedtype": "property", "type": "boolean"}, "webkitKeymap": {"description": "Normalized keycodes for webkit/safari", "private": "", "static": "", "guessedname": "webkitKeymap", "guessedtype": "property", "type": "{int: int}", "final": ""}, "_dri": {"guessedname": "_dri", "static": "", "description": "document readystate poll handle", "private": "", "guessedtype": "property"}, "counter": {"guessedname": "counter", "static": "", "description": "Counter for auto id generation", "private": "", "guessedtype": "property"}, "POLL_INTERVAL": {"description": "The poll interval in milliseconds", "static": "", "guessedname": "POLL_INTERVAL", "guessedtype": "property", "type": "int", "final": ""}, "ADJ_SCOPE": {"description": "Adjusted context, either the element we are registering the event\non or the custom object passed in by the listener, int constant", "static": "", "guessedname": "ADJ_SCOPE", "guessedtype": "property", "type": "int", "final": ""}, "onAvailStack": {"guessedname": "onAvailStack", "static": "", "description": "onAvailable listeners", "private": "", "guessedtype": "property"}, "isIE": {"description": "IE detection", "deprecated": "use YAHOO.env.ua.ie", "private": "", "static": "", "guessedname": "isIE", "guessedtype": "property"}, "retryCount": {"guessedname": "retryCount", "static": "", "description": "The number of times to poll after window.onload.  This number is\nincreased if additional late-bound handlers are requested after\nthe page load.", "private": "", "guessedtype": "property"}, "lastError": {"type": "Error", "static": "", "description": "addListener/removeListener can throw errors in unexpected scenarios.\nThese errors are suppressed, the method returns false, and this property\nis set", "guessedname": "lastError", "guessedtype": "property"}, "TYPE": {"description": "Type of event, int constant", "static": "", "guessedname": "TYPE", "guessedtype": "property", "type": "int", "final": ""}}, "description": "The event utility provides functions to add and remove event listeners,\nevent cleansing.  It also tries to automatically remove listeners it\nregisters during the unload event."}, "YAHOO.util.Dom": {"name": "YAHOO.util.Dom", "namespace": "YAHOO.util", "module": "dom", "guessedname": "Dom", "methods": {"getElementsBy": {"return": {"type": "Array", "description": "Array of HTMLElements"}, "params": [{"type": "Function", "name": "method", "description": " - A boolean method for testing elements which receives the element as its only argument."}, {"type": "String", "name": "tag", "description": " (optional) The tag name of the elements being collected"}, {"type": "String | HTMLElement", "name": "root", "description": " (optional) The HTMLElement or an ID to use as the starting point"}, {"type": "Function", "name": "apply", "description": " (optional) A function to apply to each element when found"}, {"type": "Any", "name": "o", "description": " (optional) An optional arg that is passed to the supplied method"}, {"type": "Boolean", "name": "overrides", "description": " (optional) Whether or not to override the scope of \"method\" with \"o\""}], "description": "Returns an array of HTMLElements that pass the test applied by supplied boolean method.\nFor optimized performance, include a tag and/or root node when possible.\nNote: This method operates against a live collection, so modifying the \ncollection in the callback (removing/appending nodes, etc.) will have\nside effects.  Instead you should iterate the returned nodes array,\nas you would with the native \"getElementsByTagName\" method.", "guessedname": "getElementsBy", "guessedtype": "function"}, "getAttribute": {"return": {"type": "String", "description": "The current value of the attribute."}, "params": [{"type": "String | HTMLElement", "name": "el", "description": " The target element for the attribute."}, {"type": "String", "name": "attr", "description": " The attribute to get."}], "description": "Provides a normalized attribute interface.", "guessedname": "getAttribute", "guessedtype": "function"}, "generateId": {"return": {"type": "String | Array", "description": "The generated ID, or array of generated IDs (or original ID if already present on an element)"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " (optional) An optional element array of elements to add an ID to (no ID is added if one is already present)."}, {"type": "String", "name": "prefix", "description": " (optional) an optional prefix to use (defaults to \"yui-gen\")."}], "description": "Returns an ID and applies it to the element \"el\", if provided.", "guessedname": "generateId", "guessedtype": "function"}, "getDocumentWidth": {"return": {"type": "Int", "description": "The width of the actual document (which includes the body and its margin)."}, "description": "Returns the width of the document.", "guessedname": "getDocumentWidth", "guessedtype": "function"}, "setStyle": {"params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}, {"type": "String", "name": "property", "description": " The style property to be set."}, {"type": "String", "name": "val", "description": " The value to apply to the given property."}], "description": "Wrapper for setting style properties of HTMLElements.  Normalizes \"opacity\" across modern browsers.", "guessedname": "setStyle", "guessedtype": "function"}, "getX": {"return": {"type": "Number | Array", "description": "The X position of the element(s)"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements"}], "description": "Gets the current X position of an element based on page coordinates.  The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "getX", "guessedtype": "function"}, "getY": {"return": {"type": "Number | Array", "description": "The Y position of the element(s)"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements"}], "description": "Gets the current Y position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "getY", "guessedtype": "function"}, "getChildren": {"return": {"type": "Array", "description": "A static array of HTMLElements"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns an array of HTMLElement childNodes.", "guessedname": "getChildren", "guessedtype": "function"}, "getFirstChild": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns the first HTMLElement child.", "guessedname": "getFirstChild", "guessedtype": "function"}, "getClientRegion": {"return": {"type": "Region", "description": "A Region object representing the viewport which accounts for document scroll"}, "description": "Creates a Region based on the viewport relative to the document.", "guessedname": "getClientRegion", "guessedtype": "function"}, "getLastChildBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " A boolean function used to test children\nthat receives the node being tested as its only argument"}], "description": "Returns the last HTMLElement child that passes the test method.", "guessedname": "getLastChildBy", "guessedtype": "function"}, "getAncestorBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " - A boolean method for testing elements which receives the element as its only argument."}], "description": "Returns the nearest ancestor that passes the test applied by supplied boolean method.\nFor performance reasons, IDs are not accepted and argument validation omitted.", "guessedname": "getAncestorBy", "guessedtype": "function"}, "insertBefore": {"return": {"type": "HTMLElement", "description": "The node that was inserted (or null if insert fails)"}, "params": [{"type": "String | HTMLElement", "name": "newNode", "description": " The node to be inserted"}, {"type": "String | HTMLElement", "name": "referenceNode", "description": " The node to insert the new node before"}], "description": "Inserts the new node as the previous sibling of the reference node", "guessedname": "insertBefore", "guessedtype": "function"}, "getElementBy": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "Function", "name": "method", "description": " - A boolean method for testing elements which receives the element as its only argument."}, {"type": "String", "name": "tag", "description": " (optional) The tag name of the elements being collected"}, {"type": "String | HTMLElement", "name": "root", "description": " (optional) The HTMLElement or an ID to use as the starting point"}], "description": "Returns the first HTMLElement that passes the test applied by the supplied boolean method.", "guessedname": "getElementBy", "guessedtype": "function"}, "getPreviousSiblingBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " A boolean function used to test siblings\nthat receives the sibling node being tested as its only argument"}], "description": "Returns the previous sibling that is an HTMLElement. \nFor performance reasons, IDs are not accepted and argument validation omitted.\nReturns the nearest HTMLElement sibling if no method provided.", "guessedname": "getPreviousSiblingBy", "guessedtype": "function"}, "getElementsByClassName": {"return": {"type": "Array", "description": "An array of elements that have the given class name"}, "params": [{"type": "String", "name": "className", "description": " The class name to match against"}, {"type": "String", "name": "tag", "description": " (optional) The tag name of the elements being collected"}, {"type": "String | HTMLElement", "name": "root", "description": " (optional) The HTMLElement or an ID to use as the starting point.\nThis element is not included in the className scan."}, {"type": "Function", "name": "apply", "description": " (optional) A function to apply to each element when found"}, {"type": "Any", "name": "o", "description": " (optional) An optional arg that is passed to the supplied method"}, {"type": "Boolean", "name": "overrides", "description": " (optional) Whether or not to override the scope of \"method\" with \"o\""}], "description": "Returns an array of HTMLElements with the given class.\nFor optimized performance, include a tag and/or root node when possible.\nNote: This method operates against a live collection, so modifying the \ncollection in the callback (removing/appending nodes, etc.) will have\nside effects.  Instead you should iterate the returned nodes array,\nas you would with the native \"getElementsByTagName\" method.", "guessedname": "getElementsByClassName", "guessedtype": "function"}, "replaceClass": {"return": {"type": "Boolean | Array", "description": "A pass/fail boolean or array of booleans"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " The element or collection to remove the class from"}, {"type": "String", "name": "oldClassName", "description": " the class name to be replaced"}, {"type": "String", "name": "newClassName", "description": " the class name that will be replacing the old class name"}], "description": "Replace a class with another class for a given element or collection of elements.\nIf no oldClassName is present, the newClassName is simply added.", "guessedname": "replaceClass", "guessedtype": "function"}, "getNextSibling": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns the next sibling that is an HTMLElement", "guessedname": "getNextSibling", "guessedtype": "function"}, "getDocumentHeight": {"return": {"type": "Int", "description": "The height of the actual document (which includes the body and its margin)."}, "description": "Returns the height of the document.", "guessedname": "getDocumentHeight", "guessedtype": "function"}, "getLastChild": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns the last HTMLElement child.", "guessedname": "getLastChild", "guessedtype": "function"}, "getClientHeight": {"deprecated": "Now using getViewportHeight.  This interface left intact for back compat.", "return": {"type": "Int", "description": "The height of the viewable area of the page."}, "description": "Returns the height of the client (viewport).", "guessedname": "getClientHeight", "guessedtype": "function"}, "inDocument": {"return": {"type": "Boolean", "description": "Whether or not the element is present in the current document"}, "params": [{"type": "String | HTMLElement", "name": "el", "description": " The element to search for"}, {"type": "Object", "name": "doc", "description": " An optional document to search, defaults to element's owner document"}], "description": "Determines whether an HTMLElement is present in the current document.", "guessedname": "inDocument", "guessedtype": "function"}, "insertAfter": {"return": {"type": "HTMLElement", "description": "The node that was inserted (or null if insert fails)"}, "params": [{"type": "String | HTMLElement", "name": "newNode", "description": " The node to be inserted"}, {"type": "String | HTMLElement", "name": "referenceNode", "description": " The node to insert the new node after"}], "description": "Inserts the new node as the next sibling of the reference node", "guessedname": "insertAfter", "guessedtype": "function"}, "getViewportHeight": {"return": {"type": "Int", "description": "The height of the viewable area of the page (excludes scrollbars)."}, "description": "Returns the current height of the viewport.", "guessedname": "getViewportHeight", "guessedtype": "function"}, "addClass": {"return": {"type": "Boolean | Array", "description": "A pass/fail boolean or array of booleans"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " The element or collection to add the class to"}, {"type": "String", "name": "className", "description": " the class name to add to the class attribute"}], "description": "Adds a class name to a given element or collection of elements.", "guessedname": "addClass", "guessedtype": "function"}, "getAncestorByClassName": {"return": {"type": "Object", "description": "HTMLElement"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}, {"type": "String", "name": "className", "description": ""}], "description": "Returns the nearest ancestor with the given className.", "guessedname": "getAncestorByClassName", "guessedtype": "function"}, "getViewportWidth": {"return": {"type": "Int", "description": "The width of the viewable area of the page (excludes scrollbars)."}, "description": "Returns the current width of the viewport.", "guessedname": "getViewportWidth", "guessedtype": "function"}, "get": {"return": {"type": "HTMLElement | Array", "description": "A DOM reference to an HTML element or an array of HTMLElements."}, "params": [{"type": "String | HTMLElement |Array", "name": "el", "description": " Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements."}], "description": "Returns an HTMLElement reference.", "guessedname": "get", "guessedtype": "function"}, "removeClass": {"return": {"type": "Boolean | Array", "description": "A pass/fail boolean or array of booleans"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " The element or collection to remove the class from"}, {"type": "String", "name": "className", "description": " the class name to remove from the class attribute"}], "description": "Removes a class name from a given element or collection of elements.", "guessedname": "removeClass", "guessedtype": "function"}, "getStyle": {"return": {"type": "String | Array", "description": "The current value of the style property for the element(s)."}, "params": [{"type": "String | HTMLElement |Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}, {"type": "String", "name": "property", "description": " The style property whose value is returned."}], "description": "Normalizes currentStyle and ComputedStyle.", "guessedname": "getStyle", "guessedtype": "function"}, "setXY": {"params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements"}, {"type": "Array", "name": "pos", "description": " Contains X & Y values for new position (coordinates are page-based)"}, {"type": "Boolean", "name": "noRetry", "description": " By default we try and set the position a second time if the first fails"}], "description": "Set the position of an html element in page coordinates, regardless of how the element is positioned.\nThe element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "setXY", "guessedtype": "function"}, "getPreviousSibling": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns the previous sibling that is an HTMLElement", "guessedname": "getPreviousSibling", "guessedtype": "function"}, "getDocumentScrollTop": {"return": {"type": "Int", "description": "The amount that the document is scrolled to the top"}, "params": [{"type": "HTMLDocument", "name": "document", "description": " (optional) The document to get the scroll value of"}], "description": "Returns the top scroll value of the document", "guessedname": "getDocumentScrollTop", "guessedtype": "function"}, "setX": {"params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}, {"type": "Int", "name": "x", "description": " The value to use as the X coordinate for the element(s)."}], "description": "Set the X position of an html element in page coordinates, regardless of how the element is positioned.\nThe element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "setX", "guessedtype": "function"}, "setY": {"params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}, {"type": "Int", "name": "x", "description": " To use as the Y coordinate for the element(s)."}], "description": "Set the Y position of an html element in page coordinates, regardless of how the element is positioned.\nThe element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "setY", "guessedtype": "function"}, "getXY": {"return": {"type": "Array", "description": "The XY position of the element(s)"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM\nreference, or an Array of IDs and/or HTMLElements"}], "description": "Gets the current position of an element based on page coordinates. \nElement must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "getXY", "guessedtype": "function"}, "getFirstChildBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " A boolean function used to test children\nthat receives the node being tested as its only argument"}], "description": "Returns the first HTMLElement child that passes the test method.", "guessedname": "getFirstChildBy", "guessedtype": "function"}, "getClientWidth": {"deprecated": "Now using getViewportWidth.  This interface left intact for back compat.", "return": {"type": "Int", "description": "The width of the viewable area of the page."}, "description": "Returns the width of the client (viewport).", "guessedname": "getClientWidth", "guessedtype": "function"}, "getNextSiblingBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " A boolean function used to test siblings\nthat receives the sibling node being tested as its only argument"}], "description": "Returns the next HTMLElement sibling that passes the boolean method. \nFor performance reasons, IDs are not accepted and argument validation omitted.\nReturns the nearest HTMLElement sibling if no method provided.", "guessedname": "getNextSiblingBy", "guessedtype": "function"}, "getRegion": {"return": {"type": "Region | Array", "description": "A Region or array of Region instances containing \"top, left, bottom, right\" member data."}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}], "description": "Returns the region position of the given element.\nThe element must be part of the DOM tree to have a region (display:none or elements not appended return false).", "guessedname": "getRegion", "guessedtype": "function"}, "setAttribute": {"params": [{"type": "String | HTMLElement", "name": "el", "description": " The target element for the attribute."}, {"type": "String", "name": "attr", "description": " The attribute to set."}, {"type": "String", "name": "val", "description": " The value of the attribute."}], "description": "Provides a normalized attribute interface.", "guessedname": "setAttribute", "guessedtype": "function"}, "batch": {"return": {"type": "Any | Array", "description": "The return value(s) from the supplied method"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " (optional) An element or array of elements to apply the method to"}, {"type": "Function", "name": "method", "description": " The method to apply to the element(s)"}, {"type": "Any", "name": "o", "description": " (optional) An optional arg that is passed to the supplied method"}, {"type": "Boolean", "name": "overrides", "description": " (optional) Whether or not to override the scope of \"method\" with \"o\""}], "description": "Runs the supplied method against each item in the Collection/Array.\nThe method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ).", "guessedname": "batch", "guessedtype": "function"}, "getChildrenBy": {"return": {"type": "Array", "description": "A static array of HTMLElements"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to start from"}, {"type": "Function", "name": "method", "description": " A boolean function used to test children\nthat receives the node being tested as its only argument"}], "description": "Returns an array of HTMLElement childNodes that pass the test method.", "guessedname": "getChildrenBy", "guessedtype": "function"}, "isAncestor": {"return": {"type": "Boolean", "description": "Whether or not the haystack is an ancestor of needle"}, "params": [{"type": "String | HTMLElement", "name": "haystack", "description": " The possible ancestor"}, {"type": "String | HTMLElement", "name": "needle", "description": " The possible descendent"}], "description": "Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy.", "guessedname": "isAncestor", "guessedtype": "function"}, "getDocumentScrollLeft": {"return": {"type": "Int", "description": "The amount that the document is scrolled to the left"}, "params": [{"type": "HTMLDocument", "name": "document", "description": " (optional) The document to get the scroll value of"}], "description": "Returns the left scroll value of the document", "guessedname": "getDocumentScrollLeft", "guessedtype": "function"}, "getAncestorByTagName": {"return": {"type": "Object", "description": "HTMLElement"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}, {"type": "String", "name": "tagName", "description": ""}], "description": "Returns the nearest ancestor with the given tagName.", "guessedname": "getAncestorByTagName", "guessedtype": "function"}, "hasClass": {"return": {"type": "Boolean | Array", "description": "A boolean value or array of boolean values"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " The element or collection to test"}, {"type": "String", "name": "className", "description": " the class name to search for"}], "description": "Determines whether an HTMLElement has the given className.", "guessedname": "hasClass", "guessedtype": "function"}}, "file": "Dom.js", "guessedtype": "property", "shortname": "Dom", "requires": "yahoo, event", "description": "Provides helper methods for DOM elements."}, "YAHOO.widget.TVFadeOut": {"name": "YAHOO.widget.TVFadeOut", "constructors": [{"params": [{"type": "HTMLElement", "name": "el", "description": "  the element to animate"}, {"type": "Function", "name": "callback", "description": "  function to invoke when the animation is finished"}], "description": "A 1/2 second fade out animation."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "TVFadeOut", "methods": {"onComplete": {"description": "Clean up and invoke callback", "guessedname": "onComplete", "guessedtype": "function"}, "animate": {"description": "Performs the animation", "guessedname": "animate", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "the string representation of the instance"}, "description": "toString", "guessedname": "toString", "guessedtype": "function"}}, "file": "TVFadeOut.js", "guessedtype": "function", "shortname": "TVFadeOut", "properties": {"el": {"type": "HTMLElement", "description": "The element to animate", "guessedname": "el", "guessedtype": "property"}, "callback": {"type": "function", "description": "the callback to invoke when the animation is complete", "guessedname": "callback", "guessedtype": "property"}}, "description": "A 1/2 second fade out animation."}, "YAHOO.widget.RadioCellEditor": {"name": "YAHOO.widget.RadioCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The RadioCellEditor class provides functionality for inline editing\nDataTable cell data with radio buttons."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "RadioCellEditor", "methods": {"renderForm": {"description": "Render a form with input(s) type=radio.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from RadioCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in RadioCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets RadioCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "RadioCellEditor", "properties": {"radioOptions": {"type": "String[] | Object[]", "description": "Array of radio values. Can either be a simple array (e.g., [\"yes\",\"no\",\"maybe\"])\nor a an array of objects (e.g., [{label:\"yes\", value:1}, {label:\"no\", value:-1},\n{label:\"maybe\", value:0}]).", "guessedname": "radioOptions", "guessedtype": "property"}, "radios": {"type": "HTMLElement[]", "description": "Reference to radio elements.", "guessedname": "radios", "guessedtype": "property"}}, "description": "The RadioCellEditor class provides functionality for inline editing\nDataTable cell data with radio buttons."}, "YAHOO.widget.Paginator.ui.LastPageLink": {"properties": {"current": {"guessedname": "current", "type": "HTMLElement", "description": "Currently placed HTMLElement node", "private": "", "guessedtype": "property"}, "span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node (inactive link)", "private": "", "guessedtype": "property"}, "link": {"guessedname": "link", "type": "HTMLElement", "description": "Link HTMLElement node", "private": "", "guessedtype": "property"}, "na": {"guessedname": "na", "type": "HTMLElement", "description": "Empty place holder node for when the last page link is inappropriate to\ndisplay in any form (unlimited paging).", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.LastPageLink", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the link to jump to the last page."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforeLastPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLastPageLinkLabelChange", "description": "Fires before the value for the configuration attribute 'lastPageLinkLabel' changes. Return false to cancel the attribute change."}, "lastPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "lastPageLinkClassChange", "description": "Fires when the value for the configuration attribute 'lastPageLinkClass' changes."}, "beforeLastPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLastPageLinkClassChange", "description": "Fires before the value for the configuration attribute 'lastPageLinkClass' changes. Return false to cancel the attribute change."}, "lastPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "lastPageLinkLabelChange", "description": "Fires when the value for the configuration attribute 'lastPageLinkLabel' changes."}}, "guessedname": "LastPageLink", "methods": {"onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the link's onclick event.  Passes to setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the link/span node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "paginator", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event (ignored)"}], "description": "Swap the link, span, and na nodes if appropriate.", "guessedname": "update", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}}, "file": "LastPageLink.js", "guessedtype": "function", "shortname": "LastPageLink", "configs": {"lastPageLinkClass": {"default": "'yui-pg-last'", "description": "CSS class assigned to the link/span"}, "lastPageLinkLabel": {"default": "'last >>'", "description": "Used as innerHTML for the last page link/span."}}, "description": "ui Component to generate the link to jump to the last page."}, "YAHOO.widget.Chart": {"name": "YAHOO.widget.Chart", "configs": {"altText": {"type": "String", "description": "The alternative text to provide for screen readers and other assistive technology."}, "version": {"type": "String", "description": "Minimum required version for the SWF file. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "swfURL": {"type": "String", "description": "Absolute or relative URL to the SWF displayed by the Chart. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "expressInstall": {"type": "String", "description": "URL pointing to a SWF file that handles Flash Player's express\ninstall feature. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "request": {"type": "String", "description": "Request to be sent to the Chart's DataSource."}, "legendLabelFunction": {"type": "String", "description": "The string representation of a globally-accessible function\nthat may be called by the SWF to format the labels of a Chart's legend."}, "wmode": {"type": "String", "description": "Sets the window mode of the Flash Player control. May be\n\"window\", \"opaque\", or \"transparent\". Only available in the constructor\nbecause it may not be set after Flash Player has been embedded in the page."}, "dataTipFunction": {"type": "String", "description": "The string representation of a globally-accessible function\nthat may be called by the SWF to generate the datatip text for a Chart's item."}, "dataSource": {"type": "DataSource", "description": "The DataSource instance to display in the Chart."}, "backgroundColor": {"type": "String", "description": "The background color of the SWF. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "series": {"type": "Array", "description": "Defines the series to be displayed by the Chart."}, "polling": {"type": "Number", "description": "A numeric value indicating the number of milliseconds between\npolling requests to the DataSource."}, "categoryNames": {"type": "Array", "description": "Defines the names of the categories to be displayed in the Chart.."}}, "constructors": [{"params": [{"type": "String", "name": "type", "description": "  The char type. May be \"line\", \"column\", \"bar\", or \"pie\""}, {"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "Chart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "properties": {"_dataTipFunction": {"guessedname": "_dataTipFunction", "type": "String", "description": "Stores a reference to the dataTipFunction created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}, "_seriesFunctions": {"guessedname": "_seriesFunctions", "type": "Array", "description": "Stores references to series function values created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}, "_request": {"private": "", "description": "Storage for the request attribute.", "guessedname": "_request", "guessedtype": "property"}, "_attributes": {"guessedname": "_attributes", "type": "Object", "description": "The initializing attributes are stored here until the SWF is ready.", "private": "", "guessedtype": "property"}, "_pollingInterval": {"guessedname": "_pollingInterval", "type": "Number", "description": "The time, in ms, between requests for data.", "private": "", "guessedtype": "property"}, "_type": {"guessedname": "_type", "type": "String", "description": "The type of this chart instance.", "private": "", "guessedtype": "property"}, "_legendLabelFunction": {"guessedname": "_legendLabelFunction", "type": "String", "description": "Stores a reference to the legendLabelFunction created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}, "_id": {"guessedname": "_id", "type": "String", "description": "The id of this instance.", "private": "", "guessedtype": "property"}, "_initialized": {"guessedname": "_initialized", "type": "Boolean", "description": "Indicates whether the SWF has been initialized and is ready\nto communicate with JavaScript", "private": "", "guessedtype": "property"}, "_containerID": {"guessedname": "_containerID", "type": "String", "description": "The ID of the containing DIV.", "private": "", "guessedtype": "property"}, "_swfEmbed": {"guessedname": "_swfEmbed", "type": "swf", "description": "The javascript wrapper for the swf object", "private": "", "guessedtype": "property"}, "_seriesDefs": {"private": "", "description": "Storage for the series attribute.", "guessedname": "_seriesDefs", "guessedtype": "property"}, "_dataSource": {"private": "", "description": "Storage for the dataSource attribute.", "guessedname": "_dataSource", "guessedtype": "property"}, "Chart.SWFURL": {"description": "Storage for the dataTipFunction attribute.", "default": "\"assets/charts.swf\"", "private": "", "static": "", "guessedname": "SWFURL", "guessedtype": "property", "final": ""}, "proxyFunctionCount": {"guessedname": "proxyFunctionCount", "static": "", "description": "The number of proxy functions that have been created.", "private": "", "guessedtype": "property"}, "_swfURL": {"guessedname": "_swfURL", "type": "String", "description": "The URL of the SWF file.", "private": "", "guessedtype": "property"}, "_pollingID": {"guessedname": "_pollingID", "type": "Number", "description": "The id returned from the DataSource's setInterval function.", "private": "", "guessedtype": "property"}, "_swf": {"private": "", "description": "A reference to the embedded SWF file.", "guessedname": "_swf", "guessedtype": "property"}}, "guessedname": "Chart", "methods": {"_loadHandler": {"private": "", "description": "Called when the SWF is ready for communication. Sets the type, initializes\nthe styles, and sets the DataSource.", "guessedname": "_loadHandler", "guessedtype": "function"}, "_getDataSource": {"private": "", "description": "Getter for the dataSource attribute.", "guessedname": "_getDataSource", "guessedtype": "function"}, "refreshData": {"description": "Sends (or resends) the request to the DataSource.", "guessedname": "refreshData", "guessedtype": "function"}, "_initAttributes": {"private": "", "description": "Initializes the attributes.", "guessedname": "_initAttributes", "guessedtype": "function"}, "_setLegendLabelFunction": {"private": "", "description": "Setter for the legendLabelFunction attribute.", "guessedname": "_setLegendLabelFunction", "guessedtype": "function"}, "_setPolling": {"private": "", "description": "Setter for the polling attribute.", "guessedname": "_setPolling", "guessedtype": "function"}, "_getSeriesDefs": {"private": "", "description": "Getter for the series attribute.", "guessedname": "_getSeriesDefs", "guessedtype": "function"}, "_setCategoryNames": {"private": "", "description": "Setter for the categoryNames attribute.", "guessedname": "_setCategoryNames", "guessedtype": "function"}, "setStyles": {"params": [{"type": "Object", "name": "styles", "description": "  Initializer for all Chart styles."}], "description": "Resets all styles on the Chart instance.", "guessedname": "setStyles", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the Chart instance."}, "description": "Public accessor to the unique name of the Chart instance.", "guessedname": "toString", "guessedtype": "function"}, "_eventHandler": {"private": "", "description": "Handles swfReady event from SWF.", "guessedname": "_eventHandler", "guessedtype": "function"}, "_getSWFURL": {"private": "", "description": "Getter for swfURL attribute.", "guessedname": "_getSWFURL", "guessedtype": "function"}, "_getRequest": {"private": "", "description": "Getter for the request attribute.", "guessedname": "_getRequest", "guessedtype": "function"}, "_setAltText": {"private": "", "description": "Setter for altText attribute.", "guessedname": "_setAltText", "guessedtype": "function"}, "_setDataTipFunction": {"private": "", "description": "Setter for the dataTipFunction attribute.", "guessedname": "_setDataTipFunction", "guessedtype": "function"}, "_setSeriesDefs": {"private": "", "description": "Setter for the series attribute.", "guessedname": "_setSeriesDefs", "guessedtype": "function"}, "_setRequest": {"private": "", "description": "Setter for the request attribute.", "guessedname": "_setRequest", "guessedtype": "function"}, "YAHOO.widget.Chart.getFunctionReference": {"guessedname": "getFunctionReference", "static": "", "description": "Uses YAHOO.widget.Chart.createProxyFunction to return string\nreference to a function.", "private": "", "guessedtype": "function"}, "_loadDataHandler": {"private": "", "description": "Called when the DataSource receives new data. The series definitions are used\nto build a data provider for the SWF chart.", "guessedname": "_loadDataHandler", "guessedtype": "function"}, "_getAltText": {"private": "", "description": "Getter for altText attribute.", "guessedname": "_getAltText", "guessedtype": "function"}, "setSeriesStyles": {"params": [{"type": "Array", "name": "styles", "description": "  Initializer for all Chart series styles."}], "description": "Sets the styles on all series in the Chart.", "guessedname": "setSeriesStyles", "guessedtype": "function"}, "YAHOO.widget.Chart.createProxyFunction": {"guessedname": "createProxyFunction", "static": "", "description": "Creates a globally accessible function that wraps a function reference.\nReturns the proxy function's name as a string for use by the SWF through\nExternalInterface.", "private": "", "guessedtype": "function"}, "_getPolling": {"private": "", "description": "Getter for the polling attribute.", "guessedname": "_getPolling", "guessedtype": "function"}, "_getCategoryNames": {"private": "", "description": "Getter for the categoryNames attribute.", "guessedname": "_getCategoryNames", "guessedtype": "function"}, "setStyle": {"params": [{"type": "String", "name": "name", "description": "  Name of the Chart style value to change."}, {"type": "Object", "name": "value", "description": "  New value to pass to the Chart style."}], "description": "Sets a single style value on the Chart instance.", "guessedname": "setStyle", "guessedtype": "function"}, "_setDataSource": {"private": "", "description": "Setter for the dataSource attribute.", "guessedname": "_setDataSource", "guessedtype": "function"}, "YAHOO.widget.Chart.removeProxyFunction": {"guessedname": "removeProxyFunction", "static": "", "description": "Removes a function created with createProxyFunction()", "private": "", "guessedtype": "function"}}, "uses": ["YAHOO.util.AttributeProvider"], "file": "Chart.js", "guessedtype": "function", "shortname": "Chart", "events": {"beforeDataSourceChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataSourceChange", "description": "Fires before the value for the configuration attribute 'dataSource' changes. Return false to cancel the attribute change."}, "beforeSeriesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSeriesChange", "description": "Fires before the value for the configuration attribute 'series' changes. Return false to cancel the attribute change."}, "altTextChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "altTextChange", "description": "Fires when the value for the configuration attribute 'altText' changes."}, "beforeSwfURLChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSwfURLChange", "description": "Fires before the value for the configuration attribute 'swfURL' changes. Return false to cancel the attribute change."}, "beforeBackgroundColorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBackgroundColorChange", "description": "Fires before the value for the configuration attribute 'backgroundColor' changes. Return false to cancel the attribute change."}, "itemDoubleClickEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user double-clicks an item renderer in the chart with the mouse."}, "contentReady": {"description": "Fires when the SWF is initialized and communication is possible."}, "itemDragStartEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user presses the mouse down on an item to initiate a drag action."}, "dataSourceChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataSourceChange", "description": "Fires when the value for the configuration attribute 'dataSource' changes."}, "itemMouseOverEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user moves the mouse over the bounds of an item renderer in the chart."}, "beforeCategoryNamesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCategoryNamesChange", "description": "Fires before the value for the configuration attribute 'categoryNames' changes. Return false to cancel the attribute change."}, "expressInstallChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "expressInstallChange", "description": "Fires when the value for the configuration attribute 'expressInstall' changes."}, "beforeExpressInstallChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeExpressInstallChange", "description": "Fires before the value for the configuration attribute 'expressInstall' changes. Return false to cancel the attribute change."}, "categoryNamesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "categoryNamesChange", "description": "Fires when the value for the configuration attribute 'categoryNames' changes."}, "itemClickEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user clicks an item renderer in the chart with the mouse."}, "itemDragEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user moves the mouse during a drag action."}, "pollingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pollingChange", "description": "Fires when the value for the configuration attribute 'polling' changes."}, "dataTipFunctionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataTipFunctionChange", "description": "Fires when the value for the configuration attribute 'dataTipFunction' changes."}, "swfURLChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "swfURLChange", "description": "Fires when the value for the configuration attribute 'swfURL' changes."}, "legendLabelFunctionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "legendLabelFunctionChange", "description": "Fires when the value for the configuration attribute 'legendLabelFunction' changes."}, "beforeWmodeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWmodeChange", "description": "Fires before the value for the configuration attribute 'wmode' changes. Return false to cancel the attribute change."}, "beforePollingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePollingChange", "description": "Fires before the value for the configuration attribute 'polling' changes. Return false to cancel the attribute change."}, "requestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "requestChange", "description": "Fires when the value for the configuration attribute 'request' changes."}, "wmodeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "wmodeChange", "description": "Fires when the value for the configuration attribute 'wmode' changes."}, "itemDragEndEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user releases the mouse during a drag action."}, "beforeVersionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeVersionChange", "description": "Fires before the value for the configuration attribute 'version' changes. Return false to cancel the attribute change."}, "beforeRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRequestChange", "description": "Fires before the value for the configuration attribute 'request' changes. Return false to cancel the attribute change."}, "backgroundColorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "backgroundColorChange", "description": "Fires when the value for the configuration attribute 'backgroundColor' changes."}, "seriesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "seriesChange", "description": "Fires when the value for the configuration attribute 'series' changes."}, "beforeLegendLabelFunctionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLegendLabelFunctionChange", "description": "Fires before the value for the configuration attribute 'legendLabelFunction' changes. Return false to cancel the attribute change."}, "beforeDataTipFunctionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataTipFunctionChange", "description": "Fires before the value for the configuration attribute 'dataTipFunction' changes. Return false to cancel the attribute change."}, "versionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "versionChange", "description": "Fires when the value for the configuration attribute 'version' changes."}, "beforeAltTextChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAltTextChange", "description": "Fires before the value for the configuration attribute 'altText' changes. Return false to cancel the attribute change."}, "itemMouseOutEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user moves the mouse out of the bounds of an item renderer in the chart."}}, "description": "Chart class for the YUI Charts widget."}, "YAHOO.util.ColumnDD": {"name": "YAHOO.util.ColumnDD", "constructors": [{"params": [{"type": "YAHOO.widget.DataTable", "name": "oDataTable", "description": "  DataTable instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "HTMLElement", "name": "elTarget", "description": "  Drag target element."}], "description": "ColumnDD subclasses DragDrop to support rearrangeable Columns."}], "namespace": "YAHOO.util", "module": "datatable", "guessedname": "ColumnDD", "extends": "YAHOO.util.DDProxy", "superclass": "YAHOO.util.DDProxy", "file": "ColumnSet.js", "guessedtype": "function", "shortname": "ColumnDD", "description": "ColumnDD subclasses DragDrop to support rearrangeable Columns."}, "YAHOO.widget.RootNode": {"name": "YAHOO.widget.RootNode", "constructors": [{"params": [{"type": "YAHOO.widget.TreeView", "name": "oTree", "description": "  The tree instance this node belongs to"}], "description": "A custom YAHOO.widget.Node that handles the unique nature of \nthe virtual, presentationless root node."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "RootNode", "methods": {"getNodeCount": {"return": {"type": "int", "description": "number of nodes in the tree"}, "description": "Count of nodes in tree.  \nIt overrides Nodes.getNodeCount because the root node should not be counted.", "guessedname": "getNodeCount", "guessedtype": "function"}, "getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if any child node is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nSince the RootNode is automatically created by treeView, \nits own definition is excluded from the returned node definition\nwhich only contains its children.", "guessedname": "getNodeDefinition", "guessedtype": "function"}}, "extends": "YAHOO.widget.Node", "superclass": "YAHOO.widget.Node", "file": "RootNode.js", "guessedtype": "function", "shortname": "RootNode", "properties": {"_type": {"description": "The node type", "default": "\"RootNode\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}}, "description": "A custom YAHOO.widget.Node that handles the unique nature of \nthe virtual, presentationless root node."}, "YAHOO.tool.TestNode": {"name": "YAHOO.tool.TestNode", "constructors": [{"params": [{"type": "Variant", "name": "testObject", "description": " A TestSuite, TestCase, or the name of a test function."}], "description": "A node in the test tree structure. May represent a TestSuite, TestCase, or\ntest function."}], "namespace": "YAHOO.tool", "module": "yuitest", "methods": {"appendChild": {"return": {"type": "Void", "description": ""}, "params": [{"type": "Variant", "name": "testObject", "description": " A TestSuite, TestCase, or the name of a test function."}], "description": "Appends a new test object (TestSuite, TestCase, or test function name) as a child\nof this node.", "guessedname": "appendChild", "guessedtype": "function"}}, "private": "", "file": "TestRunner.js", "shortname": "TestNode", "properties": {"testObject": {"type": "Variant", "description": "The TestSuite, TestCase, or test function represented by this node.", "guessedname": "testObject", "guessedtype": "property"}, "parent": {"type": "TestNode", "description": "Pointer to this node's parent.", "guessedname": "parent", "guessedtype": "property"}, "results": {"type": "object", "description": "Test results for this test object."}, "firstChild": {"type": "TestNode", "description": "Pointer to this node's first child."}, "next": {"type": "TestNode", "description": "Pointer to this node's next sibling.", "guessedname": "next", "guessedtype": "property"}, "lastChild": {"type": "TestNode", "description": "Pointer to this node's last child.", "guessedname": "lastChild", "guessedtype": "property"}}, "description": "A node in the test tree structure. May represent a TestSuite, TestCase, or\ntest function."}, "YAHOO.widget.ProfilerViewer": {"name": "YAHOO.widget.ProfilerViewer", "configs": {"tableHeight": {"default": "\"15em\"", "type": "string", "description": "The height of the DataTable.  The table will scroll\nvertically if the content overflows the specified\nheight."}, "swfUrl": {"default": "\"http://yui.yahooapis.com/2.5.0/build/charts/assets/charts.swf\"", "type": "string", "description": "The path to the YUI Charts swf file; must be a full URI\nor a path relative to the page being profiled. Changes at runtime\nnot supported; pass this value in at instantiation."}, "sortedBy": {"default": "{key:\"total\", dir:\"yui-dt-desc\"}", "type": "string", "description": "The default column key to sort by.  Valid keys are: fn, calls,\navg, min, max, total.  Valid dir values are: \nYAHOO.widget.DataTable.CLASS_ASC and\nYAHOO.widget.DataTable.CLASS_DESC (or their\nstring equivalents)."}, "filter": {"default": "null", "type": "function", "description": "A filter function to use in selecting functions that will\nappear in the ProfilerViewer report.  The function is passed\na function report object and should return a boolean indicating\nwhether that function should be included in the ProfilerViewer\ndisplay.  The argument is structured as follows:\n{\nfn: <str function name>,\ncalls : <n number of calls>,\navg : <n average call duration>,\nmax: <n duration of longest call>,\nmin: <n duration of shortest call>,\ntotal: <n total time of all calls>\npoints : <array time in ms of each call>\n}\nFor example, you would use the follwing filter function to \nreturn only functions that have been called at least once:\nfunction(o) {\nreturn (o.calls > 0);\n}"}, "visible": {"default": "false", "type": "boolean", "description": "The default visibility setting for the viewer canvas. If true,\nthe viewer will load all necessary files and render itself\nimmediately upon instantiation; otherwise, the viewer will\nload only minimal resources until the user toggles visibility\nvia the UI."}, "base": {"default": "\"\"", "type": "string", "description": "The YUI Loader base path from which to pull YUI files needed\nin the rendering of the ProfilerViewer canvas.  Passed directly\nto YUI Loader.  Leave blank to draw files from\nyui.yahooapis.com."}, "maxChartFunctions": {"default": "6", "type": "int", "description": "The maximum number of functions to profile in the chart. The\ngreater the number of functions, the greater the height of the\nchart canvas.\nheight."}, "chartStyle": {"default": "See JS source for default definitions.", "type": "obj", "description": "The style object that defines the chart's visual presentation.\nConforms to the style attribute passed to the Charts Control\nconstructor.  See Charts Control User's Guide for more information\non how to format this object."}, "showChart": {"default": "true", "type": "boolean", "description": "The default visibility setting for the chart."}, "chartSeriesDefinitions": {"default": "See JS source for full default definitions.", "type": "obj", "description": "The series definition information to use when charting\nspecific fields on the chart.  displayName, xField,\nand style members are used to construct the series\ndefinition; the \"group\" member is the array of fields\nthat should be charted when the table is sorted by a\ngiven field."}}, "constructors": [{"params": [{"type": "HTMLElement | String | Object", "name": "el(optional)", "description": " The html \nelement into which the ProfileViewer should be rendered. \nAn element will be created if none provided."}, {"type": "Object", "name": "attr", "description": " (optional) A key map of the ProfilerViewer's \ninitial attributes.  Ignored if first arg is an attributes object."}], "description": "A widget to view YUI Profiler output."}], "namespace": "YAHOO.widget", "module": "profilerviewer", "events": {"beforeChartSeriesDefinitionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeChartSeriesDefinitionsChange", "description": "Fires before the value for the configuration attribute 'chartSeriesDefinitions' changes. Return false to cancel the attribute change."}, "beforeVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeVisibleChange", "description": "Fires before the value for the configuration attribute 'visible' changes. Return false to cancel the attribute change."}, "swfUrlChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "swfUrlChange", "description": "Fires when the value for the configuration attribute 'swfUrl' changes."}, "beforeFilterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFilterChange", "description": "Fires before the value for the configuration attribute 'filter' changes. Return false to cancel the attribute change."}, "showChartChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showChartChange", "description": "Fires when the value for the configuration attribute 'showChart' changes."}, "sortedByChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "sortedByChange", "description": "Fires when the value for the configuration attribute 'sortedBy' changes."}, "chartSeriesDefinitionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "chartSeriesDefinitionsChange", "description": "Fires when the value for the configuration attribute 'chartSeriesDefinitions' changes."}, "beforeShowChartChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowChartChange", "description": "Fires before the value for the configuration attribute 'showChart' changes. Return false to cancel the attribute change."}, "beforeTableHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTableHeightChange", "description": "Fires before the value for the configuration attribute 'tableHeight' changes. Return false to cancel the attribute change."}, "maxChartFunctionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxChartFunctionsChange", "description": "Fires when the value for the configuration attribute 'maxChartFunctions' changes."}, "tableHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "tableHeightChange", "description": "Fires when the value for the configuration attribute 'tableHeight' changes."}, "beforeSortedByChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSortedByChange", "description": "Fires before the value for the configuration attribute 'sortedBy' changes. Return false to cancel the attribute change."}, "visibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "visibleChange", "description": "Fires when the value for the configuration attribute 'visible' changes."}, "beforeSwfUrlChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSwfUrlChange", "description": "Fires before the value for the configuration attribute 'swfUrl' changes. Return false to cancel the attribute change."}, "beforeBaseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBaseChange", "description": "Fires before the value for the configuration attribute 'base' changes. Return false to cancel the attribute change."}, "baseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "baseChange", "description": "Fires when the value for the configuration attribute 'base' changes."}, "chartStyleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "chartStyleChange", "description": "Fires when the value for the configuration attribute 'chartStyle' changes."}, "beforeMaxChartFunctionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxChartFunctionsChange", "description": "Fires before the value for the configuration attribute 'maxChartFunctions' changes. Return false to cancel the attribute change."}, "filterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "filterChange", "description": "Fires when the value for the configuration attribute 'filter' changes."}, "beforeChartStyleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeChartStyleChange", "description": "Fires before the value for the configuration attribute 'chartStyle' changes. Return false to cancel the attribute change."}, "renderEvent": {"description": "Fired when the viewer canvas first renders. No arguments are passed\nwith this event."}, "refreshDataEvent": {"description": "Fired when a data refresh is requested. No arguments are passed\nwith this event."}}, "guessedname": "ProfilerViewer", "methods": {"getDataTable": {"public": "", "return": {"type": "", "description": "YAHOO.widget.DataTable"}, "description": "Returns the element containing the console's DataTable\ninstance.", "guessedname": "getDataTable", "guessedtype": "function"}, "show": {"guessedname": "_show", "return": {"type": "", "description": "void"}, "description": "Shows the viewer canvas.", "private": "", "guessedtype": "function"}, "refreshData": {"public": "", "return": {"type": "", "description": "void"}, "description": "Refreshes the data displayed in the ProfilerViewer. When called,\nthis will invoke a refresh of the DataTable and (if displayed)\nthe Chart.", "guessedname": "refreshData", "guessedtype": "function"}, "_initViewerDOM": {"private": "", "description": "Set up the DOM structure for the ProfilerViewer canvas,\nincluding the holder for the DataTable.", "guessedname": "_initViewerDOM", "guessedtype": "function"}, "_drawChartLegend": {"private": "", "description": "Set up the Chart's legend", "guessedname": "_drawChartLegend", "guessedtype": "function"}, "_dataTableRenderHandler": {"private": "", "description": "Proxy the render event in DataTable into the ProfilerViewer\nattribute.", "guessedname": "_dataTableRenderHandler", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "attr", "description": " Hash of initial attributes"}], "description": "setAttributeConfigs TabView specific properties.", "private": "", "guessedtype": "function"}, "getHeadEl": {"public": "", "return": {"type": "", "description": "HTMLElement"}, "description": "Returns the element containing the console's header.", "guessedname": "getHeadEl", "guessedtype": "function"}, "getChartEl": {"public": "", "return": {"type": "", "description": "HTMLElement"}, "description": "Returns the element containing the console's chart.", "guessedname": "getChartEl", "guessedtype": "function"}, "_createButton": {"private": "", "description": "Create anchor elements for use as buttons. Args: label\nis text to appear on the face of the button, parentEl\nis the el to which the anchor will be attached, position\nis true for inserting as the first node and false for\ninserting as the last node of the parentEl.", "guessedname": "_createButton", "guessedtype": "function"}, "_refreshDataTable": {"private": "", "description": "Refresh DataTable, getting new data from Profiler.", "guessedname": "_refreshDataTable", "guessedtype": "function"}, "_sortedByChange": {"private": "", "description": "Proxy the sort event in DataTable into the ProfilerViewer\nattribute.", "guessedname": "_sortedByChange", "guessedtype": "function"}, "_initDataTable": {"private": "", "description": "Set up the DataTable.", "guessedname": "_initDataTable", "guessedtype": "function"}, "_toggleVisible": {"guessedname": "_toggleVisible", "return": {"type": "", "description": "void"}, "description": "Toggles visibility of the viewer canvas.", "private": "", "guessedtype": "function"}, "getBodyEl": {"public": "", "return": {"type": "", "description": "HTMLElement"}, "description": "Returns the element containing the console's body, including\nthe chart and the datatable..", "guessedname": "getBodyEl", "guessedtype": "function"}, "hide": {"guessedname": "_hide", "return": {"type": "", "description": "void"}, "description": "Hides the viewer canvas.", "private": "", "guessedtype": "function"}, "_initChart": {"private": "", "description": "Set up the Chart.", "guessedname": "_initChart", "guessedtype": "function"}, "_getChartData": {"private": "", "description": "Get data for the Chart from DataTable recordset", "guessedname": "_getChartData", "guessedtype": "function"}, "toString": {"guessedname": "toString", "return": {"type": "", "description": "String"}, "description": "Provides a readable name for the ProfilerViewer instance.", "private": "", "guessedtype": "function"}, "_sizeChartCanvas": {"private": "", "description": "Resize the chart's canvas if based on number of records\nreturned from the chart's datasource.", "guessedname": "_sizeChartCanvas", "guessedtype": "function"}, "getTableEl": {"public": "", "return": {"type": "", "description": "HTMLElement"}, "description": "Returns the element containing the console's dataTable.", "guessedname": "getTableEl", "guessedtype": "function"}, "_thClickHandler": {"private": "", "description": "Event handler for clicks on the DataTable's sortable column\nheads.", "guessedname": "_thClickHandler", "guessedtype": "function"}, "_initLauncherDOM": {"private": "", "description": "Set up the DOM structure for the ProfilerViewer launcher.", "guessedname": "_initLauncherDOM", "guessedtype": "function"}, "_arraySum": {"private": "", "description": "Utility function for array sums.", "guessedname": "_arraySum", "guessedtype": "function"}, "_createProfilerViewerElement": {"guessedname": "_createProfilerViewerElement", "return": {"type": "", "description": "HTMLElement"}, "description": "If no element is passed in, create it as the first element\nin the document.", "private": "", "guessedtype": "function"}, "_getSeriesDef": {"private": "", "description": "Build series definition based on current configuration attributes.", "guessedname": "_getSeriesDef", "guessedtype": "function"}, "_initChartDOM": {"private": "", "description": "Set up the DOM structure for the ProfilerViewer canvas.", "guessedname": "_initChartDOM", "guessedtype": "function"}, "_setBusyState": {"private": "", "description": "Set's console busy state.", "guessedname": "_setBusyState", "guessedtype": "function"}, "_refreshChart": {"private": "", "description": "Refresh chart, getting new data from table.", "guessedname": "_refreshChart", "guessedtype": "function"}, "_render": {"guessedname": "_render", "return": {"type": "", "description": "void"}, "description": "Render the viewer canvas", "private": "", "guessedtype": "function"}, "_getProfilerData": {"private": "", "description": "Retrieves data from Profiler, filtering and sorting as needed\nbased on current widget state.  Adds calculated percentage\ncolumn and function name to data returned by Profiler.", "guessedname": "_getProfilerData", "guessedtype": "function"}, "getChart": {"public": "", "return": {"type": "", "description": "YAHOO.widget.BarChart"}, "description": "Returns the element containing the console's Chart instance.", "guessedname": "getChart", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "profilerviewer.js", "guessedtype": "function", "shortname": "ProfilerViewer", "properties": {"CLASS_CHART": {"description": "Classname for element containing the chart.", "default": "\"yui-pv-chart\"", "static": "", "guessedname": "CLASS_CHART", "guessedtype": "property", "type": "string", "public": ""}, "CLASS_BUSY": {"description": "Classname for busy indicator in the dashboard.", "default": "\"yui-pv-busy\"", "static": "", "guessedname": "CLASS_BUSY", "guessedtype": "property", "type": "string", "public": ""}, "timeAxisLabelFunction": {"description": "Function used to format numbers in milliseconds\nfor chart; must be publicly accessible, per Charts spec.", "private": "", "static": "", "guessedname": "timeAxisLabelFunction", "guessedtype": "function", "type": "function"}, "CLASS_CHART_LEGEND": {"description": "Classname for element containing the chart's legend.", "default": "\"yui-pv-chartlegend\"", "static": "", "guessedname": "CLASS_CHART_LEGEND", "guessedtype": "property", "type": "string", "public": ""}, "CLASS_REFRESH": {"description": "Classname for the \"refresh data\" button.", "default": "\"yui-pv-refresh\"", "static": "", "guessedname": "CLASS_REFRESH", "guessedtype": "property", "type": "string", "public": ""}, "CLASS_CHART_CONTAINER": {"description": "Classname for element containing the chart and chart\nlegend elements.", "default": "\"yui-pv-chartcontainer\"", "static": "", "guessedname": "CLASS_CHART_CONTAINER", "guessedtype": "property", "type": "string", "public": ""}, "percentAxisLabelFunction": {"description": "Function used to format percent numbers for chart; must\nbe publicly accessible, per Charts spec.", "private": "", "static": "", "guessedname": "percentAxisLabelFunction", "guessedtype": "function", "type": "function"}, "CLASS_DASHBOARD": {"description": "Classname for ProfilerViewer button dashboard.", "default": "\"yui-pv-dashboard\"", "static": "", "guessedname": "CLASS_DASHBOARD", "guessedtype": "property", "type": "string", "public": ""}, "STRINGS": {"description": "Strings used in the UI.", "default": "English language strings for UI.", "object": "", "static": "", "guessedname": "STRINGS", "guessedtype": "property", "public": ""}, "CLASS": {"description": "Classname for ProfilerViewer containing element.", "default": "\"yui-pv\"", "static": "", "guessedname": "CLASS", "guessedtype": "property", "type": "string", "public": ""}, "CLASS_TABLE": {"description": "Classname for element containing the datatable.", "default": "\"yui-pv-table\"", "static": "", "guessedname": "CLASS_TABLE", "guessedtype": "property", "type": "string", "public": ""}}, "description": "A widget to view YUI Profiler output."}, "YAHOO.util.DD": {"name": "YAHOO.util.DD", "constructors": [{"params": [{"type": "String", "name": "id", "description": " the id of the linked element"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop items"}, {"type": "object", "name": "config", "description": " an object containing configurable attributes\nValid properties for DD: \nscroll"}], "description": "A DragDrop implementation where the linked element follows the \nmouse cursor during a drag."}], "namespace": "YAHOO.util", "module": "dragdrop", "events": {"startDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs after a mouse down and the drag threshold has been met. The drag threshold default is either 3 pixels of mouse movement or 1 full second of holding the mousedown."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fired from inside DragDropMgr when the drag operation is finished."}, "dragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs every mousemove event while dragging."}, "dragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires every mousemove event while over a drag and drop object."}, "dragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when a dragged object is no longer over an object that had the onDragEnter fire."}, "b4EndDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the endDragEvent. Returning false will cancel."}, "b4StartDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the startDragEvent, returning false will cancel the startDrag Event."}, "b4DragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOutEvent"}, "endDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires on the mouseup event after a drag has been initiated (startDrag fired)."}, "b4DragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOverEvent."}, "dragEnterEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs when the dragged object first interacts with another targettable drag and drop object."}, "b4DragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragDropEvent"}, "b4DragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragEvent."}, "dragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped on another."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event. The mousedown does not always result in a drag operation."}, "invalidDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped in a location that contains no drop targets."}, "b4MouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event, before the mouseDownEvent gets fired. Returning false will cancel the drag."}}, "guessedname": "DD", "methods": {"setDragElPos": {"params": [{"type": "int", "name": "iPageX", "description": " the X coordinate of the mousedown or drag event"}, {"type": "int", "name": "iPageY", "description": " the Y coordinate of the mousedown or drag event"}], "description": "Sets the drag element to the location of the mousedown or click event, \nmaintaining the cursor location relative to the location on the element \nthat was clicked.  Override this if you want to place the element in a \nlocation other than where the cursor is.", "guessedname": "setDragElPos", "guessedtype": "function"}, "alignElWithMouse": {"params": [{"type": "HTMLElement", "name": "el", "description": " the element to move"}, {"type": "int", "name": "iPageX", "description": " the X coordinate of the mousedown or drag event"}, {"type": "int", "name": "iPageY", "description": " the Y coordinate of the mousedown or drag event"}], "description": "Sets the element to the location of the mousedown or click event, \nmaintaining the cursor location relative to the location on the element \nthat was clicked.  Override this if you want to place the element in a \nlocation other than where the cursor is.", "guessedname": "alignElWithMouse", "guessedtype": "function"}, "autoOffset": {"params": [{"type": "int", "name": "iPageX", "description": " the X coordinate of the click"}, {"type": "int", "name": "iPageY", "description": " the Y coordinate of the click"}], "description": "Sets the pointer offset to the distance between the linked element's top \nleft corner and the location the element was clicked", "guessedname": "autoOffset", "guessedtype": "function"}, "autoScroll": {"guessedname": "autoScroll", "params": [{"type": "int", "name": "x", "description": " the drag element's x position"}, {"type": "int", "name": "y", "description": " the drag element's y position"}, {"type": "int", "name": "h", "description": " the height of the drag element"}, {"type": "int", "name": "w", "description": " the width of the drag element"}], "description": "Auto-scroll the window if the dragged object has been moved beyond the \nvisible window boundary.", "private": "", "guessedtype": "function"}, "setDelta": {"params": [{"type": "int", "name": "iDeltaX", "description": " the distance from the left"}, {"type": "int", "name": "iDeltaY", "description": " the distance from the top"}], "description": "Sets the pointer offset.  You can call this directly to force the \noffset to be in a particular location (e.g., pass in 0,0 to set it \nto the center of the object, as done in YAHOO.widget.Slider)", "guessedname": "setDelta", "guessedtype": "function"}, "cachePosition": {"params": [{"type": "", "name": "iPageX", "description": " the current x position (optional, this just makes it so we\ndon't have to look it up again)"}, {"type": "", "name": "iPageY", "description": " the current y position (optional, this just makes it so we\ndon't have to look it up again)"}], "description": "Saves the most recent position so that we can reset the constraints and\ntick marks on-demand.  We need to know this so that we can calculate the\nnumber of pixels the element is offset from its original position.", "guessedname": "cachePosition", "guessedtype": "function"}}, "extends": "YAHOO.util.DragDrop", "superclass": "YAHOO.util.DragDrop", "file": "DD.js", "guessedtype": "function", "shortname": "DD", "properties": {"scroll": {"type": "boolean", "description": "When set to true, the utility automatically tries to scroll the browser\nwindow when a drag and drop element is dragged near the viewport boundary.\nDefaults to true.", "guessedname": "scroll", "guessedtype": "property"}}, "description": "A DragDrop implementation where the linked element follows the \nmouse cursor during a drag."}, "YAHOO.widget.Paginator.ui.NextPageLink": {"properties": {"current": {"guessedname": "current", "type": "HTMLElement", "description": "Currently placed HTMLElement node", "private": "", "guessedtype": "property"}, "span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node (inactive link)", "private": "", "guessedtype": "property"}, "link": {"guessedname": "link", "type": "HTMLElement", "description": "Link node", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.NextPageLink", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the link to jump to the next page."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforeNextPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNextPageLinkLabelChange", "description": "Fires before the value for the configuration attribute 'nextPageLinkLabel' changes. Return false to cancel the attribute change."}, "beforeNextPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNextPageLinkClassChange", "description": "Fires before the value for the configuration attribute 'nextPageLinkClass' changes. Return false to cancel the attribute change."}, "nextPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "nextPageLinkClassChange", "description": "Fires when the value for the configuration attribute 'nextPageLinkClass' changes."}, "nextPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "nextPageLinkLabelChange", "description": "Fires when the value for the configuration attribute 'nextPageLinkLabel' changes."}}, "guessedname": "NextPageLink", "methods": {"onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the link's onclick event.  Passes to setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the link/span node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Swap the link and span nodes if appropriate.", "guessedname": "update", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}}, "file": "NextPageLink.js", "guessedtype": "function", "shortname": "NextPageLink", "configs": {"nextPageLinkLabel": {"default": "'next >'", "description": "Used as innerHTML for the next page link/span."}, "nextPageLinkClass": {"default": "'yui-pg-next'", "description": "CSS class assigned to the link/span"}}, "description": "ui Component to generate the link to jump to the next page."}, "YAHOO.widget.Calendar_Core": {"name": "YAHOO.widget.Calendar_Core", "deprecated": "The old Calendar_Core class is no longer necessary.", "namespace": "YAHOO.widget", "module": "calendar", "guessedname": "Calendar_Core", "extends": "YAHOO.widget.Calendar", "superclass": "YAHOO.widget.Calendar", "file": "Calendar.js", "guessedtype": "property", "shortname": "Calendar_Core"}, "YAHOO.widget.Button": {"name": "YAHOO.widget.Button", "configs": {"replaceLabel": {"default": "false", "type": "Boolean", "description": "Boolean indicating whether or not the text of the \nbutton's <code><label></code> element should be used as\nthe source for the button's label configuration attribute and \nremoved from the DOM."}, "disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the button should be disabled.  \n(Disabled buttons are dimmed and will not respond to user input \nor fire events.  Does not apply to button's of type \"link.\")"}, "href": {"type": "String", "description": "String specifying the href for the button.  Applies\nonly to buttons of type \"link.\""}, "checked": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the button is checked. \nApplies only to buttons of type \"radio\" and \"checkbox.\""}, "title": {"default": "null", "type": "String", "description": "String specifying the title for the button."}, "menu": {"default": "null", "type": "<a href=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu</a>|<a \nhref=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>|<a \nhref=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-58190037\">HTMLElement</a>|String|Array", "description": "Object specifying the menu for the button.  \nThe value can be one of the following:\n<ul>\n<li>Object specifying a rendered <a href=\"YAHOO.widget.Menu.html\">\nYAHOO.widget.Menu</a> instance.</li>\n<li>Object specifying a rendered <a href=\"YAHOO.widget.Overlay.html\">\nYAHOO.widget.Overlay</a> instance.</li>\n<li>String specifying the id attribute of the <code><div>\n</code> element used to create the menu.  By default the menu \nwill be created as an instance of \n<a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>.  \nIf the <a href=\"YAHOO.widget.Menu.html#CSS_CLASS_NAME\">\ndefault CSS class name for YAHOO.widget.Menu</a> is applied to \nthe <code><div></code> element, it will be created as an\ninstance of <a href=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu\n</a>.</li><li>String specifying the id attribute of the \n<code><select></code> element used to create the menu.\n</li><li>Object specifying the <code><div></code> element\nused to create the menu.</li>\n<li>Object specifying the <code><select></code> element\nused to create the menu.</li>\n<li>Array of object literals, each representing a set of \n<a href=\"YAHOO.widget.MenuItem.html\">YAHOO.widget.MenuItem</a> \nconfiguration attributes.</li>\n<li>Array of strings representing the text labels for each menu \nitem in the menu.</li>\n</ul>", "writeonce": ""}, "label": {"default": "null", "type": "String", "description": "String specifying the button's text label \nor innerHTML."}, "srcelement": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|String", "description": "Object reference to the HTML element (either \n<code><input></code> or <code><span></code>) \nused to create the button.", "writeonce": ""}, "onclick": {"default": "null", "type": "Object", "description": "Object literal representing the code to be executed  \nwhen the button is clicked.  Format:<br> <code> {<br> \n<strong>fn:</strong> Function,   // The handler to call \nwhen the event fires.<br> <strong>obj:</strong> Object, \n// An object to pass back to the handler.<br> \n<strong>scope:</strong> Object //  The object to use \nfor the scope of the handler.<br> } </code>"}, "type": {"default": "\"push\"", "type": "String", "description": "String specifying the button's type.  Possible \nvalues are: \"push,\" \"link,\" \"submit,\" \"reset,\" \"checkbox,\" \n\"radio,\" \"menu,\" and \"split.\"", "writeonce": ""}, "container": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|String", "description": "HTML element reference or string specifying the id \nattribute of the HTML element that the button's markup should be \nrendered into.", "writeonce": ""}, "menuclassname": {"default": "\"yui-button-menu\"", "type": "String", "description": "String representing the CSS class name to be \napplied to the root element of the button's menu.", "writeonce": ""}, "menumaxheight": {"default": "0", "type": "Number", "description": "Number defining the maximum height (in pixels) for a menu's \nbody element (<code><div class=\"bd\"<</code>).  Once a menu's body \nexceeds this height, the contents of the body are scrolled to maintain \nthis value.  This value cannot be set lower than the value of the \n\"minscrollheight\" configuration property."}, "target": {"type": "String", "description": "String specifying the target for the button.  \nApplies only to buttons of type \"link.\""}, "name": {"default": "null", "type": "String", "description": "String specifying the name for the button."}, "menuminscrollheight": {"default": "90", "type": "Number", "description": "Number defining the minimum threshold for the \"menumaxheight\" \nconfiguration attribute.  When set this attribute is automatically applied \nto all submenus."}, "value": {"default": "null", "type": "Object", "description": "Object specifying the value for the button."}, "lazyloadmenu": {"default": "true", "type": "Boolean", "description": "Boolean indicating the value to set for the \n<a href=\"YAHOO.widget.Menu.html#lazyLoad\">\"lazyload\"</a>\nconfiguration property of the button's menu.  Setting \n\"lazyloadmenu\" to <code>true </code> will defer rendering of \nthe button's menu until the first time it is made visible.  \nIf \"lazyloadmenu\" is set to <code>false</code>, the button's \nmenu will be rendered immediately if the button is in the \ndocument, or in response to the button's \"appendTo\" event if \nthe button is not yet in the document.  In either case, the \nmenu is rendered into the button's parent HTML element.  \n<em>This attribute does not apply if a \n<a href=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu</a> or \n<a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a> \ninstance is passed as the value of the button's \"menu\" \nconfiguration attribute. <a href=\"YAHOO.widget.Menu.html\">\nYAHOO.widget.Menu</a> or <a href=\"YAHOO.widget.Overlay.html\">\nYAHOO.widget.Overlay</a> instances should be rendered before \nbeing set as the value for the \"menu\" configuration \nattribute.</em>", "writeonce": ""}, "tabindex": {"default": "null", "type": "Number", "description": "Number specifying the tabindex for the button."}, "focusmenu": {"default": "true", "type": "Boolean", "description": "Boolean indicating whether or not the button's menu \nshould be focused when it is made visible."}, "menualignment": {"default": "[\"tl\", \"bl\"]", "type": "Array", "description": "Array defining how the Button's Menu is aligned to the Button.  \nThe default value of [\"tl\", \"bl\"] aligns the Menu's top left corner to the Button's \nbottom left corner."}, "selectedMenuItem": {"default": "null", "type": "YAHOO.widget.MenuItem", "description": "Object representing the item in the button's menu \nthat is currently selected."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><input></code>, <code><button></code>,\n<code><a></code>, or <code><span></code> element to \nbe used to create the button."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-6043025\">HTMLInputElement</a>|<a href=\"http://www.w3.org\n/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-34812697\">\nHTMLButtonElement</a>|<a href=\"\nhttp://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#\nID-33759296\">HTMLElement</a>", "name": "p_oElement", "description": " Object reference for the \n<code><input></code>, <code><button></code>, \n<code><a></code>, or <code><span></code> element to be \nused to create the button."}, {"type": "Object", "name": "p_oElement", "description": " Object literal specifying a set of   \nconfiguration attributes used to create the button."}, {"type": "Object", "name": "p_oAttributes", "description": " Optional. Object literal specifying a set  \nof configuration attributes used to create the button."}], "description": "The Button class creates a rich, graphical button."}], "namespace": "YAHOO.widget", "module": "button", "events": {"beforeTitleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTitleChange", "description": "Fires before the value for the configuration attribute 'title' changes. Return false to cancel the attribute change."}, "focus": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item receives focus.  Passes back a  \nsingle object representing the original DOM event object passed back by \nthe event utility (YAHOO.util.Event) when the event was fired.  See \n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> \nfor more information on listening for this event."}, "beforeMenuclassnameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenuclassnameChange", "description": "Fires before the value for the configuration attribute 'menuclassname' changes. Return false to cancel the attribute change."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "beforeNameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNameChange", "description": "Fires before the value for the configuration attribute 'name' changes. Return false to cancel the attribute change."}, "beforeMenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenuChange", "description": "Fires before the value for the configuration attribute 'menu' changes. Return false to cancel the attribute change."}, "menuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menuChange", "description": "Fires when the value for the configuration attribute 'menu' changes."}, "beforeHrefChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHrefChange", "description": "Fires before the value for the configuration attribute 'href' changes. Return false to cancel the attribute change."}, "option": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user invokes the button's option.  Passes \nback a single object representing the original DOM event (either \n\"mousedown\" or \"keydown\") that caused the \"option\" event to fire.  See \n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> \nfor more information on listening for this event."}, "onclickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "onclickChange", "description": "Fires when the value for the configuration attribute 'onclick' changes."}, "menumaxheightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menumaxheightChange", "description": "Fires when the value for the configuration attribute 'menumaxheight' changes."}, "hrefChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hrefChange", "description": "Fires when the value for the configuration attribute 'href' changes."}, "menuminscrollheightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menuminscrollheightChange", "description": "Fires when the value for the configuration attribute 'menuminscrollheight' changes."}, "beforeReplaceLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeReplaceLabelChange", "description": "Fires before the value for the configuration attribute 'replaceLabel' changes. Return false to cancel the attribute change."}, "containerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containerChange", "description": "Fires when the value for the configuration attribute 'container' changes."}, "blur": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item loses the input focus.  Passes back  \na single object representing the original DOM event object passed back by \nthe event utility (YAHOO.util.Event) when the event was fired.  See \n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for  \nmore information on listening for this event."}, "beforeMenuminscrollheightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenuminscrollheightChange", "description": "Fires before the value for the configuration attribute 'menuminscrollheight' changes. Return false to cancel the attribute change."}, "typeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "typeChange", "description": "Fires when the value for the configuration attribute 'type' changes."}, "beforeLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLabelChange", "description": "Fires before the value for the configuration attribute 'label' changes. Return false to cancel the attribute change."}, "beforeTypeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTypeChange", "description": "Fires before the value for the configuration attribute 'type' changes. Return false to cancel the attribute change."}, "targetChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "targetChange", "description": "Fires when the value for the configuration attribute 'target' changes."}, "tabindexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "tabindexChange", "description": "Fires when the value for the configuration attribute 'tabindex' changes."}, "beforeSelectedMenuItemChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSelectedMenuItemChange", "description": "Fires before the value for the configuration attribute 'selectedMenuItem' changes. Return false to cancel the attribute change."}, "beforeOnclickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeOnclickChange", "description": "Fires before the value for the configuration attribute 'onclick' changes. Return false to cancel the attribute change."}, "replaceLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "replaceLabelChange", "description": "Fires when the value for the configuration attribute 'replaceLabel' changes."}, "beforeMenualignmentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenualignmentChange", "description": "Fires before the value for the configuration attribute 'menualignment' changes. Return false to cancel the attribute change."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "beforeContainerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainerChange", "description": "Fires before the value for the configuration attribute 'container' changes. Return false to cancel the attribute change."}, "labelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "labelChange", "description": "Fires when the value for the configuration attribute 'label' changes."}, "focusmenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "focusmenuChange", "description": "Fires when the value for the configuration attribute 'focusmenu' changes."}, "nameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "nameChange", "description": "Fires when the value for the configuration attribute 'name' changes."}, "beforeTargetChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTargetChange", "description": "Fires before the value for the configuration attribute 'target' changes. Return false to cancel the attribute change."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}, "lazyloadmenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "lazyloadmenuChange", "description": "Fires when the value for the configuration attribute 'lazyloadmenu' changes."}, "beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "beforeTabindexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTabindexChange", "description": "Fires before the value for the configuration attribute 'tabindex' changes. Return false to cancel the attribute change."}, "beforeSrcelementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSrcelementChange", "description": "Fires before the value for the configuration attribute 'srcelement' changes. Return false to cancel the attribute change."}, "menuclassnameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menuclassnameChange", "description": "Fires when the value for the configuration attribute 'menuclassname' changes."}, "beforeMenumaxheightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenumaxheightChange", "description": "Fires before the value for the configuration attribute 'menumaxheight' changes. Return false to cancel the attribute change."}, "beforeFocusmenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFocusmenuChange", "description": "Fires before the value for the configuration attribute 'focusmenu' changes. Return false to cancel the attribute change."}, "srcelementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "srcelementChange", "description": "Fires when the value for the configuration attribute 'srcelement' changes."}, "selectedMenuItemChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "selectedMenuItemChange", "description": "Fires when the value for the configuration attribute 'selectedMenuItem' changes."}, "beforeLazyloadmenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLazyloadmenuChange", "description": "Fires before the value for the configuration attribute 'lazyloadmenu' changes. Return false to cancel the attribute change."}, "menualignmentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menualignmentChange", "description": "Fires when the value for the configuration attribute 'menualignment' changes."}, "titleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "titleChange", "description": "Fires when the value for the configuration attribute 'title' changes."}, "checkedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "checkedChange", "description": "Fires when the value for the configuration attribute 'checked' changes."}, "beforeCheckedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCheckedChange", "description": "Fires before the value for the configuration attribute 'checked' changes. Return false to cancel the attribute change."}}, "methods": {"_showMenu": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object \npassed back by the event utility (YAHOO.util.Event) that triggered \nthe display of the menu."}], "description": "Shows the button's menu.", "guessedname": "_showMenu", "guessedtype": "function"}, "submitForm": {"protected": "", "return": {"type": "Boolean", "description": ""}, "description": "Submits the form to which the button belongs.  Returns  \ntrue if the form was submitted successfully, false if the submission \nwas cancelled.", "guessedname": "submitForm", "guessedtype": "function"}, "createInputElement": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-6043025\">HTMLInputElement</a>", "description": ""}, "params": [{"type": "String", "name": "p_sType", "description": " String specifying the type of \n<code><input></code> element to create."}, {"type": "String", "name": "p_sName", "description": " String specifying the name of \n<code><input></code> element to create."}, {"type": "String", "name": "p_sValue", "description": " String specifying the value of \n<code><input></code> element to create."}, {"type": "String", "name": "p_bChecked", "description": " Boolean specifying if the  \n<code><input></code> element is to be checked."}], "description": "Creates an <code><input></code> element of the \nspecified type.", "private": ""}, "createButtonElement": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>", "description": ""}, "params": [{"type": "String", "name": "p_sType", "description": " String indicating the type of element \nto create."}], "description": "Creates the button's HTML elements.", "guessedname": "createButtonElement", "guessedtype": "function"}, "_isActivationKey": {"return": {"type": "Boolean", "description": ""}, "description": "Determines if the specified keycode is one that toggles  \nthe button's \"active\" state.", "protected": "", "params": [{"type": "Number", "name": "p_nKeyCode", "description": " Number representing the keycode to \nbe evaluated."}], "guessedname": "_isActivationKey", "guessedtype": "function"}, "hasFocus": {"return": {"type": "Boolean", "description": ""}, "description": "Returns a boolean indicating whether or not the button \nhas focus.", "guessedname": "hasFocus", "guessedtype": "function"}, "getForm": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-\n20000929/level-one-html.html#ID-40002357\">HTMLFormElement</a>", "description": ""}, "description": "Returns a reference to the button's parent form.", "guessedname": "getForm", "guessedtype": "function"}, "_onFormReset": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event \nobject passed back by the event utility (YAHOO.util.Event)."}], "description": "\"reset\" event handler for the button's form.", "guessedname": "_onFormReset", "guessedtype": "function"}, "_addListenersToForm": {"protected": "", "description": "Adds event handlers to the button's form.", "guessedname": "_addListenersToForm", "guessedtype": "function"}, "_onMouseUp": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mouseup\" event handler for the button.", "guessedname": "_onMouseUp", "guessedtype": "function"}, "_onOption": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"option\" event handler for the button.", "guessedname": "_onOption", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "p_oAttributes", "description": " Object literal specifying a set of \nconfiguration attributes used to create the button."}], "description": "Initializes all of the configuration attributes used to  \ncreate the button.", "guessedname": "initAttributes", "guessedtype": "function"}, "_setTabIndex": {"protected": "", "params": [{"type": "Number", "name": "p_nTabIndex", "description": " Number indicating the value for the \nbutton's \"tabindex\" attribute."}], "description": "Sets the value of the button's \"tabindex\" attribute.", "guessedname": "_setTabIndex", "guessedtype": "function"}, "_onSelectedMenuItemChange": {"params": [{"type": "Event", "name": "event", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"selectedMenuItemChange\" event handler for the Button's\n\"selectedMenuItem\" attribute.", "guessedname": "_onSelectedMenuItemChange", "guessedtype": "function"}, "_onDocumentKeyUp": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"keyup\" event handler for the document.", "guessedname": "_onDocumentKeyUp", "guessedtype": "function"}, "_onClick": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"click\" event handler for the button.", "guessedname": "_onClick", "guessedtype": "function"}, "removeStateCSSClasses": {"description": "Removes state-specific CSS classes to the button's root \nDOM element.", "guessedname": "removeStateCSSClasses", "guessedtype": "function"}, "YAHOO.widget.Button.onFormKeyPress": {"params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed \nback by the event utility (YAHOO.util.Event)."}], "description": "\"keypress\" event handler for the button's form.", "guessedname": "onFormKeyPress", "guessedtype": "function"}, "YAHOO.widget.Button.addHiddenFieldsToForm": {"params": [{"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-40002357\">HTMLFormElement</a>", "name": "p_oForm", "description": " Object reference \nfor the form to search."}], "description": "Searches the specified form and adds hidden fields for  \ninstances of YAHOO.widget.Button that are of type \"radio,\" \"checkbox,\" \n\"menu,\" and \"split.\"", "guessedname": "addHiddenFieldsToForm", "guessedtype": "function"}, "getHiddenFields": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|Array", "description": ""}, "description": "Returns an <code><input></code> element or \narray of form elements used to represent the button when its parent \nform is submitted.", "guessedname": "getHiddenFields", "guessedtype": "function"}, "YAHOO.widget.Button.getButton": {"return": {"type": "YAHOO.widget.Button", "description": ""}, "params": [{"type": "String", "name": "p_sId", "description": " String specifying the id of the root node of the \nHTML element representing the button to be retrieved."}], "description": "Returns a button with the specified id.", "guessedname": "getButton", "guessedtype": "function"}, "_setDisabled": {"protected": "", "params": [{"type": "Boolean", "name": "p_bDisabled", "description": " Boolean indicating the value for \nthe button's \"disabled\" attribute."}], "description": "Sets the value of the button's \"disabled\" attribute.", "guessedname": "_setDisabled", "guessedtype": "function"}, "getMenu": {"return": {"type": "<a href=\"YAHOO.widget.Overlay.html\">\nYAHOO.widget.Overlay</a>|<a \nhref=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu</a>", "description": ""}, "description": "Returns a reference to the button's menu.", "guessedname": "getMenu", "guessedtype": "function"}, "_setChecked": {"protected": "", "params": [{"type": "Boolean", "name": "p_bChecked", "description": " Boolean indicating the value for  \nthe button's \"checked\" attribute."}], "description": "Sets the value of the button's \"target\" attribute.", "guessedname": "_setChecked", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><input></code>, <code><button></code>,\n<code><a></code>, or <code><span></code> element to \nbe used to create the button."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|<a href=\"http://\nwww.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html\n#ID-34812697\">HTMLButtonElement</a>|<a href=\"http://www.w3.org/TR\n/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-33759296\">\nHTMLElement</a>", "name": "p_oElement", "description": " Object reference for the \n<code><input></code>, <code><button></code>, \n<code><a></code>, or <code><span></code> element to be \nused to create the button."}, {"type": "Object", "name": "p_oElement", "description": " Object literal specifying a set of \nconfiguration attributes used to create the button."}, {"type": "Object", "name": "p_oAttributes", "description": " Optional. Object literal specifying a \nset of configuration attributes used to create the button."}], "description": "The Button class's initialization method.", "guessedname": "init", "guessedtype": "function"}, "_setTitle": {"protected": "", "params": [{"type": "String", "name": "p_nTabIndex", "description": " Number indicating the value for \nthe button's \"title\" attribute."}], "description": "Sets the value of the button's \"title\" attribute.", "guessedname": "_setTitle", "guessedtype": "function"}, "_setHref": {"protected": "", "params": [{"type": "String", "name": "p_sHref", "description": " String indicating the value for the button's \n\"href\" attribute."}], "description": "Sets the value of the button's \"href\" attribute.", "guessedname": "_setHref", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the button.", "guessedname": "toString", "guessedtype": "function"}, "_onMouseDown": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mousedown\" event handler for the button.", "guessedname": "_onMouseDown", "guessedtype": "function"}, "destroy": {"description": "Removes the button's element from its parent element and \nremoves all event handlers.", "guessedname": "destroy", "guessedtype": "function"}, "_onMenuHide": {"guessedname": "_onMenuHide", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}], "description": "\"hide\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "_setMenu": {"protected": "", "params": [{"type": "Object", "name": "p_oMenu", "description": " Object indicating the value for the button's \n\"menu\" attribute."}], "description": "Sets the value of the button's \"menu\" attribute.", "guessedname": "_setMenu", "guessedtype": "function"}, "_onKeyUp": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"keyup\" event handler for the button.", "guessedname": "_onKeyUp", "guessedtype": "function"}, "_onLabelClick": {"params": [{"type": "Event", "name": "event", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"click\" event handler for the Button's\n<code><label></code> element.", "guessedname": "_onLabelClick", "guessedtype": "function"}, "_isSplitButtonOptionKey": {"return": {"type": "Boolean", "description": ""}, "description": "Determines if the specified keycode is one that toggles  \nthe display of the split button's menu.", "protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "guessedname": "_isSplitButtonOptionKey", "guessedtype": "function"}, "_onAppendTo": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"appendTo\" event handler for the button.", "guessedname": "_onAppendTo", "guessedtype": "function"}, "_onDblClick": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"dblclick\" event handler for the button.", "guessedname": "_onDblClick", "guessedtype": "function"}, "_onFormSubmit": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event \nobject passed back by the event utility (YAHOO.util.Event)."}], "description": "\"submit\" event handler for the button's form.", "guessedname": "_onFormSubmit", "guessedtype": "function"}, "_onFocus": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"focus\" event handler for the button.", "guessedname": "_onFocus", "guessedtype": "function"}, "_setOnClick": {"protected": "", "params": [{"type": "Object", "name": "p_oObject", "description": " Object indicating the value for the button's \n\"onclick\" attribute."}], "description": "Sets the value of the button's \"onclick\" attribute.", "guessedname": "_setOnClick", "guessedtype": "function"}, "blur": {"description": "Causes the button to lose focus and fires the button's\n\"blur\" event.", "guessedname": "blur", "guessedtype": "function"}, "_onMenuShow": {"guessedname": "_onMenuShow", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}], "description": "\"show\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "setAttributesFromSrcElement": {"params": [{"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-6043025\">HTMLInputElement</a>|<a href=\"http://www.w3.org/\nTR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-\n48250443\">HTMLAnchorElement</a>", "name": "p_oElement", "description": " Object reference to the HTML \nelement (either <code><input></code> or <code><span>\n</code>) used to create the button."}, {"type": "Object", "name": "p_oAttributes", "description": " Object reference for the collection of \nconfiguration attributes used to create the button."}], "description": "Gets the values for all the attributes of the source element \n(either <code><input></code> or <code><a></code>) that \nmap to Button configuration attributes and sets them into a collection \nthat is passed to the Button constructor.", "private": ""}, "focus": {"description": "Causes the button to receive the focus and fires the \nbutton's \"focus\" event.", "guessedname": "focus", "guessedtype": "function"}, "setFormElementProperties": {"description": "Gets the value of the attributes from the form element  \nand sets them into the collection of configuration attributes used to \nconfigure the button.", "private": ""}, "_hideMenu": {"protected": "", "description": "Hides the button's menu.", "guessedname": "_hideMenu", "guessedtype": "function"}, "_setLabel": {"protected": "", "params": [{"type": "String", "name": "p_sLabel", "description": " String indicating the value for the button's \n\"label\" attribute."}], "description": "Sets the value of the button's \"label\" attribute.", "guessedname": "_setLabel", "guessedtype": "function"}, "_setType": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String indicating the value for the button's \n\"type\" attribute."}], "description": "Sets the value of the button's \"type\" attribute.", "guessedname": "_setType", "guessedtype": "function"}, "_onMenuRender": {"guessedname": "_onMenuRender", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the  \nevent thatwas fired."}], "description": "\"render\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "_onDocumentMouseDown": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mousedown\" event handler for the document.", "guessedname": "_onDocumentMouseDown", "guessedtype": "function"}, "isActive": {"return": {"type": "Boolean", "description": ""}, "description": "Returns a boolean indicating whether or not the button \nis active.", "guessedname": "isActive", "guessedtype": "function"}, "_onMouseMove": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mousemove\" event handler for the button.", "guessedname": "_onMouseMove", "guessedtype": "function"}, "_onMenuKeyDown": {"guessedname": "_onMenuKeyDown", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"keydown\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "createHiddenFields": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|Array", "description": ""}, "description": "Creates the button's hidden form field and appends it \nto its parent form.", "guessedname": "createHiddenFields", "guessedtype": "function"}, "addStateCSSClasses": {"description": "Appends state-specific CSS classes to the button's root \nDOM element.", "guessedname": "addStateCSSClasses", "guessedtype": "function"}, "_onMenuClick": {"guessedname": "_onMenuClick", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"click\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "_onMouseOver": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mouseover\" event handler for the button.", "guessedname": "_onMouseOver", "guessedtype": "function"}, "_onMouseOut": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mouseout\" event handler for the button.", "guessedname": "_onMouseOut", "guessedtype": "function"}, "initConfig": {"params": [{"type": "Object", "name": "Object", "description": " representing the button's set of \nconfiguration attributes."}], "description": "Initializes the set of configuration attributes that are \nused to instantiate the button.", "private": ""}, "_setTarget": {"protected": "", "params": [{"type": "String", "name": "p_sTarget", "description": " String indicating the value for the button's \n\"target\" attribute."}], "description": "Sets the value of the button's \"target\" attribute.", "guessedname": "_setTarget", "guessedtype": "function"}, "removeHiddenFields": {"description": "Removes the button's hidden form field(s) from its \nparent form.", "guessedname": "removeHiddenFields", "guessedtype": "function"}, "_onDocumentMouseUp": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mouseup\" event handler for the button.", "guessedname": "_onDocumentMouseUp", "guessedtype": "function"}, "setAttributeFromDOMAttribute": {"params": [{"type": "String", "name": "p_sAttribute", "description": " String representing the name of the \nattribute to retrieve from the DOM element."}], "description": "Gets the value of the specified DOM attribute and sets it \ninto the collection of configuration attributes used to configure \nthe button.", "private": ""}, "_onKeyDown": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"keydown\" event handler for the button.", "guessedname": "_onKeyDown", "guessedtype": "function"}, "_onBlur": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"blur\" event handler for the button.", "guessedname": "_onBlur", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "button.js", "shortname": "Button", "properties": {"CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to  \nthe button's root element.", "default": "\"button\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "_menu": {"description": "Object reference to the button's menu.", "default": "null", "protected": "", "guessedname": "_menu", "guessedtype": "property", "type": "{<a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>|\n<a href=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu</a>}"}, "CLASS_NAME_PREFIX": {"description": "Prefix used for all class names applied to a Button.", "default": "\"yui-\"", "guessedname": "CLASS_NAME_PREFIX", "guessedtype": "property", "type": "String", "final": ""}, "_hiddenFields": {"description": "Object reference to the <code><input></code>  \nelement, or array of HTML form elements used to represent the button\nwhen its parent form is submitted.", "default": "null", "protected": "", "guessedname": "_hiddenFields", "guessedtype": "property", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|Array"}, "_nOptionRegionX": {"description": "Number representing the X coordinate of the leftmost edge of the Button's \noption region.  Applies only to Buttons of type \"split\".", "default": "0", "protected": "", "guessedname": "_nOptionRegionX", "guessedtype": "property", "type": "Number"}, "_onclickAttributeValue": {"description": "Object reference to the button's current value for the \n\"onclick\" configuration attribute.", "default": "null", "protected": "", "guessedname": "_onclickAttributeValue", "guessedtype": "property", "type": "Object"}, "NODE_NAME": {"description": "The name of the node to be used for the button's \nroot element.", "default": "\"SPAN\"", "guessedname": "NODE_NAME", "guessedtype": "property", "type": "String", "final": ""}, "CHECK_ACTIVATION_KEYS": {"description": "Array of numbers representing keys that (when pressed) \ntoggle the button's \"checked\" attribute.", "default": "[32]", "guessedname": "CHECK_ACTIVATION_KEYS", "guessedtype": "property", "type": "Array", "final": ""}, "_activationButtonPressed": {"description": "Boolean indicating if the mouse button that toggles \nthe button's \"active\" state has been pressed.", "default": "false", "protected": "", "guessedname": "_activationButtonPressed", "guessedtype": "property", "type": "Boolean"}, "_button": {"description": "Object reference to the button's internal \n<code><a></code> or <code><button></code> element.", "default": "null", "protected": "", "guessedname": "_button", "guessedtype": "property", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-48250443\">HTMLAnchorElement</a>|<a href=\"\nhttp://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html\n#ID-34812697\">HTMLButtonElement</a>"}, "_hasMouseEventHandlers": {"description": "Boolean indicating if the button's \"mouseout,\" \n\"mousedown,\" and \"mouseup\" event handlers are assigned", "default": "false", "protected": "", "guessedname": "_hasMouseEventHandlers", "guessedtype": "property", "type": "Boolean"}, "ACTIVATION_KEYS": {"description": "Array of numbers representing keys that (when presed) \ntoggle the button's \"active\" state.", "default": "[13, 32]", "guessedname": "ACTIVATION_KEYS", "guessedtype": "property", "type": "Array", "final": ""}, "_hasKeyEventHandlers": {"description": "Boolean indicating if the button's \"blur\", \"keydown\" and \n\"keyup\" event handlers are assigned", "default": "false", "protected": "", "guessedname": "_hasKeyEventHandlers", "guessedtype": "property", "type": "Boolean"}, "_activationKeyPressed": {"description": "Boolean indicating if the key(s) that toggle the button's \n\"active\" state have been pressed.", "default": "false", "protected": "", "guessedname": "_activationKeyPressed", "guessedtype": "property", "type": "Boolean"}, "OPTION_AREA_WIDTH": {"description": "Width (in pixels) of the area of a split button that  \nwhen pressed will display a menu.", "default": "20", "guessedname": "OPTION_AREA_WIDTH", "guessedtype": "property", "type": "Number", "final": ""}}, "description": "The Button class creates a rich, graphical button."}, "YAHOO.widget.AutoComplete": {"name": "YAHOO.widget.AutoComplete", "constructors": [{"params": [{"type": "HTMLElement", "name": "elInput", "description": "  DOM element reference of an input field."}, {"type": "String", "name": "elInput", "description": "  String ID of an input field."}, {"type": "HTMLElement", "name": "elContainer", "description": "  DOM element reference of an existing DIV."}, {"type": "String", "name": "elContainer", "description": "  String ID of an existing DIV."}, {"type": "YAHOO.widget.DataSource", "name": "oDataSource", "description": "  DataSource instance."}, {"type": "Object", "name": "oConfigs", "description": "  (optional) Object literal of configuration params."}], "description": "The AutoComplete class provides the customizable functionality of a plug-and-play DHTML\nauto completion widget.  Some key features:\n<ul>\n<li>Navigate with up/down arrow keys and/or mouse to pick a selection</li>\n<li>The drop down container can \"roll down\" or \"fly out\" via configurable\nanimation</li>\n<li>UI look-and-feel customizable through CSS, including container\nattributes, borders, position, fonts, etc</li>\n</ul>"}], "namespace": "YAHOO.widget", "module": "autocomplete", "events": {"dataErrorEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object", "name": "oResponse", "description": "  The response object, if available."}], "description": "Fired when the AutoComplete instance does not receive query results from the\nDataSource due to an error.", "guessedname": "dataErrorEvent", "guessedtype": "property"}, "dataReturnEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object[]", "name": "aResults", "description": "  Results array."}], "description": "Fired when the AutoComplete instance receives query results from the data\nsource.", "guessedname": "dataReturnEvent", "guessedtype": "property"}, "containerExpandEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the results container is expanded.", "guessedname": "containerExpandEvent", "guessedtype": "property"}, "itemArrowToEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The <li> element item arrowed to."}], "description": "Fired when result item has been arrowed to.", "guessedname": "itemArrowToEvent", "guessedtype": "property"}, "itemArrowFromEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The <li> element item arrowed from."}], "description": "Fired when result item has been arrowed away from.", "guessedname": "itemArrowFromEvent", "guessedtype": "property"}, "containerPopulateEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the results container is populated.", "guessedname": "containerPopulateEvent", "guessedtype": "property"}, "textboxFocusEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the input field receives focus.", "guessedname": "textboxFocusEvent", "guessedtype": "property"}, "typeAheadEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "String", "name": "sPrefill", "description": "  The prefill string."}], "description": "Fired when the input field has been prefilled by the type-ahead\nfeature.", "guessedname": "typeAheadEvent", "guessedtype": "property"}, "itemSelectEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The selected <li> element item."}, {"type": "Object", "name": "oData", "description": "  The data returned for the item, either as an object,\nor mapped from the schema into an array."}], "description": "Fired when an item is selected via mouse click, ENTER key, or TAB key.", "guessedname": "itemSelectEvent", "guessedtype": "property"}, "dataRequestEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object", "name": "oRequest", "description": "  The request."}], "description": "Fired when the AutoComplete instance makes a request to the DataSource.", "guessedname": "dataRequestEvent", "guessedtype": "property"}, "itemMouseOverEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The <li&gt element item moused to."}], "description": "Fired when result item has been moused over.", "guessedname": "itemMouseOverEvent", "guessedtype": "property"}, "_sLastTextboxValue": {"guessedname": "_sLastTextboxValue", "type": "String", "description": "Internal tracker to last known textbox value, used to determine whether or not\nto trigger a query via interval for certain IME users.", "private": "", "guessedtype": "property"}, "unmatchedItemSelectEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sSelection", "description": "  The selected string."}], "description": "Fired when a user selection does not match any of the displayed result items.", "guessedname": "unmatchedItemSelectEvent", "guessedtype": "property"}, "selectionEnforceEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sClearedValue", "description": "  The cleared value (including delimiters if applicable)."}], "description": "Fired if forceSelection is enabled and the user's input has been cleared\nbecause it did not match one of the returned query results.", "guessedname": "selectionEnforceEvent", "guessedtype": "property"}, "textboxKeyEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "Number", "name": "nKeycode", "description": "  The keycode number."}], "description": "Fired when the input field receives key input.", "guessedname": "textboxKeyEvent", "guessedtype": "property"}, "textboxBlurEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the input field loses focus.", "guessedname": "textboxBlurEvent", "guessedtype": "property"}, "containerCollapseEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the results container is collapsed.", "guessedname": "containerCollapseEvent", "guessedtype": "property"}, "textboxChangeEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the input field value has changed when it loses focus.", "guessedname": "textboxChangeEvent", "guessedtype": "property"}, "itemMouseOutEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The <li> element item moused from."}], "description": "Fired when result item has been moused out.", "guessedname": "itemMouseOutEvent", "guessedtype": "property"}}, "guessedname": "AutoComplete", "methods": {"_onTextboxKeyPress": {"guessedname": "_onTextboxKeyPress", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The keypress event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles textbox keypress events.", "private": "", "guessedtype": "function"}, "_selectText": {"guessedname": "_selectText", "params": [{"type": "HTMLElement", "name": "elTextbox", "description": "  Text input box element in which to select text."}, {"type": "Number", "name": "nStart", "description": "  Starting index of text string to select."}, {"type": "Number", "name": "nEnd", "description": "  Ending index of text selection."}], "description": "Selects text in the input field.", "private": "", "guessedtype": "function"}, "snapContainer": {"description": "Snaps container to bottom-left corner of input element", "guessedname": "snapContainer", "guessedtype": "function"}, "_clearInterval": {"guessedname": "_clearInterval", "params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Cancels text input detection by intervals.", "private": "", "guessedtype": "function"}, "_populateListItem": {"guessedname": "_populateListItem", "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  The LI element."}, {"type": "Object", "name": "oResult", "description": "  The result object."}, {"type": "String", "name": "sCurQuery", "description": "  The query string."}], "description": "Populates the given <li> element with return value from formatResult().", "private": "", "guessedtype": "function"}, "_onTextboxBlur": {"guessedname": "_onTextboxBlur", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The focus event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles text input box losing focus.", "private": "", "guessedtype": "function"}, "_typeAhead": {"guessedname": "_typeAhead", "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  The <li> element item whose data populates the input field."}, {"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Updates in the text input box with the first query result as the user types,\nselecting the substring that the user has not typed.", "private": "", "guessedtype": "function"}, "getListItems": {"deprecated": "Use getListEl().childNodes.", "guessedname": "getListItems", "guessedtype": "function"}, "_toggleHighlight": {"guessedname": "_toggleHighlight", "params": [{"type": "HTMLElement", "name": "elNewListItem", "description": "  The <li> element item to receive highlight behavior."}, {"type": "String", "name": "sType", "description": "  Type \"mouseover\" will toggle highlight on, and \"mouseout\" will toggle highlight off."}], "description": "Toggles the highlight on or off for an item in the container, and also cleans\nup highlighting of any previous item.", "private": "", "guessedtype": "function"}, "_togglePrehighlight": {"guessedname": "_togglePrehighlight", "params": [{"type": "HTMLElement", "name": "elNewListItem", "description": "  The <li> element item to receive highlight behavior."}, {"type": "String", "name": "sType", "description": "  Type \"mouseover\" will toggle highlight on, and \"mouseout\" will toggle highlight off."}], "description": "Toggles the pre-highlight on or off for an item in the container, and also cleans\nup pre-highlighting of any previous item.", "private": "", "guessedtype": "function"}, "_onTextboxFocus": {"guessedname": "_onTextboxFocus", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The focus event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles text input box receiving focus.", "private": "", "guessedtype": "function"}, "enableIntervalDetection": {"description": "Enables interval detection for a less performant but brute force mechanism to\ndetect input values at an interval set by queryInterval and send queries if\ninput value has changed. Needed to support right-click+paste or shift+insert\nedge cases. Please note that intervals are cleared at the end of each interaction,\nso enableIntervalDetection must be called for each new interaction. The\nrecommended approach is to call it in response to textboxFocusEvent.", "guessedname": "enableIntervalDetection", "guessedtype": "property"}, "expandContainer": {"description": "Expands container.", "guessedname": "expandContainer", "guessedtype": "function"}, "getListItemIndex": {"return": {"type": "Number", "description": "Index."}, "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  Reference to <LI> element."}], "description": "Public accessor to the index of the associated with a given <li> result.", "guessedname": "getListItemIndex", "guessedtype": "function"}, "_isIgnoreKey": {"return": {"type": "Boolean", "description": "True if key should be ignored, false otherwise."}, "description": "Whether or not key is functional or should be ignored. Note that the right\narrow key is NOT an ignored key since it triggers queries for certain intl\ncharsets.", "private": "", "params": [{"type": "Number", "name": "nKeycode", "description": "  Code of key pressed."}], "guessedname": "_isIgnoreKey", "guessedtype": "function"}, "_initContainerHelperEls": {"private": "", "description": "Initializes the results container helpers if they are enabled and do\nnot exist", "guessedname": "_initContainerHelperEls", "guessedtype": "function"}, "_onInterval": {"private": "", "description": "Enables query triggers based on text input detection by intervals (rather\nthan by key events).", "guessedname": "_onInterval", "guessedtype": "function"}, "setBody": {"params": [{"type": "String", "name": "sBody", "description": "  HTML markup for results container body."}], "description": "Sets HTML markup for the results container body. This markup will be\ninserted within a <div> tag with a class of \"yui-ac-bd\".", "guessedname": "setBody", "guessedtype": "function"}, "filterResults": {"return": {"type": "Object", "description": "Filtered response object."}, "params": [{"type": "String", "name": "sQuery", "description": "  Original request."}, {"type": "Object", "name": "oFullResponse", "description": "  Full response object."}, {"type": "Object", "name": "oParsedResponse", "description": "  Parsed response object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object."}], "description": "Executed by DataSource (within DataSource scope via doBeforeCallback()) to\nfilter results through a simple client-side matching algorithm.", "guessedname": "filterResults", "guessedtype": "function"}, "getListEl": {"return": {"type": "HTMLElement[]", "description": "Reference to <ul> element within the results container."}, "description": "Public accessor to the <ul> element that displays query results within the results container.", "guessedname": "getListEl", "guessedtype": "function"}, "_onTextboxKeyUp": {"guessedname": "_onTextboxKeyUp", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The keyup event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles textbox keyup events to trigger queries.", "private": "", "guessedtype": "function"}, "_updateValue": {"guessedname": "_updateValue", "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  The <li> element item with which to update the value."}], "description": "Updates the text input box value with selected query result. If a delimiter\nhas been defined, then the value gets appended with the delimiter.", "private": "", "guessedtype": "function"}, "_populateList": {"guessedname": "_populateList", "params": [{"type": "String", "name": "sQuery", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Populates the array of <li> elements in the container with query\nresults.", "private": "", "guessedtype": "function"}, "_focus": {"private": "", "description": "Focuses input field.", "guessedname": "_focus", "guessedtype": "function"}, "doBeforeExpandContainer": {"return": {"type": "Boolean", "description": "Return true to continue expanding container, false to cancel the expand."}, "params": [{"type": "HTMLElement", "name": "elTextbox", "description": "  The text input box."}, {"type": "HTMLElement", "name": "elContainer", "description": "  The container element."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object[]", "name": "aResults", "description": "   An array of query results."}], "description": "Overridable method called before container expands allows implementers to access data\nand DOM elements.", "guessedname": "doBeforeExpandContainer", "guessedtype": "function"}, "_moveSelection": {"guessedname": "_moveSelection", "params": [{"type": "Number", "name": "nKeyCode", "description": "  Code of key pressed."}], "description": "Triggered by up and down arrow keys, changes the current highlighted\n<li> element item. Scrolls container if necessary.", "private": "", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the AutoComplete instance."}, "description": "Public accessor to the unique name of the AutoComplete instance.", "guessedname": "toString", "guessedtype": "function"}, "doBeforeLoadData": {"return": {"type": "Boolean", "description": "Return true to continue loading data, false to cancel."}, "params": [{"type": "String", "name": "sQuery", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Overridable method called before container is loaded with result data.", "guessedname": "doBeforeLoadData", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire AutoComplete instance and related objects, removes attached\nevent listeners, and clears out DOM elements inside the container. After\ncalling this method, the instance reference should be expliclitly nulled by\nimplementer, as in myAutoComplete = null. Use with caution!", "guessedname": "destroy", "guessedtype": "function"}, "AutoComplete._cloneObject": {"description": "Clones object literal or array of object literals.", "private": "", "static": "", "guessedname": "_cloneObject", "guessedtype": "function", "params": [{"type": "Object", "name": "o", "description": "  Object."}]}, "doBeforeSendQuery": {"deprecated": "Use generateRequest.", "guessedname": "doBeforeSendQuery", "guessedtype": "function"}, "getListItemData": {"return": {"type": "Object", "description": "Result data."}, "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  Reference to <LI> element."}], "description": "Public accessor to the result data associated with a given <li> result.", "guessedname": "getListItemData", "guessedtype": "function"}, "generateRequest": {"return": {"type": "MIXED", "description": "Request"}, "params": [{"type": "String", "name": "sQuery", "description": "  Query string"}], "description": "A function that converts an AutoComplete query into a request value which is then\npassed to the DataSource's sendRequest method in order to retrieve data for \nthe query. By default, returns a String with the syntax: \"query={query}\"\nImplementers can customize this method for custom request syntaxes.", "guessedname": "generateRequest", "guessedtype": "function"}, "_initListEl": {"private": "", "description": "Clears out contents of container body and creates up to\nYAHOO.widget.AutoComplete#maxResultsDisplayed <li> elements in an\n<ul> element.", "guessedname": "_initListEl", "guessedtype": "function"}, "_onContainerClick": {"guessedname": "_onContainerClick", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container click events.", "private": "", "guessedtype": "function"}, "setFooter": {"params": [{"type": "String", "name": "sFooter", "description": "  HTML markup for results container footer."}], "description": "Sets HTML markup for the results container footer. This markup will be\ninserted within a <div> tag with a class of \"yui-ac-ft\".", "guessedname": "setFooter", "guessedtype": "function"}, "_selectItem": {"guessedname": "_selectItem", "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  The selected <li> element item."}], "description": "Selects a result item from the container", "private": "", "guessedtype": "function"}, "_onWindowUnload": {"guessedname": "_onWindowUnload", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The unload event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles window unload event.", "private": "", "guessedtype": "function"}, "handleResponse": {"params": [{"type": "String", "name": "sQuery", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Handles response for display. This is the callback function method passed to\nYAHOO.util.DataSourceBase#sendRequest so results from the DataSource are\nreturned to the AutoComplete instance.", "guessedname": "handleResponse", "guessedtype": "function"}, "_enableIntervalDetection": {"private": "", "description": "Enables interval detection for IME support.", "guessedname": "_enableIntervalDetection", "guessedtype": "function"}, "sendQuery": {"params": [{"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Makes query request to the DataSource.", "guessedname": "sendQuery", "guessedtype": "function"}, "getContainerEl": {"return": {"type": "HTMLELement", "description": "DOM reference to container element."}, "description": "Returns DOM reference to container element.", "guessedname": "getContainerEl", "guessedtype": "function"}, "_toggleContainerHelpers": {"guessedname": "_toggleContainerHelpers", "params": [{"type": "Boolean", "name": "bShow", "description": "  True if container is expanded, false if collapsed"}], "description": "Syncs results container with its helpers.", "private": "", "guessedtype": "function"}, "_extractQuery": {"return": {"type": "Object", "description": "Object literal containing properties \"query\" and \"previous\"."}, "description": "Extracts rightmost query from delimited string.", "private": "", "params": [{"type": "String", "name": "sQuery", "description": "  String to parse"}], "guessedname": "_extractQuery", "guessedtype": "function"}, "_jumpSelection": {"private": "", "description": "If an item is highlighted in the container, the right arrow key jumps to the\nend of the textbox and selects the highlighted item, otherwise the container\nis closed.", "guessedname": "_jumpSelection", "guessedtype": "function"}, "_onContainerScroll": {"guessedname": "_onContainerScroll", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The scroll event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container scroll events.", "private": "", "guessedtype": "function"}, "clearList": {"description": "Clears entire list of suggestions.", "guessedname": "clearList", "guessedtype": "function"}, "_clearSelection": {"private": "", "description": "When forceSelection is true and the user attempts\nleave the text input box without selecting an item from the query results,\nthe user selection is cleared.", "guessedname": "_clearSelection", "guessedtype": "function"}, "__initProps": {"private": "", "description": "Updates and validates latest public config properties.", "guessedname": "_initProps", "guessedtype": "function"}, "isContainerOpen": {"return": {"type": "Boolean", "description": "Returns true if container is in an expanded state, false otherwise."}, "description": "Returns true if container is in an expanded state, false otherwise.", "guessedname": "isContainerOpen", "guessedtype": "function"}, "preparseRawResponse": {"return": {"type": "Object", "description": "oParsedResponse or null."}, "params": [{"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Executed by DataSource (within DataSource scope via doBeforeParseData()) to\nhandle responseStripAfter cleanup.", "guessedname": "preparseRawResponse", "guessedtype": "function"}, "_toggleContainer": {"guessedname": "_toggleContainer", "params": [{"type": "Boolean", "name": "bShow", "description": "  True if container should be expanded, false if container should be collapsed"}], "description": "Animates expansion or collapse of the container.", "private": "", "guessedtype": "function"}, "formatResult": {"return": {"type": "String", "description": "HTML markup of formatted result data."}, "params": [{"type": "Object", "name": "oResultData", "description": "  Result data object."}, {"type": "String", "name": "sQuery", "description": "  The corresponding query string."}, {"type": "HTMLElement", "name": "sResultMatch", "description": "  The current query string."}], "description": "Overridable method that returns HTML markup for one result to be populated\nas innerHTML of an <LI> element.", "guessedname": "formatResult", "guessedtype": "function"}, "_textMatchesOption": {"guessedname": "_textMatchesOption", "return": {"type": "HTMLElement", "description": "Matching list item element if user-input text matches\na result, null otherwise."}, "description": "Whether or not user-typed value in the text input box matches any of the\nquery results.", "private": "", "guessedtype": "function"}, "collapseContainer": {"description": "Collapses container.", "guessedname": "collapseContainer", "guessedtype": "function"}, "_onContainerMouseout": {"guessedname": "_onContainerMouseout", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The mouseout event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container mouseout events.", "private": "", "guessedtype": "function"}, "getSubsetMatches": {"return": {"type": "Object", "description": "oParsedResponse or null."}, "params": [{"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Handles subset matching for when queryMatchSubset is enabled.", "guessedname": "getSubsetMatches", "guessedtype": "function"}, "_sendQuery": {"guessedname": "_sendQuery", "params": [{"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Makes query request to the DataSource.", "private": "", "guessedtype": "function"}, "_onTextboxKeyDown": {"guessedname": "_onTextboxKeyDown", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The keydown event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles textbox keydown events of functional keys, mainly for UI behavior.", "private": "", "guessedtype": "function"}, "isFocused": {"return": {"type": "Boolean", "description": "Returns true if widget instance is currently active."}, "description": "Returns true if widget instance is currently active.", "guessedname": "isFocused", "guessedtype": "function"}, "_doBeforeExpandContainer": {"return": {"type": "Boolean", "description": "Return true to continue expanding container, false to cancel the expand."}, "description": "Called before container expands, by default snaps container to the\nbottom-left corner of the input element, then calls public overrideable method.", "private": "", "params": [{"type": "HTMLElement", "name": "elTextbox", "description": "  The text input box."}, {"type": "HTMLElement", "name": "elContainer", "description": "  The container element."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object[]", "name": "aResults", "description": "   An array of query results."}], "guessedname": "_doBeforeExpandContainer", "guessedtype": "function"}, "getListItemMatch": {"return": {"type": "String", "description": "Matching string."}, "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  Reference to <LI> element."}], "description": "Public accessor to the matching string associated with a given <li> result.", "guessedname": "getListItemMatch", "guessedtype": "function"}, "_initContainerEl": {"private": "", "description": "Initializes the results container once at object creation", "guessedname": "_initContainerEl", "guessedtype": "function"}, "getInputEl": {"return": {"type": "HTMLELement", "description": "DOM reference to input element."}, "description": "Returns DOM reference to input element.", "guessedname": "getInputEl", "guessedtype": "function"}, "_onContainerMouseover": {"guessedname": "_onContainerMouseover", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The mouseover event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container mouseover events.", "private": "", "guessedtype": "function"}, "setHeader": {"params": [{"type": "String", "name": "sHeader", "description": "  HTML markup for results container header."}], "description": "Sets HTML markup for the results container header. This markup will be\ninserted within a <div> tag with a class of \"yui-ac-hd\".", "guessedname": "setHeader", "guessedtype": "function"}, "_onContainerResize": {"guessedname": "_onContainerResize", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The resize event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container resize events.", "private": "", "guessedtype": "function"}}, "file": "AutoComplete.js", "guessedtype": "function", "shortname": "AutoComplete", "properties": {"queryQuestionMark": {"default": "true", "type": "Boolean", "description": "For XHR DataSources, AutoComplete will automatically insert a \"?\" between the server URI and \nthe \"query\" param/value pair. To prevent this behavior, implementers should\nset this value to false. To more fully customize the query syntax, implementers\nshould override the generateRequest() method.", "guessedname": "queryQuestionMark", "guessedtype": "property"}, "forceSelection": {"default": "false", "type": "Boolean", "description": "Whether or not to force the user's selection to match one of the query\nresults. Enabling this feature essentially transforms the input field into a\n<select> field. This feature is not recommended with delimiter character(s)\ndefined.", "guessedname": "forceSelection", "guessedtype": "property"}, "_elIFrame": {"guessedname": "_elIFrame", "type": "HTMLElement", "description": "Reference to iframe element within container element.", "private": "", "guessedtype": "property"}, "animHoriz": {"default": "false", "type": "Boolean", "description": "Whether or not to animate the expansion/collapse of the results container in the\nhorizontal direction.", "guessedname": "animHoriz", "guessedtype": "property"}, "useShadow": {"default": "false", "type": "Boolean", "description": "Whether or not the results container should have a shadow.", "guessedname": "useShadow", "guessedtype": "property"}, "queryMatchSubset": {"default": "false", "type": "Boolean", "description": "Enables query subset matching. When the DataSource's cache is enabled and queryMatchSubset is\ntrue, substrings of queries will return matching cached results. For\ninstance, if the first query is for \"abc\" susequent queries that start with\n\"abc\", like \"abcd\", will be queried against the cache, and not the live data\nsource. Recommended only for DataSources that return comprehensive results\nfor queries with very few characters.", "guessedname": "queryMatchSubset", "guessedtype": "property"}, "useIFrame": {"default": "false", "type": "Boolean", "description": "Whether or not to use an iFrame to layer over Windows form elements in\nIE. Set to true only when the results container will be on top of a\n<select> field in IE and thus exposed to the IE z-index bug (i.e.,\n5.5 < IE < 7).", "guessedname": "useIFrame", "guessedtype": "property"}, "typeAheadDelay": {"default": "0.5", "type": "Number", "description": "If typeAhead is true, number of seconds to delay before updating input with\ntypeAhead value. In order to prevent certain race conditions, this value must\nalways be greater than the queryDelay.", "guessedname": "typeAheadDelay", "guessedtype": "property"}, "_elContainer": {"guessedname": "_elContainer", "type": "HTMLElement", "description": "Container DOM element.", "private": "", "guessedtype": "property"}, "_nDelayID": {"guessedname": "_nDelayID", "type": "Number", "description": "Delay timeout ID.", "private": "", "guessedtype": "property"}, "_oAnim": {"guessedname": "_oAnim", "type": "Boolean", "description": "Animation instance for container expand/collapse.", "private": "", "guessedtype": "property"}, "_elFooter": {"guessedname": "_elFooter", "type": "HTMLElement", "description": "Reference to footer element within content element.", "private": "", "guessedtype": "property"}, "_queryInterval": {"guessedname": "_queryInterval", "type": "Object", "description": "For users typing via certain IMEs, queries must be triggered by intervals,\nsince key events yet supported across all browsers for all IMEs.", "private": "", "guessedtype": "property"}, "_sName": {"guessedname": "_sName", "type": "String", "description": "Name of AutoComplete instance.", "private": "", "guessedtype": "property"}, "_elShadow": {"guessedname": "_elShadow", "type": "HTMLElement", "description": "Reference to shadow element within container element.", "private": "", "guessedtype": "property"}, "applyLocalFilter": {"default": "true for local arrays and json, otherwise false", "type": "Boolean", "description": "By default, results from local DataSources will pass through the filterResults\nmethod to apply a client-side matching algorithm.", "guessedname": "applyLocalFilter", "guessedtype": "property"}, "queryMatchCase": {"default": "false", "type": "Boolean", "description": "When applyLocalFilter is true, the local filtering algorthim can have case sensitivity\nenabled.", "guessedname": "queryMatchCase", "guessedtype": "property"}, "_nKeyCode": {"guessedname": "_nKeyCode", "type": "Number", "description": "Key code of the last key pressed in textbox.", "private": "", "guessedtype": "property"}, "_sInitInputValue": {"guessedname": "_sInitInputValue", "type": "String", "description": "Stores initial input value used to determine if textboxChangeEvent should be fired.", "private": "", "guessedtype": "property"}, "typeAhead": {"default": "false", "type": "Boolean", "description": "If autohighlight is enabled, whether or not the input field should be automatically updated\nwith the first query result as the user types, auto-selecting the substring portion\nof the first result that the user has not yet typed.", "guessedname": "typeAhead", "guessedtype": "property"}, "_nDisplayedItems": {"guessedname": "_nDisplayedItems", "type": "Number", "description": "Number of <li> elements currently displayed in results container.", "private": "", "guessedtype": "property"}, "_sCurQuery": {"guessedname": "_sCurQuery", "type": "String", "description": "Current query string", "private": "", "guessedtype": "property"}, "delimChar": {"type": "String | String[]", "description": "Query delimiter. A single character separator for multiple delimited\nselections. Multiple delimiter characteres may be defined as an array of\nstrings. A null value or empty string indicates that query results cannot\nbe delimited. This feature is not recommended if you need forceSelection to\nbe true.", "guessedname": "delimChar", "guessedtype": "property"}, "_elContent": {"guessedname": "_elContent", "type": "HTMLElement", "description": "Reference to content element within container element.", "private": "", "guessedtype": "property"}, "alwaysShowContainer": {"default": "false", "type": "Boolean", "description": "Enabling this feature prevents the toggling of the container to a collapsed state.\nSetting to true does not automatically trigger the opening of the container.\nImplementers are advised to pre-load the container with an explicit \"sendQuery()\" call.", "guessedname": "alwaysShowContainer", "guessedtype": "property"}, "highlightClassName": {"default": "\"yui-ac-highlight\"", "type": "String", "description": "Class name of a highlighted item within results container.", "guessedname": "highlightClassName", "guessedtype": "property"}, "queryInterval": {"default": "500", "type": "Number", "description": "When IME usage is detected or interval detection is explicitly enabled,\nAutoComplete will detect the input value at the given interval and send a\nquery if the value has changed.", "guessedname": "queryInterval", "guessedtype": "property"}, "resultTypeList": {"default": "true", "type": "Boolean", "description": "For backward compatibility to pre-2.6.0 formatResults() signatures, setting\nresultsTypeList to true will take each object literal result returned by\nDataSource and flatten into an array.", "guessedname": "resultTypeList", "guessedtype": "property"}, "minQueryLength": {"default": "1", "type": "Number", "description": "Number of characters that must be entered before querying for results. A negative value\neffectively turns off the widget. A value of 0 allows queries of null or empty string\nvalues.", "guessedname": "minQueryLength", "guessedtype": "property"}, "_bOverContainer": {"guessedname": "_bOverContainer", "type": "Boolean", "description": "Whether or not the mouse is currently over the results\ncontainer. This is necessary in order to prevent clicks on container items\nfrom being text input field blur events.", "private": "", "guessedtype": "property"}, "_bFocused": {"guessedname": "_bFocused", "type": "Boolean", "description": "Whether or not the widget instance is currently active. If query results come back\nbut the user has already moved on, do not proceed with auto complete behavior.", "private": "", "guessedtype": "property"}, "_nTypeAheadDelayID": {"guessedname": "_nTypeAheadDelayID", "type": "Number", "description": "TypeAhead delay timeout ID.", "private": "", "guessedtype": "property"}, "queryMatchContains": {"default": "false", "type": "Boolean", "description": "When applyLocalFilter is true, results can  be locally filtered to return\nmatching strings that \"contain\" the query string rather than simply \"start with\"\nthe query string.", "guessedname": "queryMatchContains", "guessedtype": "property"}, "suppressInputUpdate": {"default": "false", "type": "Boolean", "description": "Whether or not the input field should be updated with selections.", "guessedname": "suppressInputUpdate", "guessedtype": "property"}, "_elCurPrehighlightItem": {"guessedname": "_elCurPrehighlightItem", "type": "HTMLElement", "description": "Pointer to the currently pre-highlighted <li> element in the container.", "private": "", "guessedtype": "property"}, "dataSource": {"type": "YAHOO.widget.DataSource", "description": "The DataSource object that encapsulates the data used for auto completion.\nThis object should be an inherited object from YAHOO.widget.DataSource.", "guessedname": "dataSource", "guessedtype": "property"}, "autoHighlight": {"default": "true", "type": "Boolean", "description": "Whether or not the first item in results container should be automatically highlighted\non expand.", "guessedname": "autoHighlight", "guessedtype": "property"}, "allowBrowserAutocomplete": {"default": "true", "type": "Boolean", "description": "Whether or not to allow browsers to cache user-typed input in the input\nfield. Disabling this feature will prevent the widget from setting the\nautocomplete=\"off\" on the input field. When autocomplete=\"off\"\nand users click the back button after form submission, user-typed input can\nbe prefilled by the browser from its cache. This caching of user input may\nnot be desired for sensitive data, such as credit card numbers, in which\ncase, implementers should consider setting allowBrowserAutocomplete to false.", "guessedname": "allowBrowserAutocomplete", "guessedtype": "property"}, "animVert": {"default": "true", "type": "Boolean", "description": "Whether or not to animate the expansion/collapse of the results container in the\nvertical direction.", "guessedname": "animVert", "guessedtype": "property"}, "autoSnapContainer": {"default": "true", "type": "Boolean", "description": "If true, before each time the container expands, the container element will be\npositioned to snap to the bottom-left corner of the input element. If\nautoSnapContainer is set to false, this positioning will not be done.", "guessedname": "autoSnapContainer", "guessedtype": "property"}, "_nIndex": {"description": "Internal class variable to index multiple AutoComplete instances.", "default": "0", "private": "", "guessedname": "_nIndex", "guessedtype": "property", "type": "Number"}, "_elCurListItem": {"guessedname": "_elCurListItem", "type": "HTMLElement", "description": "Pointer to the currently highlighted <li> element in the container.", "private": "", "guessedtype": "property"}, "_bContainerOpen": {"guessedname": "_bContainerOpen", "type": "Boolean", "description": "Whether or not the results container is currently open.", "private": "", "guessedtype": "property"}, "animSpeed": {"default": "0.3", "type": "Number", "description": "Speed of container expand/collapse animation, in seconds..", "guessedname": "animSpeed", "guessedtype": "property"}, "_elHeader": {"guessedname": "_elHeader", "type": "HTMLElement", "description": "Reference to header element within content element.", "private": "", "guessedtype": "property"}, "_elList": {"guessedname": "_elList", "type": "HTMLElement", "description": "Internal reference to <ul> elements that contains query results within the\nresults container.", "private": "", "guessedtype": "property"}, "_iFrameSrc": {"guessedname": "_iFrameSrc", "type": "String", "description": "Src to iFrame used when useIFrame = true. Supports implementations over SSL\nas well.", "private": "", "guessedtype": "property"}, "maxResultsDisplayed": {"default": "10", "type": "Number", "description": "Maximum number of results to display in results container.", "guessedname": "maxResultsDisplayed", "guessedtype": "property"}, "_bItemSelected": {"guessedname": "_bItemSelected", "type": "Boolean", "description": "Whether or not an item has been selected since the container was populated\nwith results. Reset to false by _populateList, and set to true when item is\nselected.", "private": "", "guessedtype": "property"}, "_sPastSelections": {"description": "Selections from previous queries (for saving delimited queries).", "default": "\"\"", "private": "", "guessedname": "_sPastSelections", "guessedtype": "property", "type": "String"}, "prehighlightClassName": {"type": "String", "description": "Class name of a pre-highlighted item within results container.", "guessedname": "prehighlightClassName", "guessedtype": "property"}, "queryDelay": {"default": "0.2", "type": "Number", "description": "Number of seconds to delay before submitting a query request.  If a query\nrequest is received before a previous one has completed its delay, the\nprevious request is cancelled and the new request is set to the delay. If \ntypeAhead is also enabled, this value must always be less than the typeAheadDelay\nin order to avoid certain race conditions.", "guessedname": "queryDelay", "guessedtype": "property"}, "_elTextbox": {"guessedname": "_elTextbox", "type": "HTMLElement", "description": "Text input field DOM element.", "private": "", "guessedtype": "property"}, "_elBody": {"guessedname": "_elBody", "type": "HTMLElement", "description": "Reference to body element within content element.", "private": "", "guessedtype": "property"}}, "description": "The AutoComplete class provides the customizable functionality of a plug-and-play DHTML\nauto completion widget.  Some key features:\n<ul>\n<li>Navigate with up/down arrow keys and/or mouse to pick a selection</li>\n<li>The drop down container can \"roll down\" or \"fly out\" via configurable\nanimation</li>\n<li>UI look-and-feel customizable through CSS, including container\nattributes, borders, position, fonts, etc</li>\n</ul>"}, "YAHOO.util.Dom.IEStyle": {"name": "YAHOO.util.Dom.IEStyle", "namespace": "YAHOO.util.Dom", "module": "dom", "guessedname": "Y", "methods": {"getBorderWidth": {"return": {"type": "String", "description": "The elements border width"}, "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "property", "description": " The property to check"}], "description": "Try to determine the width of an elements border", "guessedname": "getBorderWidth", "guessedtype": "function"}, "get": {"returns": "{String} The computed style", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "property", "description": " The property to check"}], "description": "Method used by DOM to get style information for IE", "guessedname": "get", "guessedtype": "function"}, "getColor": {"return": {"type": "String", "description": "The value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the color of an element", "guessedname": "getColor", "guessedtype": "function"}, "getMargin": {"return": {"type": "String", "description": "The margin value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the margin value from a style property", "guessedname": "getMargin", "guessedtype": "function"}, "getBorderColor": {"return": {"type": "String", "description": "The value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the bordercolor of an element", "guessedname": "getBorderColor", "guessedtype": "function"}, "getOffset": {"return": {"type": "String", "description": "The offset"}, "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "prop", "description": " The property to check."}], "description": "Determine the offset of an element", "guessedname": "getOffset", "guessedtype": "function"}, "getPixel": {"return": {"type": "String", "description": "The pixel value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the pixel value from a style property", "guessedname": "getPixel", "guessedtype": "function"}, "getVisibility": {"return": {"type": "String", "description": "The value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the visibility of an element", "guessedname": "getVisibility", "guessedtype": "function"}}, "file": "IEStyle.js", "guessedtype": "property", "shortname": "IEStyle", "description": "Internal methods used to add style management functionality to DOM."}, "YAHOO.tool.TestCase": {"name": "YAHOO.tool.TestCase", "constructors": [{"params": [{"type": "", "name": "template", "description": " An object containing any number of test methods, other methods,\nan optional name, and anything else the test case needs."}], "description": "Test case containing various tests to run."}], "namespace": "YAHOO.tool", "module": "yuitest", "guessedname": "TestCase", "methods": {"tearDown": {"return": {"type": "Void", "description": ""}, "description": "Function to run after each test is executed.", "guessedname": "tearDown", "guessedtype": "function"}, "setUp": {"return": {"type": "Void", "description": ""}, "description": "Function to run before each test is executed.", "guessedname": "setUp", "guessedtype": "function"}, "wait": {"return": {"type": "Void", "description": ""}, "params": [{"type": "Function", "name": "segment", "description": " (Optional) The function to run after the delay.\nIf omitted, the TestRunner will wait until resume() is called."}, {"type": "int", "name": "delay", "description": " (Optional) The number of milliseconds to wait before running\nthe function. If omitted, defaults to zero."}], "description": "Causes the test case to wait a specified amount of time and then\ncontinue executing the given code.", "guessedname": "wait", "guessedtype": "function"}, "resume": {"return": {"type": "Void", "description": ""}, "params": [{"type": "Function", "name": "segment", "description": " (Optional) The function to run.\nIf omitted, the test automatically passes."}], "description": "Resumes a paused test and runs the given function.", "guessedname": "resume", "guessedtype": "function"}}, "file": "TestCase.js", "guessedtype": "function", "shortname": "TestCase", "description": "Test case containing various tests to run."}, "YAHOO.util.ObjectAssert": {"name": "YAHOO.util.ObjectAssert", "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ObjectAssert", "methods": {"hasProperty": {"description": "Asserts that an object has a property with the given name.", "param": "{String} propertyName The name of the property to test.", "static": "", "guessedname": "hasProperty", "guessedtype": "function", "params": [{"type": "String", "name": "propertyName", "description": " The name of the property to test."}, {"type": "Object", "name": "object", "description": " The object to search."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}]}, "propertiesAreEqual": {"static": "", "params": [{"type": "Object", "name": "expected", "description": " An object with the expected properties."}, {"type": "Object", "name": "actual", "description": " An object with the actual properties."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that all properties in the object exist in another object.", "guessedname": "propertiesAreEqual", "guessedtype": "function"}}, "static": "", "file": "ObjectAssert.js", "guessedtype": "property", "shortname": "ObjectAssert", "description": "The ObjectAssert object provides functions to test JavaScript objects\nfor a variety of cases."}, "YAHOO.util.UnexpectedValue": {"name": "YAHOO.util.UnexpectedValue", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}, {"type": "Object", "name": "unexpected", "description": " The unexpected value."}], "description": "UnexpectedValue is subclass of AssertionError that is thrown whenever\na value was unexpected in its scope. This typically means that a test\nwas performed to determine that a value was *not* equal to a certain\nvalue."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "UnexpectedValue", "methods": {"getMessage": {"return": {"type": "String", "description": "A string describing the error."}, "description": "Returns a fully formatted error for an assertion failure. The message\ncontains information about the unexpected value that was encountered.", "guessedname": "getMessage", "guessedtype": "function"}}, "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "UnexpectedValue", "properties": {"unexpected": {"type": "Object", "description": "The unexpected value."}, "name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "UnexpectedValue is subclass of AssertionError that is thrown whenever\na value was unexpected in its scope. This typically means that a test\nwas performed to determine that a value was *not* equal to a certain\nvalue."}, "YAHOO.widget.ToolbarButtonAdvanced": {"name": "YAHOO.widget.ToolbarButtonAdvanced", "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to turn into a button."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Creates a rich custom Toolbar Button. Primarily used with the Rich Text Editor's Toolbar</p>"}], "namespace": "YAHOO.widget", "module": "editor", "methods": {"checkValue": {"params": [{"type": "String", "name": "value", "description": " The value of the option that we want to mark as selected"}], "description": "Select an option by value", "guessedname": "checkValue", "guessedtype": "function"}}, "file": "toolbar-button.js", "shortname": "ToolbarButtonAdvanced", "requires": "yahoo, dom, element, event, container_core, menu, button\nProvides a toolbar button based on the button and menu widgets.", "properties": {"buttonType": {"private": "", "description": "Tells if the Button is a Rich Button or a Simple Button", "guessedname": "buttonType", "guessedtype": "property"}}, "description": "<p>Creates a rich custom Toolbar Button. Primarily used with the Rich Text Editor's Toolbar</p>"}, "YAHOO.util.AssertionError": {"name": "YAHOO.util.AssertionError", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}], "description": "AssertionError is thrown whenever an assertion fails. It provides methods\nto more easily get at error information and also provides a base class\nfrom which more specific assertion errors can be derived."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "AssertionError", "methods": {"getMessage": {"return": {"type": "String", "description": "A string describing the error."}, "description": "Returns a fully formatted error for an assertion failure. This should\nbe overridden by all subclasses to provide specific information.", "guessedname": "getMessage", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "A string representation of the error."}, "description": "Returns a string representation of the error.", "guessedname": "toString", "guessedtype": "function"}}, "extends": "Error", "superclass": "Error", "file": "Assert.js", "guessedtype": "function", "shortname": "AssertionError", "properties": {"name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "AssertionError is thrown whenever an assertion fails. It provides methods\nto more easily get at error information and also provides a base class\nfrom which more specific assertion errors can be derived."}, "YAHOO.tool.TestReporter": {"name": "YAHOO.tool.TestReporter", "constructors": [{"params": [{"type": "String", "name": "url", "description": " The URL to submit the results to."}, {"type": "Function", "name": "format", "description": " (Optiona) A function that outputs the results in a specific format.\nDefault is YAHOO.tool.TestFormat.XML."}], "description": "An object capable of sending test results to a server."}], "namespace": "YAHOO.tool", "module": "yuitest", "guessedname": "TestReporter", "methods": {"report": {"return": {"type": "Void", "description": ""}, "params": [{"type": "Object", "name": "results", "description": " The results object created by TestRunner."}], "description": "Sends the report to the server.", "guessedname": "report", "guessedtype": "function"}, "destroy": {"return": {"type": "Void", "description": ""}, "description": "Cleans up the memory associated with the TestReporter, removing DOM elements\nthat were created.", "guessedname": "destroy", "guessedtype": "function"}, "_convertToISOString": {"return": {"type": "String", "description": "An ISO-formatted date string"}, "description": "Convert a date into ISO format.\nFrom Douglas Crockford's json2.js", "private": "", "params": [{"type": "Date", "name": "date", "description": " The date to convert."}], "guessedname": "_convertToISOString", "guessedtype": "function"}, "addField": {"return": {"type": "Void", "description": ""}, "params": [{"type": "String", "name": "name", "description": " The name of the field."}, {"type": "Variant", "name": "value", "description": " The value of the field."}], "description": "Adds a field to the form that submits the results.", "guessedname": "addField", "guessedtype": "function"}}, "file": "TestReporter.js", "guessedtype": "function", "shortname": "TestReporter", "properties": {"url": {"type": "String", "description": "The URL to submit the data to."}, "_form": {"type": "HTMLFormElement", "description": "The form element used to submit the results.", "private": ""}, "_fields": {"type": "Object", "description": "Extra fields to submit with the request.", "private": ""}, "_iframe": {"type": "HTMLIFrameElement", "description": "Iframe used as a target for form submission.", "private": ""}, "format": {"type": "Function", "description": "The formatting function to call when submitting the data."}}, "description": "An object capable of sending test results to a server."}, "LogReader": {"name": "LogReader", "constructors": [{"params": [{"type": "HTMLElement", "name": "elContainer", "description": "  (optional) DOM element reference of an existing DIV."}, {"type": "String", "name": "elContainer", "description": "  (optional) String ID of an existing DIV."}, {"type": "Object", "name": "oConfigs", "description": "  (optional) Object literal of configuration params."}], "description": "The LogReader class provides UI to read messages logged to YAHOO.widget.Logger."}], "namespace": "", "module": "logger", "methods": {"getLastTime": {"return": {"type": "Date", "description": "Timestamp of the last log."}, "description": "Gets timestamp of the last log.", "guessedname": "getLastTime", "guessedtype": "function"}, "_onReset": {"guessedname": "_onReset", "params": [{"type": "String", "name": "sType", "description": "  The event."}, {"type": "Object[]", "name": "aArgs", "description": "  Data passed from event firer."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles Logger's resetEvent.", "private": "", "guessedtype": "function"}, "render": {"description": "Adds the UI to the DOM, attaches event listeners, and bootstraps initial\nUI state.", "guessedname": "render", "guessedtype": "function"}, "show": {"description": "Shows UI of LogReader. Logging functionality is not disrupted.", "guessedname": "show", "guessedtype": "function"}, "setTitle": {"params": [{"type": "String", "name": "sTitle", "description": "  New title."}], "description": "Updates title to given string.", "guessedname": "setTitle", "guessedtype": "function"}, "_init": {"protected": "", "params": [{"type": "String|HTMLElement", "name": "container", "description": "  (optional) the render target"}, {"type": "Object", "name": "config", "description": "  (optional) instance configuration"}], "description": "Initializes the instance's message buffer, start time, etc", "guessedname": "_init", "guessedtype": "function"}, "getCategories": {"return": {"type": "String[]", "description": "Array of enabled categories."}, "description": "Returns array of enabled categories.", "guessedname": "getCategories", "guessedtype": "function"}, "_createSourceCheckbox": {"guessedname": "_createSourceCheckbox", "params": [{"type": "String", "name": "sSource", "description": "  Source name."}], "description": "Creates a checkbox in the LogReader footer element to filter by source.", "private": "", "guessedtype": "function"}, "_onClickClearBtn": {"guessedname": "_onClickClearBtn", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles click events on the clear button.", "private": "", "guessedtype": "function"}, "_initCategories": {"private": "", "description": "Initializes category filters.", "guessedname": "_initCategories", "guessedtype": "function"}, "pause": {"description": "Pauses output of log messages. While paused, log messages are not lost, but\nget saved to a buffer and then output upon resume of LogReader.", "guessedname": "pause", "guessedtype": "function"}, "hide": {"description": "Hides UI of LogReader. Logging functionality is not disrupted.", "guessedname": "hide", "guessedtype": "function"}, "_printToConsole": {"guessedname": "_printToConsole", "params": [{"type": "Object[]", "name": "aEntries", "description": "  Array of LogMsg objects to output to console."}], "description": "Cycles through an array of log messages, and outputs each one to the console\nif its category has not been filtered out.", "private": "", "guessedtype": "function"}, "_initHeaderEl": {"private": "", "description": "Initializes the header element.", "guessedname": "_initHeaderEl", "guessedtype": "function"}, "_initDragDrop": {"private": "", "description": "Initializes Drag and Drop on the header element.", "guessedname": "_initDragDrop", "guessedtype": "function"}, "_printBuffer": {"private": "", "description": "Sends buffer of log messages to output and clears buffer.", "guessedname": "_printBuffer", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the LogReader instance."}, "description": "Public accessor to the unique name of the LogReader instance.", "guessedname": "toString", "guessedtype": "function"}, "showSource": {"params": [{"type": "String", "name": "Source", "description": " name."}], "description": "Shows log messages associated with given source.", "guessedname": "showSource", "guessedtype": "function"}, "destroy": {"description": "Removes the UI from the DOM entirely and detaches all event listeners.\nImplementers should note that Logger will still accumulate messages.", "guessedname": "destroy", "guessedtype": "function"}, "showCategory": {"params": [{"type": "String", "name": "Category", "description": " name."}], "description": "Shows log messages associated with given category.", "guessedname": "showCategory", "guessedtype": "function"}, "_onClickCollapseBtn": {"guessedname": "_onClickCollapseBtn", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance"}], "description": "Handles click events on the collapse button.", "private": "", "guessedtype": "function"}, "_onCategoryCreate": {"guessedname": "_onCategoryCreate", "params": [{"type": "String", "name": "sType", "description": "  The event."}, {"type": "Object[]", "name": "aArgs", "description": "  Data passed from event firer."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles Logger's categoryCreateEvent.", "private": "", "guessedtype": "function"}, "collapse": {"description": "Collapses UI of LogReader. Logging functionality is not disrupted.", "guessedname": "collapse", "guessedtype": "function"}, "resume": {"description": "Resumes output of log messages, including outputting any log messages that\nhave been saved to buffer while paused.", "guessedname": "resume", "guessedtype": "function"}, "_onSourceCreate": {"guessedname": "_onSourceCreate", "params": [{"type": "String", "name": "sType", "description": "  The event."}, {"type": "Object[]", "name": "aArgs", "description": "  Data passed from event firer."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles Logger's sourceCreateEvent.", "private": "", "guessedtype": "function"}, "_onClickPauseBtn": {"guessedname": "_onClickPauseBtn", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles click events on the pause button.", "private": "", "guessedtype": "function"}, "_initFooterEl": {"private": "", "description": "Initializes the footer element.", "guessedname": "_initFooterEl", "guessedtype": "function"}, "_onNewLog": {"guessedname": "_onNewLog", "params": [{"type": "String", "name": "sType", "description": "  The event."}, {"type": "Object[]", "name": "aArgs", "description": "  Data passed from event firer."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles Logger's newLogEvent.", "private": "", "guessedtype": "function"}, "html2Text": {"guessedname": "html2Text", "params": [{"type": "String", "name": "sHtml", "description": "  String to convert."}], "description": "Converts input chars \"<\", \">\", and \"&\" to HTML entities.", "private": "", "guessedtype": "function"}, "_filterLogs": {"private": "", "description": "Reprints all log messages in the stack through filters.", "guessedname": "_filterLogs", "guessedtype": "function"}, "_onCheckCategory": {"guessedname": "_onCheckCategory", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles check events on the category filter checkboxes.", "private": "", "guessedtype": "function"}, "_onCheckSource": {"guessedname": "_onCheckSource", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles check events on the category filter checkboxes.", "private": "", "guessedtype": "function"}, "expand": {"description": "Expands UI of LogReader. Logging functionality is not disrupted.", "guessedname": "expand", "guessedtype": "function"}, "getSources": {"return": {"type": "Array", "description": "Array of enabled sources."}, "description": "Returns array of enabled sources.", "guessedname": "getSources", "guessedtype": "function"}, "_initSources": {"private": "", "description": "Initializes source filters.", "guessedname": "_initSources", "guessedtype": "function"}, "hideCategory": {"params": [{"type": "String", "name": "Category", "description": " name."}], "description": "Hides log messages associated with given category.", "guessedname": "hideCategory", "guessedtype": "function"}, "_createCategoryCheckbox": {"guessedname": "_createCategoryCheckbox", "params": [{"type": "String", "name": "sCategory", "description": "  Category name."}], "description": "Creates the UI for a category filter in the LogReader footer element.", "private": "", "guessedtype": "function"}, "_initConsoleEl": {"private": "", "description": "Initializes the console element.", "guessedname": "_initConsoleEl", "guessedtype": "function"}, "_initContainerEl": {"private": "", "description": "Initializes the primary container element.", "guessedname": "_initContainerEl", "guessedtype": "function"}, "clearConsole": {"description": "Does not delete any log messages, but clears all printed log messages from\nthe console. Log messages will be printed out again if user re-filters. The\nstatic method YAHOO.widget.Logger.reset() should be called in order to\nactually delete log messages.", "guessedname": "clearConsole", "guessedtype": "function"}, "hideSource": {"params": [{"type": "String", "name": "Source", "description": " name."}], "description": "Hides log messages associated with given source.", "guessedname": "hideSource", "guessedtype": "function"}, "getCheckbox": {"return": {"type": "Array", "description": "Array of all filter checkboxes."}, "params": [{"type": "String", "name": "Category", "description": " or source name."}], "description": "Returns related checkbox element for given filter (i.e., category or source).", "guessedname": "getCheckbox", "guessedtype": "function"}}, "file": "LogReader.js", "shortname": "LogReader", "properties": {"right": {"type": "String", "description": "Public member to access CSS right position of the LogReader container.", "guessedname": "right", "guessedtype": "property"}, "entryFormat": {"default": "null", "type": "String", "description": "Custom output format for log messages.  Defaults to null, which falls\nback to verboseOutput param deciding between LogReader.VERBOSE_TEMPLATE\nand LogReader.BASIC_TEMPLATE.  Use bracketed place holders to mark where\nmessage info should go.  Available place holder names include:\n<ul>\n<li>category</li>\n<li>label</li>\n<li>sourceAndDetail</li>\n<li>message</li>\n<li>localTime</li>\n<li>elapsedTime</li>\n<li>totalTime</li>\n</ul>", "guessedname": "entryFormat", "guessedtype": "property"}, "height": {"type": "String", "description": "Public member to access CSS height of the LogReader container.", "guessedname": "height", "guessedtype": "property"}, "newestOnTop": {"type": "Boolean", "description": "Whether or not newest message is printed on top.", "guessedname": "newestOnTop", "guessedtype": "property"}, "_elCollapse": {"guessedname": "_elCollapse", "type": "HTMLElement", "description": "LogReader collapse element.", "private": "", "guessedtype": "property"}, "_elCategoryFilters": {"guessedname": "_elCategoryFilters", "type": "HTMLElement", "description": "Container element for LogReader category filter checkboxes.", "private": "", "guessedtype": "property"}, "_memberName": {"description": "Internal class member to index multiple LogReader instances.", "default": "0", "private": "", "static": "", "guessedname": "_index", "guessedtype": "property", "type": "Number"}, "_sName": {"guessedname": "_sName", "type": "String", "description": "Name of LogReader instance.", "private": "", "guessedtype": "property"}, "isCollapsed": {"default": "false", "type": "Boolean", "description": "True when LogReader is in a collapsed state, false otherwise.", "guessedname": "isCollapsed", "guessedtype": "property"}, "_btnCollapse": {"guessedname": "_btnCollapse", "type": "HTMLElement", "description": "LogReader collapse button element.", "private": "", "guessedtype": "property"}, "logReaderEnabled": {"default": "true", "type": "Boolean", "description": "Whether or not LogReader is enabled to output log messages.", "guessedname": "logReaderEnabled", "guessedtype": "property"}, "_filterCheckboxes": {"guessedname": "_filterCheckboxes", "type": "Object", "description": "Hash of filters and their related checkbox elements.", "private": "", "guessedtype": "property"}, "thresholdMax": {"default": "500", "type": "Number", "description": "Maximum number of messages a LogReader console will display.", "guessedname": "thresholdMax", "guessedtype": "property"}, "_buffer": {"guessedname": "_buffer", "type": "Object[]", "description": "Buffer of log message objects for batch output.", "private": "", "guessedtype": "property"}, "bottom": {"type": "String", "description": "Public member to access CSS bottom position of the LogReader container.", "guessedname": "bottom", "guessedtype": "property"}, "_elBtns": {"guessedname": "_elBtns", "type": "HTMLElement", "description": "LogReader buttons container element.", "private": "", "guessedtype": "property"}, "_lastTime": {"guessedname": "_lastTime", "type": "Date", "description": "Date of last output log message.", "private": "", "guessedtype": "property"}, "top": {"type": "String", "description": "Public member to access CSS top position of the LogReader container.", "guessedname": "top", "guessedtype": "property"}, "_btnPause": {"guessedname": "_btnPause", "type": "HTMLElement", "description": "LogReader pause button element.", "private": "", "guessedtype": "property"}, "_elContainer": {"guessedname": "_elContainer", "type": "HTMLElement", "description": "LogReader container element.", "private": "", "guessedtype": "property"}, "width": {"type": "String", "description": "Public member to access CSS width of the LogReader container.", "guessedname": "width", "guessedtype": "property"}, "VERBOSE_TEMPLATE": {"default": "\"<p><span class='{category}'>{label}</span>{totalTime}ms (+{elapsedTime}) {localTime}:</p><p>{sourceAndDetail}</p><p>{message}</p>\"", "static": "", "description": "Template used for innerHTML of verbose entry output.", "guessedname": "VERBOSE_TEMPLATE", "guessedtype": "property"}, "fontSize": {"type": "String", "description": "Public member to access CSS font size of the LogReader container.", "guessedname": "fontSize", "guessedtype": "property"}, "footerEnabled": {"default": "true", "type": "Boolean", "description": "Whether or not the footer UI is enabled for the LogReader.", "guessedname": "footerEnabled", "guessedtype": "property"}, "verboseOutput": {"default": "true", "type": "Boolean", "description": "Whether or not output is verbose (more readable). Setting to true will make\noutput more compact (less readable).", "guessedname": "verboseOutput", "guessedtype": "property"}, "_sourceFilters": {"guessedname": "_sourceFilters", "type": "String[]", "description": "Array of filters for log message sources.", "private": "", "guessedtype": "property"}, "_elHd": {"guessedname": "_elHd", "type": "HTMLElement", "description": "LogReader header element.", "private": "", "guessedtype": "property"}, "_categoryFilters": {"guessedname": "_categoryFilters", "type": "String[]", "description": "Array of filters for log message categories.", "private": "", "guessedtype": "property"}, "_consoleMsgCount": {"description": "Number of log messages output to console.", "default": "0", "private": "", "guessedname": "_consoleMsgCount", "guessedtype": "property", "type": "Number"}, "_elSourceFilters": {"guessedname": "_elSourceFilters", "type": "HTMLElement", "description": "Container element for LogReader source filter checkboxes.", "private": "", "guessedtype": "property"}, "thresholdMin": {"default": "100", "type": "Number", "description": "When a LogReader console reaches its thresholdMax, it will clear out messages\nand print out the latest thresholdMin number of messages.", "guessedname": "thresholdMin", "guessedtype": "property"}, "_title": {"guessedname": "_title", "type": "HTMLElement", "description": "LogReader title header element.", "private": "", "guessedtype": "property"}, "_elDefaultContainer": {"type": "HTMLElement", "description": "A class member shared by all LogReaders if a container needs to be\ncreated during instantiation. Will be null if a container element never needs to\nbe created on the fly, such as when the implementer passes in their own element.", "private": ""}, "autoRender": {"default": "true", "type": "{Boolean}", "description": "Render the LogReader immediately upon instantiation.  If set to false,\nyou must call myLogReader.render() to generate the UI."}, "_elFt": {"guessedname": "_elFt", "type": "HTMLElement", "description": "LogReader footer element.", "private": "", "guessedtype": "property"}, "outputBuffer": {"default": "100", "type": "Number", "description": "Output timeout buffer in milliseconds.", "guessedname": "outputBuffer", "guessedtype": "property"}, "_elConsole": {"guessedname": "_elConsole", "type": "HTMLElement", "description": "LogReader console element.", "private": "", "guessedtype": "property"}, "draggable": {"default": "true", "type": "Boolean", "description": "Enables draggable LogReader if DragDrop Utility is present.", "guessedname": "draggable", "guessedtype": "property"}, "ENTRY_TEMPLATE": {"description": "Node template for the log entries", "default": "<code>pre</code> element with class yui-log-entry", "static": "", "guessedname": "ENTRY_TEMPLATE", "guessedtype": "function", "type": "{HTMLElement}"}, "isPaused": {"default": "false", "type": "Boolean", "description": "True when LogReader is in a paused state, false otherwise.", "guessedname": "isPaused", "guessedtype": "property"}, "_btnClear": {"guessedname": "_btnClear", "type": "HTMLElement", "description": "Clear button element.", "private": "", "guessedtype": "property"}, "_timeout": {"guessedname": "_timeout", "type": "Number", "description": "Batched output timeout ID.", "private": "", "guessedtype": "property"}, "BASIC_TEMPLATE": {"default": "\"<p><span class='{category}'>{label}</span>{totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}</p>\"", "static": "", "description": "Template used for innerHTML of compact entry output.", "guessedname": "BASIC_TEMPLATE", "guessedtype": "property"}, "left": {"type": "String", "description": "Public member to access CSS left position of the LogReader container.", "guessedname": "left", "guessedtype": "property"}}, "description": "The LogReader class provides UI to read messages logged to YAHOO.widget.Logger."}, "YAHOO.widget.MenuNode": {"name": "YAHOO.widget.MenuNode", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node.\nProviding a string is the same as providing an object with a single property named label.\nAll values in the oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private or functions.\nAll attributes are made available in noderef.data, which\ncan be used to store custom attributes.  TreeView.getNode(s)ByProperty\ncan be used to retrieve a node by one of the attributes."}, {"type": "YAHOO.widget.Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated; use oData.expanded)"}], "description": "A menu-specific implementation that differs from TextNode in that only \none sibling can be expanded at a time."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "MenuNode", "extends": "YAHOO.widget.TextNode", "superclass": "YAHOO.widget.TextNode", "file": "MenuNode.js", "guessedtype": "function", "shortname": "MenuNode", "properties": {"_type": {"default": "\"MenuNode\"", "guessedname": "_type", "description": "The node type", "private": "", "guessedtype": "property"}}, "description": "A menu-specific implementation that differs from TextNode in that only \none sibling can be expanded at a time."}, "YAHOO.widget.Record": {"name": "YAHOO.widget.Record", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (optional) Object literal of key/value pairs."}], "description": "The Record class defines a DataTable record."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "Record", "methods": {"getCount": {"return": {"type": "", "description": "Number"}, "description": "Returns unique count assigned at instantiation.", "guessedname": "getCount", "guessedtype": "function"}, "getData": {"return": {"type": "", "description": "Object"}, "params": [{"type": "String", "name": "sField", "description": "  (Optional) The field from which to retrieve data value."}], "description": "Returns data for the Record for a field if given, or the entire object\nliteral otherwise.", "guessedname": "getData", "guessedtype": "function"}, "getId": {"return": {"type": "", "description": "String"}, "description": "Returns unique ID assigned at instantiation.", "guessedname": "getId", "guessedtype": "function"}, "setData": {"params": [{"type": "String", "name": "sKey", "description": "  The key of the new value."}, {"type": "MIXED", "name": "oData", "description": "  The new value."}], "description": "Sets given data at the given key. Use the RecordSet method updateRecordValue to trigger\nevents.", "guessedname": "setData", "guessedtype": "function"}}, "file": "RecordSet.js", "guessedtype": "function", "shortname": "Record", "properties": {"_sId": {"guessedname": "_sId", "type": "String", "description": "Immutable unique ID assigned at instantiation. Remains constant while a\nRecord's position index can change from sorting.", "private": "", "guessedtype": "property"}, "_nCount": {"guessedname": "_nCount", "type": "Number", "description": "Immutable unique count assigned at instantiation. Remains constant while a\nRecord's position index can change from sorting.", "private": "", "guessedtype": "property"}, "_oData": {"guessedname": "_oData", "type": "Object", "description": "Holds data for the Record in an object literal.", "private": "", "guessedtype": "property"}, "Record._nCount": {"guessedname": "_nCount", "type": "Number", "description": "Internal class variable to give unique IDs to Record instances.", "private": "", "guessedtype": "property"}}, "description": "The Record class defines a DataTable record."}, "YAHOO.widget.TabView": {"name": "YAHOO.widget.TabView", "configs": {"tabs": {"type": "Array", "description": "The Tabs belonging to the TabView instance."}, "activeIndex": {"type": "Int", "description": "The index of the tab currently active."}, "activeTab": {"type": "YAHOO.widget.Tab", "description": "The tab currently active."}, "orientation": {"default": "\"top\"", "type": "String", "description": "How the Tabs should be oriented relative to the TabView."}}, "constructors": [{"params": [{"type": "HTMLElement | String | Object", "name": "el(optional)", "description": " The html \nelement that represents the TabView, or the attribute object to use. \nAn element will be created if none provided."}, {"type": "Object", "name": "attr", "description": " (optional) A key map of the tabView's \ninitial attributes.  Ignored if first arg is attributes object."}], "description": "A widget to control tabbed views."}], "namespace": "YAHOO.widget", "module": "tabview", "events": {"tabsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "tabsChange", "description": "Fires when the value for the configuration attribute 'tabs' changes."}, "orientationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "orientationChange", "description": "Fires when the value for the configuration attribute 'orientation' changes."}, "beforeOrientationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeOrientationChange", "description": "Fires before the value for the configuration attribute 'orientation' changes. Return false to cancel the attribute change."}, "activeIndexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "activeIndexChange", "description": "Fires when the value for the configuration attribute 'activeIndex' changes."}, "beforeActiveTabChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeActiveTabChange", "description": "Fires before the value for the configuration attribute 'activeTab' changes. Return false to cancel the attribute change."}, "beforeActiveIndexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeActiveIndexChange", "description": "Fires before the value for the configuration attribute 'activeIndex' changes. Return false to cancel the attribute change."}, "activeTabChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "activeTabChange", "description": "Fires when the value for the configuration attribute 'activeTab' changes."}, "beforeTabsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTabsChange", "description": "Fires before the value for the configuration attribute 'tabs' changes. Return false to cancel the attribute change."}}, "guessedname": "TabView", "methods": {"getTabIndex": {"return": {"type": "", "description": "int"}, "params": [{"type": "YAHOO.widget.Tab", "name": "tab", "description": " The tab whose index will be returned."}], "description": "Returns the index of given tab.", "guessedname": "getTabIndex", "guessedtype": "function"}, "removeTab": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.Tab", "name": "item", "description": " The Tab instance to be removed."}], "description": "Removes the specified Tab from the TabView.", "guessedname": "removeTab", "guessedtype": "function"}, "contentTransition": {"description": "The transiton to use when switching between tabs.", "guessedname": "contentTransition", "guessedtype": "function"}, "_initTabs": {"guessedname": "_initTabs", "return": {"type": "", "description": "void"}, "description": "Creates Tab instances from a collection of HTMLElements.", "private": "", "guessedtype": "function"}, "deselectTab": {"params": [{"type": "Int", "name": "index", "description": " The tab index to deselect"}], "description": "Removes selected state from the given tab if it is the activeTab", "guessedname": "deselectTab", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Hash of initial attributes"}], "description": "setAttributeConfigs TabView specific properties.", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "", "description": "String"}, "description": "Provides a readable name for the TabView instance.", "guessedname": "toString", "guessedtype": "function"}, "DOMEventHandler": {"return": {"type": "", "description": "void"}, "params": [{"type": "event", "name": "e", "description": " The Dom event that is being handled."}], "description": "Routes childNode events.", "guessedname": "DOMEventHandler", "guessedtype": "function"}, "addTab": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.Tab", "name": "tab", "description": " A Tab instance to add."}, {"type": "Integer", "name": "index", "description": " The position to add the tab."}], "description": "Adds a Tab to the TabView instance.  \nIf no index is specified, the tab is added to the end of the tab list.", "guessedname": "addTab", "guessedtype": "function"}, "selectTab": {"params": [{"type": "Int", "name": "index", "description": " The tab index to be made active"}], "description": "Makes the tab at the given index the active tab", "guessedname": "selectTab", "guessedtype": "function"}, "getTab": {"return": {"type": "", "description": "YAHOO.widget.Tab"}, "params": [{"type": "Integer", "name": "index", "description": " The position of the Tab."}], "description": "Returns the Tab instance at the specified index.", "guessedname": "getTab", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "TabView.js", "guessedtype": "function", "shortname": "TabView", "properties": {"CLASSNAME": {"default": "\"navset\"", "description": "The className to add when building from scratch.", "guessedname": "CLASSNAME", "guessedtype": "property"}, "TAB_PARENT_CLASSNAME": {"default": "\"nav\"", "description": "The className of the HTMLElement containing the TabView's tab elements\nto look for when building from existing markup, or to add when building\nfrom scratch. \nAll childNodes of the tab container are treated as Tabs when building\nfrom existing markup.", "guessedname": "TAB_PARENT_CLASSNAME", "guessedtype": "property"}, "CONTENT_PARENT_CLASSNAME": {"default": "\"nav-content\"", "description": "The className of the HTMLElement containing the TabView's label elements\nto look for when building from existing markup, or to add when building\nfrom scratch. \nAll childNodes of the content container are treated as content elements when\nbuilding from existing markup.", "guessedname": "CONTENT_PARENT_CLASSNAME", "guessedtype": "property"}, "_tabParent": {"guessedname": "_tabParent", "type": "HTMLElement", "description": "The container of the tabView's label elements.", "private": "", "guessedtype": "property"}, "_contentParent": {"guessedname": "_contentParent", "type": "HTMLElement", "description": "The container of the tabView's content elements.", "private": "", "guessedtype": "property"}}, "description": "A widget to control tabbed views."}, "YAHOO.widget.CalendarNavigator": {"name": "YAHOO.widget.CalendarNavigator", "constructors": [{"params": [{"type": "Calendar|CalendarGroup", "name": "cal", "description": " The instance of the Calendar or CalendarGroup to which this CalendarNavigator should be attached."}], "description": "The CalendarNavigator is used along with a Calendar/CalendarGroup to \nprovide a Month/Year popup navigation control, allowing the user to navigate \nto a specific month/year in the Calendar/CalendarGroup without having to \nscroll through months sequentially"}], "namespace": "YAHOO.widget", "module": "calendar", "guessedname": "CalendarNavigator", "methods": {"_getMonthFromUI": {"protected": "", "return": {"type": "Number", "description": "The month index, or 0 if a UI element for the month\nis not found"}, "description": "Returns the month value (index), from the month UI element", "guessedname": "_getMonthFromUI", "guessedtype": "function"}, "createNav": {"description": "Creates the navigator's containing HTMLElement, it's contents, and appends \nthe containg element to the Calendar/CalendarGroup's container.", "guessedname": "createNav", "guessedtype": "function"}, "_update": {"protected": "", "params": [{"type": "", "name": "cal", "description": " The Calendar instance to update"}], "description": "Updates the Calendar rendered state, based on the state of the CalendarNavigator", "guessedname": "_update", "guessedtype": "function"}, "_handleDirectionKeys": {"protected": "", "params": [{"type": "Event", "name": "e", "description": " The DOM event being handled"}], "description": "Default Keyboard event handler to capture up/down/pgup/pgdown\non the Navigator's year control (yearEl).", "guessedname": "_handleDirectionKeys", "guessedtype": "function"}, "render": {"description": "Renders the HTML for the navigator, adding it to the \ndocument and attaches event listeners if it has not \nalready been rendered.", "guessedname": "render", "guessedtype": "function"}, "show": {"description": "Displays the navigator and mask, updating the input controls to reflect the \ncurrently set month and year. The show method will invoke the render method\nif the navigator has not been renderered already, allowing for lazy rendering\nof the control.\nThe show method will fire the Calendar/CalendarGroup's beforeShowNav and showNav events", "guessedname": "show", "guessedtype": "function"}, "erase": {"description": "Removes all renderered HTML elements for the Navigator from\nthe DOM, purges event listeners and clears (nulls) any property\nreferences to HTML references", "guessedname": "erase", "guessedtype": "function"}, "_handleShiftTabKey": {"protected": "", "params": [{"type": "Event", "name": "e", "description": " The DOM event being handled"}], "description": "Default Keyboard event handler to capture Shift-Tab \non the first control (firstCtrl) in the Navigator.", "guessedname": "_handleShiftTabKey", "guessedtype": "function"}, "cancel": {"description": "Hides the navigator and mask, without updating the Calendar/CalendarGroup's state", "guessedname": "cancel", "guessedtype": "function"}, "applyKeyListeners": {"description": "Attaches DOM listeners for keyboard support. \nTab/Shift-Tab looping, Enter Key Submit on Year element,\nUp/Down/PgUp/PgDown year increment on Year element\n<p>\nNOTE: MacOSX Safari 2.x doesn't let you tab to buttons and \nMacOSX Gecko does not let you tab to buttons or select controls,\nso for these browsers, Tab/Shift-Tab looping is limited to the \nelements which can be reached using the tab key.\n</p>", "guessedname": "applyKeyListeners", "guessedtype": "function"}, "setError": {"params": [{"type": "String", "name": "msg", "description": " The error message to display"}], "description": "Displays an error message in the Navigator's error panel", "guessedname": "setError", "guessedtype": "function"}, "hideMask": {"description": "Hides the navigator's mask element", "guessedname": "hideMask", "guessedtype": "function"}, "_updateMonthUI": {"protected": "", "description": "Updates the Navigator's month UI, based on the month value set on the Navigator object", "guessedname": "_updateMonthUI", "guessedtype": "function"}, "hide": {"description": "Hides the navigator and mask\nThe show method will fire the Calendar/CalendarGroup's beforeHideNav event and hideNav events", "guessedname": "hide", "guessedtype": "function"}, "submit": {"description": "Updates the Calendar/CalendarGroup's pagedate with the currently set month and year if valid.\n<p>\nIf the currently set month/year is invalid, a validation error will be displayed and the \nCalendar/CalendarGroup's pagedate will not be updated.\n</p>", "guessedname": "submit", "guessedtype": "function"}, "renderNavContents": {"return": {"type": "Array", "description": "A reference to the buffer passed in."}, "description": "Renders the contents of the navigator", "param": "{Array} html The HTML buffer to append the HTML to.", "params": [{"type": "Array", "name": "html", "description": " The HTML buffer to append the HTML to."}], "guessedname": "renderNavContents", "guessedtype": "function"}, "init": {"params": [{"type": "Calendar", "name": "cal", "description": " The instance of the Calendar or CalendarGroup to which this CalendarNavigator should be attached"}], "description": "Init lifecycle method called as part of construction", "guessedname": "init", "guessedtype": "function"}, "setYearError": {"description": "Displays the validation error UI for the year control", "guessedname": "setYearError", "guessedtype": "function"}, "_getYearFromUI": {"protected": "", "return": {"type": "Number", "description": "The year value set in the UI, if valid. null is returned if \nthe UI does not contain a valid year value."}, "description": "Returns the year value, from the Navitator's year UI element", "guessedname": "_getYearFromUI", "guessedtype": "function"}, "_syncMask": {"protected": "", "description": "Used to set the width/height of the mask in pixels to match the Calendar Container.\nCurrently only used for IE6 or IE in quirks mode. The other A-Grade browser are handled using CSS (width/height 100%).\n<p>\nThe method is also registered as an HTMLElement resize listener on the Calendars container element.\n</p>", "guessedname": "_syncMask", "guessedtype": "function"}, "getYear": {"return": {"type": "Number", "description": "The Navigator's current year value"}, "description": "Returns the current year set on the navigator\nNote: This may not be the year set in the UI, if \nthe UI contains an invalid value.", "guessedname": "getYear", "guessedtype": "function"}, "destroy": {"description": "Destroys the Navigator object and any HTML references", "guessedname": "destroy", "guessedtype": "function"}, "getMonth": {"return": {"type": "Number", "description": "The Navigator's current month index"}, "description": "Returns the current month set on the navigator\nNote: This may not be the month set in the UI, if \nthe UI contains an invalid value.", "guessedname": "getMonth", "guessedtype": "function"}, "showMask": {"description": "Displays the navigator's mask element", "guessedname": "showMask", "guessedtype": "function"}, "renderButton": {"return": {"type": "String", "description": "The HTML created for the Button UI"}, "description": "Renders the submit/cancel buttons for the navigator", "guessedname": "renderButtons", "guessedtype": "function"}, "clearErrors": {"description": "Clears all validation and error messages in the UI", "guessedname": "clearErrors", "guessedtype": "function"}, "applyListeners": {"description": "Attaches DOM event listeners to the rendered elements\n<p>\nThe method will call applyKeyListeners, to setup keyboard specific \nlisteners\n</p>", "guessedname": "applyListeners", "guessedtype": "function"}, "purgeListeners": {"description": "Removes/purges DOM event listeners from the rendered elements", "guessedname": "purgeListeners", "guessedtype": "function"}, "clearYearError": {"description": "Removes the validation error UI for the year control", "guessedname": "clearYearError", "guessedtype": "function"}, "clearError": {"description": "Clears the navigator's error message and hides the error panel", "guessedname": "clearError", "guessedtype": "function"}, "validate": {"return": {"type": "Boolean", "description": "true, if the current UI state contains valid values, false if not"}, "description": "Validates the current state of the UI controls", "guessedname": "validate", "guessedtype": "function"}, "setMonth": {"params": [{"type": "Number", "name": "nMonth", "description": " The month index, from 0 (Jan) through 11 (Dec)."}], "description": "Sets the current month on the Navigator, and updates the UI", "guessedname": "setMonth", "guessedtype": "function"}, "_setFirstLastElements": {"protected": "", "description": "Sets up references to the first and last focusable element in the Navigator's UI\nin terms of tab order (Naviagator's firstEl and lastEl properties). The references\nare used to control modality by looping around from the first to the last control\nand visa versa for tab/shift-tab navigation.\n<p>\nSee <a href=\"#applyKeyListeners\">applyKeyListeners</a>\n</p>", "guessedname": "_setFirstLastElements", "guessedtype": "function"}, "_show": {"protected": "", "description": "Protected implementation to handle how UI elements are \nhidden/shown.", "guessedname": "_show", "guessedtype": "function"}, "setInitialFocus": {"description": "Sets the initial focus, based on the configured value", "guessedname": "setInitialFocus", "guessedtype": "function"}, "_handleEnterKey": {"protected": "", "params": [{"type": "Event", "name": "e", "description": " The DOM event being handled"}], "description": "Default Keyboard event handler to capture Enter \non the Navigator's year control (yearEl)", "guessedname": "_handleEnterKey", "guessedtype": "function"}, "__getCfg": {"return": {"type": "", "description": "The value of the configuration property"}, "description": "Retrieve Navigator configuration values from \nthe parent Calendar/CalendarGroup's config value.\n<p>\nIf it has not been set in the user provided configuration, the method will \nreturn the default value of the configuration property, as set in DEFAULT_CONFIG\n</p>", "private": "", "params": [{"type": "String", "name": "Case", "description": " sensitive property name."}, {"type": "Boolean", "name": "true,", "description": " if the property is a string property, false if not."}], "guessedname": "__getCfg", "guessedtype": "function"}, "setYear": {"params": [{"type": "Number", "name": "nYear", "description": " The full year value to set the Navigator to."}], "description": "Sets the current year on the Navigator, and updates the UI. If the \nprovided year is invalid, it will not be set.", "guessedname": "setYear", "guessedtype": "function"}, "_handleTabKey": {"protected": "", "params": [{"type": "Event", "name": "e", "description": " The DOM event being handled"}], "description": "Default Keyboard event handler to capture Tab \non the last control (lastCtrl) in the Navigator.", "guessedname": "_handleTabKey", "guessedtype": "function"}, "createMask": {"description": "Creates the Mask HTMLElement and appends it to the Calendar/CalendarGroups\ncontainer.", "guessedname": "createMask", "guessedtype": "function"}, "purgeKeyListeners": {"description": "Removes/purges DOM listeners for keyboard support", "guessedname": "purgeKeyListeners", "guessedtype": "function"}, "renderYear": {"return": {"type": "Array", "description": "A reference to the buffer passed in."}, "params": [{"type": "Array", "name": "html", "description": " The HTML buffer to append the HTML to."}], "description": "Renders the year label and control for the navigator", "guessedname": "renderYear", "guessedtype": "function"}, "_updateYearUI": {"protected": "", "description": "Updates the Navigator's year UI, based on the year value set on the Navigator object", "guessedname": "_updateYearUI", "guessedtype": "function"}}, "file": "CalendarNavigator.js", "guessedtype": "function", "shortname": "CalendarNavigator", "properties": {"_DEFAULT_CFG": {"description": "Object literal containing the default configuration values for the CalendarNavigator", "deprecated": "Made public. See the public DEFAULT_CONFIG property", "protected": "", "static": "", "guessedname": "_DEFAULT_CFG", "guessedtype": "property", "type": "Object"}, "YAHOO.widget.CalendarNavigator.YR_PATTERN": {"type": "RegExp", "static": "", "description": "Regular expression used to validate the year input", "guessedname": "YR_PATTERN", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.UPDATE_DELAY": {"type": "Number", "static": "", "description": "Artificial delay (in ms) between the time the Navigator is hidden\nand the Calendar/CalendarGroup state is updated. Allows the user\nthe see the Calendar/CalendarGroup page changing. If set to 0\nthe Calendar/CalendarGroup page will be updated instantly", "guessedname": "UPDATE_DELAY", "guessedtype": "property"}, "lastCtrl": {"type": "HTMLElement", "description": "Reference to the last focusable control in the navigator (by default cancelEl)", "guessedname": "lastCtrl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.MONTH_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the month control.", "static": "", "guessedname": "MONTH_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "errorEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to display validation errors", "guessedname": "errorEl", "guessedtype": "property"}, "submitEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to update the Calendar/Calendar group\nwith the month/year values", "guessedname": "submitEl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.DEFAULT": {"type": "String", "static": "", "description": "Class applied to default controls", "guessedname": "DEFAULT", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.ID_SUFFIX": {"description": "The suffix added to the Calendar/CalendarGroup's ID, to generate\na unique ID for the Navigator and it's bounding box.", "static": "", "guessedname": "ID_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.CalendarNavigator.CLASSES.NAV_VISIBLE": {"type": "String", "static": "", "description": "Class applied to the Calendar/CalendarGroup's bounding box to indicate\nthe Navigator is currently visible", "guessedname": "NAV_VISIBLE", "guessedtype": "property"}, "id": {"type": "String", "description": "The unique ID for this CalendarNavigator instance", "guessedname": "id", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.YEAR_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the year control.", "static": "", "guessedname": "YEAR_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "firstCtrl": {"type": "HTMLElement", "description": "Reference to the first focusable control in the navigator (by default monthEl)", "guessedname": "firstCtrl", "guessedtype": "property"}, "__isIEQuirks": {"private": "", "description": "Private flag, to identify IE Quirks", "guessedname": "ie", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.TRIM": {"type": "RegExp", "static": "", "description": "Regular expression used to trim strings", "guessedname": "TRIM", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.MONTH": {"type": "String", "static": "", "description": "Class applied to the month label/control bounding box", "guessedname": "MONTH", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.YR_MINOR_INC": {"type": "Number", "static": "", "description": "The amount by which to increment the current year value,\nwhen the arrow up/down key is pressed on the year control", "guessedname": "YR_MINOR_INC", "guessedtype": "property"}, "yearEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to input the year", "guessedname": "yearEl", "guessedtype": "property"}, "navEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to render the navigator's bounding box", "guessedname": "navEl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.MASK": {"type": "String", "static": "", "description": "Class applied to the Navigator mask's bounding box", "guessedname": "MASK", "guessedtype": "property"}, "monthEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to input the month", "guessedname": "monthEl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.YR_MAJOR_INC": {"type": "Number", "static": "", "description": "The amount by which to increment the current year value,\nwhen the page up/down key is pressed on the year control", "guessedname": "YR_MAJOR_INC", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES": {"type": "Object", "static": "", "description": "YAHOO.widget.CalendarNavigator.CLASSES contains constants\nfor the class values applied to the CalendarNaviatgator's \nDOM elements", "guessedname": "CLASSES", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.ERROR": {"type": "String", "static": "", "description": "Class applied to the validation error area's bounding box", "guessedname": "ERROR", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.NAV": {"type": "String", "static": "", "description": "Class applied to the Calendar Navigator's bounding box", "guessedname": "NAV", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.BUTTONS": {"type": "String", "static": "", "description": "Class applied to the submit/cancel button's bounding box", "guessedname": "BUTTONS", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.INVALID": {"type": "String", "static": "", "description": "Class applied to controls with invalid data (e.g. a year input field with invalid an year)", "guessedname": "INVALID", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.ERROR_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the error bounding box.", "static": "", "guessedname": "ERROR_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.CalendarNavigator.CLASSES.BUTTON": {"type": "String", "static": "", "description": "Class applied to buttons wrapping element", "guessedname": "BUTTON", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.YEAR_CTRL": {"type": "String", "static": "", "description": "Class applied to the year input control", "guessedname": "YEAR_CTRL", "guessedtype": "property"}, "_year": {"protected": "", "type": "Number", "description": "Internal state property for the current year displayed in the navigator", "guessedname": "_year", "guessedtype": "property"}, "maskEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to render the navigator's mask", "guessedname": "maskEl", "guessedtype": "property"}, "DEFAULT_CONFIG": {"type": "Object", "static": "", "description": "Object literal containing the default configuration values for the CalendarNavigator\nThe configuration object is expected to follow the format below, with the properties being\ncase sensitive.\n<dl>\n<dt>strings</dt>\n<dd><em>Object</em> :  An object with the properties shown below, defining the string labels to use in the Navigator's UI\n<dl>\n<dt>month</dt><dd><em>String</em> : The string to use for the month label. Defaults to \"Month\".</dd>\n<dt>year</dt><dd><em>String</em> : The string to use for the year label. Defaults to \"Year\".</dd>\n<dt>submit</dt><dd><em>String</em> : The string to use for the submit button label. Defaults to \"Okay\".</dd>\n<dt>cancel</dt><dd><em>String</em> : The string to use for the cancel button label. Defaults to \"Cancel\".</dd>\n<dt>invalidYear</dt><dd><em>String</em> : The string to use for invalid year values. Defaults to \"Year needs to be a number\".</dd>\n</dl>\n</dd>\n<dt>monthFormat</dt><dd><em>String</em> : The month format to use. Either YAHOO.widget.Calendar.LONG, or YAHOO.widget.Calendar.SHORT. Defaults to YAHOO.widget.Calendar.LONG</dd>\n<dt>initialFocus</dt><dd><em>String</em> : Either \"year\" or \"month\" specifying which input control should get initial focus. Defaults to \"year\"</dd>\n</dl>", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.YEAR": {"type": "String", "static": "", "description": "Class applied to the year label/control bounding box", "guessedname": "YEAR", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CANCEL_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the \"Cancel\" button.", "static": "", "guessedname": "CANCEL_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "__isMac": {"private": "", "description": "Private flag, to identify MacOS", "guessedname": "__isMac", "guessedtype": "property"}, "_doc": {"protected": "", "type": "HTMLDocument", "description": "The document containing the Calendar/Calendar group instance", "guessedname": "_doc", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.MONTH_CTRL": {"type": "String", "static": "", "description": "Class applied to the month input control", "guessedname": "MONTH_CTRL", "guessedtype": "property"}, "_month": {"protected": "", "type": "Number", "description": "Internal state property for the current month index displayed in the navigator", "guessedname": "_month", "guessedtype": "property"}, "__rendered": {"guessedname": "__rendered", "type": "Boolean", "description": "Private internal state property which indicates whether or not the \nNavigator has been rendered.", "private": "", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.YR_MAX_DIGITS": {"type": "Number", "static": "", "description": "The number of digits to which the year input control is to be limited.", "guessedname": "YR_MAX_DIGITS", "guessedtype": "property"}, "cal": {"type": "{Calendar|CalendarGroup}", "description": "The Calendar/CalendarGroup instance to which the navigator belongs", "guessedname": "cal", "guessedtype": "property"}, "cancelEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to hide the navigator without updating the \nCalendar/Calendar group", "guessedname": "cancelEl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.SUBMIT_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the \"Submit\" button.", "static": "", "guessedname": "SUBMIT_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}}, "description": "The CalendarNavigator is used along with a Calendar/CalendarGroup to \nprovide a Month/Year popup navigation control, allowing the user to navigate \nto a specific month/year in the Calendar/CalendarGroup without having to \nscroll through months sequentially"}, "YAHOO.util.Selector": {"name": "YAHOO.util.Selector", "namespace": "YAHOO.util", "module": "selector", "guessedname": "Selector", "methods": {"test": {"return": {"type": "boolean", "description": "Whether or not the node matches the selector."}, "description": "Test if the supplied node matches the supplied selector.", "static": "", "guessedname": "test", "guessedtype": "function", "params": [{"type": "HTMLElement | String", "name": "node", "description": " An id or node reference to the HTMLElement being tested."}, {"type": "string", "name": "selector", "description": " The CSS Selector to test the node against."}]}, "filter": {"return": {"type": "array", "description": "An array of nodes from the supplied array that match the given selector."}, "description": "Filters a set of nodes based on a given CSS selector.", "static": "", "guessedname": "filter", "guessedtype": "function", "params": [{"type": "array", "name": "nodes", "description": " A set of nodes/ids to filter."}, {"type": "string", "name": "selector", "description": " The selector used to test each node."}]}, "_tokenize": {"description": "Break selector into token units per simple selector.\nCombinator is attached to left-hand selector.", "guessedname": "_tokenize", "guessedtype": "function"}, "query": {"return": {"type": "Array", "description": "An array of nodes that match the given selector."}, "description": "Retrieves a set of nodes based on a given CSS selector.", "static": "", "guessedname": "query", "guessedtype": "function", "params": [{"type": "string", "name": "selector", "description": " The CSS Selector to test the node against."}, {"type": "HTMLElement | String", "name": "root", "description": " optional An id or HTMLElement to start the query from. Defaults to Selector.document."}, {"type": "Boolean", "name": "firstOnly", "description": " optional Whether or not to return only the first match."}]}}, "static": "", "file": "Selector.js", "guessedtype": "property", "shortname": "Selector", "properties": {"attrAliases": {"type": "object", "description": "Mapping of attributes to aliases, normally to work around HTMLAttributes\nthat conflict with JS reserved words.", "guessedname": "attrAliases", "guessedtype": "property"}, "operators": {"type": "object", "description": "List of operators and corresponding boolean functions. \nThese functions are passed the attribute and the current node's value of the attribute.", "guessedname": "operators", "guessedtype": "property"}, "document": {"default": "window.document", "type": "object", "description": "Default document for use queries", "guessedname": "document", "guessedtype": "property"}, "shorthand": {"type": "object", "description": "Mapping of shorthand tokens to corresponding attribute selector", "guessedname": "shorthand", "guessedtype": "property"}, "pseudos": {"type": "object", "description": "List of pseudo-classes and corresponding boolean functions. \nThese functions are called with the current node, and any value that was parsed with the pseudo regex.", "guessedname": "pseudos", "guessedtype": "property"}}, "description": "Provides helper methods for collecting and filtering DOM elements."}, "YAHOO.widget.Paginator.ui.YourComponent": {"properties": {"button": {"guessedname": "button", "type": "HTMLElement", "description": "Describe the node that will be stored in this property", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.YourComponent", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "Describe the ui Component"}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforeMyAttrChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMyAttrChange", "description": "Fires before the value for the configuration attribute 'myAttr' changes. Return false to cancel the attribute change."}, "myAttrChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "myAttrChange", "description": "Fires when the value for the configuration attribute 'myAttr' changes."}}, "guessedname": "YourComponent", "methods": {"initListeners": {"description": "Subscribe to the Paginator's events that will affect this component's ui", "guessedname": "initListeners", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}, "initUI": {"guessedname": "_initUI", "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Initialize the DOM nodes managed by this component", "private": "", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Make any necessary changes to the component nodes", "guessedname": "update", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for a DOM event from a managed element.  Pass new value to\nPaginator.setStartIndex(..), .setPage(..) etc to fire off changeRequest\nevents.  DO NOT modify the managed element's state here.  That should\nhappen in response to the Paginator's recordOffsetChange event (et al)", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Remove the generated DOM structure", "guessedname": "destroy", "guessedtype": "function"}, "bindUI": {"private": "", "description": "Attach DOM event listeners to the nodes managed by this component", "guessedname": "_bindUI", "guessedtype": "function"}, "rebuild": {"params": [{"type": "CustomEvent", "name": "e", "description": "  the calling change event"}], "description": "Make more substantial changes in a separate method if necessary", "guessedname": "rebuild", "guessedtype": "function"}}, "file": "UIComponentTemplate.js", "guessedtype": "function", "shortname": "YourComponent", "configs": {"myAttr": {"default": "'foo'", "description": "Describe your attribute"}}, "description": "Describe the ui Component"}, "YAHOO.util.History": {"name": "YAHOO.util.History", "constructors": [{"description": "The History class provides the ability to use the back/forward navigation\nbuttons in a DHTML application. It also allows a DHTML application to\nbe bookmarked in a specific state."}], "namespace": "YAHOO.util", "module": "history", "events": {"onLoadEvent": {"see": "onReady", "description": "Fired when the Browser History Manager is ready. If you subscribe to\nthis event after the Browser History Manager has been initialized,\nit will not fire. Therefore, it is recommended to use the onReady\nmethod instead.", "guessedname": "onLoadEvent", "guessedtype": "property"}}, "guessedname": "History", "methods": {"getCurrentState": {"return": {"type": "string", "description": "The current state of the specified module."}, "description": "Returns the current state of the specified module.", "params": [{"type": "string", "name": "module", "description": " Non-empty string representing your module."}], "guessedname": "getCurrentState", "guessedtype": "function", "public": ""}, "_updateIFrame": {"return": {"type": "boolean", "description": "true if successful. false otherwise."}, "description": "Update the IFrame with our new state.", "private": ""}, "_handleFQStateChange": {"params": [{"type": "string", "name": "fqstate", "description": " Fully qualified state"}], "description": "Sets the new currentState attribute of all modules depending on the new\nfully qualified state. Also notifies the modules which current state has\nchanged.", "private": ""}, "onReady": {"see": "onLoadEvent", "params": [{"type": "function", "name": "fn", "description": " what to execute when the Browser History Manager is ready."}, {"type": "object", "name": "obj", "description": " an optional object to be passed back as a parameter to fn."}, {"type": "boolean|object", "name": "overrideContext", "description": " If true, the obj passed in becomes fn's execution scope."}], "description": "Executes the supplied callback when the Browser History Manager is\nready. This will execute immediately if called after the Browser\nHistory Manager onLoad event has fired.", "guessedname": "onReady", "guessedtype": "function"}, "navigate": {"return": {"type": "boolean", "description": "Indicates whether the new state was successfully added to the history."}, "description": "Call this method when you want to store a new entry in the browser's history.", "params": [{"type": "string", "name": "module", "description": " Non-empty string representing your module."}, {"type": "string", "name": "state", "description": " String representing the new state of the specified module."}], "guessedname": "navigate", "guessedtype": "function", "public": ""}, "_initialize": {"description": "Finish up the initialization of the Browser History Manager.", "private": ""}, "register": {"params": [{"type": "string", "name": "module", "description": " Non-empty string uniquely identifying the\nmodule you wish to register."}, {"type": "string", "name": "initialState", "description": " The initial state of the specified\nmodule corresponding to its earliest history entry."}, {"type": "function", "name": "onStateChange", "description": " Callback called when the\nstate of the specified module has changed."}, {"type": "object", "name": "obj", "description": " An arbitrary object that will be passed as a\nparameter to the handler."}, {"type": "boolean", "name": "overrideContext", "description": " If true, the obj passed in becomes the\nexecution scope of the listener."}], "description": "Registers a new module.", "guessedname": "register", "guessedtype": "function"}, "_checkIframeLoaded": {"description": "Periodically checks whether our internal IFrame is ready to be used.", "private": ""}, "getBookmarkedState": {"return": {"type": "string", "description": "The bookmarked state of the specified module."}, "description": "Returns the state of a module according to the URL fragment\nidentifier. This method is useful to initialize your modules\nif your application was bookmarked from a particular state.", "params": [{"type": "string", "name": "module", "description": " Non-empty string representing your module."}], "guessedname": "getBookmarkedState", "guessedtype": "function", "public": ""}, "initialize": {"public": "", "params": [{"type": "string|HTML Element", "name": "stateField", "description": " <input type=\"hidden\"> used\nto store application states. Must be in the static markup."}, {"type": "string|HTML Element", "name": "histFrame", "description": " IFrame used to store\nthe history (only required on Internet Explorer)"}], "description": "Initializes the Browser History Manager. Call this method\nfrom a script block located right after the opening body tag.", "guessedname": "initialize", "guessedtype": "function"}, "_storeStates": {"description": "Stores all the registered modules' initial state and current state.\nOn Safari, we also store all the fully qualified states visited by\nthe application within a single browser session. The storage takes\nplace in the form field specified during initialization.", "private": ""}, "getQueryStringParameter": {"return": {"type": "string", "description": "The value of the specified parameter, or null."}, "description": "Returns the value of the specified query string parameter.\nThis method is not used internally by the Browser History Manager.\nHowever, it is provided here as a helper since many applications\nusing the Browser History Manager will want to read the value of\nurl parameters to initialize themselves.", "params": [{"type": "string", "name": "paramName", "description": " Name of the parameter we want to look up."}, {"type": "string", "name": "queryString", "description": " Optional URL to look at. If not specified,\nthis method uses the URL in the address bar."}], "guessedname": "getQueryStringParameter", "guessedtype": "function", "public": ""}, "_getHash": {"return": {"type": "string", "description": "The hash portion of the document's location"}, "description": "location.hash is a bit buggy on Opera. I have seen instances where\nnavigating the history using the back/forward buttons, and hence\nchanging the URL, would not change location.hash. That's ok, the\nimplementation of an equivalent is trivial.", "private": ""}, "multiNavigate": {"return": {"type": "boolean", "description": "Indicates whether the new state was successfully added to the history."}, "description": "Call this method when you want to store a new entry in the browser's history.", "params": [{"type": "object", "name": "states", "description": " Associative array of module-state pairs to set simultaneously."}], "guessedname": "multiNavigate", "guessedtype": "function", "public": ""}}, "file": "history.js", "guessedtype": "function", "shortname": "History", "properties": {"_histFrame": {"description": "Our hidden IFrame used to store the browsing history.", "default": "null", "private": "", "guessedname": "_histFrame", "guessedtype": "property", "type": "HTMLIFrameElement"}, "_initialized": {"description": "Flag used to tell whether YAHOO.util.History.initialize has been called.", "default": "false", "private": "", "guessedname": "_initialized", "guessedtype": "property", "type": "boolean"}, "_stateField": {"description": "INPUT field (with type=\"hidden\" or type=\"text\") or TEXTAREA.\nThis field keeps the value of the initial state, current state\nthe list of all states across pages within a single browser session.", "default": "null", "private": "", "guessedname": "_stateField", "guessedtype": "property", "type": "HTMLInputElement|HTMLTextAreaElement"}, "_modules": {"description": "List of registered modules.", "default": "[]", "private": "", "guessedname": "_modules", "guessedtype": "property", "type": "array"}, "_fqstates": {"description": "List of fully qualified states. This is used only by Safari.", "default": "[]", "private": "", "guessedname": "_fqstates", "guessedtype": "property", "type": "array"}}, "description": "The History class provides the ability to use the back/forward navigation\nbuttons in a DHTML application. It also allows a DHTML application to\nbe bookmarked in a specific state."}, "YAHOO.widget.DateNode": {"name": "YAHOO.widget.DateNode", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node.\nProviding a string is the same as providing an object with a single property named label.\nAll values in the oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private nor functions.\nAll attributes are made available in noderef.data, which\ncan be used to store custom attributes.  TreeView.getNode(s)ByProperty\ncan be used to retrieve a node by one of the attributes."}, {"type": "YAHOO.widget.Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated; use oData.expanded)"}], "description": "A Date-specific implementation that differs from TextNode in that it uses \nYAHOO.widget.Calendar as an in-line editor, if available\nIf Calendar is not available, it behaves as a plain TextNode."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "DateNode", "methods": {"getEditorValue": {"return": {"type": "string", "description": "date entered"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Returns the value from the input element.\nOverrides Node.getEditorValue.", "guessedname": "getEditorValue", "guessedtype": "function"}, "fillEditorContainer": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "If YAHOO.widget.Calendar is available, it will pop up a Calendar to enter a new date.  Otherwise, it falls back to a plain <input>  textbox", "guessedname": "fillEditorContainer", "guessedtype": "function"}, "displayEditedValue": {"params": [{"type": "string", "name": "value", "description": "  date to be displayed and stored in the node"}, {"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Finally displays the newly entered date in the tree.\nOverrides Node.displayEditedValue.", "guessedname": "displayEditedValue", "guessedtype": "function"}, "getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the node or false if this node or any descendant is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nIt will return false if the node or any descendant loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getNodeDefinition", "guessedtype": "function"}}, "extends": "YAHOO.widget.TextNode", "superclass": "YAHOO.widget.TextNode", "file": "DateNode.js", "guessedtype": "function", "shortname": "DateNode", "properties": {"_type": {"description": "The node type", "default": "\"DateNode\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}, "calendarConfig": {"description": "Configuration object for the Calendar editor, if used.\nSee <a href=\"http://developer.yahoo.com/yui/calendar/#internationalization\">http://developer.yahoo.com/yui/calendar/#internationalization</a>", "guessedname": "calendarConfig", "guessedtype": "property"}}, "description": "A Date-specific implementation that differs from TextNode in that it uses \nYAHOO.widget.Calendar as an in-line editor, if available\nIf Calendar is not available, it behaves as a plain TextNode."}, "YAHOO.widget.BarSeries": {"name": "YAHOO.widget.BarSeries", "constructors": [{"description": "BarSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "BarSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "BarSeries", "description": "BarSeries class for the YUI Charts widget."}, "YAHOO.tool.TestLogger": {"name": "YAHOO.tool.TestLogger", "constructors": [{"params": [{"type": "HTMLElement", "name": "element", "description": " (Optional) The element to create the logger in."}, {"type": "Object", "name": "config", "description": " (Optional) Configuration options for the logger."}], "description": "Displays test execution progress and results, providing filters based on\ndifferent key events."}], "namespace": "YAHOO.tool", "module": "yuitest", "guessedname": "TestLogger", "methods": {"_handleTestRunnerEvent": {"return": {"type": "Void", "description": ""}, "description": "Handles all TestRunner events, outputting appropriate data into the console.", "private": "", "params": [{"type": "Object", "name": "data", "description": " The event data object."}], "guessedname": "_handleTestRunnerEvent", "guessedtype": "function"}, "formatMsg": {"return": {"type": "String", "description": "HTML-formatted message for output to console."}, "description": "Formats message string to HTML for output to console.", "private": "", "params": [{"type": "Object", "name": "oLogMsg", "description": "  Log message object."}], "guessedname": "formatMsg", "guessedtype": "function"}, "clearTestRunner": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Clears the reference to the TestRunner from previous operations. This \nunsubscribes all events and removes the object reference.", "guessedname": "clearTestRunner", "guessedtype": "function"}, "setTestRunner": {"return": {"type": "Void", "description": ""}, "description": "Sets the source test runner that the logger should monitor.", "static": "", "guessedname": "setTestRunner", "guessedtype": "function", "params": [{"type": "YAHOO.tool.TestRunner", "name": "testRunner", "description": " The TestRunner to observe."}]}}, "file": "TestLogger.js", "guessedtype": "function", "shortname": "TestLogger", "description": "Displays test execution progress and results, providing filters based on\ndifferent key events."}, "YAHOO.util.StorageEvent": {"name": "YAHOO.util.StorageEvent", "constructors": [{"params": [{"type": "Object", "name": "storageArea", "description": "  Required. The Storage object that was affected."}, {"type": "String", "name": "key", "description": "  Required. The key being changed; DOMString in HTML 5 spec."}, {"type": "String", "name": "oldValue", "description": "  Required. The old value of the key being changed; DOMString in HTML 5 spec."}, {"type": "String", "name": "newValue", "description": "  Required. The new value of the key being changed; DOMString in HTML 5 spec."}, {"type": "String", "name": "type", "description": "  Required. The storage event type."}], "description": "The StorageEvent class manages the storage events by emulating the HTML 5 implementation."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEvent", "file": "StorageEvent.js", "guessedtype": "function", "shortname": "StorageEvent", "properties": {"key": {"description": "The 'key' attribute represents the key being changed.", "readonly": "", "static": "", "guessedname": "key", "guessedtype": "property", "type": "{String}"}, "url": {"description": "The 'url' attribute represents the address of the document whose key changed.", "readonly": "", "static": "", "guessedname": "url", "guessedtype": "property", "type": "{String}"}, "source": {"description": "The 'source' attribute represents the WindowProxy object of the browsing context of the document whose key changed.", "readonly": "", "static": "", "guessedname": "source", "guessedtype": "property", "type": "{Object}"}, "storageArea": {"description": "The 'storageArea' attribute represents the Storage object that was affected.", "readonly": "", "static": "", "guessedname": "storageArea", "guessedtype": "property", "type": "{Object}"}, "oldValue": {"description": "The 'oldValue' attribute represents the old value of the key being changed.", "readonly": "", "static": "", "guessedname": "oldValue", "guessedtype": "property", "type": "{String}"}, "type": {"description": "The 'type' attribute represents the Storage event type.", "readonly": "", "static": "", "guessedname": "type", "guessedtype": "property", "type": "{Object}"}, "newValue": {"description": "The 'newValue' attribute represents the new value of the key being changed.", "readonly": "", "static": "", "guessedname": "newValue", "guessedtype": "property", "type": "{String}"}}, "description": "The StorageEvent class manages the storage events by emulating the HTML 5 implementation."}, "YAHOO.tool.TestManager": {"name": "YAHOO.tool.TestManager", "namespace": "YAHOO.tool", "module": "yuitest", "events": {"testmanagerbegin": {"static": "", "description": "Fires when the test manager starts running all test pages"}, "testmanagercomplete": {"static": "", "params": [{"type": " pages_passed: int, pages_failed: int, tests_passed: int\ntests_failed: int, passed: string[], failed: string[],\npage_results: {} ", "name": "obj", "description": ""}], "description": "Fires when the test manager finishes running all test pages.  External\ntest runners should subscribe to this event in order to get the\naggregated test results."}, "testpagecomplete": {"static": "", "params": [{"type": "page: string, results: object", "name": "obj", "description": "  the name of the\npage that was loaded, and the test suite results"}], "description": "Fires when a test page is complete"}, "testpagebegin": {"static": "", "params": [{"type": "string", "name": "curPage", "description": "  the page being loaded"}], "description": "Fires when loading a test page"}}, "guessedname": "TestManager", "methods": {"load": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Signals that a test page has been loaded. This should be called from\nwithin the test page itself to notify the TestManager that it is ready.", "guessedname": "load", "guessedtype": "function"}, "_run": {"return": {"type": "Void", "description": ""}, "description": "Loads the next test page into the iframe.", "private": "", "static": "", "guessedname": "_run", "guessedtype": "function"}, "stop": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Stops the execution of tests.", "guessedname": "stop", "guessedtype": "function"}, "setPages": {"return": {"type": "Void", "description": ""}, "description": "Sets the pages to be loaded.", "static": "", "guessedname": "setPages", "guessedtype": "function", "params": [{"type": "String[]", "name": "pages", "description": " An array of URLs to load."}]}, "start": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Begins the process of running the tests.", "guessedname": "start", "guessedtype": "function"}, "_processResults": {"return": {"type": "Void", "description": ""}, "description": "Processes the results of a test page run, outputting log messages\nfor failed tests.", "private": "", "static": "", "guessedname": "_processResults", "guessedtype": "function"}, "_handleTestRunnerComplete": {"return": {"type": "Void", "description": ""}, "description": "Handles TestRunner.COMPLETE_EVENT, storing the results and beginning\nthe loop again.", "private": "", "static": "", "guessedname": "_handleTestRunnerComplete", "guessedtype": "function", "params": [{"type": "Object", "name": "data", "description": " Data about the event."}]}}, "static": "", "file": "TestManager.js", "guessedtype": "property", "shortname": "TestManager", "properties": {"_pages": {"type": "String[]", "static": "", "description": "Array of pages to load.", "private": ""}, "TEST_MANAGER_COMPLETE_EVENT": {"static": "", "type": "string", "description": "Constant for the testmanagercomplete custom event", "final": ""}, "_timeoutId": {"type": "int", "static": "", "description": "The timeout ID for the next iteration through the tests.", "private": ""}, "_logger": {"description": "The logger used to output results from the various tests.", "private": "", "static": "", "guessedname": "_logger", "guessedtype": "property", "type": "YAHOO.tool.TestLogger"}, "TEST_PAGE_BEGIN_EVENT": {"static": "", "type": "string", "description": "Constant for the testpagebegin custom event", "final": ""}, "TEST_PAGE_COMPLETE_EVENT": {"static": "", "type": "string", "description": "Constant for the testpagecomplete custom event", "final": ""}, "_curPage": {"type": "String", "static": "", "description": "The URL of the page currently being executed.", "private": ""}, "_results": {"description": "Aggregated results", "private": "", "static": "", "guessedname": "_results", "guessedtype": "property", "type": "Object"}, "TEST_MANAGER_BEGIN_EVENT": {"static": "", "type": "string", "description": "Constant for the testmanagerbegin custom event", "final": ""}, "_frame": {"type": "Window", "static": "", "description": "The frame used to load and run tests.", "private": ""}}, "description": "Runs pages containing test suite definitions."}, "YAHOO.util.Point": {"name": "YAHOO.util.Point", "constructors": [{"params": [{"type": "Int", "name": "x", "description": " The X position of the point"}, {"type": "Int", "name": "y", "description": " The Y position of the point"}], "description": "A point is a region that is special in that it represents a single point on \nthe grid."}], "namespace": "YAHOO.util", "module": "dom", "guessedname": "Point", "extends": "YAHOO.util.Region", "superclass": "YAHOO.util.Region", "file": "Region.js", "guessedtype": "function", "shortname": "Point", "description": "A point is a region that is special in that it represents a single point on \nthe grid."}, "YAHOO.widget.Tooltip": {"name": "YAHOO.widget.Tooltip", "configs": {"container": {"default": "document.body", "type": "HTMLElement/String", "description": "Specifies the container element that the Tooltip's markup \nshould be rendered into."}, "width": {"default": "null", "type": "String", "description": "String representing the width of the Tooltip.  <em>Please note:\n</em> As of version 2.3 if either no value or a value of \"auto\" \nis specified, and the Toolip's \"container\" configuration property\nis set to something other than <code>document.body</code> or \nits \"context\" element resides outside the immediately visible \nportion of the document, the width of the Tooltip will be \ncalculated based on the offsetWidth of its root HTML and set just \nbefore it is made visible.  The original value will be \nrestored when the Tooltip is hidden. This ensures the Tooltip is \nrendered at a usable width.  For more information see \nYUILibrary bug #1685496 and YUILibrary \nbug #1735423."}, "text": {"default": "null", "type": "String", "description": "Specifies the Tooltip's text."}, "showdelay": {"default": "200", "type": "Number", "description": "The number of milliseconds to wait before showing a Tooltip \non mouseover."}, "disabled": {"default": "false", "type": "Boolean", "description": "Specifies whether or not the tooltip is disabled. Disabled tooltips\nwill not be displayed. If the tooltip is driven by the title attribute\nof the context element, the title attribute will still be removed for \ndisabled tooltips, to prevent default tooltip behavior."}, "preventoverlap": {"default": "true", "type": "Boolean", "description": "Specifies whether the Tooltip should be kept from overlapping \nits context element."}, "context": {"default": "null", "type": "HTMLElement[]/String[]", "description": "Specifies the element or elements that the Tooltip should be \nanchored to on mouseover."}, "autodismissdelay": {"default": "5000", "type": "Number", "description": "The number of milliseconds to wait before automatically \ndismissing a Tooltip after the mouse has been resting on the \ncontext element."}, "xyoffset": {"default": "[0, 25]", "type": "Array", "description": "Specifies the XY offset from the mouse position, where the tooltip should be displayed, specified\nas a 2 element array (e.g. [10, 20]);"}, "hidedelay": {"default": "250", "type": "Number", "description": "The number of milliseconds to wait before hiding a Tooltip \nafter mouseout."}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Tooltip <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Tooltip"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this Overlay. See configuration \ndocumentation for more details."}], "description": "Tooltip is an implementation of Overlay that behaves like an OS tooltip, \ndisplaying when the user mouses over a particular element, and \ndisappearing on mouse out."}], "namespace": "YAHOO.widget", "module": "container", "events": {"contextMouseOverEvent": {"params": [{"type": "HTMLElement", "name": "context", "description": " The context element which the user just moused over"}, {"type": "DOMEvent", "name": "e", "description": " The DOM event object, associated with the mouse over"}], "description": "CustomEvent fired when user mouses over a context element. Returning false from\na subscriber to this event will prevent the tooltip from being displayed for\nthe current context element.", "guessedname": "contextMouseOverEvent", "guessedtype": "property"}, "contextTriggerEvent": {"params": [{"type": "HTMLElement", "name": "context", "description": " The context element for which the tooltip is triggered"}], "description": "CustomEvent fired just before the tooltip is displayed for the current context.\n<p>\nYou can subscribe to this event if you need to set up the text for the \ntooltip based on the context element for which it is about to be displayed.\n</p>\n<p>This event differs from the beforeShow event in following respects:</p>\n<ol>\n<li>\nWhen moving from one context element to another, if the tooltip is not\nhidden (the <code>hidedelay</code> is not reached), the beforeShow and Show events will not\nbe fired when the tooltip is displayed for the new context since it is already visible.\nHowever the contextTrigger event is always fired before displaying the tooltip for\na new context.\n</li>\n<li>\nThe trigger event provides access to the context element, allowing you to \nset the text of the tooltip based on context element for which the tooltip is\ntriggered.\n</li>\n</ol>\n<p>\nIt is not possible to prevent the tooltip from being displayed\nusing this event. You can use the contextMouseOverEvent if you need to prevent\nthe tooltip from being displayed.\n</p>", "guessedname": "contextTriggerEvent", "guessedtype": "property"}, "contextMouseOutEvent": {"params": [{"type": "HTMLElement", "name": "context", "description": " The context element which the user just moused out of"}, {"type": "DOMEvent", "name": "e", "description": " The DOM event object, associated with the mouse out"}], "description": "CustomEvent fired when the user mouses out of a context element.", "guessedname": "contextMouseOutEvent", "guessedtype": "property"}}, "guessedname": "Tooltip", "methods": {"onContextMouseOver": {"params": [{"type": "DOMEvent", "name": "e", "description": " The current DOM event"}, {"type": "Object", "name": "obj", "description": " The object argument"}], "description": "The default event handler fired when the user mouses over the \ncontext element.", "guessedname": "onContextMouseOver", "guessedtype": "function"}, "onRender": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"render\" event handler for the Tooltip.", "guessedname": "onRender", "guessedtype": "function"}, "doShow": {"return": {"type": "Number", "description": "The process ID of the timeout function associated \nwith doShow"}, "params": [{"type": "DOMEvent", "name": "e", "description": " The current DOM event"}, {"type": "HTMLElement", "name": "context", "description": " The current context element"}], "description": "Processes the showing of the Tooltip by setting the timeout delay \nand offset of the Tooltip.", "guessedname": "doShow", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Tooltip", "guessedname": "initEvents", "guessedtype": "function"}, "_removeEventListeners": {"protected": "", "description": "Removes all of the DOM event handlers from the HTML\nelement(s) that trigger the display of the tooltip.", "guessedname": "_removeEventListeners", "guessedtype": "function"}, "configContext": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers,\nthis will usually equal the owner."}], "description": "The default event handler fired when the \"context\" property \nis changed.", "guessedname": "configContext", "guessedtype": "function"}, "doHide": {"description": "Sets the timeout for the auto-dismiss delay, which by default is 5 \nseconds, meaning that a tooltip will automatically dismiss itself \nafter 5 seconds of being displayed.", "guessedname": "doHide", "guessedtype": "function"}, "onContextMouseOut": {"params": [{"type": "DOMEvent", "name": "e", "description": " The current DOM event"}, {"type": "Object", "name": "obj", "description": " The object argument"}], "description": "The default event handler fired when the user mouses out of \nthe context element.", "guessedname": "onContextMouseOut", "guessedtype": "function"}, "forceUnderlayRedraw": {"description": "Forces the underlay element to be repainted, through the application/removal\nof a yui-force-redraw class to the underlay element.", "guessedname": "forceUnderlayRedraw", "guessedtype": "function"}, "configContainer": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For \nconfiguration handlers, args[0] will equal the newly applied value \nfor the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers,\nthis will usually equal the owner."}], "description": "The default event handler fired when the \"container\" property \nis changed.", "guessedname": "configContainer", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Tooltip <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Tooltip"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this Tooltip. \nSee configuration documentation for more details."}], "description": "The Tooltip initialization method. This method is automatically \ncalled by the constructor. A Tooltip is automatically rendered by \nthe init method, and it also is set to be invisible by default, \nand constrained to viewport by default as well.", "guessedname": "init", "guessedtype": "function"}, "onContextMouseMove": {"params": [{"type": "DOMEvent", "name": "e", "description": " The current DOM event"}, {"type": "Object", "name": "obj", "description": " The object argument"}], "description": "The default event handler fired when the user moves the mouse while \nover the context element.", "guessedname": "onContextMouseMove", "guessedtype": "function"}, "configText": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"text\" property is changed.", "guessedname": "configText", "guessedtype": "function"}, "preventOverlay": {"params": [{"type": "Number", "name": "pageX", "description": " The x coordinate position of the mouse pointer"}, {"type": "Number", "name": "pageY", "description": " The y coordinate position of the mouse pointer"}], "description": "Fired when the Tooltip is moved, this event handler is used to \nprevent the Tooltip from overlapping with its context element.", "guessedname": "preventOverlap", "guessedtype": "function"}, "destroy": {"description": "Removes the Tooltip element from the DOM and sets all child \nelements to null.", "guessedname": "destroy", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Tooltip"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be \nchanged using the Overlay's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Overlay", "superclass": "YAHOO.widget.Overlay", "file": "Tooltip.js", "guessedtype": "function", "shortname": "Tooltip", "properties": {"showProcId": {"type": "int", "description": "The unique process ID associated with the thread responsible \nfor showing the Tooltip.", "guessedname": "showProcId", "guessedtype": "property"}, "YAHOO.widget.Tooltip.CSS_TOOLTIP": {"description": "Constant representing the Tooltip CSS class", "static": "", "guessedname": "CSS_TOOLTIP", "guessedtype": "property", "type": "String", "final": ""}, "EVENT_TYPES": {"description": "Constant representing the name of the Tooltip's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "DEFAULT_CONFIG": {"description": "Constant representing the Tooltip's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}}, "description": "Tooltip is an implementation of Overlay that behaves like an OS tooltip, \ndisplaying when the user mouses over a particular element, and \ndisappearing on mouse out."}}, "version": "2.8.1", "namespaces": ["YAHOO.widget", "YAHOO.util", "YAHOO.util.Dom", "YAHOO.util.ImageLoader", "YAHOO.lang", "YAHOO.widget.Paginator.ui", "YAHOO.tool", "YAHOO.tool.TestCase", "YAHOO.tool.TestFormat"]}
\ No newline at end of file
+{"majorversion": 2, "filemap": {"Module.js": {"classlist": ["YAHOO.widget.Module"], "name": "Module.js", "module": "container"}, "TextNode.js": {"classlist": ["YAHOO.widget.TextNode"], "name": "TextNode.js", "module": "treeview"}, "button.js": {"classlist": ["YAHOO.widget.Button"], "name": "button.js", "module": "button"}, "OverlayManager.js": {"classlist": ["YAHOO.widget.OverlayManager"], "name": "OverlayManager.js", "module": "container"}, "StorageEngineGears.js": {"classlist": ["YAHOO.util.StorageEngineGears"], "name": "StorageEngineGears.js", "module": "Storage"}, "Dom.js": {"classlist": ["YAHOO.util.Dom"], "name": "Dom.js", "module": "dom"}, "StorageEvent.js": {"classlist": ["YAHOO.util.StorageEvent"], "name": "StorageEvent.js", "module": "Storage"}, "JSON.js": {"classlist": ["YAHOO.lang.JSON"], "name": "JSON.js", "module": "json"}, "Motion.js": {"classlist": ["YAHOO.util.Motion"], "name": "Motion.js", "module": "animation"}, "StorageEngineHTML5.js": {"classlist": ["YAHOO.util.StorageEngineHTML5"], "name": "StorageEngineHTML5.js", "module": "Storage"}, "DateNode.js": {"classlist": ["YAHOO.widget.DateNode"], "name": "DateNode.js", "module": "treeview"}, "Dialog.js": {"classlist": ["YAHOO.widget.Dialog"], "name": "Dialog.js", "module": "container"}, "DDTarget.js": {"classlist": ["YAHOO.util.DDTarget"], "name": "DDTarget.js", "module": "dragdrop"}, "Scroll.js": {"classlist": ["YAHOO.util.Scroll"], "name": "Scroll.js", "module": "animation"}, "swfdetect.js": {"classlist": ["YAHOO.util.SWFDetect"], "name": "swfdetect.js", "module": "swfdetect"}, "UIComponentTemplate.js": {"classlist": ["YAHOO.widget.Paginator.ui.YourComponent"], "name": "UIComponentTemplate.js", "module": "paginator"}, "MouseEnter.js": {"classlist": [], "name": "MouseEnter.js", "module": "event-mouseenter"}, "connection_xdr.js": {"classlist": [], "name": "connection_xdr.js", "module": "connection"}, "Carousel.js": {"classlist": ["YAHOO.widget.Carousel"], "name": "Carousel.js", "module": "carousel"}, "DragDrop.js": {"classlist": ["YAHOO.util.DragDrop"], "name": "DragDrop.js", "module": "dragdrop"}, "SimpleDialog.js": {"classlist": ["YAHOO.widget.SimpleDialog"], "name": "SimpleDialog.js", "module": "container"}, "Region.js": {"classlist": ["YAHOO.util.Region", "YAHOO.util.Point"], "name": "Region.js", "module": "dom"}, "Profiler.js": {"classlist": ["YAHOO.tool.Profiler"], "name": "Profiler.js", "module": "profiler"}, "Storage.js": {"classlist": ["YAHOO.util.Storage"], "name": "Storage.js", "module": "Storage"}, "TestManager.js": {"classlist": ["YAHOO.tool.TestManager"], "name": "TestManager.js", "module": "yuitest"}, "FirstPageLink.js": {"classlist": ["YAHOO.widget.Paginator.ui.FirstPageLink"], "name": "FirstPageLink.js", "module": "paginator"}, "Series.js": {"classlist": ["YAHOO.widget.Series", "YAHOO.widget.CartesianSeries", "YAHOO.widget.ColumnSeries", "YAHOO.widget.LineSeries", "YAHOO.widget.BarSeries", "YAHOO.widget.PieSeries", "YAHOO.widget.StackedBarSeries", "YAHOO.widget.StackedColumnSeries"], "name": "Series.js", "module": "charts"}, "StorageEngineSWF.js": {"classlist": ["YAHOO.util.StorageEngineSWF"], "name": "StorageEngineSWF.js", "module": "Storage"}, "ContainerEffect.js": {"classlist": ["YAHOO.widget.ContainerEffect"], "name": "ContainerEffect.js", "module": "container"}, "Type.js": {"classlist": ["YAHOO.util.Number", "YAHOO.util.Date", "YAHOO.util.DateLocale"], "name": "Type.js", "module": "datasource"}, "TestRunner.js": {"classlist": ["YAHOO.tool.TestNode", "YAHOO.tool.TestRunner"], "name": "TestRunner.js", "module": "yuitest"}, "contextmenu.js": {"classlist": ["YAHOO.widget.ContextMenu"], "name": "contextmenu.js", "module": "menu"}, "StorageEngineKeyed.js": {"classlist": ["YAHOO.util.StorageEngineKeyed"], "name": "StorageEngineKeyed.js", "module": "Storage"}, "DataSource.js": {"classlist": ["YAHOO.util.DataSourceBase", "YAHOO.util.LocalDataSource", "YAHOO.util.FunctionDataSource", "YAHOO.util.ScriptNodeDataSource", "YAHOO.util.XHRDataSource", "YAHOO.util.DataSource"], "name": "DataSource.js", "module": "datasource"}, "ScrollingDataTable.js": {"classlist": ["YAHOO.widget.ScrollingDataTable"], "name": "ScrollingDataTable.js", "module": "datatable"}, "StorageManager.js": {"classlist": ["YAHOO.util.StorageManager"], "name": "StorageManager.js", "module": "Storage"}, "TimeAxis.js": {"classlist": ["YAHOO.widget.TimeAxis"], "name": "TimeAxis.js", "module": "charts"}, "ObjectAssert.js": {"classlist": ["YAHOO.util.ObjectAssert"], "name": "ObjectAssert.js", "module": "yuitest"}, "ColorPicker.js": {"classlist": ["YAHOO.widget.ColorPicker"], "name": "ColorPicker.js", "module": "colorpicker"}, "Tab.js": {"classlist": ["YAHOO.widget.Tab"], "name": "Tab.js", "module": "tabview"}, "DataTable.js": {"classlist": ["YAHOO.widget.DataTable"], "name": "DataTable.js", "module": "datatable"}, "contextmenuitem.js": {"classlist": ["YAHOO.widget.ContextMenuItem"], "name": "contextmenuitem.js", "module": "menu"}, "gears_init.js": {"classlist": [], "name": "gears_init.js", "module": "Storage"}, "resize.js": {"classlist": ["YAHOO.util.Resize"], "name": "resize.js", "module": "resize"}, "RecordSet.js": {"classlist": ["YAHOO.widget.RecordSet", "YAHOO.widget.Record"], "name": "RecordSet.js", "module": "datatable"}, "Cookie.js": {"classlist": ["YAHOO.util.Cookie"], "name": "Cookie.js", "module": "cookie"}, "Env.js": {"classlist": ["YAHOO.env", "YAHOO.env.ua"], "name": "Env.js", "module": "yahoo"}, "CategoryAxis.js": {"classlist": ["YAHOO.widget.CategoryAxis"], "name": "CategoryAxis.js", "module": "charts"}, "DragDropMgr.js": {"classlist": ["YAHOO.util.DragDropMgr", "YAHOO.util.DragDropMgr.ElementWrapper"], "name": "DragDropMgr.js", "module": "dragdrop"}, "RowsPerPageDropDown.js": {"classlist": ["YAHOO.widget.Paginator.ui.RowsPerPageDropdown"], "name": "RowsPerPageDropDown.js", "module": "paginator"}, "menuitem.js": {"classlist": ["YAHOO.widget.MenuItem"], "name": "menuitem.js", "module": "menu"}, "Selector.js": {"classlist": ["YAHOO.util.Selector"], "name": "Selector.js", "module": "selector"}, "ArrayAssert.js": {"classlist": ["YAHOO.util.ArrayAssert"], "name": "ArrayAssert.js", "module": "yuitest"}, "Axis.js": {"classlist": ["YAHOO.widget.Axis"], "name": "Axis.js", "module": "charts"}, "TreeView.js": {"classlist": ["YAHOO.widget.TreeView"], "name": "TreeView.js", "module": "treeview"}, "KeyListener.js": {"classlist": ["YAHOO.util.KeyListener"], "name": "KeyListener.js", "module": "event"}, "Slider.js": {"classlist": ["YAHOO.widget.Slider"], "name": "Slider.js", "module": "slider"}, "CalendarNavigator.js": {"classlist": ["YAHOO.widget.CalendarNavigator"], "name": "CalendarNavigator.js", "module": "calendar"}, "Uploader.js": {"classlist": ["YAHOO.widget.Uploader"], "name": "Uploader.js", "module": "uploader"}, "Element.js": {"classlist": ["YAHOO.util.Element"], "name": "Element.js", "module": "element"}, "Tooltip.js": {"classlist": ["YAHOO.widget.Tooltip"], "name": "Tooltip.js", "module": "container"}, "history.js": {"classlist": ["YAHOO.util.History"], "name": "history.js", "module": "history"}, "Bezier.js": {"classlist": ["YAHOO.util.Bezier"], "name": "Bezier.js", "module": "animation"}, "UserAction.js": {"classlist": ["YAHOO.util.UserAction"], "name": "UserAction.js", "module": "event-simulate"}, "connectionx.js": {"classlist": [], "name": "connectionx.js", "module": "connection"}, "Node.js": {"classlist": ["YAHOO.widget.Node"], "name": "Node.js", "module": "treeview"}, "Get.js": {"classlist": ["YAHOO.util.Get"], "name": "Get.js", "module": "get"}, "menumanager.js": {"classlist": ["YAHOO.widget.MenuManager"], "name": "menumanager.js", "module": "menu"}, "CartesianChart.js": {"classlist": ["YAHOO.widget.CartesianChart"], "name": "CartesianChart.js", "module": "charts"}, "yuiloader.js": {"classlist": ["YAHOO.util.YUILoader"], "name": "yuiloader.js", "module": "yuiloader"}, "buttongroup.js": {"classlist": ["YAHOO.widget.ButtonGroup"], "name": "buttongroup.js", "module": "button"}, "DualSlider.js": {"classlist": ["YAHOO.widget.DualSlider"], "name": "DualSlider.js", "module": "slider"}, "EventProvider.js": {"classlist": ["YAHOO.util.EventProvider"], "name": "EventProvider.js", "module": "event"}, "YAHOO.js": {"classlist": ["YAHOO_config", "YAHOO"], "name": "YAHOO.js", "module": "yahoo"}, "PieChart.js": {"classlist": ["YAHOO.widget.PieChart"], "name": "PieChart.js", "module": "charts"}, "TabView.js": {"classlist": ["YAHOO.widget.TabView"], "name": "TabView.js", "module": "tabview"}, "MenuNode.js": {"classlist": ["YAHOO.widget.MenuNode"], "name": "MenuNode.js", "module": "treeview"}, "layoutunit.js": {"classlist": ["YAHOO.widget.LayoutUnit"], "name": "layoutunit.js", "module": "layout"}, "AutoComplete.js": {"classlist": ["YAHOO.widget.AutoComplete"], "name": "AutoComplete.js", "module": "autocomplete"}, "IEStyle.js": {"classlist": ["YAHOO.util.Dom.IEStyle"], "name": "IEStyle.js", "module": "dom"}, "stylesheet.js": {"classlist": ["YAHOO.util.StyleSheet"], "name": "stylesheet.js", "module": "stylesheet"}, "Element-Delegate.js": {"classlist": [], "name": "Element-Delegate.js", "module": "element-delegate"}, "crop.js": {"classlist": ["YAHOO.widget.ImageCropper"], "name": "crop.js", "module": "imagecropper"}, "AnimMgr.js": {"classlist": ["YAHOO.util.AnimMgr"], "name": "AnimMgr.js", "module": "animation"}, "menu.js": {"classlist": ["YAHOO.widget.Menu"], "name": "menu.js", "module": "menu"}, "DD.js": {"classlist": ["YAHOO.util.DD"], "name": "DD.js", "module": "dragdrop"}, "HTMLNode.js": {"classlist": ["YAHOO.widget.HTMLNode"], "name": "HTMLNode.js", "module": "treeview"}, "PreviousPageLink.js": {"classlist": ["YAHOO.widget.Paginator.ui.PreviousPageLink"], "name": "PreviousPageLink.js", "module": "paginator"}, "ProgressBar.js": {"classlist": ["YAHOO.widget.ProgressBar"], "name": "ProgressBar.js", "module": "progressbar"}, "TVFadeIn.js": {"classlist": ["YAHOO.widget.TVFadeIn"], "name": "TVFadeIn.js", "module": "treeview"}, "Attribute.js": {"classlist": ["YAHOO.util.Attribute"], "name": "Attribute.js", "module": "element"}, "ColorAnim.js": {"classlist": ["YAHOO.util.ColorAnim"], "name": "ColorAnim.js", "module": "animation"}, "Chart.js": {"classlist": ["YAHOO.widget.Chart"], "name": "Chart.js", "module": "charts"}, "Panel.js": {"classlist": ["YAHOO.widget.Panel"], "name": "Panel.js", "module": "container"}, "LogWriter.js": {"classlist": ["LogWriter"], "name": "LogWriter.js", "module": "logger"}, "TestSuite.js": {"classlist": ["YAHOO.tool.TestSuite"], "name": "TestSuite.js", "module": "yuitest"}, "LogMsg.js": {"classlist": ["LogMsg"], "name": "LogMsg.js", "module": "logger"}, "CalendarGroup.js": {"classlist": ["YAHOO.widget.CalendarGroup", "YAHOO.widget.Calendar2up"], "name": "CalendarGroup.js", "module": "calendar"}, "Paginator.js": {"classlist": ["YAHOO.widget.Paginator"], "name": "Paginator.js", "module": "paginator"}, "Lang.js": {"classlist": ["YAHOO.lang"], "name": "Lang.js", "module": "yahoo"}, "LogReader.js": {"classlist": ["LogReader"], "name": "LogReader.js", "module": "logger"}, "profilerviewer.js": {"classlist": ["YAHOO.widget.ProfilerViewer"], "name": "profilerviewer.js", "module": "profilerviewer"}, "CurrentPageReport.js": {"classlist": ["YAHOO.widget.Paginator.ui.CurrentPageReport"], "name": "CurrentPageReport.js", "module": "paginator"}, "layout.js": {"classlist": ["YAHOO.widget.Layout"], "name": "layout.js", "module": "layout"}, "DateMath.js": {"classlist": ["YAHOO.widget.DateMath"], "name": "DateMath.js", "module": "datemath"}, "RootNode.js": {"classlist": ["YAHOO.widget.RootNode"], "name": "RootNode.js", "module": "treeview"}, "Logger.js": {"classlist": ["YAHOO.widget.Logger"], "name": "Logger.js", "module": "logger"}, "TVAnim.js": {"classlist": ["YAHOO.widget.TVAnim"], "name": "TVAnim.js", "module": "treeview"}, "SliderThumb.js": {"classlist": ["YAHOO.widget.SliderThumb"], "name": "SliderThumb.js", "module": "slider"}, "Delegate.js": {"classlist": [], "name": "Delegate.js", "module": "event-delegate"}, "NextPageLink.js": {"classlist": ["YAHOO.widget.Paginator.ui.NextPageLink"], "name": "NextPageLink.js", "module": "paginator"}, "ChartTypes.js": {"classlist": ["YAHOO.widget.LineChart", "YAHOO.widget.ColumnChart", "YAHOO.widget.BarChart", "YAHOO.widget.StackedColumnChart", "YAHOO.widget.StackedBarChart"], "name": "ChartTypes.js", "module": "charts"}, "TestReporter.js": {"classlist": ["YAHOO.tool.TestReporter"], "name": "TestReporter.js", "module": "yuitest"}, "TestLogger.js": {"classlist": ["YAHOO.tool.TestLogger"], "name": "TestLogger.js", "module": "yuitest"}, "CellEditor.js": {"classlist": ["YAHOO.widget.BaseCellEditor", "YAHOO.widget.CheckboxCellEditor", "YAHOO.widget.DateCellEditor", "YAHOO.widget.DropdownCellEditor", "YAHOO.widget.RadioCellEditor", "YAHOO.widget.TextareaCellEditor", "YAHOO.widget.TextboxCellEditor", "YAHOO.widget.CellEditor"], "name": "CellEditor.js", "module": "datatable"}, "Assert.js": {"classlist": ["YAHOO.util.Assert", "YAHOO.util.AssertionError", "YAHOO.util.ComparisonFailure", "YAHOO.util.UnexpectedValue", "YAHOO.util.ShouldFail", "YAHOO.util.ShouldError", "YAHOO.util.UnexpectedError"], "name": "Assert.js", "module": "yuitest"}, "ColumnSet.js": {"classlist": ["YAHOO.widget.ColumnSet", "YAHOO.widget.Column", "YAHOO.util.Sort", "YAHOO.util.ColumnDD", "YAHOO.util.ColumnResizer"], "name": "ColumnSet.js", "module": "datatable"}, "menuariaplugin.js": {"classlist": [], "name": "menuariaplugin.js", "module": "menu"}, "Config.js": {"classlist": ["YAHOO.util.Config"], "name": "Config.js", "module": "container"}, "menubar.js": {"classlist": ["YAHOO.widget.MenuBar"], "name": "menubar.js", "module": "menu"}, "TVFadeOut.js": {"classlist": ["YAHOO.widget.TVFadeOut"], "name": "TVFadeOut.js", "module": "treeview"}, "TreeViewEd.js": {"classlist": [], "name": "TreeViewEd.js", "module": "treeview"}, "CustomEvent.js": {"classlist": ["YAHOO.util.CustomEvent", "YAHOO.util.Subscriber"], "name": "CustomEvent.js", "module": "event"}, "FlashAdapter.js": {"classlist": ["YAHOO.widget.FlashAdapter"], "name": "FlashAdapter.js", "module": "uploader"}, "PageLinks.js": {"classlist": ["YAHOO.widget.Paginator.ui.PageLinks"], "name": "PageLinks.js", "module": "paginator"}, "toolbar.js": {"classlist": ["YAHOO.widget.Toolbar"], "name": "toolbar.js", "module": "editor"}, "swf.js": {"classlist": ["YAHOO.widget.SWF"], "name": "swf.js", "module": "swf"}, "TestCase.js": {"classlist": ["YAHOO.tool.TestCase", "YAHOO.tool.TestCase.Wait"], "name": "TestCase.js", "module": "yuitest"}, "Anim.js": {"classlist": ["YAHOO.util.Anim"], "name": "Anim.js", "module": "animation"}, "Chain.js": {"classlist": ["YAHOO.util.Chain"], "name": "Chain.js", "module": "datatable"}, "LastPageLink.js": {"classlist": ["YAHOO.widget.Paginator.ui.LastPageLink"], "name": "LastPageLink.js", "module": "paginator"}, "Color.js": {"classlist": ["YAHOO.util.Dom.Color"], "name": "Color.js", "module": "dom"}, "simple-editor.js": {"classlist": ["YAHOO.widget.SimpleEditor", "YAHOO.widget.EditorInfo"], "name": "simple-editor.js", "module": "editor"}, "TestFormat.js": {"classlist": [], "name": "TestFormat.js", "module": "yuitest"}, "toolbar-button.js": {"classlist": ["YAHOO.widget.ToolbarButtonAdvanced", "YAHOO.widget.ToolbarButton"], "name": "toolbar-button.js", "module": "editor"}, "swfobject.js": {"classlist": [], "name": "swfobject.js", "module": "uploader"}, "Event.js": {"classlist": ["YAHOO.util.Event"], "name": "Event.js", "module": "event"}, "editor.js": {"classlist": ["YAHOO.widget.Editor", "YAHOO.widget.EditorWindow"], "name": "editor.js", "module": "editor"}, "Overlay.js": {"classlist": ["YAHOO.widget.Overlay"], "name": "Overlay.js", "module": "container"}, "AttributeProvider.js": {"classlist": ["YAHOO.util.AttributeProvider"], "name": "AttributeProvider.js", "module": "element"}, "Easing.js": {"classlist": ["YAHOO.util.Easing"], "name": "Easing.js", "module": "animation"}, "DateAssert.js": {"classlist": ["YAHOO.util.DateAssert"], "name": "DateAssert.js", "module": "yuitest"}, "menubaritem.js": {"classlist": ["YAHOO.widget.MenuBarItem"], "name": "menubaritem.js", "module": "menu"}, "connection_core.js": {"classlist": ["YAHOO.util.Connect"], "name": "connection_core.js", "module": "connection"}, "DDProxy.js": {"classlist": ["YAHOO.util.DDProxy"], "name": "DDProxy.js", "module": "dragdrop"}, "Calendar.js": {"classlist": ["YAHOO.widget.Calendar", "YAHOO.widget.Calendar_Core"], "name": "Calendar.js", "module": "calendar"}, "swfstore.js": {"classlist": ["YAHOO.util.SWFStore"], "name": "swfstore.js", "module": "swfstore"}, "NumericAxis.js": {"classlist": ["YAHOO.widget.NumericAxis"], "name": "NumericAxis.js", "module": "charts"}, "ImageLoader.js": {"classlist": ["YAHOO.util.ImageLoader.group", "YAHOO.util.ImageLoader.imgObj", "YAHOO.util.ImageLoader.bgImgObj", "YAHOO.util.ImageLoader.srcImgObj", "YAHOO.util.ImageLoader.pngBgImgObj"], "name": "ImageLoader.js", "module": "imageloader"}}, "modules": {"Storage": {"description": "The Storage module manages client-side data storage.", "submodules": [], "classlist": ["YAHOO.util.Storage", "YAHOO.util.StorageEngineGears", "YAHOO.util.StorageEngineHTML5", "YAHOO.util.StorageEngineKeyed", "YAHOO.util.StorageEngineSWF", "YAHOO.util.StorageEvent", "YAHOO.util.StorageManager"], "filelist": ["Storage.js", "StorageEngineGears.js", "StorageEngineHTML5.js", "StorageEngineKeyed.js", "StorageEngineSWF.js", "StorageEvent.js", "StorageManager.js", "gears_init.js"], "subdata": {}, "name": "Storage"}, "progressbar": {"name": "progressbar", "submodules": [], "classlist": ["YAHOO.widget.ProgressBar"], "title": "ProgressBar Widget", "requires": "yahoo, dom, event, element", "filelist": ["ProgressBar.js"], "subdata": {}, "optional": "animation"}, "imageloader": {"description": "The ImageLoader Utility is a framework to dynamically load images according to certain triggers,\nenabling faster load times and a more responsive UI.", "submodules": [], "classlist": ["YAHOO.util.ImageLoader.group", "YAHOO.util.ImageLoader.imgObj", "YAHOO.util.ImageLoader.bgImgObj", "YAHOO.util.ImageLoader.srcImgObj", "YAHOO.util.ImageLoader.pngBgImgObj"], "filelist": ["ImageLoader.js"], "subdata": {}, "requires": "yahoo, dom, event", "name": "imageloader"}, "event-delegate": {"description": "Augments the Event Utility with a <code>delegate</code> method that \nfacilitates easy creation of delegated event listeners.  (Note: Using CSS \nselectors as the filtering criteria for delegated event listeners requires \ninclusion of the Selector Utility.)", "submodules": [], "classlist": [], "title": "Event Utility Event Delegation Module", "filelist": ["Delegate.js"], "subdata": {}, "requires": "event", "name": "event-delegate"}, "calendar": {"description": "The Calendar component is a UI control that enables users to choose one or more dates from a graphical calendar presented in a one-month or\nmulti-month interface. Calendars are generated entirely via script and can be navigated without any page refreshes.", "submodules": [], "classlist": ["YAHOO.widget.Calendar", "YAHOO.widget.Calendar_Core", "YAHOO.widget.CalendarGroup", "YAHOO.widget.Calendar2up", "YAHOO.widget.CalendarNavigator"], "title": "Calendar", "filelist": ["Calendar.js", "CalendarGroup.js", "CalendarNavigator.js"], "subdata": {}, "requires": "yahoo,dom,event", "name": "calendar"}, "profiler": {"description": "The YUI JavaScript profiler.", "submodules": [], "classlist": ["YAHOO.tool.Profiler"], "filelist": ["Profiler.js"], "subdata": {}, "requires": "yahoo", "name": "profiler"}, "event": {"description": "The Event Utility provides utilities for managing DOM Events and tools\nfor building event systems", "submodules": [], "classlist": ["YAHOO.util.CustomEvent", "YAHOO.util.Subscriber", "YAHOO.util.Event", "YAHOO.util.EventProvider", "YAHOO.util.KeyListener"], "title": "Event Utility", "filelist": ["CustomEvent.js", "Event.js", "EventProvider.js", "KeyListener.js"], "subdata": {}, "requires": "yahoo", "name": "event"}, "datemath": {"description": "The datemath module provides utility methods for basic JavaScript Date object manipulation and \ncomparison.", "submodules": [], "classlist": ["YAHOO.widget.DateMath"], "filelist": ["DateMath.js"], "subdata": {}, "name": "datemath"}, "paginator": {"description": "The Paginator widget provides a set of controls to navigate through paged\ndata.", "submodules": [], "classlist": ["YAHOO.widget.Paginator.ui.CurrentPageReport", "YAHOO.widget.Paginator.ui.FirstPageLink", "YAHOO.widget.Paginator.ui.LastPageLink", "YAHOO.widget.Paginator.ui.NextPageLink", "YAHOO.widget.Paginator.ui.PageLinks", "YAHOO.widget.Paginator", "YAHOO.widget.Paginator.ui.PreviousPageLink", "YAHOO.widget.Paginator.ui.RowsPerPageDropdown", "YAHOO.widget.Paginator.ui.YourComponent"], "filelist": ["CurrentPageReport.js", "FirstPageLink.js", "LastPageLink.js", "NextPageLink.js", "PageLinks.js", "Paginator.js", "PreviousPageLink.js", "RowsPerPageDropDown.js", "UIComponentTemplate.js"], "subdata": {}, "uses": "YAHOO.util.EventProvider", "guessedname": "Dom", "guessedtype": "property", "name": "paginator"}, "container": {"description": "The Container family of components is designed to enable developers to \ncreate different kinds of content-containing modules on the web. Module \nand Overlay are the most basic containers, and they can be used directly \nor extended to build custom containers. Also part of the Container family \nare four UI controls that extend Module and Overlay: Tooltip, Panel, \nDialog, and SimpleDialog.", "submodules": [], "classlist": ["YAHOO.util.Config", "YAHOO.widget.ContainerEffect", "YAHOO.widget.Dialog", "YAHOO.widget.Module", "YAHOO.widget.Overlay", "YAHOO.widget.OverlayManager", "YAHOO.widget.Panel", "YAHOO.widget.SimpleDialog", "YAHOO.widget.Tooltip"], "title": "Container", "requires": "yahoo, dom, event", "filelist": ["Config.js", "ContainerEffect.js", "Dialog.js", "Module.js", "Overlay.js", "OverlayManager.js", "Panel.js", "SimpleDialog.js", "Tooltip.js"], "subdata": {}, "optional": "dragdrop, animation, button", "name": "container"}, "event-simulate": {"description": "DOM event simulation utility", "submodules": [], "classlist": ["YAHOO.util.UserAction"], "filelist": ["UserAction.js"], "subdata": {}, "requires": "yahoo,dom,event", "name": "event-simulate"}, "stylesheet": {"description": "The StyleSheet component is a utility for managing css rules at the\nstylesheet level", "submodules": [], "classlist": ["YAHOO.util.StyleSheet"], "filelist": ["stylesheet.js"], "subdata": {}, "beta": "", "requires": "yahoo", "name": "stylesheet"}, "charts": {"description": "The Charts widget provides a Flash control for displaying data\ngraphically by series across A-grade browsers with Flash Player installed.", "submodules": [], "classlist": ["YAHOO.widget.Axis", "YAHOO.widget.CartesianChart", "YAHOO.widget.CategoryAxis", "YAHOO.widget.Chart", "YAHOO.widget.LineChart", "YAHOO.widget.ColumnChart", "YAHOO.widget.BarChart", "YAHOO.widget.StackedColumnChart", "YAHOO.widget.StackedBarChart", "YAHOO.widget.NumericAxis", "YAHOO.widget.PieChart", "YAHOO.widget.Series", "YAHOO.widget.CartesianSeries", "YAHOO.widget.ColumnSeries", "YAHOO.widget.LineSeries", "YAHOO.widget.BarSeries", "YAHOO.widget.PieSeries", "YAHOO.widget.StackedBarSeries", "YAHOO.widget.StackedColumnSeries", "YAHOO.widget.TimeAxis"], "title": "Charts Widget", "filelist": ["Axis.js", "CartesianChart.js", "CategoryAxis.js", "Chart.js", "ChartTypes.js", "NumericAxis.js", "PieChart.js", "Series.js", "TimeAxis.js"], "subdata": {}, "requires": "yahoo, dom, event, datasource", "experimental": "", "name": "charts"}, "swf": {"description": "The SWF utility is a tool for embedding Flash applications in HTMl pages.", "submodules": [], "classlist": ["YAHOO.widget.SWF"], "title": "SWF Utility", "filelist": ["swf.js"], "subdata": {}, "requires": "yahoo, dom, event", "name": "swf"}, "json": {"description": "Provides methods to parse JSON strings and convert objects to JSON strings.", "submodules": [], "classlist": ["YAHOO.lang.JSON"], "filelist": ["JSON.js"], "subdata": {}, "name": "json"}, "animation": {"description": "The animation module provides allows effects to be added to HTMLElements.", "submodules": [], "classlist": ["YAHOO.util.Anim", "YAHOO.util.AnimMgr", "YAHOO.util.Bezier", "YAHOO.util.ColorAnim", "YAHOO.util.Easing", "YAHOO.util.Motion", "YAHOO.util.Scroll"], "filelist": ["Anim.js", "AnimMgr.js", "Bezier.js", "ColorAnim.js", "Easing.js", "Motion.js", "Scroll.js"], "subdata": {}, "requires": "yahoo, event, dom", "name": "animation"}, "event-mouseenter": {"description": "Augments the Event Utility with support for the mouseenter and mouseleave \nevents:  A mouseenter event fires the first time the mouse enters an \nelement; a mouseleave event first the first time the mouse leaves an \nelement.", "submodules": [], "classlist": [], "title": "Event Utility mouseenter and mouseout Module", "filelist": ["MouseEnter.js"], "subdata": {}, "requires": "event", "name": "event-mouseenter"}, "dragdrop": {"description": "The drag and drop utility provides a framework for building drag and drop\napplications.  In addition to enabling drag and drop for specific elements,\nthe drag and drop elements are tracked by the manager class, and the\ninteractions between the various elements are tracked during the drag and\nthe implementing code is notified about these important moments.", "submodules": [], "classlist": ["YAHOO.util.DD", "YAHOO.util.DDProxy", "YAHOO.util.DDTarget", "YAHOO.util.DragDrop", "YAHOO.util.DragDropMgr", "YAHOO.util.DragDropMgr.ElementWrapper"], "title": "Drag and Drop", "filelist": ["DD.js", "DDProxy.js", "DDTarget.js", "DragDrop.js", "DragDropMgr.js"], "subdata": {}, "requires": "yahoo,dom,event", "name": "dragdrop"}, "carousel": {"description": "The Carousel module provides a widget for browsing among a set of like\nobjects represented pictorially.", "submodules": [], "classlist": ["YAHOO.widget.Carousel"], "title": "Carousel Widget", "filelist": ["Carousel.js"], "subdata": {}, "beta": "", "optional": "animation", "requires": "yahoo, dom, event, element", "name": "carousel"}, "element-delegate": {"description": "Augments the Element Utility with a <code>delegate</code> method that \nfacilitates easy creation of delegated event listeners.  (Note: Using CSS \nselectors as the filtering criteria for delegated event listeners requires \ninclusion of the Selector Utility.)", "submodules": [], "classlist": [], "title": "Element Event Delegation Module", "filelist": ["Element-Delegate.js"], "subdata": {}, "requires": "element, event-delegate", "name": "element-delegate"}, "logger": {"description": "The Logger widget provides a simple way to read or write log messages in\nJavaScript code. Integration with the YUI Library's debug builds allow\nimplementers to access under-the-hood events, errors, and debugging messages.\nOutput may be read through a LogReader console and/or output to a browser\nconsole.", "submodules": [], "classlist": ["LogMsg", "LogReader", "LogWriter", "YAHOO.widget.Logger"], "title": "Logger Widget", "filelist": ["LogMsg.js", "LogReader.js", "LogWriter.js", "Logger.js"], "subdata": {}, "optional": "dragdrop", "requires": "yahoo, event, dom", "name": "logger"}, "editor": {"description": "<p>Creates a rich Toolbar widget based on Button. Primarily used with the Rich Text Editor</p>", "submodules": [], "classlist": ["YAHOO.widget.Editor", "YAHOO.widget.EditorWindow", "YAHOO.widget.SimpleEditor", "YAHOO.widget.EditorInfo", "YAHOO.widget.ToolbarButtonAdvanced", "YAHOO.widget.ToolbarButton", "YAHOO.widget.Toolbar"], "filelist": ["editor.js", "simple-editor.js", "toolbar-button.js", "toolbar.js"], "subdata": {}, "optional": "dragdrop, animation, menu, button, resize", "requires": "yahoo, dom, element, event, container_core, simpleeditor", "name": "editor"}, "colorpicker": {"description": "The colorpicker module provides a widget for selecting colors", "submodules": [], "classlist": ["YAHOO.util.Color", "YAHOO.widget.ColorPicker"], "filelist": ["Color.js", "ColorPicker.js"], "subdata": {}, "requires": "yahoo, dom, event, element, slider", "name": "colorpicker"}, "imagecropper": {"description": "<p>Creates a Image Cropper control.</p>", "submodules": [], "classlist": ["YAHOO.widget.ImageCropper"], "filelist": ["crop.js"], "subdata": {}, "beta": "", "requires": "yahoo, dom, dragdrop, element, event, resize", "name": "imagecropper"}, "get": {"description": "Provides a mechanism to fetch remote resources and\ninsert them into a document", "submodules": [], "classlist": ["YAHOO.util.Get"], "filelist": ["Get.js"], "subdata": {}, "requires": "yahoo", "name": "get"}, "yuitest": {"description": "The YUI test tool", "submodules": [], "classlist": ["YAHOO.util.ArrayAssert", "YAHOO.util.Assert", "YAHOO.util.AssertionError", "YAHOO.util.ComparisonFailure", "YAHOO.util.UnexpectedValue", "YAHOO.util.ShouldFail", "YAHOO.util.ShouldError", "YAHOO.util.UnexpectedError", "YAHOO.util.DateAssert", "YAHOO.util.ObjectAssert", "YAHOO.tool.TestCase", "YAHOO.tool.TestCase.Wait", "YAHOO.tool.TestLogger", "YAHOO.tool.TestManager", "YAHOO.tool.TestReporter", "YAHOO.tool.TestNode", "YAHOO.tool.TestRunner", "YAHOO.tool.TestSuite"], "filelist": ["ArrayAssert.js", "Assert.js", "DateAssert.js", "ObjectAssert.js", "TestCase.js", "TestFormat.js", "TestLogger.js", "TestManager.js", "TestReporter.js", "TestRunner.js", "TestSuite.js"], "subdata": {}, "optional": "event-simulte", "requires": "yahoo,dom,event,logger", "name": "yuitest"}, "yahoo": {"description": "The YAHOO object is the single global object used by YUI Library.  It\ncontains utility function for setting up namespaces, inheritance, and\nlogging.  YAHOO.util, YAHOO.widget, and YAHOO.example are namespaces\ncreated automatically for and used by the library.", "submodules": [], "classlist": ["YAHOO.env", "YAHOO.env.ua", "YAHOO.lang", "YAHOO_config", "YAHOO"], "title": "YAHOO Global", "filelist": ["Env.js", "Lang.js", "YAHOO.js"], "subdata": {}, "name": "yahoo"}, "selector": {"description": "The selector module provides helper methods allowing CSS3 Selectors to be used with DOM elements.", "submodules": [], "classlist": ["YAHOO.util.Selector"], "title": "Selector Utility", "filelist": ["Selector.js"], "subdata": {}, "requires": "yahoo, dom", "name": "selector"}, "slider": {"description": "The Slider component is a UI control that enables the user to adjust \nvalues in a finite range along one or two axes. Typically, the Slider \ncontrol is used in a web application as a rich, visual replacement \nfor an input box that takes a number as input. The Slider control can \nalso easily accommodate a second dimension, providing x,y output for \na selection point chosen from a rectangular region.", "submodules": [], "classlist": ["YAHOO.widget.DualSlider", "YAHOO.widget.Slider", "YAHOO.widget.SliderThumb"], "title": "Slider Widget", "requires": "yahoo,dom,dragdrop,event", "filelist": ["DualSlider.js", "Slider.js", "SliderThumb.js"], "subdata": {}, "optional": "animation", "name": "slider"}, "cookie": {"description": "Utilities for cookie management", "submodules": [], "classlist": ["YAHOO.util.Cookie"], "filelist": ["Cookie.js"], "subdata": {}, "name": "cookie"}, "uploader": {"description": "The YUI Uploader Control", "submodules": [], "classlist": ["YAHOO.widget.FlashAdapter", "YAHOO.widget.Uploader"], "title": "Uploader", "filelist": ["FlashAdapter.js", "Uploader.js", "swfobject.js"], "subdata": {}, "requires": "yahoo, dom, element, event", "name": "uploader"}, "layout": {"description": "<p>Provides a fixed layout containing, top, bottom, left, right and center layout units. It can be applied to either the body or an element.</p>", "submodules": [], "classlist": ["YAHOO.widget.Layout", "YAHOO.widget.LayoutUnit"], "filelist": ["layout.js", "layoutunit.js"], "subdata": {}, "requires": "yahoo, dom, element, event", "name": "layout"}, "profilerviewer": {"description": "The ProfilerViewer module provides a graphical display for viewing\nthe output of the YUI Profiler <http://developer.yahoo.com/yui/profiler>.", "submodules": [], "classlist": ["YAHOO.widget.ProfilerViewer"], "filelist": ["profilerviewer.js"], "subdata": {}, "requires": "yahoo, dom, event, element, profiler, yuiloader", "name": "profilerviewer"}, "datatable": {"description": "The DataTable widget provides a progressively enhanced DHTML control for\ndisplaying tabular data across A-grade browsers.", "submodules": [], "classlist": ["YAHOO.widget.BaseCellEditor", "YAHOO.widget.CheckboxCellEditor", "YAHOO.widget.DateCellEditor", "YAHOO.widget.DropdownCellEditor", "YAHOO.widget.RadioCellEditor", "YAHOO.widget.TextareaCellEditor", "YAHOO.widget.TextboxCellEditor", "YAHOO.widget.CellEditor", "YAHOO.util.Chain", "YAHOO.widget.ColumnSet", "YAHOO.widget.Column", "YAHOO.util.Sort", "YAHOO.util.ColumnDD", "YAHOO.util.ColumnResizer", "YAHOO.widget.DataTable", "YAHOO.widget.RecordSet", "YAHOO.widget.Record", "YAHOO.widget.ScrollingDataTable"], "title": "DataTable Widget", "requires": "yahoo, dom, event, element, datasource", "filelist": ["CellEditor.js", "Chain.js", "ColumnSet.js", "DataTable.js", "RecordSet.js", "ScrollingDataTable.js"], "subdata": {}, "optional": "dragdrop, dragdrop", "name": "datatable"}, "resize": {"description": "<p>Makes an element resizable</p>", "submodules": [], "classlist": ["YAHOO.util.Resize"], "filelist": ["resize.js"], "subdata": {}, "optional": "animation", "requires": "yahoo, dom, dragdrop, element, event", "name": "resize"}, "swfstore": {"description": "Provides a swf based storage implementation", "submodules": [], "classlist": ["YAHOO.util.SWFStore"], "filelist": ["swfstore.js"], "subdata": {}, "name": "swfstore"}, "swfdetect": {"description": "Utility for Flash version detection", "submodules": [], "classlist": ["YAHOO.util.SWFDetect"], "filelist": ["swfdetect.js"], "subdata": {}, "name": "swfdetect"}, "yuiloader": {"description": "Provides dynamic loading for the YUI library.  It includes the dependency\ninfo for the library, and will automatically pull in dependencies for\nthe modules requested.  It supports rollup files (such as utilities.js\nand yahoo-dom-event.js), and will automatically use these when\nappropriate in order to minimize the number of http connections\nrequired to load all of the dependencies.", "submodules": [], "classlist": ["YAHOO.util.YUILoader"], "filelist": ["yuiloader.js"], "subdata": {}, "name": "yuiloader"}, "dom": {"description": "Internal methods used to add style management functionality to DOM.", "submodules": [], "classlist": ["YAHOO.util.Dom.Color", "YAHOO.util.Dom", "YAHOO.util.Dom.IEStyle", "YAHOO.util.Region", "YAHOO.util.Point"], "filelist": ["Color.js", "Dom.js", "IEStyle.js", "Region.js"], "subdata": {}, "name": "dom"}, "tabview": {"description": "The tabview module provides a widget for managing content bound to tabs.", "submodules": [], "classlist": ["YAHOO.widget.Tab", "YAHOO.widget.TabView"], "filelist": ["Tab.js", "TabView.js"], "subdata": {}, "guessedname": "Y", "guessedtype": "property", "requires": "yahoo, dom, event, element", "name": "tabview"}, "button": {"description": "<p>The Button Control enables the creation of rich, graphical \nbuttons that function like traditional HTML form buttons.  <em>Unlike</em> \ntraditional HTML form buttons, buttons created with the Button Control can have \na label that is different from its value.  With the inclusion of the optional \n<a href=\"module_menu.html\">Menu Control</a>, the Button Control can also be\nused to create menu buttons and split buttons, controls that are not \navailable natively in HTML.  The Button Control can also be thought of as a \nway to create more visually engaging implementations of the browser's \ndefault radio-button and check-box controls.</p>\n<p>The Button Control supports the following types:</p>\n<dl>\n<dt>push</dt>\n<dd>Basic push button that can execute a user-specified command when \npressed.</dd>\n<dt>link</dt>\n<dd>Navigates to a specified url when pressed.</dd>\n<dt>submit</dt>\n<dd>Submits the parent form when pressed.</dd>\n<dt>reset</dt>\n<dd>Resets the parent form when pressed.</dd>\n<dt>checkbox</dt>\n<dd>Maintains a \"checked\" state that can be toggled on and off.</dd>\n<dt>radio</dt>\n<dd>Maintains a \"checked\" state that can be toggled on and off.  Use with \nthe ButtonGroup class to create a set of controls that are mutually \nexclusive; checking one button in the set will uncheck all others in \nthe group.</dd>\n<dt>menu</dt>\n<dd>When pressed will show/hide a menu.</dd>\n<dt>split</dt>\n<dd>Can execute a user-specified command or display a menu when pressed.</dd>\n</dl>", "submodules": [], "classlist": ["YAHOO.widget.Button", "YAHOO.widget.ButtonGroup"], "title": "Button", "requires": "yahoo, dom, element, event", "filelist": ["button.js", "buttongroup.js"], "subdata": {}, "optional": "container, menu", "name": "button"}, "element": {"description": "Element provides an wrapper object to simplify adding\nevent listeners, using dom methods, and managing attributes.", "submodules": [], "classlist": ["YAHOO.util.Attribute", "YAHOO.util.AttributeProvider", "YAHOO.util.Element"], "filelist": ["Attribute.js", "AttributeProvider.js", "Element.js"], "subdata": {}, "requires": "yahoo, dom, event", "name": "element"}, "autocomplete": {"description": "The AutoComplete control provides the front-end logic for text-entry suggestion and\ncompletion functionality.", "submodules": [], "classlist": ["YAHOO.widget.AutoComplete"], "title": "AutoComplete Widget", "filelist": ["AutoComplete.js"], "subdata": {}, "optional": "animation", "requires": "yahoo, dom, event, datasource", "name": "autocomplete"}, "connection": {"description": "The Connection Manager provides a simplified interface to the XMLHttpRequest\nobject.  It handles cross-browser instantiantion of XMLHttpRequest, negotiates the\ninteractive states and server response, returning the results to a pre-defined\ncallback you create.", "submodules": [], "classlist": ["YAHOO.util.Connect"], "filelist": ["connection_core.js", "connection_xdr.js", "connectionx.js"], "subdata": {}, "requires": "yahoo", "name": "connection"}, "datasource": {"description": "The DataSource utility provides a common configurable interface for widgets to\naccess a variety of data, from JavaScript arrays to online database servers.", "submodules": [], "classlist": ["YAHOO.util.DataSourceBase", "YAHOO.util.LocalDataSource", "YAHOO.util.FunctionDataSource", "YAHOO.util.ScriptNodeDataSource", "YAHOO.util.XHRDataSource", "YAHOO.util.DataSource", "YAHOO.util.Number", "YAHOO.util.Date", "YAHOO.util.DateLocale"], "title": "DataSource Utility", "requires": "yahoo, event", "filelist": ["DataSource.js", "Type.js"], "subdata": {}, "optional": "json, get, connection", "name": "datasource"}, "menu": {"description": "<p>The Menu family of components features a collection of \ncontrols that make it easy to add menus to your website or web application.  \nWith the Menu Controls you can create website fly-out menus, customized \ncontext menus, or application-style menu bars with just a small amount of \nscripting.</p><p>The Menu family of controls features:</p>\n<ul>\n<li>Keyboard and mouse navigation.</li>\n<li>A rich event model that provides access to all of a menu's \ninteresting moments.</li>\n<li>Support for \n<a href=\"http://en.wikipedia.org/wiki/Progressive_Enhancement\">Progressive\nEnhancement</a>; Menus can be created from simple, \nsemantic markup on the page or purely through JavaScript.</li>\n</ul>", "submodules": [], "classlist": ["YAHOO.widget.ContextMenu", "YAHOO.widget.ContextMenuItem", "YAHOO.widget.Menu", "YAHOO.widget.MenuBar", "YAHOO.widget.MenuBarItem", "YAHOO.widget.MenuItem", "YAHOO.widget.MenuManager"], "title": "Menu", "filelist": ["contextmenu.js", "contextmenuitem.js", "menu.js", "menuariaplugin.js", "menubar.js", "menubaritem.js", "menuitem.js", "menumanager.js"], "subdata": {}, "requires": "Event, Dom, Container", "name": "menu"}, "treeview": {"description": "The treeview widget is a generic tree building tool.", "submodules": [], "classlist": ["YAHOO.widget.DateNode", "YAHOO.widget.HTMLNode", "YAHOO.widget.MenuNode", "YAHOO.widget.Node", "YAHOO.widget.RootNode", "YAHOO.widget.TextNode", "YAHOO.widget.TreeView", "YAHOO.widget.TVAnim", "YAHOO.widget.TVFadeIn", "YAHOO.widget.TVFadeOut"], "title": "TreeView Widget", "filelist": ["DateNode.js", "HTMLNode.js", "MenuNode.js", "Node.js", "RootNode.js", "TextNode.js", "TreeView.js", "TreeViewEd.js", "TVAnim.js", "TVFadeIn.js", "TVFadeOut.js"], "subdata": {}, "optional": "animation, json, calendar", "requires": "yahoo, dom, event", "name": "treeview"}, "history": {"description": "The Browser History Manager provides the ability to use the back/forward\nnavigation buttons in a DHTML application. It also allows a DHTML\napplication to be bookmarked in a specific state.\nThis library requires the following static markup:\n<iframe id=\"yui-history-iframe\" src=\"path-to-real-asset-in-same-domain\"></iframe>\n<input id=\"yui-history-field\" type=\"hidden\">", "submodules": [], "classlist": ["YAHOO.util.History"], "title": "Browser History Manager", "filelist": ["history.js"], "subdata": {}, "requires": "yahoo,event", "name": "history"}}, "classmap": {"YAHOO.util.Storage": {"name": "YAHOO.util.Storage", "parm": "name {String} Required. The engine name.", "constructors": [{"params": [{"type": "String", "name": "location", "description": "  Required. The storage location."}, {"type": "Object", "name": "conf", "description": "  Required. A configuration object."}], "description": "The Storage class is an HTML 5 storage API clone, used to wrap individual storage implementations with a common API."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "Storage", "methods": {"getItem": {"return": {"type": "String|NULL", "description": "The value stored at the provided key (DOMString in HTML 5 spec)."}, "description": "Fetches the data stored and the provided key.", "params": [{"type": "String", "name": "key", "description": "  Required. The key used to reference this value (DOMString in HTML 5 spec)."}], "guessedname": "getItem", "guessedtype": "function", "public": ""}, "_clear": {"protected": "", "description": "Implementation of the clear login; should be overwritten by storage engine.", "guessedname": "_clear", "guessedtype": "function"}, "clear": {"description": "Clears any existing key/value pairs.", "public": "", "guessedname": "clear", "guessedtype": "function"}, "_createValue": {"protected": "", "params": [{"type": "Object", "name": "s", "description": "  Required. An object to store."}], "description": "Converts the object into a string, with meta data (type), so it can be restored later.", "guessedname": "_createValue", "guessedtype": "function"}, "_getItem": {"return": {"type": "String|NULL", "description": "The value stored at the provided key."}, "description": "Implementation of the getItem login; should be overwritten by storage engine.", "protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key used to reference this value."}], "guessedname": "_getItem", "guessedtype": "function"}, "_key": {"return": {"type": "String|NULL", "description": "Required. The key at the provided index (DOMString in HTML 5 spec)."}, "description": "Implementation of the key logic; should be overwritten by storage engine.", "protected": "", "params": [{"type": "Number", "name": "index", "description": "  Required. The index to retrieve (unsigned long in HTML 5 spec)."}], "guessedname": "_key", "guessedtype": "function"}, "setItem": {"description": "Remove an item from the data storage.", "param": "key {String} Required. The key used to reference this value (DOMString in HTML 5 spec).", "throws": "QUOTA_EXCEEDED_ERROR", "params": [{"type": "String", "name": "key", "description": "  Required. The key to remove (DOMString in HTML 5 spec)."}], "guessedname": "removeItem", "guessedtype": "function", "public": ""}, "_getValue": {"protected": "", "params": [{"type": "String", "name": "s", "description": "  Required. The stored value."}], "description": "Converts the stored value into its appropriate type.", "guessedname": "_getValue", "guessedtype": "function"}, "key": {"return": {"type": "String", "description": "Required. The key at the provided index (DOMString in HTML 5 spec)."}, "description": "Retrieve the key stored at the provided index; should be overwritten by storage engine.", "params": [{"type": "Number", "name": "index", "description": "  Required. The index to retrieve (unsigned long in HTML 5 spec)."}], "guessedname": "key", "guessedtype": "function", "public": ""}, "_removeItem": {"protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key to remove."}], "description": "Implementation of the removeItem login; should be overwritten by storage engine.", "guessedname": "_removeItem", "guessedtype": "function"}, "hasKey": {"return": {"type": "Boolean", "description": "True when key has been set."}, "description": "Tests if the key has been set (not in HTML 5 spec); should be overwritten by storage engine.", "params": [{"type": "String", "name": "key", "description": "  Required. The key to search for."}], "guessedname": "hasKey", "guessedtype": "function", "public": ""}, "_setItem": {"return": {"type": "Boolean", "description": "True when successful, false when size QUOTA exceeded."}, "description": "Implementation of the setItem login; should be overwritten by storage engine.", "protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key used to reference this value."}, {"type": "Object", "name": "data", "description": "  Required. The data to storage at key."}], "guessedname": "_setItem", "guessedtype": "function"}, "getName": {"public": "", "return": {"type": "String", "description": "The name of the data storage object."}, "description": "Fetches the storage object's name; should be overwritten by storage engine.", "guessedname": "getName", "guessedtype": "function"}}, "file": "Storage.js", "guessedtype": "function", "shortname": "Storage", "properties": {"CE_CHANGE": {"public": "", "type": "{String}", "description": "The event name for when the storage item has changed.", "guessedname": "CE_CHANGE", "guessedtype": "property"}, "_location": {"protected": "", "type": "{String}", "description": "The location for this instance.", "guessedname": "_location", "guessedtype": "property"}, "length": {"public": "", "type": "{Number}", "description": "The current length of the keys.", "guessedname": "length", "guessedtype": "property"}, "_name": {"protected": "", "type": "{String}", "description": "The name of this engine.", "guessedname": "_name", "guessedtype": "property"}, "CE_READY": {"public": "", "type": "{String}", "description": "The event name for when the storage item is ready.", "guessedname": "CE_READY", "guessedtype": "property"}, "DELIMITER": {"public": "", "type": "{String}", "description": "The delimiter uesed between the data type and the data.", "guessedname": "DELIMITER", "guessedtype": "property"}, "_cfg": {"protected": "", "type": "{Object}", "description": "The configuration of the engine.", "guessedname": "_cfg", "guessedtype": "property"}, "isReady": {"protected": "", "type": "{String}", "description": "This engine singleton has been initialized already.", "guessedname": "isReady", "guessedtype": "property"}}, "description": "The Storage class is an HTML 5 storage API clone, used to wrap individual storage implementations with a common API."}, "YAHOO.widget.Panel": {"name": "YAHOO.widget.Panel", "configs": {"keylisteners": {"default": "null", "type": "YAHOO.util.KeyListener[]", "description": "A KeyListener (or array of KeyListeners) that will be enabled \nwhen the Panel is shown, and disabled when the Panel is hidden."}, "draggable": {"default": "true", "type": "Boolean", "description": "Boolean specifying if the Panel should be draggable.  The default \nvalue is \"true\" if the Drag and Drop utility is included, \notherwise it is \"false.\" <strong>PLEASE NOTE:</strong> There is a \nknown issue in IE 6 (Strict Mode and Quirks Mode) and IE 7 \n(Quirks Mode) where Panels that either don't have a value set for \ntheir \"width\" configuration property, or their \"width\" \nconfiguration property is set to \"auto\" will only be draggable by\nplacing the mouse on the text of the Panel's header element.\nTo fix this bug, draggable Panels missing a value for their \n\"width\" configuration property, or whose \"width\" configuration \nproperty is set to \"auto\" will have it set to the value of \ntheir root HTML element's offsetWidth before they are made \nvisible.  The calculated width is then removed when the Panel is   \nhidden. <em>This fix is only applied to draggable Panels in IE 6 \n(Strict Mode and Quirks Mode) and IE 7 (Quirks Mode)</em>. For \nmore information on this issue see:\nYUILibrary bugs #1726972 and #1589210."}, "dragOnly": {"default": "false", "type": "Boolean", "description": "Boolean specifying if the draggable Panel should be drag only, not interacting with drop \ntargets on the page.\n<p>\nWhen set to true, draggable Panels will not check to see if they are over drop targets,\nor fire the DragDrop events required to support drop target interaction (onDragEnter, \nonDragOver, onDragOut, onDragDrop etc.).\nIf the Panel is not designed to be dropped on any target elements on the page, then this \nflag can be set to true to improve performance.\n</p>\n<p>\nWhen set to false, all drop target related events will be fired.\n</p>\n<p>\nThe property is set to false by default to maintain backwards compatibility but should be \nset to true if drop target interaction is not required for the Panel, to improve performance.</p>"}, "modal": {"default": "false", "type": "Boolean", "description": "True if the Panel should be displayed in a modal fashion, \nautomatically creating a transparent mask over the document that\nwill not be removed until the Panel is dismissed."}, "close": {"default": "true", "type": "Boolean", "description": "True if the Panel should display a \"close\" button"}, "underlay": {"default": "shadow", "type": "String", "description": "Sets the type of underlay to display for the Panel. Valid values \nare \"shadow,\" \"matte,\" and \"none\".  <strong>PLEASE NOTE:</strong> \nThe creation of the underlay element is deferred until the Panel \nis initially made visible.  For Gecko-based browsers on Mac\nOS X the underlay elment is always created as it is used as a \nshim to prevent Aqua scrollbars below a Panel instance from poking \nthrough it (See YUILibrary bug #1723530)."}, "strings": {"default": "An object literal with the properties shown below:\n<dl>\n<dt>close</dt><dd><em>String</em> : The string to use for the close icon. Defaults to \"Close\".</dd>\n</dl>", "type": "Object", "description": "UI Strings used by the Panel"}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Panel <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Panel"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this Panel. See configuration \ndocumentation for more details."}], "description": "Panel is an implementation of Overlay that behaves like an OS window, \nwith a draggable header and an optional close icon at the top right."}], "namespace": "YAHOO.widget", "module": "container", "events": {"showMaskEvent": {"description": "CustomEvent fired after the modality mask is shown", "guessedname": "showMaskEvent", "guessedtype": "property"}, "dragEvent": {"description": "CustomEvent when the Panel is dragged", "guessedname": "dragEvent", "guessedtype": "property"}, "hideMaskEvent": {"description": "CustomEvent fired after the modality mask is hidden", "guessedname": "hideMaskEvent", "guessedtype": "property"}}, "guessedname": "Panel", "methods": {"_removeFocusHandlers": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": "  Event type"}, {"type": "Array", "name": "p_aArgs", "description": "  Event Arguments"}], "description": "\"hideMask\" event handler that removes all \"focus\" event handlers added \nby the \"addFocusEventHandlers\" method.", "guessedname": "_removeFocusHandlers", "guessedtype": "function"}, "configClose": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"close\" property is changed.\nThe method controls the appending or hiding of the close icon at the \ntop right of the Panel.", "guessedname": "configClose", "guessedtype": "function"}, "render": {"return": {"type": "boolean", "description": "Success or failure of the render"}, "params": [{"type": "String", "name": "appendToNode", "description": " The element id to which the Module \nshould be appended to prior to rendering <em>OR</em>"}, {"type": "HTMLElement", "name": "appendToNode", "description": " The element to which the Module \nshould be appended to prior to rendering"}], "description": "Renders the Panel by inserting the elements that are not already in \nthe main Panel into their correct places. Optionally appends the \nPanel to the specified node prior to the render's execution. NOTE: \nFor Panels without existing markup, the appendToNode argument is \nREQUIRED. If this argument is ommitted and the current element is \nnot present in the document, the function will return false, \nindicating that the render was a failure.", "guessedname": "render", "guessedtype": "function"}, "_doClose": {"protected": "", "params": [{"type": "DOMEvent", "name": "e", "description": ""}], "description": "Event handler for the close icon", "guessedname": "_doClose", "guessedtype": "function"}, "stackMask": {"description": "Sets the zindex of the mask, if it exists, based on the zindex of \nthe Panel element. The zindex of the mask is set to be one less \nthan the Panel element's zindex.\n<p>NOTE: This method will not bump up the zindex of the Panel\nto ensure that the mask has a non-negative zindex. If you require the\nmask zindex to be 0 or higher, the zindex of the Panel \nshould be set to a value higher than 0, before this method is called.\n</p>", "guessedname": "stackMask", "guessedtype": "function"}, "_renderBody": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element."}], "description": "Renders the currently set body into it's proper position under the \nmodule element. If the module element is not provided, \"this.innerElement\" \nis used.", "guessedname": "_renderBody", "guessedtype": "function"}, "_createHiddenFocusElement": {"private": "", "description": "Creates a hidden focusable element, used to focus on,\nto enforce modality for browsers in which focus cannot\nbe applied to the container box.", "guessedname": "_createHiddenFocusElement", "guessedtype": "function"}, "sizeMask": {"description": "Sets the size of the modality mask to cover the entire scrollable \narea of the document", "guessedname": "sizeMask", "guessedtype": "function"}, "_renderHeader": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element"}], "description": "Renders the currently set header into it's proper position under the \nmodule element. If the module element is not provided, \"this.innerElement\" \nis used.", "guessedname": "_renderHeader", "guessedtype": "function"}, "hideMask": {"description": "Hides the modality mask.", "guessedname": "hideMask", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Module which are fired \nautomatically at appropriate times by the Module class.", "guessedname": "initEvents", "guessedtype": "function"}, "focusFirst": {"description": "Sets focus to the first element in the Panel.", "guessedname": "focusFirst", "guessedtype": "function"}, "configModal": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"modal\" property is \nchanged. This handler subscribes or unsubscribes to the show and hide\nevents to handle the display or hide of the modality mask.", "guessedname": "configModal", "guessedtype": "function"}, "configKeyListeners": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration\nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"keylisteners\" property \nis changed.", "guessedname": "configKeyListeners", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Overlay <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Overlay"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this Overlay. \nSee configuration documentation for more details."}], "description": "The Overlay initialization method, which is executed for Overlay and \nall of its subclasses. This method is automatically called by the \nconstructor, and  sets up all DOM references for pre-existing markup, \nand creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Panel."}, "description": "Returns a String representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "buildWrapper": {"description": "Builds the wrapping container around the Panel that is used for \npositioning the shadow and matte underlays. The container element is \nassigned to a  local instance variable called container, and the \nelement is reinserted inside of it.", "guessedname": "buildWrapper", "guessedtype": "function"}, "destroy": {"description": "Removes the Panel element from the DOM and sets all child elements\nto null.", "guessedname": "destroy", "guessedtype": "function"}, "removeMask": {"description": "Removes the modality mask.", "guessedname": "removeMask", "guessedtype": "function"}, "configHeight": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"height\" property is changed.", "guessedname": "configHeight", "guessedtype": "function"}, "registerDragDrop": {"description": "Registers the Panel's header for drag & drop capability.", "guessedname": "registerDragDrop", "guessedtype": "function"}, "showMask": {"description": "Shows the modality mask.", "guessedname": "showMask", "guessedtype": "function"}, "configStrings": {"description": "The default handler for the \"strings\" property", "guessedname": "configStrings", "guessedtype": "function"}, "_onElementFocus": {"guessedname": "_onElementFocus", "params": [{"type": "Event", "name": "e", "description": " The DOM event object"}], "description": "\"focus\" event handler for a focuable element. Used to automatically\nblur the element when it receives focus to ensure that a Panel\ninstance's modality is not compromised.", "private": "", "guessedtype": "function"}, "_addFocusHandlers": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": "  Custom event type"}, {"type": "Array", "name": "p_aArgs", "description": "  Custom event arguments"}], "description": "\"showMask\" event handler that adds a \"focus\" event handler to all\nfocusable elements in the document to enforce a Panel instance's \nmodality from being compromised.", "guessedname": "_addFocusHandlers", "guessedtype": "function"}, "forceUnderlayRedraw": {"description": "Forces the underlay element to be repainted through the application/removal \nof a yui-force-redraw class to the underlay element.", "guessedname": "forceUnderlayRedraw", "guessedtype": "function"}, "configUnderlay": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"underlay\" property \nis changed.", "guessedname": "configUnderlay", "guessedtype": "function"}, "focusLast": {"description": "Sets focus to the last element in the Panel.", "guessedname": "focusLast", "guessedtype": "function"}, "configWidth": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"width\" property is changed.", "guessedname": "configWidth", "guessedtype": "function"}, "configDraggable": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"draggable\" property \nis changed.", "guessedname": "configDraggable", "guessedtype": "function"}, "_renderFooter": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element"}], "description": "Renders the currently set footer into it's proper position under the \nmodule element. If the module element is not provided, \"this.innerElement\" \nis used.", "guessedname": "_renderFooter", "guessedtype": "function"}, "buildMask": {"description": "Builds the mask that is laid over the document when the Panel is \nconfigured to be modal.", "guessedname": "buildMask", "guessedtype": "function"}, "_autoFillOnHeightChange": {"protected": "", "params": [{"type": "String", "name": "type", "description": " The event type"}, {"type": "Array", "name": "args", "description": " The array of arguments passed to event subscribers"}, {"type": "HTMLElement", "name": "el", "description": " The header, body or footer element which is to be resized to fill\nout the containers height"}], "description": "The default custom event handler executed when the Panel's height is changed, \nif the autofillheight property has been set.", "guessedname": "_autoFillOnHeightChange", "guessedtype": "function"}, "setFirstLastFocusable": {"description": "Sets the firstElement and lastElement instance properties\nto the first and last focusable elements in the Panel.", "guessedname": "setFirstLastFocusable", "guessedtype": "function"}, "getFocusableElements": {"params": [{"type": "HTMLElement", "name": "root", "description": " element to start from."}], "description": "Returns an array of the currently focusable items which reside within\nPanel. The set of focusable elements the method looks for are defined\nin the Panel.FOCUSABLE static property", "guessedname": "getFocusableElements", "guessedtype": "function"}, "configzIndex": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"zIndex\" property is changed.", "guessedname": "configzIndex", "guessedtype": "function"}, "sizeUnderlay": {"description": "Adjusts the size of the shadow based on the size of the element.", "guessedname": "sizeUnderlay", "guessedtype": "function"}, "setTabLoop": {"params": [{"type": "HTMLElement", "name": "firstElement", "description": ""}, {"type": "HTMLElement", "name": "lastElement", "description": ""}], "description": "Sets up a tab, shift-tab loop between the first and last elements\nprovided. NOTE: Sets up the preventBackTab and preventTabOut KeyListener\ninstance properties, which are reset everytime this method is invoked.", "guessedname": "setTabLoop", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be changed \nusing the Panel's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Overlay", "superclass": "YAHOO.widget.Overlay", "file": "Panel.js", "guessedtype": "function", "shortname": "Panel", "properties": {"YAHOO.widget.Panel.CSS_PANEL_CONTAINER": {"description": "Constant representing the default CSS class used for a Panel's \nwrapping container", "static": "", "guessedname": "CSS_PANEL_CONTAINER", "guessedtype": "property", "type": "String", "final": ""}, "dd": {"type": "YAHOO.util.DD", "description": "The YAHOO.util.DD instance, used to implement the draggable header for the panel if draggable is enabled", "guessedname": "dd", "guessedtype": "property"}, "YAHOO.widget.Panel.CSS_PANEL": {"description": "Constant representing the default CSS class used for a Panel", "static": "", "guessedname": "CSS_PANEL", "guessedtype": "property", "type": "String", "final": ""}, "EVENT_TYPES": {"description": "Constant representing the name of the Panel's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "YAHOO.widget.Panel.FOCUSABLE": {"type": "Array", "static": "", "description": "Constant representing the default set of focusable elements \non the pagewhich Modal Panels will prevent access to, when\nthe modal mask is displayed", "guessedname": "FOCUSABLE", "guessedtype": "property"}, "DEFAULT_CONFIG": {"description": "Constant representing the Panel's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}}, "description": "Panel is an implementation of Overlay that behaves like an OS window, \nwith a draggable header and an optional close icon at the top right."}, "YAHOO.util.KeyListener": {"name": "YAHOO.util.KeyListener", "knownissue": "the \"keypress\" event is completely broken in Safari 2.x and below.\nthe workaround is use \"keydown\" for key listening.  However, if\nit is desired to prevent the default behavior of the keystroke,\nthat can only be done on the keypress event.  This makes key\nhandling quite ugly.", "constructors": [{"params": [{"type": "HTMLElement", "name": "attachTo", "description": " The element or element ID to which the key \nevent should be attached"}, {"type": "String", "name": "attachTo", "description": " The element or element ID to which the key\nevent should be attached"}, {"type": "Object", "name": "keyData", "description": "  The object literal representing the key(s) \nto detect. Possible attributes are \nshift(boolean), alt(boolean), ctrl(boolean) \nand keys(either an int or an array of ints \nrepresenting keycodes)."}, {"type": "Function", "name": "handler", "description": "  The CustomEvent handler to fire when the \nkey event is detected"}, {"type": "Object", "name": "handler", "description": "  An object literal representing the handler."}, {"type": "String", "name": "event", "description": "    Optional. The event (keydown or keyup) to \nlisten for. Defaults automatically to keydown."}], "description": "KeyListener is a utility that provides an easy interface for listening for\nkeydown/keyup events fired against DOM elements."}], "namespace": "YAHOO.util", "module": "event", "properties": {"YAHOO.util.KeyListener.KEYDOWN": {"description": "Constant representing the DOM \"keydown\" event.", "static": "", "guessedname": "KEYDOWN", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.util.KeyListener.KEYUP": {"description": "Constant representing the DOM \"keyup\" event.", "static": "", "guessedname": "KEYUP", "guessedtype": "property", "type": "String", "final": ""}, "enabled": {"type": "Boolean", "description": "Boolean indicating the enabled/disabled state of the Tooltip", "guessedname": "enabled", "guessedtype": "property"}, "KEY": {"final": "", "static": "", "description": "keycode constants for a subset of the special keys", "guessedname": "KEY", "guessedtype": "property"}}, "guessedname": "KeyListener", "methods": {"handleKeyPress": {"params": [{"type": "DOMEvent", "name": "e", "description": "   The keypress DOM event"}, {"type": "Object", "name": "obj", "description": " The DOM event scope object"}], "description": "Handles the key event when a key is pressed.", "private": ""}, "enable": {"description": "Enables the KeyListener by attaching the DOM event listeners to the \ntarget DOM element", "guessedname": "enable", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the KeyListener"}, "description": "Returns a String representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "disable": {"description": "Disables the KeyListener by removing the DOM event listeners from the \ntarget DOM element", "guessedname": "disable", "guessedtype": "function"}}, "file": "KeyListener.js", "guessedtype": "function", "shortname": "KeyListener", "events": {"enabledEvent": {"params": [{"type": "Object", "name": "keyData", "description": " The object literal representing the key(s) to \ndetect. Possible attributes are shift(boolean), \nalt(boolean), ctrl(boolean) and keys(either an \nint or an array of ints representing keycodes)."}], "description": "The CustomEvent fired when the KeyListener is enabled via the enable() \nfunction", "guessedname": "enabledEvent", "guessedtype": "property"}, "disabledEvent": {"params": [{"type": "Object", "name": "keyData", "description": " The object literal representing the key(s) to \ndetect. Possible attributes are shift(boolean), \nalt(boolean), ctrl(boolean) and keys(either an \nint or an array of ints representing keycodes)."}], "description": "The CustomEvent fired when the KeyListener is disabled via the \ndisable() function", "guessedname": "disabledEvent", "guessedtype": "property"}, "keyEvent": {"guessedname": "keyEvent", "params": [{"type": "Object", "name": "keyData", "description": " The object literal representing the key(s) to \ndetect. Possible attributes are shift(boolean), \nalt(boolean), ctrl(boolean) and keys(either an \nint or an array of ints representing keycodes)."}], "description": "The CustomEvent fired internally when a key is pressed", "private": "", "guessedtype": "property"}}, "description": "KeyListener is a utility that provides an easy interface for listening for\nkeydown/keyup events fired against DOM elements."}, "YAHOO.widget.Toolbar": {"name": "YAHOO.widget.Toolbar", "configs": {"disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the toolbar should be disabled. It will also disable the draggable attribute if it is on."}, "grouplabels": {"default": "true", "type": "Boolean", "description": "Boolean indicating if the toolbar should show the group label's text string."}, "cont": {"type": "HTMLElement", "description": "The container for the toolbar."}, "collapse": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the the titlebar should have a collapse button.\nThe collapse button will not remove the toolbar, it will minimize it to the titlebar"}, "buttonType": {"type": "String", "description": "The buttonType to use (advanced or basic)"}, "buttons": {"type": "Array", "description": "Object specifying the buttons to include in the toolbar\nExample:\n<code><pre>\n{\n{ id: 'b3', type: 'button', label: 'Underline', value: 'underline' },\n{ type: 'separator' },\n{ id: 'b4', type: 'menu', label: 'Align', value: 'align',\nmenu: [\n{ text: \"Left\", value: 'alignleft' },\n{ text: \"Center\", value: 'aligncenter' },\n{ text: \"Right\", value: 'alignright' }\n]\n}\n}\n</pre></code>"}, "draggable": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the toolbar should be draggable."}, "titlebar": {"default": "false", "type": "Boolean or String", "description": "Boolean indicating if the toolbar should have a titlebar. If\npassed a string, it will use that as the titlebar text"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to turn into a toolbar."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "Provides a rich toolbar widget based on the button and menu widgets"}], "namespace": "YAHOO.widget", "module": "editor", "events": {"buttonsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "buttonsChange", "description": "Fires when the value for the configuration attribute 'buttons' changes."}, "beforeDraggableChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDraggableChange", "description": "Fires before the value for the configuration attribute 'draggable' changes. Return false to cancel the attribute change."}, "toolbarCollapsed": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the toolbar is collapsed via the collapse button. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "grouplabelsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "grouplabelsChange", "description": "Fires when the value for the configuration attribute 'grouplabels' changes."}, "beforeTitlebarChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTitlebarChange", "description": "Fires before the value for the configuration attribute 'titlebar' changes. Return false to cancel the attribute change."}, "beforeCollapseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCollapseChange", "description": "Fires before the value for the configuration attribute 'collapse' changes. Return false to cancel the attribute change."}, "valueClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Object", "name": "o", "description": " The object passed to this handler is the button config used to create the button."}], "description": "This is a special dynamic event that is created and dispatched based on the value property\nof the button config. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.\nExample:\n<code><pre>\nbuttons : [\n{ type: 'button', value: 'test', value: 'testButton' }\n]</pre>\n</code>\nWith the valueClick event you could subscribe to this buttons click event with this:\ntbar.in('testButtonClick', function() { alert('test button clicked'); })"}, "buttonClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Object", "name": "o", "description": " The object passed to this handler is the button config used to create the button."}], "description": "Fires when any botton receives a click event. Passes back a single object representing the buttons config object. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "beforeButtonTypeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeButtonTypeChange", "description": "Fires before the value for the configuration attribute 'buttonType' changes. Return false to cancel the attribute change."}, "buttonTypeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "buttonTypeChange", "description": "Fires when the value for the configuration attribute 'buttonType' changes."}, "titlebarChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "titlebarChange", "description": "Fires when the value for the configuration attribute 'titlebar' changes."}, "toolbarExpanded": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the toolbar is expanded via the collapse button. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "draggableChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "draggableChange", "description": "Fires when the value for the configuration attribute 'draggable' changes."}, "beforeButtonsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeButtonsChange", "description": "Fires before the value for the configuration attribute 'buttons' changes. Return false to cancel the attribute change."}, "beforeGrouplabelsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGrouplabelsChange", "description": "Fires before the value for the configuration attribute 'grouplabels' changes. Return false to cancel the attribute change."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}, "collapseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "collapseChange", "description": "Fires when the value for the configuration attribute 'collapse' changes."}}, "guessedname": "Toolbar", "methods": {"getButtons": {"return": {"type": "Array", "description": ""}, "description": "Returns an array of buttons in the current toolbar", "guessedname": "getButtons", "guessedtype": "function"}, "enableButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Enable a button by it's id, index or value."}], "description": "Enables a button in the toolbar.", "guessedname": "enableButton", "guessedtype": "function"}, "destroyButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Destroy a button by it's id or index."}], "description": "Destroy a button in the toolbar.", "guessedname": "destroyButton", "guessedtype": "function"}, "_navigateButtons": {"guessedname": "_navigateButtons", "params": [{"type": "Event", "name": "ev", "description": " The Key Event"}], "description": "Handles the navigation/focus of toolbar buttons with the Arrow Keys", "private": "", "guessedtype": "function"}, "addButton": {"params": [{"type": "Object", "name": "oButton", "description": " Object literal reference to the Button's Config"}, {"type": "HTMLElement", "name": "after", "description": " Optional HTML element to insert this button after in the DOM."}], "description": "Add a new button to the toolbar. Buttons supported:\npush, split, menu, select, color, spin", "guessedname": "addButton", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the toolbar."}], "description": "Initializes all of the configuration attributes used to create \nthe toolbar.", "guessedname": "initAttributes", "guessedtype": "function"}, "enableAllButtons": {"return": {"type": "Boolean", "description": ""}, "description": "Enables all buttons in the toolbar.", "guessedname": "enableAllButtons", "guessedtype": "function"}, "selectButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Select a button by it's id, index or value."}, {"type": "String", "name": "value", "description": " If this is a Menu Button, check this item in the menu"}], "description": "Selects a button in the toolbar.", "guessedname": "selectButton", "guessedtype": "function"}, "_buttonClick": {"protected": "", "params": [{"type": "String", "name": "ev", "description": " The event that was passed in."}, {"type": "Object", "name": "info", "description": " Object literal of information about the button that was clicked."}], "description": "Click handler for all buttons in the toolbar.", "guessedname": "_buttonClick", "guessedtype": "function"}, "isSelected": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " A button by it's id, index or value."}], "description": "Tells if a button is selected or not.", "guessedname": "isSelected", "guessedtype": "function"}, "init": {"description": "The Toolbar class's initialization method", "guessedname": "init", "guessedtype": "function"}, "addButtonToGroup": {"params": [{"type": "Object", "name": "oButton", "description": " Object literal reference to the Button's Config"}, {"type": "String", "name": "group", "description": " The Group identifier passed into the initial config"}, {"type": "HTMLElement", "name": "after", "description": " Optional HTML element to insert this button after in the DOM."}], "description": "Add a new button to a toolbar group. Buttons supported:\npush, split, menu, select, color, spin", "guessedname": "addButtonToGroup", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the toolbar.", "guessedname": "toString", "guessedtype": "function"}, "_resetColorPicker": {"description": "Clears the currently selected color or mouseover color in the color picker.", "private": "", "guessedname": "_resetColorPicker", "guessedtype": "function"}, "destroy": {"return": {"type": "Boolean", "description": ""}, "description": "Destroys the toolbar, all of it's elements and objects.", "guessedname": "destroy", "guessedtype": "function"}, "_handleFocus": {"description": "Sets up the listeners for the arrow key navigation", "private": "", "guessedname": "_handleFocus", "guessedtype": "function"}, "collapse": {"params": [{"type": "Boolean", "name": "collapse", "description": " True to collapse, false to expand."}], "description": "Programatically collapse the toolbar.", "guessedname": "collapse", "guessedtype": "function"}, "addSeparator": {"params": [{"type": "HTMLElement", "name": "cont", "description": " Optional HTML element to insert this button into."}, {"type": "HTMLElement", "name": "after", "description": " Optional HTML element to insert this button after in the DOM."}], "description": "Add a new button separator to the toolbar.", "guessedname": "addSeparator", "guessedtype": "function"}, "getButtonByIndex": {"return": {"type": "<a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a>", "description": ""}, "params": [{"type": "Number", "name": "index", "description": " The index of the button in _buttonList."}], "description": "Gets a button instance from the toolbar by is index in _buttonList.", "guessedname": "getButtonByIndex", "guessedtype": "function"}, "getButtonById": {"return": {"type": "<a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a>", "description": ""}, "params": [{"type": "String", "name": "id", "description": " The Dom id to query for."}], "description": "Gets a button instance from the toolbar by is Dom id.", "guessedname": "getButtonById", "guessedtype": "function"}, "resetAllButtons": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "Object", "name": "_ex", "description": " Except these buttons"}], "description": "Resets all buttons to their initial state.", "guessedname": "resetAllButtons", "guessedtype": "function"}, "deselectAllButtons": {"return": {"type": "Boolean", "description": ""}, "description": "Deselects all buttons in the toolbar.", "guessedname": "deselectAllButtons", "guessedtype": "function"}, "disableButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Disable a button by it's id, index or value."}], "description": "Disables a button in the toolbar.", "guessedname": "disableButton", "guessedtype": "function"}, "_addMenuClasses": {"guessedname": "_addMenuClasses", "params": [{"type": "String", "name": "ev", "description": " The event that fired."}, {"type": "Array", "name": "na", "description": " Array of event information."}, {"type": "Object", "name": "o", "description": " Button config object."}], "description": "This method is called from Menu's renderEvent to add a few more classes to the menu items", "private": "", "guessedtype": "function"}, "_makeSpinButton": {"guessedname": "_makeSpinButton", "params": [{"type": "Object", "name": "_button", "description": " <a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a> reference"}, {"type": "Object", "name": "oButton", "description": " Object literal containing the buttons initial config"}], "description": "Create a button similar to an OS Spin button.. It has an up/down arrow combo to scroll through a range of int values.", "private": "", "guessedtype": "function"}, "deselectButton": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "String/Number", "name": "id", "description": " Deselect a button by it's id, index or value."}], "description": "Deselects a button in the toolbar.", "guessedname": "deselectButton", "guessedtype": "function"}, "addButtonGroup": {"params": [{"type": "Object", "name": "oGroup", "description": " Object literal reference to the Groups Config (contains an array of button configs as well as the group label)"}], "description": "Add a new button group to the toolbar. (uses addButton)", "guessedname": "addButtonGroup", "guessedtype": "function"}, "_createColorPicker": {"guessedname": "_createColorPicker", "params": [{"type": "String", "name": "id", "description": " the id of the toolbar to prefix this DOM container with."}], "description": "Creates the core DOM reference to the color picker menu item.", "private": "", "guessedtype": "function"}, "_makeColorButton": {"guessedname": "_makeColorButton", "params": [{"type": "Object", "name": "_oButton", "description": " <a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a> reference"}], "description": "Called to turn a \"color\" button into a menu button with an Overlay for the menu.", "private": "", "guessedtype": "function"}, "disableAllButtons": {"return": {"type": "Boolean", "description": ""}, "description": "Disables all buttons in the toolbar.", "guessedname": "disableAllButtons", "guessedtype": "function"}, "getButtonByValue": {"return": {"type": "<a href=\"YAHOO.widget.ToolbarButton.html\">YAHOO.widget.ToolbarButton</a> or <a href=\"YAHOO.widget.MenuItem.html\">YAHOO.widget.MenuItem</a>", "description": ""}, "params": [{"type": "String", "name": "value", "description": " The button value to query for."}], "description": "Gets a button instance or a menuitem instance from the toolbar by it's value.", "guessedname": "getButtonByValue", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "toolbar.js", "guessedtype": "function", "shortname": "Toolbar", "properties": {"_configuredButtons": {"protected": "", "type": "Array", "guessedname": "_configuredButtons", "guessedtype": "property"}, "STR_SPIN_LABEL": {"type": "String", "description": "String for spinbutton dynamic label. Note the {VALUE} will be replaced with YAHOO.lang.substitute", "guessedname": "STR_SPIN_LABEL", "guessedtype": "property"}, "_toolbarConfigs": {"protected": "", "type": "Object", "guessedname": "_toolbarConfigs", "guessedtype": "property"}, "STR_SPIN_UP": {"type": "String", "description": "String for spinbutton up", "guessedname": "STR_SPIN_UP", "guessedtype": "property"}, "_buttonList": {"protected": "", "type": "Array", "description": "Internal property list of current buttons in the toolbar", "guessedname": "_buttonList", "guessedtype": "property"}, "_colorPicker": {"type": "HTMLElement", "description": "The HTML Element containing the colorPicker", "guessedname": "_colorPicker", "guessedtype": "property"}, "STR_COLLAPSE": {"type": "String", "description": "String for Toolbar Collapse Button", "guessedname": "STR_COLLAPSE", "guessedtype": "property"}, "_navCounter": {"guessedname": "_navCounter", "type": "Number", "description": "Internal counter for walking the buttons in the toolbar with the arrow keys", "private": "", "guessedtype": "property"}, "CLASS_PREFIX": {"protected": "", "type": "String", "description": "Default prefix for dynamically created class names", "guessedname": "CLASS_PREFIX", "guessedtype": "property"}, "CLASS_DRAGHANDLE": {"protected": "", "type": "String", "description": "Default CSS class to apply to the toolbar's drag handle element", "guessedname": "CLASS_DRAGHANDLE", "guessedtype": "property"}, "_colorData": {"type": "Object", "description": "Object reference containing colors hex and text values.", "guessedname": "_colorData", "guessedtype": "property"}, "_sepCount": {"protected": "", "type": "Number", "description": "Internal refernce for counting separators, so we can give them a useful class name for styling", "guessedname": "_sepCount", "guessedtype": "property"}, "dd": {"type": "Object", "description": "The DragDrop instance associated with the Toolbar", "guessedname": "dd", "guessedtype": "property"}, "_keyNav": {"guessedname": "_keyNav", "type": "Boolean", "description": "Flag to determine if the arrow nav listeners have been attached", "private": "", "guessedtype": "property"}, "_titlebar": {"type": "HTMLElement", "description": "Object reference to the titlebar", "guessedname": "_titlebar", "guessedtype": "property"}, "CLASS_CONTAINER": {"protected": "", "type": "String", "description": "Default CSS class to apply to the toolbar container element", "guessedname": "CLASS_CONTAINER", "guessedtype": "property"}, "_buttonGroupList": {"protected": "", "type": "Array", "description": "Internal property list of current button groups in the toolbar", "guessedname": "_buttonGroupList", "guessedtype": "property"}, "CLASS_DISABLED": {"protected": "", "type": "String", "description": "Default CSS class to apply when the toolbar is disabled", "guessedname": "CLASS_DISABLED", "guessedtype": "property"}, "buttonType": {"type": "Object", "description": "The default button to use", "guessedname": "buttonType", "guessedtype": "property"}, "STR_EXPAND": {"type": "String", "description": "String for Toolbar Collapse Button - Expand", "guessedname": "STR_EXPAND", "guessedtype": "property"}, "_sep": {"protected": "", "type": "HTMLElement", "description": "Internal reference to the separator HTML Element for cloning", "guessedname": "_sep", "guessedtype": "property"}, "STR_SPIN_DOWN": {"type": "String", "description": "String for spinbutton down", "guessedname": "STR_SPIN_DOWN", "guessedtype": "property"}, "CLASS_SEPARATOR": {"protected": "", "type": "String", "description": "Default CSS class to apply to all separators in the toolbar", "guessedname": "CLASS_SEPARATOR", "guessedtype": "property"}, "draghandle": {"protected": "", "type": "HTMLElement", "guessedname": "_dragHandle", "guessedtype": "property"}, "browser": {"type": "Object", "description": "Standard browser detection", "guessedname": "browser", "guessedtype": "property"}}, "description": "Provides a rich toolbar widget based on the button and menu widgets"}, "YAHOO.widget.PieChart": {"name": "YAHOO.widget.PieChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "PieChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "events": {"beforeDataFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataFieldChange", "description": "Fires before the value for the configuration attribute 'dataField' changes. Return false to cancel the attribute change."}, "dataFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataFieldChange", "description": "Fires when the value for the configuration attribute 'dataField' changes."}, "beforeCategoryFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCategoryFieldChange", "description": "Fires before the value for the configuration attribute 'categoryField' changes. Return false to cancel the attribute change."}, "categoryFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "categoryFieldChange", "description": "Fires when the value for the configuration attribute 'categoryField' changes."}}, "guessedname": "PieChart", "methods": {"_setDataField": {"private": "", "description": "Setter for the dataField attribute.", "guessedname": "_setDataField", "guessedtype": "function"}, "_setCategoryField": {"private": "", "description": "Setter for the categoryField attribute.", "guessedname": "_setCategoryField", "guessedtype": "function"}, "_getCategoryField": {"private": "", "description": "Getter for the categoryField attribute.", "guessedname": "_getCategoryField", "guessedtype": "function"}, "_initAttributes": {"private": "", "description": "Initializes the attributes.", "guessedname": "_initAttributes", "guessedtype": "function"}, "_getDataField": {"private": "", "description": "Getter for the dataField attribute.", "guessedname": "_getDataField", "guessedtype": "function"}}, "uses": ["YAHOO.widget.Chart"], "file": "PieChart.js", "guessedtype": "function", "shortname": "PieChart", "configs": {"categoryField": {"type": "String", "description": "The field in each item that corresponds to the category value."}, "dataField": {"type": "String", "description": "The field in each item that corresponds to the data value."}}, "description": "PieChart class for the YUI Charts widget."}, "YAHOO.widget.CellEditor": {"name": "YAHOO.widget.CellEditor", "constructors": [{"params": [{"type": "String", "name": "sType", "description": "  Type indicator, to map to YAHOO.widget.DataTable.Editors."}, {"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "Factory class for instantiating a BaseCellEditor subclass."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "CellEditor", "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "CellEditor", "description": "Factory class for instantiating a BaseCellEditor subclass."}, "YAHOO.util.Resize": {"name": "YAHOO.util.Resize", "configs": {"maxX": {"type": "Number", "description": "The max x coord of the element"}, "maxY": {"type": "Number", "description": "The max y coord of the element"}, "maxWidth": {"type": "Number", "description": "The maximum width of the element"}, "animateEasing": {"type": "Object", "description": "The Easing to apply to the animation."}, "height": {"type": "Number", "description": "The height of the element"}, "yTicks": {"type": "Number or False", "description": "The number of y ticks to span the resize to."}, "wrap": {"type": "Boolean", "description": "Should we wrap the element"}, "animate": {"type": "Boolean", "description": "Should be use animation to resize the element (can only be used if we use proxy)."}, "knobHandles": {"type": "Boolean", "description": "Use the smaller handles, instead if the full size handles."}, "minWidth": {"type": "Number", "description": "The minimum width of the element"}, "ratio": {"type": "Boolean", "description": "Maintain the element's ratio when resizing."}, "width": {"type": "Number", "description": "The width of the element"}, "minX": {"type": "Number", "description": "The minimum x coord of the element"}, "minY": {"type": "Number", "description": "The minimum y coord of the element"}, "handles": {"type": "Array", "description": "The handles to use (any combination of): 't', 'b', 'r', 'l', 'bl', 'br', 'tl', 'tr'. Defaults to: ['r', 'b', 'br'].\nCan use a shortcut of All. Note: 8 way resizing should be done on an element that is absolutely positioned."}, "status": {"type": "Boolean", "description": "Show the status (new size) of the resize."}, "hover": {"type": "Boolean", "description": "Only show the handles when they are being moused over."}, "minHeight": {"type": "Number", "description": "The minimum height of the element"}, "xTicks": {"type": "Number or False", "description": "The number of x ticks to span the resize to."}, "proxy": {"type": "Boolean", "description": "Resize a proxy element instead of the real element."}, "hiddenHandles": {"type": "Boolean", "description": "Don't show the handles, just use the cursor to the user."}, "animateDuration": {"type": "Number", "description": "The Duration to apply to the animation."}, "ghost": {"type": "Boolean", "description": "Apply an opacity filter to the element being resized (only works with proxy)."}, "useShim": {"type": "Boolean", "description": "This setting will be passed to the DragDrop instances on the resize handles and for the draggable property.\nThis property should be used if you want the resize handles to work over iframe and other elements."}, "maxHeight": {"type": "Number", "description": "The maximum height of the element"}, "autoRatio": {"type": "Boolean", "description": "Using the shift key during a resize will toggle the ratio config."}, "draggable": {"type": "Boolean", "description": "A convienence method to make the element draggable"}, "setSize": {"type": "Boolean", "description": "Set the size of the resized element, if set to false the element will not be auto resized,\nthe resize event will contain the dimensions so the end user can resize it on their own.\nThis setting will only work with proxy set to true and animate set to false."}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to make resizable."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Makes an element resizable</p>"}], "namespace": "YAHOO.util", "module": "resize", "events": {"beforeXTicksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeXTicksChange", "description": "Fires before the value for the configuration attribute 'xTicks' changes. Return false to cancel the attribute change."}, "proxyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "proxyChange", "description": "Fires when the value for the configuration attribute 'proxy' changes."}, "beforeAutoRatioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAutoRatioChange", "description": "Fires before the value for the configuration attribute 'autoRatio' changes. Return false to cancel the attribute change."}, "beforeGhostChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGhostChange", "description": "Fires before the value for the configuration attribute 'ghost' changes. Return false to cancel the attribute change."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "beforeProxyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeProxyChange", "description": "Fires before the value for the configuration attribute 'proxy' changes. Return false to cancel the attribute change."}, "beforeAnimateEasingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateEasingChange", "description": "Fires before the value for the configuration attribute 'animateEasing' changes. Return false to cancel the attribute change."}, "beforeMaxHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxHeightChange", "description": "Fires before the value for the configuration attribute 'maxHeight' changes. Return false to cancel the attribute change."}, "minYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minYChange", "description": "Fires when the value for the configuration attribute 'minY' changes."}, "maxWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxWidthChange", "description": "Fires when the value for the configuration attribute 'maxWidth' changes."}, "maxYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxYChange", "description": "Fires when the value for the configuration attribute 'maxY' changes."}, "ratioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "ratioChange", "description": "Fires when the value for the configuration attribute 'ratio' changes."}, "animateDurationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateDurationChange", "description": "Fires when the value for the configuration attribute 'animateDuration' changes."}, "beforeRatioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRatioChange", "description": "Fires before the value for the configuration attribute 'ratio' changes. Return false to cancel the attribute change."}, "autoRatioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "autoRatioChange", "description": "Fires when the value for the configuration attribute 'autoRatio' changes."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "proxyResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires on every proxy resize (only fires when used with proxy config setting)."}, "beforeHiddenHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHiddenHandlesChange", "description": "Fires before the value for the configuration attribute 'hiddenHandles' changes. Return false to cancel the attribute change."}, "beforeMinWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinWidthChange", "description": "Fires before the value for the configuration attribute 'minWidth' changes. Return false to cancel the attribute change."}, "setSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "setSizeChange", "description": "Fires when the value for the configuration attribute 'setSize' changes."}, "statusChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "statusChange", "description": "Fires when the value for the configuration attribute 'status' changes."}, "beforeMinHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinHeightChange", "description": "Fires before the value for the configuration attribute 'minHeight' changes. Return false to cancel the attribute change."}, "maxHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxHeightChange", "description": "Fires when the value for the configuration attribute 'maxHeight' changes."}, "beforeStatusChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeStatusChange", "description": "Fires before the value for the configuration attribute 'status' changes. Return false to cancel the attribute change."}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "useShimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "useShimChange", "description": "Fires when the value for the configuration attribute 'useShim' changes."}, "hoverChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hoverChange", "description": "Fires when the value for the configuration attribute 'hover' changes."}, "draggableChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "draggableChange", "description": "Fires when the value for the configuration attribute 'draggable' changes."}, "beforeMaxXChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxXChange", "description": "Fires before the value for the configuration attribute 'maxX' changes. Return false to cancel the attribute change."}, "minWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minWidthChange", "description": "Fires when the value for the configuration attribute 'minWidth' changes."}, "beforeKnobHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeKnobHandlesChange", "description": "Fires before the value for the configuration attribute 'knobHandles' changes. Return false to cancel the attribute change."}, "ghostChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "ghostChange", "description": "Fires when the value for the configuration attribute 'ghost' changes."}, "hiddenHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hiddenHandlesChange", "description": "Fires when the value for the configuration attribute 'hiddenHandles' changes."}, "xTicksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "xTicksChange", "description": "Fires when the value for the configuration attribute 'xTicks' changes."}, "startResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires when a resize action is started."}, "beforeHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHandlesChange", "description": "Fires before the value for the configuration attribute 'handles' changes. Return false to cancel the attribute change."}, "animateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateChange", "description": "Fires when the value for the configuration attribute 'animate' changes."}, "beforeAnimateDurationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateDurationChange", "description": "Fires before the value for the configuration attribute 'animateDuration' changes. Return false to cancel the attribute change."}, "dragEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> dragEvent is fired for the config option draggable."}, "beforeMinYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinYChange", "description": "Fires before the value for the configuration attribute 'minY' changes. Return false to cancel the attribute change."}, "beforeWrapChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWrapChange", "description": "Fires before the value for the configuration attribute 'wrap' changes. Return false to cancel the attribute change."}, "beforeMinXChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinXChange", "description": "Fires before the value for the configuration attribute 'minX' changes. Return false to cancel the attribute change."}, "beforeDraggableChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDraggableChange", "description": "Fires before the value for the configuration attribute 'draggable' changes. Return false to cancel the attribute change."}, "knobHandlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "knobHandlesChange", "description": "Fires when the value for the configuration attribute 'knobHandles' changes."}, "beforeResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires before every element resize after the size calculations, returning false will stop the resize."}, "resize": {"type": "YAHOO.util.CustomEvent", "description": "Fires on every element resize (only fires once when used with proxy config setting)."}, "endResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the mouseUp event from the Drag Instance fires."}, "beforeSetSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSetSizeChange", "description": "Fires before the value for the configuration attribute 'setSize' changes. Return false to cancel the attribute change."}, "beforeAnimateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateChange", "description": "Fires before the value for the configuration attribute 'animate' changes. Return false to cancel the attribute change."}, "minHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minHeightChange", "description": "Fires when the value for the configuration attribute 'minHeight' changes."}, "beforeHoverChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHoverChange", "description": "Fires before the value for the configuration attribute 'hover' changes. Return false to cancel the attribute change."}, "beforeMaxWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxWidthChange", "description": "Fires before the value for the configuration attribute 'maxWidth' changes. Return false to cancel the attribute change."}, "animateEasingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateEasingChange", "description": "Fires when the value for the configuration attribute 'animateEasing' changes."}, "beforeUseShimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUseShimChange", "description": "Fires before the value for the configuration attribute 'useShim' changes. Return false to cancel the attribute change."}, "beforeMaxYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxYChange", "description": "Fires before the value for the configuration attribute 'maxY' changes. Return false to cancel the attribute change."}, "wrapChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "wrapChange", "description": "Fires when the value for the configuration attribute 'wrap' changes."}, "maxXChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxXChange", "description": "Fires when the value for the configuration attribute 'maxX' changes."}, "handlesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "handlesChange", "description": "Fires when the value for the configuration attribute 'handles' changes."}, "beforeYTicksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeYTicksChange", "description": "Fires before the value for the configuration attribute 'yTicks' changes. Return false to cancel the attribute change."}, "yTicksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "yTicksChange", "description": "Fires when the value for the configuration attribute 'yTicks' changes."}, "minXChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minXChange", "description": "Fires when the value for the configuration attribute 'minX' changes."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "Resize", "methods": {"_handle_for_bl": {"guessedname": "_handle_for_bl", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Bottom Left handle.", "private": "", "guessedtype": "function"}, "_setHeight": {"return": {"type": "Number", "description": "The new value"}, "description": "Calculated the height based on the mouse event.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The mouse event."}, {"type": "Boolean", "name": "flip", "description": " Argument to determine the direction of the movement."}], "guessedname": "_setHeight", "guessedtype": "function"}, "lock": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "params": [{"type": "Boolean", "name": "dd", "description": " If the draggable config is set, lock it too"}], "description": "Lock the resize so it can't be resized", "guessedname": "lock", "guessedtype": "function"}, "_handleStartDrag": {"guessedname": "_handleStartDrag", "params": [{"type": "Object", "name": "args", "description": " The args passed from the CustomEvent."}, {"type": "Object", "name": "dd", "description": " The <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> object we are working with."}], "description": "Resizes the proxy, sets up the <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> handlers, updates the status div and preps the cache", "private": "", "guessedtype": "function"}, "getProxyEl": {"return": {"type": "HTMLElement", "description": "The proxy element"}, "description": "Get the HTML reference for the proxy, returns null if no proxy.", "guessedname": "getProxyEl", "guessedtype": "function"}, "_handle_for_tl": {"guessedname": "_handle_for_tl", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Top Left handle.", "private": "", "guessedtype": "function"}, "_snapTick": {"return": {"type": "Number", "description": "the new snapped position"}, "description": "Adjusts the number based on the ticks used.", "private": "", "params": [{"type": "Number", "name": "size", "description": " The size to tick against."}, {"type": "Number", "name": "pix", "description": " The tick pixels."}], "guessedname": "_snapTick", "guessedtype": "function"}, "unlock": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "params": [{"type": "Boolean", "name": "dd", "description": " If the draggable config is set, unlock it too"}], "description": "Unlock the resize so it can be resized", "guessedname": "unlock", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the utility."}], "description": "Initializes all of the configuration attributes used to create a resizable element.", "private": "", "guessedtype": "function"}, "_handle_for_tr": {"guessedname": "_handle_for_tr", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Top Right handle.", "private": "", "guessedtype": "function"}, "_handle_for_br": {"guessedname": "_handle_for_br", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Bottom Right handle.", "private": "", "guessedtype": "function"}, "getResizeById": {"static": "", "return": {"type": "Object", "description": "The Resize Object"}, "description": "Get's a resize object by the HTML id of the element associated with the Resize object.", "guessedname": "getResizeById", "guessedtype": "function"}, "_createProxy": {"description": "Creates the proxy element if the proxy config is true", "private": "", "guessedname": "_createProxy", "guessedtype": "function"}, "_setCache": {"description": "Sets up the this._cache hash table.", "private": "", "guessedname": "_setCache", "guessedtype": "function"}, "init": {"description": "The Resize class's initialization method", "private": "", "guessedname": "init", "guessedtype": "function"}, "isLocked": {"return": {"type": "Boolean", "description": ""}, "description": "Check the locked status of the resize instance", "guessedname": "isLocked", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the Resize Object.", "guessedname": "toString", "guessedtype": "function"}, "_createHandles": {"description": "Creates the handles as specified in the config", "private": "", "guessedname": "_createHandles", "guessedtype": "function"}, "destroy": {"description": "Destroys the resize object and all of it's elements & listeners.", "guessedname": "destroy", "guessedtype": "function"}, "_setAutoRatio": {"guessedname": "_setAutoRatio", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "This method checks to see if the \"autoRatio\" config is set. If it is, we will check to see if the \"Shift Key\" is pressed. If so, we will set the config ratio to true.", "private": "", "guessedtype": "function"}, "_ieSelectFix": {"description": "The function we use as the onselectstart handler when we start a drag in Internet Explorer", "private": "", "guessedname": "_ieSelectFix", "guessedtype": "function"}, "_checkWidth": {"return": {"type": "Number", "description": "the new value"}, "description": "Checks the value passed against the maxWidth and minWidth.", "private": "", "params": [{"type": "Number", "name": "w", "description": " The width to check."}], "guessedname": "_checkWidth", "guessedtype": "function"}, "_handleMouseDown": {"guessedname": "_handleMouseDown", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "This method preps the autoRatio on MouseDown.", "private": "", "guessedtype": "function"}, "_createWrap": {"description": "Creates the wrap element if the wrap config is true. It will auto wrap the following element types: img, textarea, input, iframe, select", "private": "", "guessedname": "_createWrap", "guessedtype": "function"}, "getStatusEl": {"return": {"type": "HTMLElement", "description": "The status element"}, "description": "Get the HTML reference for the status element.", "guessedname": "getStatusEl", "guessedtype": "function"}, "getWrapEl": {"return": {"type": "HTMLElement", "description": "The wrap element"}, "description": "Get the HTML reference for the wrap element, returns the current element if not wrapped.", "guessedname": "getWrapEl", "guessedtype": "function"}, "_setupDragDrop": {"description": "Setup the <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> instance on the element", "private": "", "guessedname": "_setupDragDrop", "guessedtype": "function"}, "_handleMouseOver": {"guessedname": "_handleMouseOver", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "Adds CSS class names to the handles", "private": "", "guessedtype": "function"}, "resize": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "description": "Resizes the element, wrapper or proxy based on the data from the handlers.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The mouse event."}, {"type": "Number", "name": "h", "description": " The new height setting."}, {"type": "Number", "name": "w", "description": " The new width setting."}, {"type": "Number", "name": "t", "description": " The new top setting."}, {"type": "Number", "name": "l", "description": " The new left setting."}, {"type": "Boolean", "name": "force", "description": " Resize the element (used for proxy resize)."}, {"type": "Boolean", "name": "silent", "description": " Don't fire the beforeResize Event."}], "guessedname": "resize", "guessedtype": "function"}, "_handleMouseUp": {"guessedname": "_handleMouseUp", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "Cleans up listeners, hides proxy element and removes class names.", "private": "", "guessedtype": "function"}, "reset": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "description": "Resets the element to is start state.", "guessedname": "reset", "guessedtype": "function"}, "_setRatio": {"return": {"type": "Array", "description": "The new Height, Width, Top & Left settings"}, "description": "Using the Height, Width, Top & Left, it recalcuates them based on the original element size.", "private": "", "params": [{"type": "Number", "name": "h", "description": " The height offset."}, {"type": "Number", "name": "w", "description": " The with offset."}, {"type": "Number", "name": "t", "description": " The top offset."}, {"type": "Number", "name": "l", "description": " The left offset."}], "guessedname": "_setRatio", "guessedtype": "function"}, "_setWidth": {"return": {"type": "Number", "description": "The new value"}, "description": "Calculates the width based on the mouse event.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The mouse event."}, {"type": "Boolean", "name": "flip", "description": " Argument to determine the direction of the movement."}], "guessedname": "_setWidth", "guessedtype": "function"}, "_checkHeight": {"return": {"type": "Number", "description": "The new value"}, "description": "Checks the value passed against the maxHeight and minHeight.", "private": "", "params": [{"type": "Number", "name": "h", "description": " The height to check."}], "guessedname": "_checkHeight", "guessedtype": "function"}, "getActiveHandleEl": {"return": {"type": "HTMLElement", "description": "The handle element that is active"}, "description": "Get the HTML reference for the currently active resize handle.", "guessedname": "getActiveHandleEl", "guessedtype": "function"}, "_handle_for_r": {"guessedname": "_handle_for_r", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Right handle.", "private": "", "guessedtype": "function"}, "_handle_for_t": {"guessedname": "_handle_for_t", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Top handle.", "private": "", "guessedtype": "function"}, "_updateStatus": {"guessedname": "_updateStatus", "params": [{"type": "Number", "name": "h", "description": " The new height setting."}, {"type": "Number", "name": "w", "description": " The new width setting."}, {"type": "Number", "name": "t", "description": " The new top setting."}, {"type": "Number", "name": "l", "description": " The new left setting."}], "description": "Using the Height, Width, Top & Left, it updates the status element with the elements sizes.", "private": "", "guessedtype": "function"}, "isActive": {"return": {"type": "Boolean", "description": ""}, "description": "Returns true or false if a resize operation is currently active on the element.", "guessedname": "isActive", "guessedtype": "function"}, "_handle_for_l": {"guessedname": "_handle_for_l", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Left handle.", "private": "", "guessedtype": "function"}, "_handleMouseOut": {"guessedname": "_handleMouseOut", "params": [{"type": "Event", "name": "ev", "description": " A mouse event."}], "description": "Removes CSS class names to the handles", "private": "", "guessedtype": "function"}, "_handle_for_b": {"guessedname": "_handle_for_b", "params": [{"type": "Object", "name": "args", "description": " The arguments from the CustomEvent."}], "description": "Handles the sizes for the Bottom handle.", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "resize.js", "guessedtype": "function", "shortname": "Resize", "properties": {"CSS_RESIZING": {"guessedname": "CSS_RESIZING", "type": "String", "description": "Class name given to the wrap element when a resize action is taking place.", "private": "", "guessedtype": "property"}, "_cache": {"guessedname": "_cache", "type": "Object", "description": "An lookup table containing key information for the element being resized. e.g. height, width, x position, y position, etc..", "private": "", "guessedtype": "property"}, "_dds": {"guessedname": "_dds", "type": "Object", "description": "An Object containing references to all of the <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> instances used for the resize handles", "private": "", "guessedtype": "property"}, "CSS_HIDDEN": {"guessedname": "CSS_HIDDEN", "type": "String", "description": "Class name given to the wrap element to make all handles hidden", "private": "", "guessedtype": "property"}, "_handles": {"guessedname": "_handles", "type": "Object", "description": "An object containing references to all of the resize handles.", "private": "", "guessedtype": "property"}, "_ieSelectBack": {"private": "", "description": "We will hold a copy of the current \"onselectstart\" method on this property, and reset it after we are done using it.", "guessedname": "_ieSelectBack", "guessedtype": "property"}, "CSS_STATUS": {"guessedname": "CSS_STATUS", "type": "String", "description": "Class name given to the status element", "private": "", "guessedtype": "property"}, "CSS_RESIZE": {"guessedname": "CSS_RESIZE", "type": "String", "description": "Base CSS class name", "private": "", "guessedtype": "property"}, "CSS_WRAP": {"guessedname": "CSS_WRAP", "type": "String", "description": "Class name given to the wrap element", "private": "", "guessedtype": "property"}, "_instances": {"description": "Internal hash table for all resize instances", "private": "", "static": "", "guessedname": "_instances", "guessedtype": "property", "type": "Object"}, "CSS_DRAG": {"guessedname": "CSS_DRAG", "type": "String", "description": "Class name added when dragging is enabled", "private": "", "guessedtype": "property"}, "_resizeEvent": {"guessedname": "_resizeEvent", "type": "Event", "description": "The mouse event used to resize with", "private": "", "guessedtype": "property"}, "_proxy": {"guessedname": "_proxy", "type": "HTMLElement", "description": "The HTML reference of the element proxy", "private": "", "guessedtype": "property"}, "dd": {"guessedname": "dd", "type": "Object", "description": "The <a href=\"YAHOO.util.DragDrop.html\">YAHOO.util.DragDrop</a> instance used if draggable is true", "private": "", "guessedtype": "property"}, "CSS_HANDLE": {"guessedname": "CSS_HANDLE", "type": "String", "description": "Class name given to all handles, used as a base for single handle names as well.. Handle \"t\" will get this.CSS_HANDLE + '-t' as well as this.CSS_HANDLE", "private": "", "guessedtype": "property"}, "CSS_PROXY": {"guessedname": "CSS_PROXY", "type": "String", "description": "Class name given to the proxy element", "private": "", "guessedtype": "property"}, "CSS_GHOST": {"guessedname": "CSS_GHOST", "type": "String", "description": "Class name given to the wrap element when the ghost property is active", "private": "", "guessedtype": "property"}, "CSS_HOVER": {"guessedname": "CSS_HOVER", "type": "String", "description": "Class name used for hover only handles", "private": "", "guessedtype": "property"}, "_positioned": {"guessedname": "_positioned", "type": "Boolean", "description": "A flag to show if the element is absolutely positioned", "private": "", "guessedtype": "property"}, "_wrap": {"guessedname": "_wrap", "type": "HTMLElement", "description": "The HTML reference of the element wrapper", "private": "", "guessedtype": "property"}, "_active": {"guessedname": "_active", "type": "Boolean", "description": "Flag to show if the resize is active. Used for events.", "private": "", "guessedtype": "property"}, "_locked": {"guessedname": "_locked", "type": "Boolean", "description": "A flag to show if the resize is locked", "private": "", "guessedtype": "property"}, "CSS_KNOB": {"guessedname": "CSS_KNOB", "type": "String", "description": "Class name used to make the knob style handles", "private": "", "guessedtype": "property"}, "_currentHandle": {"guessedname": "_currentHandle", "type": "String", "description": "The string identifier of the currently active handle. e.g. 'r', 'br', 'tl'", "private": "", "guessedtype": "property"}, "_currentDD": {"guessedname": "_currentDD", "type": "Object", "description": "A link to the currently active DD object", "private": "", "guessedtype": "property"}, "browser": {"guessedname": "browser", "type": "Object", "description": "A copy of the YAHOO.env.ua property", "private": "", "guessedtype": "property"}}, "description": "<p>Makes an element resizable</p>"}, "YAHOO.widget.StackedBarChart": {"name": "YAHOO.widget.StackedBarChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "StackedBarChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "StackedBarChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "StackedBarChart", "description": "StackedBarChart class for the YUI Charts widget."}, "YAHOO.util.Config": {"name": "YAHOO.util.Config", "constructors": [{"params": [{"type": "Object", "name": "owner", "description": " The owner Object to which this Config Object belongs"}], "description": "Config is a utility used within an Object to allow the implementer to\nmaintain a list of local configuration properties and listen for changes \nto those properties dynamically using CustomEvent. The initial values are \nalso maintained so that the configuration can be reset at any given point \nto its initial state."}], "namespace": "YAHOO.util", "module": "container", "events": {"configChangedEvent": {"description": "Custom Event, notifying subscribers when Config properties are set \n(setProperty is called without the silent flag", "guessedname": "configChangedEvent", "guessedtype": "property"}}, "guessedname": "Config", "methods": {"fireQueue": {"description": "Fires the normalized list of queued property change events", "guessedname": "fireQueue", "guessedtype": "function"}, "YAHOO.util.Config.alreadySubscribed": {"return": {"type": "Boolean", "description": "true, if the function/Object pair is already subscribed \nto the CustomEvent passed in"}, "description": "Checks to determine if a particular function/Object pair are already \nsubscribed to the specified CustomEvent", "static": "", "guessedname": "alreadySubscribed", "guessedtype": "function", "params": [{"type": "YAHOO.util.CustomEvent", "name": "evt", "description": " The CustomEvent for which to check \nthe subscriptions"}, {"type": "Function", "name": "fn", "description": " The function to look for in the subscribers list"}, {"type": "Object", "name": "obj", "description": " The execution scope Object for the subscription"}]}, "getProperty": {"return": {"type": "Object", "description": "The value of the specified property"}, "params": [{"type": "String", "name": "key", "description": " The name of the property"}], "description": "Returns the value of specified property.", "guessedname": "getProperty", "guessedtype": "function"}, "addProperty": {"params": [{"type": "String", "name": "key", "description": " The configuration property's name"}, {"type": "Object", "name": "propertyObject", "description": " The Object containing all of this \nproperty's arguments"}], "description": "Adds a property to the Config Object's private config hash.", "guessedname": "addProperty", "guessedtype": "function"}, "queueProperty": {"return": {"type": "Boolean", "description": "true, if the set was successful, false if \nit failed."}, "params": [{"type": "String", "name": "key", "description": " The name of the property"}, {"type": "String", "name": "value", "description": " The value to set the property to"}], "description": "Sets the value of a property and queues its event to execute. If the \nevent is already scheduled to execute, it is\nmoved from its current position to the end of the queue.", "guessedname": "queueProperty", "guessedtype": "function"}, "checkNumber": {"return": {"type": "Boolean", "description": "true, if the value is valid"}, "params": [{"type": "Object", "name": "val", "description": " The value to validate"}], "description": "Validates that the value passed in is a number.", "guessedname": "checkNumber", "guessedtype": "function"}, "outputEventQueue": {"return": {"type": "String", "description": "The string list of CustomEvents currently queued \nfor execution"}, "description": "Returns a string representation of the Config object's current \nCustomEvent queue", "guessedname": "outputEventQueue", "guessedtype": "function"}, "resetProperty": {"return": {"type": "Boolean", "description": "True is the property was reset, false if not"}, "params": [{"type": "String", "name": "key", "description": " The name of the property"}], "description": "Resets the specified property's value to its initial value.", "guessedname": "resetProperty", "guessedtype": "function"}, "applyConfig": {"params": [{"type": "Object", "name": "userConfig", "description": " The configuration Object literal"}, {"type": "Boolean", "name": "init", "description": "  When set to true, the initialConfig will \nbe set to the userConfig passed in, so that calling a reset will \nreset the properties to the passed values."}], "description": "Applies a key-value Object literal to the configuration, replacing  \nany existing values, and queueing the property events.\nAlthough the values will be set, fireQueue() must be called for their \nassociated events to execute.", "guessedname": "applyConfig", "guessedtype": "function"}, "refresh": {"description": "Refires the events for all configuration properties using their \ncurrent values.", "guessedname": "refresh", "guessedtype": "function"}, "subscribeToConfigEvent": {"return": {"type": "Boolean", "description": "True, if the subscription was successful, \notherwise false."}, "params": [{"type": "String", "name": "key", "description": " The property name"}, {"type": "Function", "name": "handler", "description": " The handler function to use subscribe to \nthe property's event"}, {"type": "Object", "name": "obj", "description": " The Object to use for scoping the event handler \n(see CustomEvent documentation)"}, {"type": "Boolean", "name": "overrideContext", "description": " Optional. If true, will override\n\"this\" within the handler to map to the scope Object passed into the\nmethod."}], "description": "Subscribes an external handler to the change event for any \ngiven property.", "guessedname": "subscribeToConfigEvent", "guessedtype": "function"}, "checkBoolean": {"return": {"type": "Boolean", "description": "true, if the value is valid"}, "params": [{"type": "Object", "name": "val", "description": " The value to validate"}], "description": "Validates that the value passed in is a Boolean.", "guessedname": "checkBoolean", "guessedtype": "function"}, "init": {"params": [{"type": "Object", "name": "owner", "description": " The owner Object to which this Config \nObject belongs"}], "description": "Initializes the configuration Object and all of its local members.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The Config object in string format."}, "description": "Returns a string representation of the Config object", "guessedname": "toString", "guessedtype": "function"}, "refireEvent": {"params": [{"type": "String", "name": "key", "description": " The name of the property"}], "description": "Fires the event for a property using the property's current value.", "guessedname": "refireEvent", "guessedtype": "function"}, "getConfig": {"return": {"type": "Object", "description": "The current config, represented in a key-value map"}, "description": "Returns a key-value configuration map of the values currently set in  \nthe Config Object.", "guessedname": "getConfig", "guessedtype": "function"}, "setProperty": {"return": {"type": "Boolean", "description": "True, if the set was successful, false if it failed."}, "params": [{"type": "String", "name": "key", "description": " The name of the property"}, {"type": "String", "name": "value", "description": " The value to set the property to"}, {"type": "Boolean", "name": "silent", "description": " Whether the value should be set silently, \nwithout firing the property event."}], "description": "Sets the value of a property. If the silent property is passed as \ntrue, the property's event will not be fired.", "guessedname": "setProperty", "guessedtype": "function"}, "destroy": {"description": "Sets all properties to null, unsubscribes all listeners from each \nproperty's change event and all listeners from the configChangedEvent.", "guessedname": "destroy", "guessedtype": "function"}, "fireEvent": {"guessedname": "fireEvent", "params": [{"type": "String", "name": "key", "description": " The configuration property's name"}, {"type": "value", "name": "Object", "description": " The value of the correct type for the property"}], "description": "Fires a configuration property event using the specified value.", "private": "", "guessedtype": "function"}, "unsubscribeFromConfigEvent": {"return": {"type": "Boolean", "description": "True, if the unsubscription was successful, \notherwise false."}, "params": [{"type": "String", "name": "key", "description": " The property name"}, {"type": "Function", "name": "handler", "description": " The handler function to use subscribe to \nthe property's event"}, {"type": "Object", "name": "obj", "description": " The Object to use for scoping the event \nhandler (see CustomEvent documentation)"}], "description": "Unsubscribes an external handler from the change event for any \ngiven property.", "guessedname": "unsubscribeFromConfigEvent", "guessedtype": "function"}}, "file": "Config.js", "guessedtype": "function", "shortname": "Config", "properties": {"YAHOO.util.Config.CONFIG_CHANGED_EVENT": {"description": "Constant representing the CustomEvent type for the config changed event.", "private": "", "static": "", "guessedname": "CONFIG_CHANGED_EVENT", "guessedtype": "property", "final": ""}, "eventQueue": {"guessedname": "eventQueue", "type": "Object", "description": "Maintains the local, normalized CustomEvent queue", "private": "", "guessedtype": "property"}, "owner": {"type": "Object", "description": "Object reference to the owner of this Config Object", "guessedname": "owner", "guessedtype": "property"}, "queueInProgress": {"type": "Boolean", "description": "Boolean flag that specifies whether a queue is currently \nbeing executed", "guessedname": "queueInProgress", "guessedtype": "property"}, "initialConfig": {"guessedname": "initialConfig", "type": "Object", "description": "Maintains the local collection of configuration property objects as \nthey were initially applied.\nThis object is used when resetting a property.", "private": "", "guessedtype": "property"}, "config": {"guessedname": "config", "type": "Object", "description": "Maintains the local collection of configuration property objects and \ntheir specified values", "private": "", "guessedtype": "property"}, "YAHOO.util.Config.BOOLEAN_TYPE": {"description": "Constant representing the boolean type string", "private": "", "static": "", "guessedname": "BOOLEAN_TYPE", "guessedtype": "property", "final": ""}}, "description": "Config is a utility used within an Object to allow the implementer to\nmaintain a list of local configuration properties and listen for changes \nto those properties dynamically using CustomEvent. The initial values are \nalso maintained so that the configuration can be reset at any given point \nto its initial state."}, "YAHOO.widget.Node": {"name": "YAHOO.widget.Node", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node, and any custom attributes that should be\nstored with the node (which is available in noderef.data).\nAll values in oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private or functions,\nthe rest of the values will be stored in noderef.data"}, {"type": "Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated, use oData.expanded)"}], "description": "The base class for all tree nodes.  The node's presentation and behavior in\nresponse to mouse events is handled in Node subclasses."}], "namespace": "YAHOO.widget", "module": "treeview", "events": {"parentChange": {"type": "CustomEvent", "description": "The parentChange event is fired when a parent element is applied\nto the node.  This is useful if you need to apply tree-level\nproperties to a tree that need to happen if a node is moved from\none tree to another."}}, "guessedname": "Node", "methods": {"setNodesProperty": {"params": [{"type": "string", "name": "name", "description": "  Name of the property to be set"}, {"type": "any", "name": "value", "description": "  value to be set"}, {"type": "boolean", "name": "refresh", "description": "  if present and true, it does a refresh"}], "description": "Sets the value of property for this node and all loaded descendants.  \nOnly public and defined properties can be set, not methods.  \nValues for unknown properties will be assigned to the refNode.data object", "guessedname": "setNodesProperty", "guessedtype": "function"}, "appendChild": {"return": {"type": "Node", "description": "the child node"}, "description": "Appends a node to the child collection.", "private": "", "params": [{"type": "Node", "name": "childNode", "description": "  the new node"}], "guessedname": "appendChild", "guessedtype": "function"}, "setDynamicLoad": {"params": [{"type": "function", "name": "fmDataLoader", "description": "  the function that will be used to get the data."}, {"type": "int", "name": "iconMode", "description": "  configures the icon that is displayed when a dynamic\nload node is expanded the first time without children.  By default, the \n\"collapse\" icon will be used.  If set to 1, the leaf node icon will be\ndisplayed."}], "description": "Configures this node for dynamically obtaining the child data\nwhen the node is first expanded.  Calling it without the callback\nwill turn off dynamic load for the node.", "guessedname": "setDynamicLoad", "guessedtype": "function"}, "unhighlight": {"params": [{"type": "boolean", "name": "_silent", "description": "  optional, don't fire the highlightEvent"}], "description": "Turns highlighting off a node.", "guessedname": "unhighlight", "guessedtype": "function"}, "_childrenHighlighted": {"private": "", "description": "Checks whether all or part of the children of a node are highlighted and\nsets the node highlight to full, none or partial highlight.\nIf set to propagate it will further call the parent", "guessedname": "_childrenHighlighted", "guessedtype": "function"}, "getChildrenEl": {"return": {"type": "HTMLElement", "description": "this node's children div"}, "description": "Returns the div that was generated for this node's children", "guessedname": "getChildrenEl", "guessedtype": "function"}, "_removeFocus": {"private": "", "description": "Removes the focus of previously selected Node", "guessedname": "_removeFocus", "guessedtype": "function"}, "toggle": {"description": "Expands if node is collapsed, collapses otherwise.", "guessedname": "toggle", "guessedtype": "function"}, "getEditorValue": {"return": {"type": "any", "description": "value entered"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Returns the value(s) from the input element(s) .\nShould be overridden by each node type.", "guessedname": "getEditorValue", "guessedtype": "function"}, "saveEditorValue": {"return": {"type": "false or none", "description": "a return of exactly false will prevent the editor from closing"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Saves the value entered into the editor.", "guessedname": "saveEditorValue", "guessedtype": "function"}, "getToggleLink": {"return": {"type": "string", "description": "the javascript url for toggling this node"}, "description": "Generates the link that will invoke this node's toggle method", "guessedname": "getToggleLink", "guessedtype": "function"}, "getToggleEl": {"return": {"type": "HTMLElement", "description": "this node's toggle html element"}, "description": "Returns the element that is being used for this node's toggle.", "guessedname": "getToggleEl", "guessedtype": "function"}, "toggleHighlight": {"description": "Toggles the highlighted state of a Node", "guessedname": "toggleHighlight", "guessedtype": "function"}, "getHtml": {"return": {"type": "string", "description": "the markup for this node and its expanded children."}, "description": "Returns the markup for this node and its children.", "guessedname": "getHtml", "guessedtype": "function"}, "insertBefore": {"return": {"type": "Node", "description": "the inserted node"}, "params": [{"type": "Node", "name": "node", "description": "  the node to insert this node before"}], "description": "Inserts this node before this supplied node", "guessedname": "insertBefore", "guessedtype": "function"}, "hasChildren": {"return": {"type": "boolean", "description": "true if this has children or if it might and we are\nchecking for this condition."}, "params": [{"type": "boolean", "name": "checkForLazyLoad", "description": "  should we check for unloaded children?"}], "description": "Checks if this node has children.  If this node is lazy-loading and the\nchildren have not been rendered, we do not know whether or not there\nare actual children.  In most cases, we need to assume that there are\nchildren (for instance, the toggle needs to show the expandable \npresentation state).  In other times we want to know if there are rendered\nchildren.  For the latter, \"checkForLazyLoad\" should be false.", "guessedname": "hasChildren", "guessedtype": "function"}, "isDynamic": {"return": {"type": "boolean", "description": "true if this node's children are to be loaded dynamically"}, "description": "Evaluates if this node's children should be loaded dynamically.  Looks for\nthe property both in this instance and the root node.  If the tree is\ndefined to load all children dynamically, the data callback function is\ndefined in the root node", "guessedname": "isDynamic", "guessedtype": "function"}, "init": {"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node"}, {"type": "Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state"}], "description": "Initializes this node, gets some of the properties from the parent", "guessedname": "init", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": "the container html element"}, "description": "Returns this node's container html element", "guessedname": "getEl", "guessedtype": "function"}, "appendTo": {"return": {"type": "Node", "description": "The appended node"}, "params": [{"type": "Node", "name": "parentNode", "description": "  the node to append to."}], "description": "Appends this node to the supplied node's child collection", "guessedname": "appendTo", "guessedtype": "function"}, "getContentEl": {"return": {"type": "HTMLElement", "description": "the element"}, "description": "Returns the outer html element for this node's content", "guessedname": "getContentEl", "guessedtype": "function"}, "showChildren": {"description": "Shows this node's children", "guessedname": "showChildren", "guessedtype": "function"}, "insertAfter": {"return": {"type": "Node", "description": "the inserted node"}, "params": [{"type": "Node", "name": "node", "description": "  the node to insert after"}], "description": "Inserts this node after the supplied node", "guessedname": "insertAfter", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the node"}, "description": "Node toString", "guessedname": "toString", "guessedtype": "function"}, "getChildrenElId": {"return": {"type": "string", "description": "the element id for this node's children div"}, "description": "Returns the id for this node's children div", "guessedname": "getChildrenElId", "guessedtype": "function"}, "getDepthStyle": {"return": {"type": "string", "description": "the css class for the spacer"}, "params": [{"type": "int", "name": "depth", "description": " the depth of the ancestor."}], "description": "Returns the css class for the spacer at the specified depth for\nthis node.  If this node's ancestor at the specified depth\nhas a next sibling the presentation is different than if it\ndoes not have a next sibling", "guessedname": "getDepthStyle", "guessedtype": "function"}, "_canHaveFocus": {"guessedname": "_canHaveFocus", "return": {"type": "boolean", "description": "success"}, "description": "Returns true if there are any elements in the node that can \naccept the real actual browser focus", "private": "", "guessedtype": "function"}, "expandAll": {"description": "Recursively expands all of this node's children.", "guessedname": "expandAll", "guessedtype": "function"}, "getNodeCount": {"return": {"type": "int", "description": "number of nodes in the branch"}, "description": "Count of nodes in a branch", "guessedname": "getNodeCount", "guessedtype": "function"}, "collapse": {"description": "Hides this nodes children (creating them if necessary), changes the toggle style.", "guessedname": "collapse", "guessedtype": "function"}, "getSiblings": {"return": {"type": "", "description": "Node[]"}, "description": "Returns a node array of this node's siblings, null if none.", "guessedname": "getSiblings", "guessedtype": "function"}, "editNode": {"description": "pops up the contents editor, if there is one and the node is declared editable", "guessedname": "editNode", "guessedtype": "function"}, "getContentHtml": {"return": {"type": "string", "description": "The HTML that will render the content of this node."}, "description": "Get the markup for the contents of the node.  This is designed to be overrided so that we can\nsupport different types of nodes.", "guessedname": "getContentHtml", "guessedtype": "function"}, "focus": {"return": {"type": "boolean", "description": "success"}, "description": "Sets the focus on the node element.\nIt will only be able to set the focus on nodes that have anchor elements in it.  \nToggle or branch icons have anchors and can be focused on.  \nIf will fail in nodes that have no anchor", "guessedname": "focus", "guessedtype": "function"}, "displayEditedValue": {"params": [{"type": "any", "name": "value", "description": "  value to be displayed and stored in the node"}, {"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Finally displays the newly edited value(s) in the tree.\nShould be overridden by each node type.", "guessedname": "displayEditedValue", "guessedtype": "function"}, "getStyle": {"return": {"type": "string", "description": "the css class for this node's toggle"}, "description": "Returns the css style name for the toggle", "guessedname": "getStyle", "guessedtype": "function"}, "getNodeHtml": {"return": {"type": "string", "description": "The HTML that will render this node."}, "description": "Get the markup for the node.  This may be overrided so that we can\nsupport different types of nodes.", "guessedname": "getNodeHtml", "guessedtype": "function"}, "getIconMode": {"return": {"type": "int", "description": "0 for collapse style, 1 for leaf node style"}, "description": "Returns the current icon mode.  This refers to the way childless dynamic\nload nodes appear (this comes into play only after the initial dynamic\nload request produced no children).", "guessedname": "getIconMode", "guessedtype": "function"}, "_setHighlightClassName": {"private": "", "description": "Changes the classNames on the toggle and content containers to reflect the current highlighting", "guessedname": "_setHighlightClassName", "guessedtype": "function"}, "hideChildren": {"description": "Hides this node's children", "guessedname": "hideChildren", "guessedtype": "function"}, "destroyEditorContents": {"params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Node-specific destroy function to empty the contents of the inline editor panel.\nThis function is the worst case alternative that will purge all possible events and remove the editor contents.\nMethod Event.purgeElement is somewhat costly so if it can be replaced by specifc Event.removeListeners, it is better to do so.", "guessedname": "destroyEditorContents", "guessedtype": "function"}, "getAncestor": {"return": {"type": "Node", "description": "the ancestor"}, "params": [{"type": "int", "name": "depth", "description": " the depth of the ancestor."}], "description": "Returns this node's ancestor at the specified depth.", "guessedname": "getAncestor", "guessedtype": "function"}, "loadComplete": {"description": "Load complete is the callback function we pass to the data provider\nin dynamic load situations.", "guessedname": "loadComplete", "guessedtype": "function"}, "expand": {"description": "Shows this nodes children (creating them if necessary), changes the\ntoggle style, and collapses its siblings if multiExpand is not set.", "guessedname": "expand", "guessedtype": "function"}, "getElId": {"return": {"type": "string", "description": "the element id"}, "description": "Returns the id for this node's container div", "guessedname": "getElId", "guessedtype": "function"}, "isRoot": {"return": {"type": "boolean", "description": "true if this is the root node"}, "description": "Evaluates if this node is the root node of the tree", "guessedname": "isRoot", "guessedtype": "function"}, "fillEditorContainer": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Placeholder for a function that should provide the inline node label editor.\nLeaving it set to null will indicate that this node type is not editable.\nIt should be overridden by nodes that provide inline editing.\nThe Node-specific editing element (input box, textarea or whatever) should be inserted into editorData.inputContainer.", "guessedname": "fillEditorContainer", "guessedtype": "property"}, "completeRender": {"return": {"type": "string", "description": "children html"}, "description": "Called when we know we have all the child data.", "guessedname": "completeRender", "guessedtype": "function"}, "isChildOf": {"return": {"type": "boolean", "description": "The node index if this Node is a child of \nsupplied Node, else -1."}, "description": "Returns true if the Node is a child of supplied Node", "private": "", "params": [{"type": "Node", "name": "parentNode", "description": "  the Node to check"}], "guessedname": "isChildOf", "guessedtype": "function"}, "getChildrenHtml": {"guessedname": "getChildrenHtml", "return": {"type": "string", "description": "the children container div html and any expanded children"}, "description": "Called when first rendering the tree.  We always build the div that will\ncontain this nodes children, but we don't render the children themselves\nunless this node is expanded.", "private": "", "guessedtype": "function"}, "refresh": {"description": "Regenerates the html for this node and its children.  To be used when the\nnode is expanded and new children have been added.", "guessedname": "refresh", "guessedtype": "function"}, "getToggleElId": {"return": {"type": "string", "description": "the toggel element id"}, "description": "Returns the id for this node's toggle element", "guessedname": "getToggleElId", "guessedtype": "function"}, "getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if the node or any children is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nIt will return false if the node or any children loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getNodeDefinition", "guessedtype": "function"}, "highlight": {"params": [{"type": "boolean", "name": "_silent", "description": "  optional, don't fire the highlightEvent"}], "description": "Turns highlighting on node.", "guessedname": "highlight", "guessedtype": "function"}, "renderChildren": {"guessedname": "renderChildren", "return": {"type": "string", "description": "the html for this node's children"}, "description": "Generates the markup for the child nodes.  This is not done until the node\nis expanded.", "private": "", "guessedtype": "function"}, "getHoverStyle": {"return": {"type": "string", "description": "the css class hover state"}, "description": "Returns the hover style for the icon", "guessedname": "getHoverStyle", "guessedtype": "function"}, "collapseAll": {"description": "Recursively collapses all of this node's children.", "guessedname": "collapseAll", "guessedtype": "function"}, "applyParent": {"return": {"type": "boolean", "description": "true if the application was successful"}, "params": [{"type": "Node", "name": "parentNode", "description": " this node's parent node"}], "description": "Certain properties for the node cannot be set until the parent\nis known. This is called after the node is inserted into a tree.\nthe parent is also applied to this node's children in order to\nmake it possible to move a branch from one tree to another.", "guessedname": "applyParent", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "Node.js", "guessedtype": "function", "shortname": "Node", "properties": {"childrenRendered": {"type": "boolean", "description": "This flag is set to true when the html is generated for this node's\nchildren, and set to false when new children are added.", "guessedname": "childrenRendered", "guessedtype": "property"}, "_focusedItem": {"guessedname": "_focusedItem", "type": "DOM element", "description": "DOM element that actually got the browser focus", "private": "", "guessedtype": "property"}, "nextSibling": {"type": "Node", "description": "This node's next sibling", "guessedname": "nextSibling", "guessedtype": "property"}, "renderHidden": {"type": "boolean", "description": "Should we render children for a collapsed node?  It is possible that the\nimplementer will want to render the hidden data...  @todo verify that we \nneed this, and implement it if we do.", "guessedname": "renderHidden", "guessedtype": "property"}, "className": {"default": "null", "type": "string", "description": "User-defined className to be added to the Node", "guessedname": "className", "guessedtype": "property"}, "iconMode": {"type": "int", "description": "Used to configure what happens when a dynamic load node is expanded\nand we discover that it does not have children.  By default, it is\ntreated as if it still could have children (plus/minus icon).  Set\niconMode to have it display like a leaf node instead.", "guessedname": "iconMode", "guessedtype": "property"}, "isLoading": {"type": "boolean", "description": "This is true for dynamically loading nodes while waiting for the\ncallback to return.", "guessedname": "isLoading", "guessedtype": "property"}, "nowrap": {"default": "false", "type": "boolean", "description": "Specifies whether or not the content area of the node should be allowed\nto wrap.", "guessedname": "nowrap", "guessedtype": "property"}, "children": {"type": "Node[]", "description": "This node's child node collection.", "guessedname": "children", "guessedtype": "property"}, "multiExpand": {"type": "boolean", "description": "Can multiple children be expanded at once?", "guessedname": "multiExpand", "guessedtype": "property"}, "index": {"type": "int", "description": "The index for this instance obtained from global counter in YAHOO.widget.TreeView.", "guessedname": "index", "guessedtype": "property"}, "_focusHighlightedItems": {"guessedname": "_focusHighlightedItems", "type": "Array of DOM elements", "description": "array of items that had the focus set on them\nso that they can be cleaned when focus is lost", "private": "", "guessedtype": "property"}, "propagateHighlightDown": {"default": "false", "type": "boolean", "description": "Tells whether highlighting will be propagated down to the children of the clicked node", "guessedname": "propagateHighlightDown", "guessedtype": "property"}, "_dynLoad": {"guessedname": "_dynLoad", "type": "boolean", "description": "We can set the node up to call an external method to get the child\ndata dynamically.", "private": "", "guessedtype": "property"}, "previousSibling": {"type": "Node", "description": "This node's previous sibling", "guessedname": "previousSibling", "guessedtype": "property"}, "contentStyle": {"type": "string", "description": "The CSS class for the html content container.  Defaults to ygtvhtml, but \ncan be overridden to provide a custom presentation for a specific node.", "guessedname": "contentStyle", "guessedtype": "property"}, "_type": {"description": "The node type", "default": "\"Node\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}, "propagateHighlightUp": {"default": "false", "type": "boolean", "description": "Tells whether highlighting will be propagated up to the parents of the clicked node", "guessedname": "propagateHighlightUp", "guessedtype": "property"}, "parent": {"type": "Node", "description": "Parent node", "guessedname": "parent", "guessedtype": "property"}, "highlightState": {"default": "0", "type": "integer", "description": "Stores the highlight state.  Can be any of:\n<ul>\n<li>0 - not highlighted</li>\n<li>1 - highlighted</li>\n<li>2 - some children highlighted</li>\n</ul>", "guessedname": "highlightState", "guessedtype": "property"}, "dataLoader": {"type": "function", "description": "Function to execute when we need to get this node's child data.", "guessedname": "dataLoader", "guessedtype": "property"}, "editable": {"type": "boolean", "description": "Signals if the label is editable.  (Ignored on TextNodes with href set.)", "guessedname": "editable", "guessedtype": "property"}, "data": {"type": "object", "description": "The data linked to this node.  This can be any object or primitive\nvalue, and the data can be used in getNodeHtml().", "guessedname": "data", "guessedtype": "property"}, "dynamicLoadComplete": {"type": "boolean", "description": "Dynamically loaded nodes only fetch the data the first time they are\nexpanded.  This flag is set to true once the data has been fetched.", "guessedname": "dynamicLoadComplete", "guessedtype": "property"}, "isLeaf": {"default": "false", "type": "boolean", "description": "If true, the node will alway be rendered as a leaf node.  This can be\nused to override the presentation when dynamically loading the entire\ntree.  Setting this to true also disables the dynamic load call for the\nnode.", "guessedname": "isLeaf", "guessedtype": "property"}, "hasIcon": {"type": "boolean", "description": "The toggle/branch icon will not show if this is set to false.  This\ncould be useful if the implementer wants to have the child contain\nextra info about the parent, rather than an actual node.", "guessedname": "hasIcon", "guessedtype": "property"}, "contentElId": {"type": "string", "description": "The generated id that will contain the data passed in by the implementer.", "guessedname": "contentElId", "guessedtype": "property"}, "expanded": {"type": "boolean", "description": "The node's expanded/collapsed state", "guessedname": "expanded", "guessedtype": "property"}, "tree": {"type": "TreeView", "description": "Tree instance this node is part of", "guessedname": "tree", "guessedtype": "property"}, "enableHighlight": {"default": "true", "type": "boolean", "description": "Enables node highlighting.  If true, the node can be highlighted and/or propagate highlighting", "guessedname": "enableHighlight", "guessedtype": "property"}, "depth": {"type": "int", "description": "The depth of this node.  We start at -1 for the root node.", "guessedname": "depth", "guessedtype": "property"}}, "description": "The base class for all tree nodes.  The node's presentation and behavior in\nresponse to mouse events is handled in Node subclasses."}, "YAHOO.widget.ColumnSeries": {"name": "YAHOO.widget.ColumnSeries", "constructors": [{"description": "ColumnSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "ColumnSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "ColumnSeries", "description": "ColumnSeries class for the YUI Charts widget."}, "YAHOO.widget.ColumnChart": {"name": "YAHOO.widget.ColumnChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "ColumnChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "ColumnChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "ColumnChart", "description": "ColumnChart class for the YUI Charts widget."}, "YAHOO.util.YUILoader": {"name": "YAHOO.util.YUILoader", "namespace": "YAHOO.util", "module": "yuiloader", "methods": {"_pushEvents": {"guessedname": "_pushEvents", "params": [{"type": "Function", "name": "optional", "description": " function reference"}], "description": "In IE, the onAvailable/onDOMReady events need help when Event is\nloaded dynamically", "private": "", "guessedtype": "function"}, "getRequires": {"params": [{"type": "", "name": "mod", "description": " The module definition from moduleInfo"}], "description": "Returns an object containing properties for all modules required\nin order to load the requested module", "guessedname": "getRequires", "guessedtype": "function"}, "onProgress": {"type": "function", "description": "Callback that will be executed each time a new module is loaded", "guessedname": "onProgress", "guessedtype": "property"}, "onTimeout": {"type": "function", "description": "Callback that will be executed if a timeout occurs", "guessedname": "onTimeout", "guessedtype": "property"}, "getProvides": {"return": {"type": "", "description": "what this module provides"}, "params": [{"type": "string", "name": "name", "description": " The name of the module"}, {"type": "string", "name": "notMe", "description": "  don't add this module name, only include superseded modules"}], "description": "Returns an object literal of the modules the supplied module satisfies", "guessedname": "getProvides", "guessedtype": "function"}, "_reduce": {"private": "", "description": "Remove superceded modules and loaded modules.  Called by\ncalculate() after we have the mega list of all dependencies", "guessedname": "_reduce", "guessedtype": "function"}, "calculate": {"params": [{"type": "", "name": "o", "description": " optional options object"}], "description": "Calculates the dependency tree, the result is stored in the sorted \nproperty", "guessedname": "calculate", "guessedtype": "function"}, "_filter": {"guessedname": "_filter", "return": {"type": "string", "description": "the filtered string"}, "description": "Applies filter\nmethod _filter", "private": "", "guessedtype": "function"}, "_addSkin": {"return": {"type": "string", "description": "the module name for the skin"}, "description": "Adds the skin def to the module info", "private": "", "params": [{"type": "string", "name": "skin", "description": "  the name of the skin"}, {"type": "string", "name": "mod", "description": "  the name of the module"}], "guessedname": "_addSkin", "guessedtype": "function"}, "_explode": {"private": "", "description": "Inspects the required modules list looking for additional \ndependencies.  Expands the required list to include all \nrequired modules.  Called by calculate()", "guessedname": "_explode", "guessedtype": "function"}, "formatSkin": {"return": {"type": "string", "description": "the full skin module name"}, "params": [{"type": "string", "name": "skin", "description": "  the name of the skin"}, {"type": "string", "name": "mod", "description": "  optional: the name of a module to skin"}], "description": "Returns the skin module name for the specified skin name.  If a\nmodule name is supplied, the returned skin module name is \nspecific to the module passed in.", "guessedname": "formatSkin", "guessedtype": "function"}, "parseSkin": {"return": {"type": "skin: string, module: string", "description": "the parsed skin name \nand module name, or null if the supplied string does not match\nthe skin pattern"}, "params": [{"type": "string", "name": "mod", "description": "  the module name to parse"}], "description": "Reverses <code>formatSkin</code>, providing the skin name and\nmodule name if the string matches the pattern for skins.", "guessedname": "parseSkin", "guessedtype": "function"}, "addModule": {"return": {"type": "boolean", "description": "true if the module was added, false if \nthe object passed in did not provide all required attributes"}, "params": [{"type": "", "name": "o", "description": " An object containing the module data"}], "description": "Add a new module to the component metadata.         \n<dl>\n<dt>name:</dt>       <dd>required, the component name</dd>\n<dt>type:</dt>       <dd>required, the component type (js or css)</dd>\n<dt>path:</dt>       <dd>required, the path to the script from \"base\"</dd>\n<dt>requires:</dt>   <dd>array of modules required by this component</dd>\n<dt>optional:</dt>   <dd>array of optional modules for this component</dd>\n<dt>supersedes:</dt> <dd>array of the modules this component replaces</dd>\n<dt>after:</dt>      <dd>array of modules the components which, if present, should be sorted above this one</dd>\n<dt>rollup:</dt>     <dd>the number of superseded modules required for automatic rollup</dd>\n<dt>fullpath:</dt>   <dd>If fullpath is specified, this is used instead of the configured base + path</dd>\n<dt>skinnable:</dt>  <dd>flag to determine if skin assets should automatically be pulled in</dd>\n</dl>", "guessedname": "addModule", "guessedtype": "function"}, "loadNext": {"params": [{"type": "string", "name": "mname", "description": "  optional the name of the module that has\nbeen loaded (which is usually why it is time to load the next\none)"}], "description": "Executed every time a module is loaded, and if we are in a load\ncycle, we attempt to load the next script.  Public so that it\nis possible to call this if using a method other than\nYAHOO.register to determine when scripts are fully loaded", "guessedname": "loadNext", "guessedtype": "function"}, "_rollup": {"private": "", "description": "Look for rollup packages to determine if all of the modules a\nrollup supersedes are required.  If so, include the rollup to\nhelp reduce the total number of connections required.  Called\nby calculate()", "guessedname": "_rollup", "guessedtype": "function"}, "insert": {"params": [{"type": "", "name": "o", "description": " optional options object"}, {"type": "string", "name": "type", "description": "  the type of dependency to insert"}], "description": "inserts the requested modules and their dependencies.  \n<code>type</code> can be \"js\" or \"css\".  Both script and \ncss are inserted if type is not provided.", "guessedname": "insert", "guessedtype": "function"}, "_sort": {"private": "", "description": "Sorts the dependency tree.  The last step of calculate()", "guessedname": "_sort", "guessedtype": "function"}, "onFailure": {"type": "function", "description": "Callback that will be executed if there is a failure", "guessedname": "onFailure", "guessedtype": "property"}, "require": {"params": [{"type": "string[] | string*", "name": "what", "description": "  the modules to load"}], "description": "Add a requirement for one or more module", "guessedname": "require", "guessedtype": "function"}, "_setup": {"private": "", "description": "Investigates the current YUI configuration on the page.  By default,\nmodules already detected will not be loaded again unless a force\noption is encountered.  Called by calculate()", "guessedname": "_setup", "guessedtype": "function"}, "onSuccess": {"type": "function", "description": "Callback that will be executed when the loader is finished\nwith an insert", "guessedname": "onSuccess", "guessedtype": "property"}, "sandbox": {"params": [{"type": "Function", "name": "callback", "description": "  the callback to exectued when the load is\ncomplete."}], "description": "Interns the script for the requested modules.  The callback is\nprovided a reference to the sandboxed YAHOO object.  This only\napplies to the script: css can not be sandboxed; css will be\nloaded into the page normally if specified.", "guessedname": "sandbox", "guessedtype": "function"}, "_url": {"return": {"type": "string", "description": "the full url"}, "description": "Generates the full url for a module\nmethod _url", "private": "", "params": [{"type": "string", "name": "path", "description": "  the path fragment"}], "guessedname": "_url", "guessedtype": "function"}}, "file": "yuiloader.js", "shortname": "YUILoader", "todo": "version management, automatic sandboxing", "properties": {"force": {"type": "string[]", "description": "A list of modules that should always be loaded, even\nif they have already been inserted into the page.", "guessedname": "force", "guessedtype": "property"}, "varName": {"type": "string", "description": "The name of the variable in a sandbox or script node \n(for external script support in Safari 2.x and earlier)\nto reference when the load is complete.  If this variable \nis not available in the specified scripts, the operation will \nfail.", "guessedname": "Name", "guessedtype": "property"}, "rollups": {"description": "List of rollup files found in the library metadata", "guessedname": "rollups", "guessedtype": "property"}, "allowRollup": {"default": "true", "type": "boolean", "description": "Should we allow rollups", "guessedname": "allowRollup", "guessedtype": "property"}, "skin": {"description": "Provides the information used to skin the skinnable components.\nThe following skin definition would result in 'skin1' and 'skin2'\nbeing loaded for calendar (if calendar was requested), and\n'sam' for all other skinnable components:\n<code>\nskin: {\n// The default skin, which is automatically applied if not\n// overriden by a component-specific skin definition.\n// Change this in to apply a different skin globally\ndefaultSkin: 'sam', \n// This is combined with the loader base property to get\n// the default root directory for a skin. ex:\n// http://yui.yahooapis.com/2.3.0/build/assets/skins/sam/\nbase: 'assets/skins/',\n// The name of the rollup css file for the skin\npath: 'skin.css',\n// The number of skinnable components requested that are\n// required before using the rollup file rather than the\n// individual component css files\nrollup: 3,\n// Any component-specific overrides can be specified here,\n// making it possible to load different skins for different\n// components.  It is possible to load more than one skin\n// for a given component as well.\noverrides: {\ncalendar: ['skin1', 'skin2']\n}\n}\n</code>", "guessedname": "self", "guessedtype": "property"}, "loaded": {"type": "{string: boolean}", "propery": "loaded", "description": "Set when beginning to compute the dependency tree. \nComposed of what YAHOO reports to be loaded combined\nwith what has been loaded by the tool", "guessedname": "loaded", "guessedtype": "property"}, "_internalCallback": {"private": "", "description": "Internal callback to handle multiple internal insert() calls\nso that css is inserted prior to js", "guessedname": "_internalCallback", "guessedtype": "property"}, "inserted": {"type": "{string: boolean}", "description": "List of modules inserted by the utility", "guessedname": "inserted", "guessedtype": "property"}, "charset": {"default": "utf-8", "type": "string", "description": "The charset attribute for inserted nodes", "guessedname": "charset", "guessedtype": "property"}, "loadOptional": {"default": "false", "type": "boolean", "description": "Whether or not to load optional dependencies for \nthe requested modules", "guessedname": "loadOptional", "guessedtype": "property"}, "combine": {"default": "false", "type": "boolean", "description": "If configured, YUI will use the the combo handler on the\nYahoo! CDN to pontentially reduce the number of http requests\nrequired."}, "moduleInfo": {"description": "The library metadata", "guessedname": "moduleInfo", "guessedtype": "property"}, "scope": {"default": "this", "description": "The execution scope for all callbacks", "guessedname": "scope", "guessedtype": "property"}, "filter": {"type": "string|{searchExp: string, replaceStr: string}", "description": "A filter to apply to result urls.  This filter will modify the default\npath for all modules.  The default path for the YUI library is the\nminified version of the files (e.g., event-min.js).  The filter property\ncan be a predefined filter or a custom filter.  The valid predefined \nfilters are:\n<dl>\n<dt>DEBUG</dt>\n<dd>Selects the debug versions of the library (e.g., event-debug.js).\nThis option will automatically include the logger widget</dd>\n<dt>RAW</dt>\n<dd>Selects the non-minified version of the library (e.g., event.js).\n</dl>\nYou can also define a custom filter, which must be an object literal \ncontaining a search expression and a replace string:\n<pre>\nmyFilter: { \n'searchExp': \"-min\\\\.js\", \n'replaceStr': \"-debug.js\"\n}\n</pre>", "guessedname": "filter", "guessedtype": "property"}, "comboBase": {"default": "http://yui.yahooapis.com/combo?", "type": "string", "description": "Base path for the combo service", "guessedname": "comboBase", "guessedtype": "property"}, "insertBefore": {"type": "string|HTMLElement", "description": "Node reference or id where new nodes should be inserted before", "guessedname": "insertBefore", "guessedtype": "property"}, "base": {"default": "http://yui.yahooapis.com/[YUI VERSION]/build/", "type": "string", "description": "The base directory.", "guessedname": "base", "guessedtype": "property"}, "sorted": {"type": "string[]", "description": "All of the derived dependencies in sorted order, which\nwill be populated when either calculate() or insert()\nis called", "guessedname": "sorted", "guessedtype": "property"}, "data": {"description": "Data that is passed to all callbacks", "guessedname": "data", "guessedtype": "property"}, "_useYahooListener": {"private": "", "description": "Use the YAHOO environment listener to detect script load.  This\nis only switched on for Safari 2.x and below.", "guessedname": "_useYahooListener", "guessedtype": "property"}, "required": {"type": "{string: boolean}", "description": "The list of requested modules", "guessedname": "required", "guessedtype": "property"}, "ignore": {"type": "string[]", "description": "A list of modules that should not be loaded, even if\nthey turn up in the dependency tree", "guessedname": "ignore", "guessedtype": "property"}, "dirty": {"default": "true", "type": "boolean", "description": "Flag to indicate the dependency tree needs to be recomputed\nif insert is called again.", "guessedname": "dirty", "guessedtype": "property"}, "timeout": {"type": "int", "description": "Timeout value in milliseconds.  If set, this value will be used by\nthe get utility.  the timeout event will fire if\na timeout occurs.", "guessedname": "timeout", "guessedtype": "property"}, "root": {"default": "[YUI VERSION]/build/", "type": "string", "description": "Root path to prepend to module path for the combo\nservice", "guessedname": "root", "guessedtype": "property"}}, "description": "YUILoader provides dynamic loading for YUI."}, "YAHOO.util.Region": {"name": "YAHOO.util.Region", "constructors": [{"params": [{"type": "Int", "name": "t", "description": " the top extent"}, {"type": "Int", "name": "r", "description": " the right extent"}, {"type": "Int", "name": "b", "description": " the bottom extent"}, {"type": "Int", "name": "l", "description": " the left extent"}], "description": "A region is a representation of an object on a grid.  It is defined\nby the top, right, bottom, left extents, so is rectangular by default.  If \nother shapes are required, this class could be extended to support it."}], "namespace": "YAHOO.util", "module": "dom", "guessedname": "Region", "methods": {"getArea": {"return": {"type": "Int", "description": "the region's area"}, "description": "Returns the area of the region", "guessedname": "getArea", "guessedtype": "function"}, "getRegion": {"return": {"type": "Region", "description": "The region that the element occupies"}, "description": "Returns a region that is occupied by the DOM element", "static": "", "guessedname": "getRegion", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": " The element"}]}, "contains": {"return": {"type": "Boolean", "description": "True if the region is contained with this region, \nelse false"}, "params": [{"type": "Region", "name": "region", "description": " The region to evaluate"}], "description": "Returns true if this region contains the region passed in", "guessedname": "contains", "guessedtype": "function"}, "union": {"return": {"type": "Region", "description": "The union region"}, "params": [{"type": "Region", "name": "region", "description": " The region that to create the union with"}], "description": "Returns the region representing the smallest region that can contain both\nthe passed in region and this region.", "guessedname": "union", "guessedtype": "function"}, "toString": {"return": {"type": "", "description": "string the region properties"}, "description": "toString", "guessedname": "toString", "guessedtype": "function"}, "intersect": {"return": {"type": "Region", "description": "The overlap region, or null if there is no overlap"}, "params": [{"type": "Region", "name": "region", "description": " The region that intersects"}], "description": "Returns the region where the passed in region overlaps with this one", "guessedname": "intersect", "guessedtype": "function"}}, "file": "Region.js", "guessedtype": "function", "shortname": "Region", "properties": {"right": {"type": "int", "description": "The region's right extent", "guessedname": "right", "guessedtype": "property"}, "bottom": {"type": "Int", "description": "The region's bottom extent", "guessedname": "bottom", "guessedtype": "property"}, "top": {"type": "Int", "description": "The region's top extent", "guessedname": "top", "guessedtype": "property"}, "height": {"type": "Int", "description": "The region's total height", "guessedname": "height", "guessedtype": "property"}, "1": {"type": "Int", "description": "The region's top extent as index, for symmetry with set/getXY"}, "0": {"type": "Int", "description": "The region's left extent as index, for symmetry with set/getXY"}, "y": {"type": "Int", "description": "The region's top extent", "guessedname": "y", "guessedtype": "property"}, "x": {"type": "Int", "description": "The region's left extent", "guessedname": "x", "guessedtype": "property"}, "width": {"type": "Int", "description": "The region's total width", "guessedname": "width", "guessedtype": "property"}, "left": {"type": "Int", "description": "The region's left extent", "guessedname": "left", "guessedtype": "property"}}, "description": "A region is a representation of an object on a grid.  It is defined\nby the top, right, bottom, left extents, so is rectangular by default.  If \nother shapes are required, this class could be extended to support it."}, "YAHOO.widget.ContainerEffect": {"name": "YAHOO.widget.ContainerEffect", "constructors": [{"params": [{"type": "YAHOO.widget.Overlay", "name": "overlay", "description": " The Overlay that the animation \nshould be associated with"}, {"type": "Object", "name": "attrIn", "description": " The object literal representing the animation \narguments to be used for the animate-in transition. The arguments for \nthis literal are: attributes(object, see YAHOO.util.Anim for description), \nduration(Number), and method(i.e. Easing.easeIn)."}, {"type": "Object", "name": "attrOut", "description": " The object literal representing the animation \narguments to be used for the animate-out transition. The arguments for  \nthis literal are: attributes(object, see YAHOO.util.Anim for description), \nduration(Number), and method(i.e. Easing.easeIn)."}, {"type": "HTMLElement", "name": "targetElement", "description": " Optional. The target element that  \nshould be animated during the transition. Defaults to overlay.element."}, {"type": "class", "name": "Optional.", "description": " The animation class to instantiate. Defaults to \nYAHOO.util.Anim. Other options include YAHOO.util.Motion."}], "description": "ContainerEffect encapsulates animation transitions that are executed when \nan Overlay is shown or hidden."}], "namespace": "YAHOO.widget", "module": "container", "guessedname": "ContainerEffect", "methods": {"handleTweenAnimateOut": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onTween handler for the out-animation.", "guessedname": "handleTweenAnimateOut", "guessedtype": "function"}, "handleStartAnimateIn": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onStart handler for the in-animation.", "guessedname": "handleStartAnimateIn", "guessedtype": "function"}, "handleStartAnimateOut": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onStart handler for the out-animation.", "guessedname": "handleStartAnimateOut", "guessedtype": "function"}, "animateOut": {"description": "Triggers the out-animation.", "guessedname": "animateOut", "guessedtype": "function"}, "handleCompleteAnimateOut": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onComplete handler for the out-animation.", "guessedname": "handleCompleteAnimateOut", "guessedtype": "function"}, "init": {"description": "Initializes the animation classes and events.", "guessedname": "init", "guessedtype": "function"}, "handleTweenAnimateIn": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onTween handler for the in-animation.", "guessedname": "handleTweenAnimateIn", "guessedtype": "function"}, "SLIDE": {"return": {"type": "YAHOO.widget.ContainerEffect", "description": "The configured ContainerEffect object"}, "description": "A pre-configured ContainerEffect instance that can be used for sliding an \noverlay in and out.", "static": "", "guessedname": "SLIDE", "guessedtype": "function", "params": [{"type": "YAHOO.widget.Overlay", "name": "overlay", "description": " The Overlay object to animate"}, {"type": "Number", "name": "dur", "description": " The duration of the animation"}]}, "toString": {"return": {"type": "String", "description": "The string representation of the ContainerEffect"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "FADE": {"return": {"type": "YAHOO.widget.ContainerEffect", "description": "The configured ContainerEffect object"}, "description": "A pre-configured ContainerEffect instance that can be used for fading \nan overlay in and out.", "static": "", "guessedname": "FADE", "guessedtype": "function", "params": [{"type": "YAHOO.widget.Overlay", "name": "overlay", "description": " The Overlay object to animate"}, {"type": "Number", "name": "dur", "description": " The duration of the animation"}]}, "handleCompleteAnimateIn": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "The default onComplete handler for the in-animation.", "guessedname": "handleCompleteAnimateIn", "guessedtype": "function"}, "animateIn": {"description": "Triggers the in-animation.", "guessedname": "animateIn", "guessedtype": "function"}}, "file": "ContainerEffect.js", "guessedtype": "function", "shortname": "ContainerEffect", "properties": {"attrOut": {"type": "Object", "description": "The animation attributes to use when transitioning out of view", "guessedname": "attrOut", "guessedtype": "property"}, "animClass": {"type": "class", "description": "The animation class to use for animating the overlay", "guessedname": "animClass", "guessedtype": "property"}, "targetElement": {"type": "HTMLElement", "description": "The target element to be animated", "guessedname": "targetElement", "guessedtype": "property"}, "attrIn": {"type": "Object", "description": "The animation attributes to use when transitioning into view", "guessedname": "attrIn", "guessedtype": "property"}, "overlay": {"type": "YAHOO.widget.Overlay", "description": "The overlay to animate", "guessedname": "overlay", "guessedtype": "property"}}, "description": "ContainerEffect encapsulates animation transitions that are executed when \nan Overlay is shown or hidden."}, "YAHOO.util.Motion": {"name": "YAHOO.util.Motion", "constructors": [{"params": [{"type": "String | HTMLElement", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.  \nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.  \nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").  \nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Anim subclass for moving elements along a path defined by the \"points\" \nmember of \"attributes\".  All \"points\" are arrays with x, y coordinates.\n<p>Usage: <code>var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>"}], "namespace": "YAHOO.util", "module": "animation", "guessedname": "Motion", "extends": "YAHOO.util.ColorAnim", "superclass": "YAHOO.util.ColorAnim", "file": "Motion.js", "guessedtype": "function", "shortname": "Motion", "requires": "YAHOO.util.Anim", "description": "Anim subclass for moving elements along a path defined by the \"points\" \nmember of \"attributes\".  All \"points\" are arrays with x, y coordinates.\n<p>Usage: <code>var myAnim = new YAHOO.util.Motion(el, { points: { to: [800, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>"}, "YAHOO.widget.LineSeries": {"name": "YAHOO.widget.LineSeries", "constructors": [{"description": "LineSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "LineSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "LineSeries", "description": "LineSeries class for the YUI Charts widget."}, "YAHOO.widget.BarChart": {"name": "YAHOO.widget.BarChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "BarChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "BarChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "BarChart", "description": "BarChart class for the YUI Charts widget."}, "YAHOO.widget.TimeAxis": {"name": "YAHOO.widget.TimeAxis", "constructors": [{"description": "A type of axis whose units are measured in time-based values."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "TimeAxis", "file": "TimeAxis.js", "guessedtype": "function", "shortname": "TimeAxis", "properties": {"stackingEnabled": {"type": "Boolean", "description": "Series that are stackable will only stack when this value is set to true.", "guessedname": "stackingEnabled", "guessedtype": "property"}, "calculateByLabelSize": {"type": "Boolean", "description": "Indicates whether to factor in the size of the labels when calculating a major unit.", "guessedname": "calculateByLabelSize", "guessedtype": "property"}, "minimum": {"type": "Date", "description": "The minimum value drawn by the axis. If not set explicitly, the axis minimum\nwill be calculated automatically.", "guessedname": "minimum", "guessedtype": "property"}, "maximum": {"type": "Number", "description": "The maximum value drawn by the axis. If not set explicitly, the axis maximum\nwill be calculated automatically.", "guessedname": "maximum", "guessedtype": "property"}, "majorTimeUnit": {"type": "String", "description": "The time unit used by the majorUnit.", "guessedname": "majorTimeUnit", "guessedtype": "property"}, "majorUnit": {"type": "Number", "description": "The spacing between major intervals on this axis.", "guessedname": "majorUnit", "guessedtype": "property"}, "snapToUnits": {"type": "Boolean", "description": "If true, the labels, ticks, gridlines, and other objects will snap to\nthe nearest major or minor unit. If false, their position will be based\non the minimum value.", "guessedname": "snapToUnits", "guessedtype": "property"}}, "description": "A type of axis whose units are measured in time-based values."}, "YAHOO.util.CustomEvent": {"name": "YAHOO.util.CustomEvent", "constructors": [{"params": [{"type": "String", "name": "type", "description": " The type of event, which is passed to the callback\nwhen the event fires"}, {"type": "Object", "name": "context", "description": " The context the event will fire from.  \"this\" will\nrefer to this object in the callback.  Default value: \nthe window object.  The listener can override this."}, {"type": "boolean", "name": "silent", "description": " pass true to prevent the event from writing to\nthe debugsystem"}, {"type": "int", "name": "signature", "description": " the signature that the custom event subscriber\nwill receive. YAHOO.util.CustomEvent.LIST or \nYAHOO.util.CustomEvent.FLAT.  The default is\nYAHOO.util.CustomEvent.LIST."}, {"type": "boolean", "name": "fireOnce", "description": "  If configured to fire once, the custom event \nwill only notify subscribers a single time regardless of how many times \nthe event is fired.  In addition, new subscribers will be notified \nimmediately if the event has already been fired."}], "description": "The CustomEvent class lets you define events for your application\nthat can be subscribed to by one or more independent component."}], "namespace": "YAHOO.util", "module": "event", "events": {"subscribeEvent": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Function", "name": "fn", "description": "  The function to execute"}, {"type": "", "name": "obj", "description": " <Object> An object to be passed along when the event fires. \nDefaults to the custom event."}, {"type": "", "name": "override", "description": " <boolean|Object> If true, the obj passed in becomes the \nexecution context of the listener. If an object, that object becomes \nthe execution context. Defaults to the custom event."}], "description": "Custom events provide a custom event that fires whenever there is\na new subscriber to the event.  This provides an opportunity to\nhandle the case where there is a non-repeating event that has\nalready fired has a new subscriber.", "guessedname": "subscribeEvent", "guessedtype": "property"}}, "guessedname": "CustomEvent", "methods": {"_delete": {"private": "", "guessedname": "_delete", "guessedtype": "function"}, "fire": {"return": {"type": "boolean", "description": "false if one of the subscribers returned false, \ntrue otherwise"}, "params": [{"type": "Object*", "name": "arguments", "description": " an arbitrary set of parameters to pass to \nthe handler."}], "description": "Notifies the subscribers.  The callback functions will be executed\nfrom the context specified when the event was created, and with the \nfollowing parameters:\n<ul>\n<li>The type of event</li>\n<li>All of the arguments fire() was executed with as an array</li>\n<li>The custom object (if any) that was passed into the subscribe() \nmethod</li>\n</ul>", "guessedname": "fire", "guessedtype": "function"}, "unsubscribeAll": {"return": {"type": "int", "description": "The number of listeners unsubscribed"}, "description": "Removes all listeners", "guessedname": "unsubscribeAll", "guessedtype": "function"}, "subscribe": {"params": [{"type": "Function", "name": "fn", "description": "        The function to execute"}, {"type": "Object", "name": "obj", "description": "       An object to be passed along when the event fires.\noverrideContext <boolean|Object> If true, the obj passed in becomes the execution \ncontext of the listener. If an object, that object becomes the execution context."}], "description": "Subscribes the caller to this event", "guessedname": "subscribe", "guessedtype": "function"}, "toString": {"guessedname": "toString", "guessedtype": "function"}, "unsubscribe": {"return": {"type": "boolean", "description": "True if the subscriber was found and detached."}, "params": [{"type": "Function", "name": "fn", "description": "  The subscribed function to remove, if not supplied\nall will be removed"}, {"type": "Object", "name": "obj", "description": "  The custom object passed to subscribe.  This is\noptional, but if supplied will be used to\ndisambiguate multiple listeners that are the same\n(e.g., you subscribe many object using a function\nthat lives on the prototype)"}], "description": "Unsubscribes subscribers.", "guessedname": "unsubscribe", "guessedtype": "function"}}, "file": "CustomEvent.js", "guessedtype": "function", "shortname": "CustomEvent", "properties": {"fired": {"default": "false", "type": "boolean", "description": "Indicates whether or not this event has ever been fired.", "guessedname": "fired", "guessedtype": "property"}, "fireOnce": {"default": "false", "type": "boolean", "description": "If configured to fire once, the custom event will only notify subscribers\na single time regardless of how many times the event is fired.  In addition,\nnew subscribers will be notified immediately if the event has already been\nfired.", "guessedname": "fireOnce", "guessedtype": "property"}, "YAHOO.util.CustomEvent.FLAT": {"type": "int", "static": "", "description": "Subscriber listener sigature constant.  The FLAT type returns two\nparameters: the first argument passed to fire and the optional \ncustom object", "guessedname": "FLAT", "guessedtype": "property"}, "firedWith": {"type": "Array", "description": "For fireOnce events the arguments the event was fired with are stored\nso that new subscribers get the proper payload.", "guessedname": "firedWith", "guessedtype": "property"}, "subscribers": {"type": "Subscriber[]", "description": "The subscribers to this event", "guessedname": "subscribers", "guessedtype": "property"}, "signature": {"type": "int", "description": "Custom events support two styles of arguments provided to the event\nsubscribers.  \n<ul>\n<li>YAHOO.util.CustomEvent.LIST: \n<ul>\n<li>param1: event name</li>\n<li>param2: array of arguments sent to fire</li>\n<li>param3: <optional> a custom object supplied by the subscriber</li>\n</ul>\n</li>\n<li>YAHOO.util.CustomEvent.FLAT\n<ul>\n<li>param1: the first argument passed to fire.  If you need to\npass multiple parameters, use and array or object literal</li>\n<li>param2: <optional> a custom object supplied by the subscriber</li>\n</ul>\n</li>\n</ul>", "guessedname": "signature", "guessedtype": "property"}, "YAHOO.util.CustomEvent.LIST": {"type": "int", "static": "", "description": "Subscriber listener sigature constant.  The LIST type returns three\nparameters: the event type, the array of args passed to fire, and\nthe optional custom object", "guessedname": "LIST", "guessedtype": "property"}, "scope": {"type": "object", "description": "The context the event will fire from by default. Defaults to the window obj.", "guessedname": "scope", "guessedtype": "property"}, "lastError": {"type": "Error", "description": "In order to make it possible to execute the rest of the subscriber\nstack when one thows an exception, the subscribers exceptions are\ncaught.  The most recent exception is stored in this property", "guessedname": "lastError", "guessedtype": "property"}, "type": {"type": "string", "description": "The type of event, returned to subscribers when the event fires", "guessedname": "type", "guessedtype": "property"}, "silent": {"type": "boolean", "description": "By default all custom events are logged in the debug build. Set silent to true \nto disable debug output for this event.", "guessedname": "silent", "guessedtype": "property"}}, "description": "The CustomEvent class lets you define events for your application\nthat can be subscribed to by one or more independent component."}, "YAHOO.widget.MenuBarItem": {"name": "YAHOO.widget.MenuBarItem", "constructors": [{"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying the \n<code><li></code> element of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><option></code> element of the menu bar item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu bar item. See configuration class documentation \nfor more details."}], "description": "Creates an item for a menu bar."}], "namespace": "YAHOO.widget", "module": "menu", "guessedname": "MenuBarItem", "methods": {"init": {"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying the \n<code><li></code> element of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the menu bar item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><option></code> element of the menu bar item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu bar item. See configuration class documentation \nfor more details."}], "description": "The MenuBarItem class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references for \npre-existing markup, and creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu bar item.", "guessedname": "toString", "guessedtype": "function"}}, "extends": "YAHOO.widget.MenuItem", "superclass": "YAHOO.widget.MenuItem", "file": "menubaritem.js", "guessedtype": "function", "shortname": "MenuBarItem", "properties": {"CSS_LABEL_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \nmenu bar item's <code><a></code> element.", "default": "\"yuimenubaritemlabel\"", "guessedname": "CSS_LABEL_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \n<code><li></code> element of the menu bar item.", "default": "\"yuimenubaritem\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Creates an item for a menu bar."}, "YAHOO.widget.Module": {"name": "YAHOO.widget.Module", "configs": {"appendtodocumentbody": {"default": "false", "type": "Boolean", "description": "Specifies if the module should be rendered as the first child \nof document.body or appended as the last child when render is called\nwith document.body as the \"appendToNode\".\n<p>\nAppending to the body while the DOM is still being constructed can \nlead to Operation Aborted errors in IE hence this flag is set to \nfalse by default.\n</p>"}, "visible": {"default": "true", "type": "Boolean", "description": "Specifies whether the Module is visible on the page."}, "monitorresize": {"default": "true", "type": "Boolean", "description": "Specifies whether to create a special proxy iframe to monitor \nfor user font resizing in the document"}, "effect": {"default": "null", "type": "Object", "description": "<p>\nObject or array of objects representing the ContainerEffect \nclasses that are active for animating the container.\n</p>\n<p>\n<strong>NOTE:</strong> Although this configuration \nproperty is introduced at the Module level, an out of the box\nimplementation is not shipped for the Module class so setting\nthe proroperty on the Module class has no effect. The Overlay \nclass is the first class to provide out of the box ContainerEffect \nsupport.\n</p>"}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Module <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Module"}, {"type": "Object", "name": "userConfig", "description": " The configuration Object literal containing \nthe configuration that should be set for this module. See configuration \ndocumentation for more details."}], "description": "Module is a JavaScript representation of the Standard Module Format. \nStandard Module Format is a simple standard for markup containers where \nchild nodes representing the header, body, and footer of the content are \ndenoted using the CSS classes \"hd\", \"bd\", and \"ft\" respectively. \nModule is the base class for all other classes in the YUI \nContainer package."}], "namespace": "YAHOO.widget", "module": "container", "events": {"initEvent": {"params": [{"type": "class", "name": "classRef", "description": " class reference of the initializing \nclass, such as this.beforeInitEvent.fire(Module)"}], "description": "CustomEvent fired after class initalization.", "guessedname": "initEvent", "guessedtype": "property"}, "YAHOO.widget.Module.textResizeEvent": {"description": "Singleton CustomEvent fired when the font size is changed in the browser.\nOpera's \"zoom\" functionality currently does not support text \nsize detection.", "guessedname": "textResizeEvent", "guessedtype": "property"}, "hideEvent": {"description": "CustomEvent fired after the Module is hidden", "guessedname": "hideEvent", "guessedtype": "property"}, "beforeHideEvent": {"description": "CustomEvent fired before the Module is hidden", "guessedname": "beforeHideEvent", "guessedtype": "property"}, "changeBodyEvent": {"params": [{"type": "String/HTMLElement", "name": "content", "description": " String/element representing \nthe new body content"}], "description": "CustomEvent fired when the body content of the Module is modified", "guessedname": "changeBodyEvent", "guessedtype": "property"}, "beforeRenderEvent": {"description": "CustomEvent fired before the Module is rendered", "guessedname": "beforeRenderEvent", "guessedtype": "property"}, "changeContentEvent": {"description": "CustomEvent fired when the content of the Module is modified", "guessedname": "changeContentEvent", "guessedtype": "property"}, "beforeShowEvent": {"description": "CustomEvent fired before the Module is shown", "guessedname": "beforeShowEvent", "guessedtype": "property"}, "changeFooterEvent": {"params": [{"type": "String/HTMLElement", "name": "content", "description": " String/element representing \nthe new footer content"}], "description": "CustomEvent fired when the footer content of the Module \nis modified", "guessedname": "changeFooterEvent", "guessedtype": "property"}, "renderEvent": {"description": "CustomEvent fired after the Module is rendered", "guessedname": "renderEvent", "guessedtype": "property"}, "showEvent": {"description": "CustomEvent fired after the Module is shown", "guessedname": "showEvent", "guessedtype": "property"}, "beforeInitEvent": {"params": [{"type": "class", "name": "classRef", "description": " class reference of the initializing \nclass, such as this.beforeInitEvent.fire(Module)"}], "description": "CustomEvent fired prior to class initalization.", "guessedname": "beforeInitEvent", "guessedtype": "property"}, "appendEvent": {"description": "CustomEvent fired when the Module is appended to the DOM", "guessedname": "appendEvent", "guessedtype": "property"}, "changeHeaderEvent": {"params": [{"type": "String/HTMLElement", "name": "content", "description": " String/element representing \nthe new header content"}], "description": "CustomEvent fired when the header content of the Module \nis modified", "guessedname": "changeHeaderEvent", "guessedtype": "property"}, "destroyEvent": {"description": "CustomEvent fired when the Module is destroyed", "guessedname": "destroyEvent", "guessedtype": "property"}}, "guessedname": "Module", "methods": {"render": {"return": {"type": "Boolean", "description": "Success or failure of the render"}, "params": [{"type": "String", "name": "appendToNode", "description": " The element id to which the Module \nshould be appended to prior to rendering <em>OR</em>"}, {"type": "HTMLElement", "name": "appendToNode", "description": " The element to which the Module \nshould be appended to prior to rendering"}, {"type": "HTMLElement", "name": "moduleElement", "description": " OPTIONAL. The element that \nrepresents the actual Standard Module container."}], "description": "Renders the Module by inserting the elements that are not already \nin the main Module into their correct places. Optionally appends \nthe Module to the specified node prior to the render's execution. \n<p>\nFor Modules without existing markup, the appendToNode argument \nis REQUIRED. If this argument is ommitted and the current element is \nnot present in the document, the function will return false, \nindicating that the render was a failure.\n</p>\n<p>\nNOTE: As of 2.3.1, if the appendToNode is the document's body element\nthen the module is rendered as the first child of the body element, \nand not appended to it, to avoid Operation Aborted errors in IE when \nrendering the module before window's load event is fired. You can \nuse the appendtodocumentbody configuration property to change this \nto append to document.body if required.\n</p>", "guessedname": "render", "guessedtype": "function"}, "show": {"description": "Shows the Module element by setting the visible configuration \nproperty to true. Also fires two events: beforeShowEvent prior to \nthe visibility change, and showEvent after.", "guessedname": "show", "guessedtype": "function"}, "_renderBody": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element."}], "description": "Renders the currently set body into it's proper position under the \nmodule element. If the module element is not provided, \"this.element\" \nis used.", "guessedname": "_renderBody", "guessedtype": "function"}, "_renderHeader": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element"}], "description": "Renders the currently set header into it's proper position under the \nmodule element. If the module element is not provided, \"this.element\" \nis used.", "guessedname": "_renderHeader", "guessedtype": "function"}, "setBody": {"params": [{"type": "String", "name": "bodyContent", "description": " The HTML used to set the body. \nAs a convenience, non HTMLElement objects can also be passed into \nthe method, and will be treated as strings, with the body innerHTML\nset to their default toString implementations.\n<em>OR</em>"}, {"type": "HTMLElement", "name": "bodyContent", "description": " The HTMLElement to add as the first and only\nchild of the body element.\n<em>OR</em>"}, {"type": "DocumentFragment", "name": "bodyContent", "description": " The document fragment \ncontaining elements which are to be added to the body"}], "description": "Sets the Module's body content to the HTML specified. \nIf no body is present, one will be automatically created. \nAn empty string can be passed to the method to clear the contents of the body.", "guessedname": "setBody", "guessedtype": "function"}, "hide": {"description": "Hides the Module element by setting the visible configuration \nproperty to false. Also fires two events: beforeHideEvent prior to \nthe visibility change, and hideEvent after.", "guessedname": "hide", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Module which are fired \nautomatically at appropriate times by the Module class.", "guessedname": "initEvents", "guessedtype": "function"}, "initResizeMonitor": {"description": "Initialize an empty IFRAME that is placed out of the visible area \nthat can be used to detect text resize.", "guessedname": "initResizeMonitor", "guessedtype": "function"}, "_supportsCWResize": {"private": "", "description": "Text resize monitor helper method.\nDetermines if the browser supports resize events on iframe content windows.", "guessedname": "_supportsCWResize", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Module <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Module"}, {"type": "Object", "name": "userConfig", "description": " The configuration Object literal \ncontaining the configuration that should be set for this module. \nSee configuration documentation for more details."}], "description": "The Module class's initialization method, which is executed for\nModule and all of its subclasses. This method is automatically \ncalled by the constructor, and  sets up all DOM references for \npre-existing markup, and creates required markup if it is not \nalready present.\n<p>\nIf the element passed in does not have an id, one will be generated\nfor it.\n</p>", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Module"}, "description": "Returns a String representation of the Object.", "guessedname": "toString", "guessedtype": "function"}, "destroy": {"description": "Removes the Module element from the DOM and sets all child elements \nto null.", "guessedname": "destroy", "guessedtype": "function"}, "_renderFooter": {"protected": "", "params": [{"type": "HTMLElement", "name": "moduleElement", "description": " Optional. A reference to the module element"}], "description": "Renders the currently set footer into it's proper position under the \nmodule element. If the module element is not provided, \"this.element\" \nis used.", "guessedname": "_renderFooter", "guessedtype": "function"}, "appendToHeader": {"params": [{"type": "HTMLElement | DocumentFragment", "name": "element", "description": " The element to \nappend to the header. In the case of a document fragment, the\nchildren of the fragment will be appended to the header."}], "description": "Appends the passed element to the header. If no header is present, \none will be automatically created.", "guessedname": "appendToHeader", "guessedtype": "function"}, "onDomResize": {"params": [{"type": "DOMEvent", "name": "e", "description": " The DOM resize event"}, {"type": "Object", "name": "obj", "description": " The scope object passed to the handler"}], "description": "Event handler fired when the resize monitor element is resized.", "guessedname": "onDomResize", "guessedtype": "function"}, "setFooter": {"params": [{"type": "String", "name": "footerContent", "description": " The HTML used to set the footer \nAs a convenience, non HTMLElement objects can also be passed into \nthe method, and will be treated as strings, with the footer innerHTML\nset to their default toString implementations.\n<em>OR</em>"}, {"type": "HTMLElement", "name": "footerContent", "description": " The HTMLElement to append to \nthe footer\n<em>OR</em>"}, {"type": "DocumentFragment", "name": "footerContent", "description": " The document fragment containing \nelements which are to be added to the footer"}], "description": "Sets the Module's footer content to the HTML specified, or appends \nthe passed element to the footer. If no footer is present, one will \nbe automatically created. An empty string can be passed to the method\nto clear the contents of the footer.", "guessedname": "setFooter", "guessedtype": "function"}, "YAHOO.widget.Module.forceDocumentRedraw": {"static": "", "description": "Helper utility method, which forces a document level \nredraw for Opera, which can help remove repaint\nirregularities after applying DOM changes.", "guessedname": "forceDocumentRedraw", "guessedtype": "function"}, "configMonitorResize": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "Default event handler for the \"monitorresize\" configuration property", "guessedname": "configMonitorResize", "guessedtype": "function"}, "appendToFooter": {"params": [{"type": "HTMLElement | DocumentFragment", "name": "element", "description": " The element to \nappend to the footer. In the case of a document fragment, the\nchildren of the fragment will be appended to the footer"}], "description": "Appends the passed element to the footer. If no footer is present, \none will be automatically created.", "guessedname": "appendToFooter", "guessedtype": "function"}, "configVisible": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "Default event handler for changing the visibility property of a \nModule. By default, this is achieved by switching the \"display\" style \nbetween \"block\" and \"none\".\nThis method is responsible for firing showEvent and hideEvent.", "guessedname": "configVisible", "guessedtype": "function"}, "_addToParent": {"protected": "", "params": [{"type": "parentNode", "name": "The", "description": " HTML element to which the element will be added"}, {"type": "element", "name": "The", "description": " HTML element to be added to parentNode's children"}], "description": "This method is a protected helper, used when constructing the DOM structure for the module \nto account for situations which may cause Operation Aborted errors in IE. It should not \nbe used for general DOM construction.\n<p>\nIf the parentNode is not document.body, the element is appended as the last element.\n</p>\n<p>\nIf the parentNode is document.body the element is added as the first child to help\nprevent Operation Aborted errors in IE.\n</p>", "guessedname": "_addToParent", "guessedtype": "function"}, "appendToBody": {"params": [{"type": "HTMLElement | DocumentFragment", "name": "element", "description": " The element to \nappend to the body. In the case of a document fragment, the\nchildren of the fragment will be appended to the body."}], "description": "Appends the passed element to the body. If no body is present, one \nwill be automatically created.", "guessedname": "appendToBody", "guessedtype": "function"}, "_initResizeMonitor": {"protected": "", "description": "Create and initialize the text resize monitoring iframe.", "guessedname": "_initResizeMonitor", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the custom events for Module which are fired \nautomatically at appropriate times by the Module class.", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "setHeader": {"params": [{"type": "String", "name": "headerContent", "description": " The string used to set the header.\nAs a convenience, non HTMLElement objects can also be passed into \nthe method, and will be treated as strings, with the header innerHTML\nset to their default toString implementations.\n<em>OR</em>"}, {"type": "HTMLElement", "name": "headerContent", "description": " The HTMLElement to append to \n<em>OR</em>"}, {"type": "DocumentFragment", "name": "headerContent", "description": " The document fragment \ncontaining elements which are to be added to the header"}], "description": "Sets the Module's header content to the string specified, or appends \nthe passed element to the header. If no header is present, one will \nbe automatically created. An empty string can be passed to the method\nto clear the contents of the header.", "guessedname": "setHeader", "guessedtype": "function"}}, "file": "Module.js", "guessedtype": "function", "shortname": "Module", "properties": {"body": {"type": "HTMLElement", "description": "The body element, denoted with CSS class \"bd\"", "guessedname": "body", "guessedtype": "property"}, "isSecure": {"type": "Boolean", "description": "Boolean representing whether or not the current browsing context is \nsecure (https)", "guessedname": "isSecure", "guessedtype": "function"}, "YAHOO.widget.Module.CSS_MODULE": {"description": "Constant for the default CSS class name that represents a Module", "static": "", "guessedname": "CSS_MODULE", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Module.CSS_HEADER": {"description": "Constant representing the module header", "static": "", "guessedname": "CSS_HEADER", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Module.CSS_FOOTER": {"description": "Constant representing the module footer", "static": "", "guessedname": "CSS_FOOTER", "guessedtype": "property", "type": "String", "final": ""}, "contructor": {"type": "Function", "description": "The class's constructor function", "guessedname": "constructor", "guessedtype": "property"}, "platform": {"type": "String", "description": "String representing the current user-agent platform", "guessedname": "platform", "guessedtype": "function"}, "element": {"type": "HTMLElement", "description": "The main module element that contains the header, body, and footer", "guessedname": "element", "guessedtype": "property"}, "YAHOO.widget.Module.RESIZE_MONITOR_SECURE_URL": {"description": "Constant representing the url for the \"src\" attribute of the iframe \nused to monitor changes to the browser's base font size", "static": "", "guessedname": "RESIZE_MONITOR_SECURE_URL", "guessedtype": "property", "type": "String", "final": ""}, "header": {"type": "HTMLElement", "description": "The header element, denoted with CSS class \"hd\"", "guessedname": "header", "guessedtype": "property"}, "YAHOO.widget.Module.CSS_BODY": {"description": "Constant representing the module body", "static": "", "guessedname": "CSS_BODY", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Module.IMG_ROOT": {"description": "Constant representing the prefix path to use for non-secure images", "static": "", "guessedname": "IMG_ROOT", "guessedtype": "property", "type": "String", "final": ""}, "EVENT_TYPES": {"description": "Constant representing the name of the Module's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "imageRoot": {"deprecated": "It is recommend that any images for a Module be applied\nvia CSS using the \"background-image\" property.", "type": "String", "description": "A string representing the root path for all images created by\na Module instance.", "guessedname": "imageRoot", "guessedtype": "property"}, "cfg": {"type": "YAHOO.util.Config", "description": "The Module's Config object used for monitoring \nconfiguration properties.", "guessedname": "cfg", "guessedtype": "property"}, "id": {"type": "String", "description": "The id of the element", "guessedname": "id", "guessedtype": "property"}, "footer": {"type": "HTMLElement", "description": "The footer element, denoted with CSS class \"ft\"", "guessedname": "footer", "guessedtype": "property"}, "YAHOO.widget.Module.RESIZE_MONITOR_BUFFER": {"static": "", "type": "Number", "description": "Constant representing the buffer amount (in pixels) to use when positioning\nthe text resize monitor offscreen. The resize monitor is positioned\noffscreen by an amount eqaul to its offsetHeight + the buffer value."}, "YAHOO.widget.Module.IMG_ROOT_SSL": {"description": "Constant representing the prefix path to use for securely served images", "static": "", "guessedname": "IMG_ROOT_SSL", "guessedtype": "property", "type": "String", "final": ""}, "DEFAULT_CONFIG": {"description": "Constant representing the Module's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "browser": {"deprecated": "Use YAHOO.env.ua", "type": "String", "description": "String representing the user-agent of the browser", "guessedname": "browser", "guessedtype": "function"}}, "description": "Module is a JavaScript representation of the Standard Module Format. \nStandard Module Format is a simple standard for markup containers where \nchild nodes representing the header, body, and footer of the content are \ndenoted using the CSS classes \"hd\", \"bd\", and \"ft\" respectively. \nModule is the base class for all other classes in the YUI \nContainer package."}, "YAHOO.widget.Paginator.ui.FirstPageLink": {"properties": {"current": {"guessedname": "current", "type": "HTMLElement", "description": "The currently placed HTMLElement node", "private": "", "guessedtype": "property"}, "span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node (inactive link)", "private": "", "guessedtype": "property"}, "link": {"guessedname": "link", "type": "HTMLElement", "description": "Link node", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.FirstPageLink", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the link to jump to the first page."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforeFirstPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFirstPageLinkClassChange", "description": "Fires before the value for the configuration attribute 'firstPageLinkClass' changes. Return false to cancel the attribute change."}, "firstPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "firstPageLinkLabelChange", "description": "Fires when the value for the configuration attribute 'firstPageLinkLabel' changes."}, "beforeFirstPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFirstPageLinkLabelChange", "description": "Fires before the value for the configuration attribute 'firstPageLinkLabel' changes. Return false to cancel the attribute change."}, "firstPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "firstPageLinkClassChange", "description": "Fires when the value for the configuration attribute 'firstPageLinkClass' changes."}}, "guessedname": "FirstPageLink", "methods": {"onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the link's onclick event.  Pass new value to setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the link/span node and clears event listeners\nremoval.", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Swap the link and span nodes if appropriate.", "guessedname": "update", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}}, "file": "FirstPageLink.js", "guessedtype": "function", "shortname": "FirstPageLink", "configs": {"firstPageLinkLabel": {"default": "'<< first'", "description": "Used as innerHTML for the first page link/span."}, "firstPageLinkClass": {"default": "'yui-pg-first'", "description": "CSS class assigned to the link/span"}}, "description": "ui Component to generate the link to jump to the first page."}, "YAHOO.tool.TestCase.Wait": {"name": "YAHOO.tool.TestCase.Wait", "constructors": [{"params": [{"type": "Function", "name": "segment", "description": " A function to run when the wait is over."}, {"type": "int", "name": "delay", "description": " The number of milliseconds to wait before running the code."}], "description": "Represents a stoppage in test execution to wait for an amount of time before\ncontinuing."}], "namespace": "YAHOO.tool.TestCase", "module": "yuitest", "guessedname": "Wait", "methods": {"XML": {"return": {"type": "String", "description": "An XML-formatted string of results."}, "description": "Returns test results formatted as an XML string.", "static": "", "guessedname": "XML", "guessedtype": "function", "params": [{"type": "Object", "name": "result", "description": " The results object created by TestRunner."}]}, "JSON": {"return": {"type": "String", "description": "An XML-formatted string of results."}, "description": "Returns test results formatted as a JSON string. Requires JSON utility.", "static": "", "guessedname": "JSON", "guessedtype": "function", "params": [{"type": "Object", "name": "result", "description": " The results object created by TestRunner."}]}}, "file": "TestCase.js", "guessedtype": "function", "shortname": "Wait", "properties": {"delay": {"type": "int", "description": "The delay before running the segment of code."}, "segment": {"type": "Function", "description": "The segment of code to run when the wait is over."}}, "description": "Represents a stoppage in test execution to wait for an amount of time before\ncontinuing."}, "YAHOO.lang": {"description": "Provides the language utilites and extensions used by the library", "namespace": "", "module": "yahoo", "guessedname": "lang", "methods": {"isArray": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines wheather or not the provided object is an array.", "guessedname": "isArray", "guessedtype": "function"}, "trim": {"return": {"type": "string", "description": "the trimmed string"}, "description": "Returns a string without any leading or trailing whitespace.  If \nthe input is not a string, the input will be returned untouched.", "since": "2.3.0", "params": [{"type": "string", "name": "s", "description": "  the string to trim"}], "guessedname": "trim", "guessedtype": "function"}, "isString": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is a string", "guessedname": "isString", "guessedtype": "function"}, "hasOwnProperty": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}, {"type": "string", "name": "prop", "description": "  the name of the property to test"}], "description": "Determines whether or not the property was added\nto the object instance.  Returns false if the property is not present\nin the object, or was inherited from the prototype.\nThis abstraction is provided to enable hasOwnProperty for Safari 1.3.x.\nThere is a discrepancy between YAHOO.lang.hasOwnProperty and\nObject.prototype.hasOwnProperty when the property is a primitive added to\nboth the instance AND prototype with the same value:\n<pre>\nvar A = function() {};\nA.prototype.foo = 'foo';\nvar a = new A();\na.foo = 'foo';\nalert(a.hasOwnProperty('foo')); // true\nalert(YAHOO.lang.hasOwnProperty(a, 'foo')); // false when using fallback\n</pre>", "guessedname": "hasOwnProperty", "guessedtype": "property"}, "isBoolean": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is a boolean", "guessedname": "isBoolean", "guessedtype": "function"}, "extend": {"static": "", "params": [{"type": "Function", "name": "subc", "description": "   the object to modify"}, {"type": "Function", "name": "superc", "description": " the object to inherit"}, {"type": "Object", "name": "overrides", "description": "  additional properties/methods to add to the\nsubclass prototype.  These will override the\nmatching items obtained from the superclass \nif present."}], "description": "Utility to set up the prototype, constructor and superclass properties to\nsupport an inheritance strategy that can chain constructors and methods.\nStatic members will not be inherited.", "guessedname": "extend", "guessedtype": "function"}, "merge": {"return": {"type": "", "description": "the new merged object"}, "description": "Returns a new object containing all of the properties of\nall the supplied objects.  The properties from later objects\nwill overwrite those in earlier objects.", "since": "2.3.0", "params": [{"type": "Object*", "name": "arguments", "description": "  the objects to merge"}], "guessedname": "merge", "guessedtype": "function"}, "later": {"return": {"type": "", "description": "a timer object. Call the cancel() method on this object to \nstop the timer."}, "description": "Executes the supplied function in the context of the supplied \nobject 'when' milliseconds later.  Executes the function a \nsingle time unless periodic is set to true.", "since": "2.4.0", "params": [{"type": "int", "name": "when", "description": "  the number of milliseconds to wait until the fn \nis executed"}, {"type": "", "name": "o", "description": " the context object"}, {"type": "Function|String", "name": "fn", "description": "  the function to execute or the name of \nthe method in the 'o' object to execute"}, {"type": "", "name": "data", "description": " [Array] data that is provided to the function.  This accepts\neither a single item or an array.  If an array is provided, the\nfunction is executed with one parameter for each array item.  If\nyou need to pass a single array parameter, it needs to be wrapped in\nan array [myarray]"}, {"type": "boolean", "name": "periodic", "description": "  if true, executes continuously at supplied \ninterval until canceled"}], "guessedname": "later", "guessedtype": "function"}, "substitute": {"return": {"type": "String", "description": "the substituted string"}, "description": "Does variable substitution on a string. It scans through the string \nlooking for expressions enclosed in { } braces. If an expression \nis found, it is used a key on the object.  If there is a space in\nthe key, the first word is used for the key and the rest is provided\nto an optional function to be used to programatically determine the\nvalue (the extra information might be used for this decision). If \nthe value for the key in the object, or what is returned from the\nfunction has a string value, number value, or object value, it is \nsubstituted for the bracket expression and it repeats.  If this\nvalue is an object, it uses the Object's toString() if this has\nbeen overridden, otherwise it does a shallow dump of the key/value\npairs.", "since": "2.3.0", "params": [{"type": "String", "name": "s", "description": "  The string that will be modified."}, {"type": "Object", "name": "o", "description": "  An object containing the replacement values"}, {"type": "Function", "name": "f", "description": "  An optional function that can be used to\nprocess each match.  It receives the key,\nvalue, and any extra metadata included with\nthe key inside of the braces."}], "guessedname": "substitute", "guessedtype": "function"}, "isNull": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is null", "guessedname": "isNull", "guessedtype": "function"}, "isValue": {"return": {"type": "boolean", "description": "true if it is not null/undefined/NaN || false"}, "description": "A convenience method for detecting a legitimate non-null value.\nReturns false for null/undefined/NaN, true for other values, \nincluding 0/false/''", "since": "2.3.0", "params": [{"type": "any", "name": "o", "description": "  the item to test"}], "guessedname": "isValue", "guessedtype": "function"}, "augmentObject": {"description": "Applies all properties in the supplier to the receiver if the\nreceiver does not have these properties yet.  Optionally, one or \nmore methods/properties can be specified (as additional \nparameters).  This option will overwrite the property if receiver \nhas it already.  If true is passed as the third parameter, all \nproperties will be applied and _will_ overwrite properties in \nthe receiver.", "since": "2.3.0", "static": "", "guessedname": "augmentObject", "guessedtype": "function", "params": [{"type": "Function", "name": "r", "description": "  the object to receive the augmentation"}, {"type": "Function", "name": "s", "description": "  the object that supplies the properties to augment"}, {"type": "String*|boolean", "name": "arguments", "description": " zero or more properties methods \nto augment the receiver with.  If none specified, everything\nin the supplier will be used unless it would\noverwrite an existing property in the receiver. If true\nis specified as the third parameter, all properties will\nbe applied and will overwrite an existing property in\nthe receiver"}]}, "augment": {"description": "Same as YAHOO.lang.augmentObject, except it only applies prototype \nproperties.  This is an alias for augmentProto.", "see": "YAHOO.lang.augmentObject", "static": "", "guessedname": "augment", "guessedtype": "property", "params": [{"type": "Function", "name": "r", "description": "  the object to receive the augmentation"}, {"type": "Function", "name": "s", "description": "  the object that supplies the properties to augment"}, {"type": "String*|boolean", "name": "arguments", "description": " zero or more properties methods to \naugment the receiver with.  If none specified, everything\nin the supplier will be used unless it would\noverwrite an existing property in the receiver.  if true\nis specified as the third parameter, all properties will\nbe applied and will overwrite an existing property in\nthe receiver"}]}, "augmentProto": {"description": "Same as YAHOO.lang.augmentObject, except it only applies prototype properties", "see": "YAHOO.lang.augmentObject", "static": "", "guessedname": "augmentProto", "guessedtype": "function", "params": [{"type": "Function", "name": "r", "description": "  the object to receive the augmentation"}, {"type": "Function", "name": "s", "description": "  the object that supplies the properties to augment"}, {"type": "String*|boolean", "name": "arguments", "description": " zero or more properties methods \nto augment the receiver with.  If none specified, everything \nin the supplier will be used unless it would overwrite an existing \nproperty in the receiver.  if true is specified as the third \nparameter, all properties will be applied and will overwrite an \nexisting property in the receiver"}]}, "isFunction": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is a function.\nNote: Internet Explorer thinks certain functions are objects:\nvar obj = document.createElement(\"object\");\nYAHOO.lang.isFunction(obj.getAttribute) // reports false in IE\nvar input = document.createElement(\"input\"); // append to body\nYAHOO.lang.isFunction(input.focus) // reports false in IE\nYou will have to implement additional tests if these functions\nmatter to you.", "guessedname": "isFunction", "guessedtype": "function"}, "isNumber": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is a legal number", "guessedname": "isNumber", "guessedtype": "function"}, "isObject": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is of type object\nor function", "guessedname": "isObject", "guessedtype": "function"}, "dump": {"return": {"type": "String", "description": "the dump result"}, "description": "Returns a simple string representation of the object or array.\nOther types of objects will be returned unprocessed.  Arrays\nare expected to be indexed.  Use object notation for\nassociative arrays.", "since": "2.3.0", "params": [{"type": "Object", "name": "o", "description": "  The object to dump"}, {"type": "int", "name": "d", "description": "  How deep to recurse child objects, default 3"}], "guessedname": "dump", "guessedtype": "function"}, "isUndefined": {"return": {"type": "boolean", "description": "the result"}, "params": [{"type": "any", "name": "o", "description": " The object being testing"}], "description": "Determines whether or not the provided object is undefined", "guessedname": "isUndefined", "guessedtype": "function"}}, "file": "Lang.js", "guessedtype": "property", "shortname": "YAHOO.lang", "properties": {"_IEEnumFix": {"description": "IE will not enumerate native functions in a derived object even if the\nfunction was overridden.  This is a workaround for specific functions \nwe care about on the Object prototype.", "param": "{Function} r  the object to receive the augmentation", "static": "", "private": "", "guessedname": "_IEEnumFix", "guessedtype": "function"}}, "name": "YAHOO.lang"}, "YAHOO.widget.DataTable": {"name": "YAHOO.widget.DataTable", "configs": {"paginator": {"default": "null", "type": "{Object|YAHOO.widget.Paginator}", "description": "An instance of YAHOO.widget.Paginator."}, "numberOptions": {"default": "{decimalPlaces:0, thousandsSeparator:\",\"}", "type": "Object", "description": "Default config passed to YAHOO.util.Number.format() by the 'number' Column formatter."}, "initialLoad": {"default": "true", "type": "Boolean | Object", "description": "Determines whether or not to load data at instantiation. By\ndefault, will trigger a sendRequest() to the DataSource and pass in the\nrequest defined by initialRequest. If set to false, data will not load\nat instantiation. Alternatively, implementers who wish to work with a \ncustom payload may pass in an object literal with the following values:\n<dl>\n<dt>request (MIXED)</dt>\n<dd>Request value.</dd>\n<dt>argument (MIXED)</dt>\n<dd>Custom data that will be passed through to the callback function.</dd>\n</dl>"}, "initialRequest": {"default": "null", "type": "MIXED", "description": "Defines the initial request that gets sent to the DataSource\nduring initialization. Value is ignored if initialLoad is set to any value\nother than true."}, "formatRow": {"default": "null", "type": "function", "description": "A function that accepts a TR element and its associated Record\nfor custom formatting. The function must return TRUE in order to automatically\ncontinue formatting of child TD elements, else TD elements will not be\nautomatically formatted."}, "renderLoopSize": {"default": "0", "type": "Number", "description": "A value greater than 0 enables DOM rendering of rows to be\nexecuted from a non-blocking timeout queue and sets how many rows to be\nrendered per timeout. Recommended for very large data sets."}, "sortedBy": {"type": "Object | null", "description": "Object literal provides metadata for initial sort values if\ndata will arrive pre-sorted:\n<dl>\n<dt>sortedBy.key</dt>\n<dd>{String} Key of sorted Column</dd>\n<dt>sortedBy.dir</dt>\n<dd>{String} Initial sort direction, either YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTable.CLASS_DESC</dd>\n</dl>"}, "currencySymbol": {"deprecated": ""}, "summary": {"default": "\"\"", "type": "String", "description": "Value for the SUMMARY attribute."}, "dynamicData": {"default": "false", "type": "Boolean", "description": "If true, sorting and pagination are relegated to the DataSource\nfor handling, using the request returned by the \"generateRequest\" function.\nEach new DataSource response blows away all previous Records. False by default, so \nsorting and pagination will be handled directly on the client side, without\ncausing any new requests for data from the DataSource."}, "caption": {"type": "String", "description": "Value for the CAPTION element. NB: Not supported in\nScrollingDataTable."}, "draggableColumns": {"default": "false", "type": "Boolean", "description": "True if Columns are draggable to reorder, false otherwise.\nThe Drag & Drop Utility is required to enable this feature. Only top-level\nand non-nested Columns are draggable. Write once."}, "currencyOptions": {"default": "{prefix: $, decimalPlaces:2, decimalSeparator:\".\", thousandsSeparator:\",\"}", "type": "Object", "description": "Default config passed to YAHOO.util.Number.format() by the 'currency' Column formatter."}, "MSG_SORTDESC": {"default": "\"Click to sort descending\"", "type": "String", "description": "Message to display in tooltip to sort Column in descending order."}, "MSG_LOADING": {"default": "\"Loading...\"", "type": "String", "description": "Message to display while DataTable is loading data."}, "dateOptions": {"default": "{format:\"%m/%d/%Y\", locale:\"en\"}", "type": "Object", "description": "Default config passed to YAHOO.util.Date.format() by the 'date' Column formatter."}, "selectionMode": {"default": "\"standard\"", "type": "String", "description": "Specifies row or cell selection mode. Accepts the following strings:\n<dl>\n<dt>\"standard\"</dt>\n<dd>Standard row selection with support for modifier keys to enable\nmultiple selections.</dd>\n<dt>\"single\"</dt>\n<dd>Row selection with modifier keys disabled to not allow\nmultiple selections.</dd>\n<dt>\"singlecell\"</dt>\n<dd>Cell selection with modifier keys disabled to not allow\nmultiple selections.</dd>\n<dt>\"cellblock\"</dt>\n<dd>Cell selection with support for modifier keys to enable multiple\nselections in a block-fashion, like a spreadsheet.</dd>\n<dt>\"cellrange\"</dt>\n<dd>Cell selection with support for modifier keys to enable multiple\nselections in a range-fashion, like a calendar.</dd>\n</dl>"}, "MSG_EMPTY": {"default": "\"No records found.\"", "type": "String", "description": "Message to display if DataTable has no data."}, "MSG_ERROR": {"default": "\"Data error.\"", "type": "String", "description": "Message to display while DataTable has data error."}, "MSG_SORTASC": {"default": "\"Click to sort ascending\"", "type": "String", "description": "Message to display in tooltip to sort Column in ascending order."}, "generateRequest": {"default": "HTMLFunction", "type": "function", "description": "A function that converts an object literal of desired DataTable\nstates into a request value which is then passed to the DataSource's\nsendRequest method in order to retrieve data for those states. This\nfunction is passed an object literal of state data and a reference to the\nDataTable instance:\n<dl>\n<dt>pagination<dt>\n<dd>        \n<dt>offsetRecord</dt>\n<dd>{Number} Index of the first Record of the desired page</dd>\n<dt>rowsPerPage</dt>\n<dd>{Number} Number of rows per page</dd>\n</dd>\n<dt>sortedBy</dt>\n<dd>                \n<dt>key</dt>\n<dd>{String} Key of sorted Column</dd>\n<dt>dir</dt>\n<dd>{String} Sort direction, either YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTable.CLASS_DESC</dd>\n</dd>\n<dt>self</dt>\n<dd>The DataTable instance</dd>\n</dl>\nand by default returns a String of syntax:\n\"sort={sortColumn}&dir={sortDir}&startIndex={pageStartIndex}&results={rowsPerPage}\""}}, "constructors": [{"params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Container element for the TABLE."}, {"type": "Object[]", "name": "aColumnDefs", "description": "  Array of object literal Column definitions."}, {"type": "YAHOO.util.DataSource", "name": "oDataSource", "description": "  DataSource instance."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "DataTable class for the YUI DataTable widget."}], "namespace": "YAHOO.widget", "module": "datatable", "events": {"cellUnselectEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The unselected TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the unselected cell."}], "description": "Fired when a cell is unselected."}, "tableFocusEvent": {"description": "Fired when the DataTable has a focus event."}, "tableKeyEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a key event."}, "beforeInitialLoadChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitialLoadChange", "description": "Fires before the value for the configuration attribute 'initialLoad' changes. Return false to cancel the attribute change."}, "rowAddEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The added Record."}], "description": "Fired when a row is added."}, "beforeGenerateRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGenerateRequestChange", "description": "Fires before the value for the configuration attribute 'generateRequest' changes. Return false to cancel the attribute change."}, "rowDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a dblclick."}, "initialLoadChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initialLoadChange", "description": "Fires when the value for the configuration attribute 'initialLoad' changes."}, "tableBlurEvent": {"description": "Fired when the DataTable has a blur event."}, "MSG_ERRORChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_ERRORChange", "description": "Fires when the value for the configuration attribute 'MSG_ERROR' changes."}, "beforeMSG_SORTASCChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_SORTASCChange", "description": "Fires before the value for the configuration attribute 'MSG_SORTASC' changes. Return false to cancel the attribute change."}, "currencySymbolChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "currencySymbolChange", "description": "Fires when the value for the configuration attribute 'currencySymbol' changes."}, "initEvent": {"description": "Fired when the DataTable's rows are rendered from an initialized state."}, "headerCellClickEvent": {"deprecated": "Use theadCellClickEvent."}, "disableEvent": {"description": "Fired when the DataTable is disabled."}, "rowClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a click."}, "tableMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a mouseout."}, "rowUpdateEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The updated Record."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Object literal of the old data."}], "description": "Fired when a row is updated."}, "editorUnblockEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor is unblocked."}, "theadLabelMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a mousedown."}, "tableMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a mouseup."}, "columnSortEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "String", "name": "oArgs.dir", "description": "  Sort direction: YAHOO.widget.DataTable.CLASS_ASC\nor YAHOO.widget.DataTable.CLASS_DESC."}], "description": "Fired when a column is sorted."}, "beforeCurrencySymbolChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCurrencySymbolChange", "description": "Fires before the value for the configuration attribute 'currencySymbol' changes. Return false to cancel the attribute change."}, "captionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "captionChange", "description": "Fires when the value for the configuration attribute 'caption' changes."}, "tableMsgShowEvent": {"params": [{"type": "String", "name": "oArgs.html", "description": "  The HTML displayed."}, {"type": "String", "name": "oArgs.className", "description": "  The className assigned."}], "description": "Fired when a message is shown in the DataTable's message element."}, "beforeDynamicDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDynamicDataChange", "description": "Fires before the value for the configuration attribute 'dynamicData' changes. Return false to cancel the attribute change."}, "theadLabelClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a click."}, "cellSelectEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The selected TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record instance."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the selected cell."}], "description": "Fired when a cell is selected."}, "columnUnhighlightEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The unhighlighted Column."}], "description": "Fired when a column is unhighlighted."}, "theadRowMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a mouseup."}, "headerRowMousedownEvent": {"deprecated": "Use theadRowMousedownEvent."}, "columnHighlightEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The highlighted Column."}], "description": "Fired when a column is highlighted."}, "beforeRenderEvent": {"description": "Fired before the DataTable's DOM is rendered or modified."}, "theadRowMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a mousedown."}, "cellMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a mouseout."}, "linkClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The A element."}], "description": "Fired when a link is clicked."}, "tableMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a mousedown."}, "theadCellMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a mousedown."}, "rowMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a mouseover."}, "renderLoopSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "renderLoopSizeChange", "description": "Fires when the value for the configuration attribute 'renderLoopSize' changes."}, "headerLabelClickEvent": {"deprecated": "Use theadLabelClickEvent."}, "theadRowMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a mouseout."}, "columnSelectEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is selected."}, "headerCellMouseoverEvent": {"deprecated": "Use theadCellMouseoverEvent."}, "numberOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "numberOptionsChange", "description": "Fires when the value for the configuration attribute 'numberOptions' changes."}, "theadKeyEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable THEAD element has a key event."}, "columnResizeEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}, {"type": "Number", "name": "oArgs.width", "description": "  Width in pixels."}], "description": "Fired when a column is drag-resized."}, "theadLabelMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a mouseover."}, "MSG_SORTDESCChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_SORTDESCChange", "description": "Fires when the value for the configuration attribute 'MSG_SORTDESC' changes."}, "editorKeydownEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}], "description": "Fired when a CellEditor has a keydown."}, "headerLabelMouseoutEvent": {"deprecated": "Use theadLabelMouseoutEvent."}, "theadFocusEvent": {"description": "Fired when the DataTable THEAD element has a focus event."}, "editorRevertEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is reverted."}, "cellClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a click."}, "editorBlockEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor is blocked."}, "headerCellMousedownEvent": {"deprecated": "Use theadCellMousedownEvent."}, "beforeMSG_ERRORChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_ERRORChange", "description": "Fires before the value for the configuration attribute 'MSG_ERROR' changes. Return false to cancel the attribute change."}, "columnSetWidthEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "Number", "name": "oArgs.width", "description": "  The width in pixels."}], "description": "Fired when a column width is set."}, "dropdownChangeEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SELECT element."}], "description": "Fired when a SELECT element is changed."}, "paginatorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "paginatorChange", "description": "Fires when the value for the configuration attribute 'paginator' changes."}, "undisableEvent": {"description": "Fired when the DataTable is undisabled."}, "beforePaginatorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePaginatorChange", "description": "Fires before the value for the configuration attribute 'paginator' changes. Return false to cancel the attribute change."}, "checkboxClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The CHECKBOX element."}], "description": "Fired when a CHECKBOX element is clicked."}, "columnReorderEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "Number", "name": "oArgs.oldIndex", "description": "  The previous index position."}], "description": "Fired when a Column is moved to a new index."}, "headerLabelMouseoverEvent": {"deprecated": "Use theadLabelMouseoverEvent."}, "currencyOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "currencyOptionsChange", "description": "Fires when the value for the configuration attribute 'currencyOptions' changes."}, "radioClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The RADIO element."}], "description": "Fired when a RADIO element is clicked."}, "headerCellDblclickEvent": {"deprecated": "Use theadCellDblclickEvent."}, "cellUpdateEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The updated Record."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The updated Column."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Original data value of the updated cell."}], "description": "Fired when a cell is updated."}, "headerRowMouseoutEvent": {"deprecated": "Use theadRowMouseoutEvent."}, "tbodyKeyEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable TBODY element has a key event."}, "beforeFormatRowChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFormatRowChange", "description": "Fires before the value for the configuration attribute 'formatRow' changes. Return false to cancel the attribute change."}, "rowsDeleteEvent": {"params": [{"type": "Object[]", "name": "oArgs.oldData", "description": "  Array of object literals of the deleted data."}, {"type": "Number", "name": "oArgs.recordIndex", "description": "  Index of the first deleted Record."}, {"type": "Number", "name": "oArgs.count", "description": "  Number of deleted Records."}], "description": "Fired when rows are deleted."}, "cellFormatEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The formatted TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record instance."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the formatted cell."}], "description": "Fired when a cell is formatted."}, "editorUpdateEvent": {"deprecated": "Use CellEditor class."}, "headerLabelMousedownEvent": {"deprecated": "Use theadLabelMousedownEvent."}, "theadRowClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a click."}, "theadRowDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a dblclick."}, "columnRemoveEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is removed."}, "theadCellMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a mouseover."}, "editorCancelEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor input is canceled."}, "cellDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a dblclick."}, "cellUnhighlightEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The unhighlighted TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record instance."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the unhighlighted cell."}], "description": "Fired when a cell is unhighlighted."}, "columnInsertEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}, {"type": "Number", "name": "oArgs.index", "description": "  The index position."}], "description": "Fired when a column is inserted."}, "tableDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a dblclick."}, "summaryChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "summaryChange", "description": "Fires when the value for the configuration attribute 'summary' changes."}, "cellMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a mouseup."}, "theadCellMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a mouseup."}, "rowUnselectEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The unselected TR element, if applicable."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The unselected Record."}], "description": "Fired when a row is unselected."}, "buttonClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The BUTTON element."}], "description": "Fired when a BUTTON element or INPUT element of type \"button\", \"image\",\n\"submit\", \"reset\" is clicked."}, "generateRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "generateRequestChange", "description": "Fires when the value for the configuration attribute 'generateRequest' changes."}, "beforeRenderLoopSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRenderLoopSizeChange", "description": "Fires before the value for the configuration attribute 'renderLoopSize' changes. Return false to cancel the attribute change."}, "MSG_LOADINGChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_LOADINGChange", "description": "Fires when the value for the configuration attribute 'MSG_LOADING' changes."}, "beforeSortedByChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSortedByChange", "description": "Fires before the value for the configuration attribute 'sortedBy' changes. Return false to cancel the attribute change."}, "columnUnsetWidthEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column width is unset."}, "beforeMSG_LOADINGChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_LOADINGChange", "description": "Fires before the value for the configuration attribute 'MSG_LOADING' changes. Return false to cancel the attribute change."}, "rowMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a mouseout."}, "tableClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a click."}, "headerRowClickEvent": {"deprecated": "Use theadRowClickEvent."}, "rowsAddEvent": {"params": [{"type": "YAHOO.widget.Record[]", "name": "oArgs.record", "description": "  The added Records."}], "description": "Fired when rows are added."}, "dateOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dateOptionsChange", "description": "Fires when the value for the configuration attribute 'dateOptions' changes."}, "theadRowMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a THEAD row has a mouseover."}, "theadCellClickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a click."}, "theadLabelMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a mouseout."}, "tbodyFocusEvent": {"description": "Fired when the DataTable TBODY element has a focus event."}, "columnUnselectEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is unselected."}, "editorShowEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor is shown."}, "columnHideEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is hidden."}, "beforeDateOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDateOptionsChange", "description": "Fires before the value for the configuration attribute 'dateOptions' changes. Return false to cancel the attribute change."}, "editorBlurEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor has a blur event."}, "rowMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a mouseup."}, "headerLabelDbllickEvent": {"deprecated": "Use theadLabelDblclickEvent."}, "draggableColumnsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "draggableColumnsChange", "description": "Fires when the value for the configuration attribute 'draggableColumns' changes."}, "theadCellMouseoutEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a mouseout."}, "initialRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initialRequestChange", "description": "Fires when the value for the configuration attribute 'initialRequest' changes."}, "theadCellDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TH element."}], "description": "Fired when a THEAD cell has a dblclick."}, "cellHighlightEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The highlighted TD element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The associated Record instance."}, {"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The associated Column instance."}, {"type": "String", "name": "oArgs.key", "description": "  (deprecated) The key of the highlighted cell."}], "description": "Fired when a cell is highlighted."}, "headerCellMouseoutEvent": {"deprecated": "Use theadCellMouseoutEvent."}, "headerRowDblclickEvent": {"deprecated": "Use theadRowDblclickEvent."}, "beforeNumberOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNumberOptionsChange", "description": "Fires before the value for the configuration attribute 'numberOptions' changes. Return false to cancel the attribute change."}, "MSG_EMPTYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_EMPTYChange", "description": "Fires when the value for the configuration attribute 'MSG_EMPTY' changes."}, "cellMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a mouseover."}, "rowMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TR element."}], "description": "Fired when a row has a mousedown."}, "theadLabelMouseupEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a mouseup."}, "beforeCurrencyOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCurrencyOptionsChange", "description": "Fires before the value for the configuration attribute 'currencyOptions' changes. Return false to cancel the attribute change."}, "tableMouseoverEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's TABLE element."}], "description": "Fired when the DataTable has a mouseover."}, "dataReturnEvent": {"params": [{"type": "String", "name": "oArgs.request", "description": "  Original request."}, {"type": "Object", "name": "oArgs.response", "description": "  Response object."}], "description": "Fired when data is returned from DataSource but before it is consumed by\nDataTable."}, "headerRowMouseoverEvent": {"deprecated": "Use theadRowMouseoverEvent."}, "sortedByChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "sortedByChange", "description": "Fires when the value for the configuration attribute 'sortedBy' changes."}, "columnShowEvent": {"params": [{"type": "YAHOO.widget.Column", "name": "oArgs.column", "description": "  The Column instance."}], "description": "Fired when a column is shown."}, "renderEvent": {"description": "Fired when the DataTable's DOM is rendered or modified."}, "formatRowChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "formatRowChange", "description": "Fires when the value for the configuration attribute 'formatRow' changes."}, "rowHighlightEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The highlighted TR element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The highlighted Record."}], "description": "Fired when a row is highlighted."}, "cellMousedownEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The TD element."}], "description": "Fired when a cell has a mousedown."}, "tableMsgHideEvent": {"description": "Fired when the DataTable's message element is hidden."}, "beforeCaptionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCaptionChange", "description": "Fires before the value for the configuration attribute 'caption' changes. Return false to cancel the attribute change."}, "beforeSummaryChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSummaryChange", "description": "Fires before the value for the configuration attribute 'summary' changes. Return false to cancel the attribute change."}, "rowDeleteEvent": {"params": [{"type": "Object", "name": "oArgs.oldData", "description": "  Object literal of the deleted data."}, {"type": "Number", "name": "oArgs.recordIndex", "description": "  Index of the deleted Record."}, {"type": "Number", "name": "oArgs.trElIndex", "description": "  Index of the deleted TR element, if on current page."}], "description": "Fired when a row is deleted."}, "beforeInitialRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitialRequestChange", "description": "Fires before the value for the configuration attribute 'initialRequest' changes. Return false to cancel the attribute change."}, "rowUnhighlightEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The highlighted TR element."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The highlighted Record."}], "description": "Fired when a row is unhighlighted."}, "beforeSelectionModeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSelectionModeChange", "description": "Fires before the value for the configuration attribute 'selectionMode' changes. Return false to cancel the attribute change."}, "rowSelectEvent": {"params": [{"type": "HTMLElement", "name": "oArgs.el", "description": "  The selected TR element, if applicable."}, {"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The selected Record."}], "description": "Fired when a row is selected."}, "beforeMSG_SORTDESCChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_SORTDESCChange", "description": "Fires before the value for the configuration attribute 'MSG_SORTDESC' changes. Return false to cancel the attribute change."}, "postRenderEvent": {"description": "Fired when the DataTable's post-render routine is complete, including\nColumn width validations."}, "editorSaveEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is saved."}, "unselectAllRowsEvent": {"description": "Fired when all row selections are cleared."}, "MSG_SORTASCChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "MSG_SORTASCChange", "description": "Fires when the value for the configuration attribute 'MSG_SORTASC' changes."}, "unselectAllCellsEvent": {"description": "Fired when all cell selections are cleared."}, "beforeDraggableColumnsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDraggableColumnsChange", "description": "Fires before the value for the configuration attribute 'draggableColumns' changes. Return false to cancel the attribute change."}, "beforeMSG_EMPTYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMSG_EMPTYChange", "description": "Fires before the value for the configuration attribute 'MSG_EMPTY' changes. Return false to cancel the attribute change."}, "theadLabelDblclickEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The SPAN element."}], "description": "Fired when a THEAD label has a dblclick."}, "dynamicDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dynamicDataChange", "description": "Fires when the value for the configuration attribute 'dynamicData' changes."}, "selectionModeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "selectionModeChange", "description": "Fires when the value for the configuration attribute 'selectionMode' changes."}}, "guessedname": "DataTable", "methods": {"sortColumn": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sDir", "description": "  (Optional) YAHOO.widget.DataTable.CLASS_ASC or\nYAHOO.widget.DataTable.CLASS_DESC"}], "description": "Sorts given Column. If \"dynamicData\" is true, current selections are purged before\na request is sent to the DataSource for data for the new state (using the\nrequest returned by \"generateRequest()\").", "guessedname": "sortColumn", "guessedtype": "function"}, "_unselectAllTdEls": {"private": "", "description": "Convenience method to remove the class YAHOO.widget.DataTable.CLASS_SELECTED\nfrom all TD elements in the internal tracker.", "guessedname": "_unselectAllTdEls", "guessedtype": "function"}, "getColumnById": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "params": [{"type": "String", "name": "column", "description": "  Column ID string."}], "description": "For the given Column ID, returns the associated Column instance. Note: For\ngetting Columns by key, please use the method getColumn().", "guessedname": "getColumnById", "guessedtype": "function"}, "onEventSortColumn": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to sort Column.", "guessedname": "onEventSortColumn", "guessedtype": "function"}, "renderPaginator": {"description": "Renders the Paginator to the DataTable UI", "guessedname": "renderPaginator", "guessedtype": "function"}, "_onTableFocus": {"guessedname": "_onTableFocus", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The focus event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles focus events on the DataTable instance.", "private": "", "guessedtype": "function"}, "_handleCellRangeSelectionByKey": {"guessedname": "_handleCellRangeSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"cellrange\".", "private": "", "guessedtype": "function"}, "updateCell": {"params": [{"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column | String | Number", "name": "oColumn", "description": "  A Column key, or a ColumnSet key index."}, {"type": "Object", "name": "oData", "description": "  New data value for the cell."}], "description": "For the given row and column, updates the Record with the given data. If the\ncell is on current page, the corresponding DOM elements are also updated.", "guessedname": "updateCell", "guessedtype": "function"}, "DataTable._cloneObject": {"description": "Clones object literal or array of object literals.", "private": "", "static": "", "guessedname": "_cloneObject", "guessedtype": "function", "params": [{"type": "Object", "name": "o", "description": "  Object."}]}, "setColumnWidth": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "nWidth", "description": "  New width in pixels. A null value auto-sizes Column,\nsubject to minWidth and maxAutoWidth validations."}], "description": "Sets given Column to given pixel width. If new width is less than minimum\nwidth, sets to minimum width. Updates oColumn.width value.", "guessedname": "setColumnWidth", "guessedtype": "function"}, "focus": {"description": "Brings focus to the TBODY element. Alias to focusTbodyEl.", "guessedname": "focus", "guessedtype": "function"}, "_handleSingleCellSelectionByMouse": {"guessedname": "_handleSingleCellSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"singlecell\".", "private": "", "guessedtype": "function"}, "_setColumnWidthDynStyles": {"guessedname": "_setColumnWidthDynStyles", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sWidth", "description": "  New width value."}], "description": "Updates width of a Column's liner DIV elements by dynamically creating a\nSTYLE node and writing and updating CSS style rules to it. If this fails during\nruntime, the fallback method _setColumnWidthDynFunction() will be called.\nNotes: This technique is not performant in IE6. IE7 crashes if DataTable is\nnested within another TABLE element. For these cases, it is recommended to\nuse the method _setColumnWidthDynFunction by setting _bDynStylesFallback to TRUE.", "private": "", "guessedtype": "function"}, "DataTable.formatTextarea": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Formats TEXTAREA elements.", "guessedname": "formatTextarea", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal definition of configuration values."}], "description": "Implementation of Element's abstract method. Sets up config values.", "private": "", "guessedtype": "function"}, "onEventSelectCell": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to select cell.", "guessedname": "onEventSelectCell", "guessedtype": "function"}, "getRow": {"deprecated": "Use getTrEl().", "guessedname": "getRow", "guessedtype": "function"}, "_repaintGecko": {"guessedname": "_repaintGecko", "el": "{HTMLElement} (Optional) Element to repaint, otherwise entire document body.", "description": "Forces Gecko repaint.", "private": "", "guessedtype": "property"}, "_initColgroupEl": {"guessedname": "_initColgroupEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create COLGROUP."}], "description": "Initializes COLGROUP and COL elements for managing minWidth.", "private": "", "guessedtype": "function"}, "_formatTdEl": {"return": {"type": "HTMLElement", "description": "A formatted TD element."}, "description": "Formats a basic TD element.", "private": "", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Associated Column instance."}, {"type": "HTMLElement", "name": "elTd", "description": "  An unformatted TD element."}, {"type": "Number", "name": "index", "description": "  Column key index."}, {"type": "Boolean", "name": "isLast", "description": "  True if Column is last key of the ColumnSet."}], "guessedname": "_formatTdEl", "guessedtype": "function"}, "focusTbodyEl": {"description": "Brings focus to the TBODY element.", "guessedname": "focusTbodyEl", "guessedtype": "function"}, "getTrIndex": {"return": {"type": "Number", "description": "Page row index, or null if row does not exist or is not on current page."}, "params": [{"type": "HTMLElement | String | YAHOO.widget.Record | Number", "name": "row", "description": "  DOM or ID\nstring reference to an element within the DataTable page, a Record instance,\nor a Record's RecordSet index."}], "description": "Returns the page row index of given row. Returns null if the row is not on the\ncurrent DataTable page.", "guessedname": "getTrIndex", "guessedtype": "function"}, "_onTheadClick": {"guessedname": "_onTheadClick", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The click event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles click events on the THEAD element.", "private": "", "guessedtype": "function"}, "_handleSingleCellSelectionByKey": {"guessedname": "_handleSingleCellSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"singlecell\".", "private": "", "guessedtype": "function"}, "_onTbodyClick": {"guessedname": "_onTbodyClick", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The click event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles click events on the primary TBODY element.", "private": "", "guessedtype": "function"}, "isSelected": {"return": {"type": "Boolean", "description": "True if item is selected."}, "params": [{"type": "String | HTMLElement | YAHOO.widget.Record | Number\n{record:YAHOO.widget.Record, column:YAHOO.widget.Column} ", "name": "o", "description": "  TR or TD element by\nreference or ID string, a Record instance, a RecordSet position index,\nor an object literal representation\nof a cell."}], "description": "Returns true if given item is selected, false otherwise.", "guessedname": "isSelected", "guessedtype": "function"}, "onEventSaveCellEditor": {"description": "Overridable custom event handler to save active CellEditor input.", "guessedname": "onEventSaveCellEditor", "guessedtype": "function"}, "_initTheadEl": {"guessedname": "_initTheadEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create COLGROUP."}, {"type": "HTMLElement", "name": "Initialized", "description": " THEAD element."}], "description": "Initializes THEAD element.", "private": "", "guessedtype": "function"}, "_insertColgroupColEl": {"guessedname": "_insertColgroupColEl", "params": [{"type": "Number", "name": "index", "description": "  Index of new COL element."}], "description": "Adds a COL element to COLGROUP at given index.", "private": "", "guessedtype": "function"}, "deleteRow": {"params": [{"type": "HTMLElement | String | Number", "name": "row", "description": "  DOM element reference or ID string\nto DataTable page element or RecordSet index."}], "description": "Deletes the given row's Record from the RecordSet. If the row is on current page,\nthe corresponding DOM elements are also deleted.", "guessedname": "deleteRow", "guessedtype": "function"}, "showTableMessage": {"params": [{"type": "String", "name": "sHTML", "description": "  (optional) Value for innerHTMlang."}, {"type": "String", "name": "sClassName", "description": "  (optional) Classname."}], "description": "Displays message within secondary TBODY.", "guessedname": "showTableMessage", "guessedtype": "function"}, "selectRow": {"params": [{"type": "HTMLElement | String | YAHOO.widget.Record | Number", "name": "row", "description": "  HTML element\nreference or ID string, Record instance, or RecordSet position index."}], "description": "Sets given row to the selected state.", "guessedname": "selectRow", "guessedtype": "function"}, "onDataReturnAppendRows": {"params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Callback function receives data from DataSource and appends to an existing\nDataTable new Records and, if applicable, creates or updates\ncorresponding TR elements.", "guessedname": "onDataReturnAppendRows", "guessedtype": "function"}, "unhighlightCell": {"params": [{"type": "HTMLElement | String", "name": "cell", "description": "  DOM element reference or ID string."}], "description": "Removes the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED from the given cell.", "guessedname": "unhighlightCell", "guessedtype": "function"}, "getCell": {"deprecated": "Use getTdEl().", "guessedname": "getCell", "guessedtype": "function"}, "getTableEl": {"return": {"type": "HTMLElement", "description": "Reference to TABLE element."}, "description": "Returns DOM reference to the DataTable's TABLE element.", "guessedname": "getTableEl", "guessedtype": "function"}, "_onEditorCancelEvent": {"guessedname": "_onEditorCancelEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through cancelEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "DataTable.editTextarea": {"deprecated": "Use YAHOO.widget.TextareaCellEditor", "guessedname": "editTextarea", "guessedtype": "function"}, "_onTheadKeydown": {"guessedname": "_onTheadKeydown", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The key event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles keydown events on the THEAD element.", "private": "", "guessedtype": "function"}, "clearTextSelection": {"description": "Clears browser text selection. Useful to call on rowSelectEvent or\ncellSelectEvent to prevent clicks or dblclicks from selecting text in the\nbrowser.", "guessedname": "clearTextSelection", "guessedtype": "function"}, "DataTable.editCheckbox": {"deprecated": "Use YAHOO.widget.CheckboxCellEditor.", "guessedname": "editCheckbox", "guessedtype": "function"}, "getBelowTdEl": {"return": {"type": "HTMLElement", "description": "Reference to previous TD element, or null."}, "params": [{"type": "HTMLElement | String | Object} DOM element reference or string ID, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": "  from which to get previous TD element."}], "description": "Returns DOM reference to the below TD element from the given cell, or null.", "guessedname": "getBelowTdEl", "guessedtype": "function"}, "getFirstTdEl": {"return": {"type": "HTMLElement", "description": "Reference to TD element."}, "params": [{"type": "HTMLElement", "name": "row", "description": "  (optional) row from which to get first TD"}], "description": "Returns DOM reference to the first TD element in the DataTable page (by default),\nthe first TD element of the optionally given row, or null.", "guessedname": "getFirstTdEl", "guessedtype": "function"}, "DataTable.formatRadio": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Formats INPUT TYPE=RADIO elements.", "guessedname": "formatRadio", "guessedtype": "function"}, "_onEditorRevertEvent": {"guessedname": "_onEditorRevertEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through revertEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "_handleStandardSelectionByMouse": {"guessedname": "_handleStandardSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"standard\".", "private": "", "guessedtype": "function"}, "_destroyTbodyEl": {"private": "", "description": "Destroy's the DataTable TBODY element, if available.", "guessedname": "_destroyTbodyEl", "guessedtype": "function"}, "_updatePaginator": {"guessedname": "_updatePaginator", "params": [{"type": "Paginator", "name": "newPag", "description": "  Paginator instance (or null) for DataTable to use"}], "description": "Method executed during set() operation for the \"paginator\" attribute.\nAdds and/or severs event listeners between DataTable and Paginator", "private": "", "guessedtype": "function"}, "_onTbodyKeydown": {"guessedname": "_onTbodyKeydown", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The key event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles keydown events on the TBODY element. Handles selection behavior,\nprovides hooks for ENTER to edit functionality.", "private": "", "guessedtype": "function"}, "_initCaptionEl": {"guessedname": "_initCaptionEl", "params": [{"type": "String", "name": "sCaption", "description": "  Text for caption."}], "description": "Creates HTML markup CAPTION element.", "private": "", "guessedtype": "function"}, "removeColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Removed Column instance."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}], "description": "Removes given Column. NOTE: You cannot remove nested Columns. You can only remove\nnon-nested Columns, and top-level parent Columns (which will remove all\nchildren Columns).", "guessedname": "removeColumn", "guessedtype": "function"}, "onEventHighlightRow": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to highlight row. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventHighlightRow", "guessedtype": "function"}, "_initCellEditorEl": {"guessedname": "_initCellEditorEl", "deprecated": "", "description": "Backward compatibility.", "private": "", "guessedtype": "function"}, "_clearMinWidth": {"guessedname": "_clearMinWidth", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Which Column."}], "description": "Clears minWidth.", "private": "", "guessedtype": "function"}, "showCellEditor": {"params": [{"type": "HTMLElement | String", "name": "elCell", "description": "  Cell to edit."}], "description": "Activates and shows CellEditor instance for the given cell while deactivating and\ncanceling previous CellEditor. It is baked into DataTable that only one CellEditor\ncan be active at any given time.", "guessedname": "showCellEditor", "guessedtype": "function"}, "showColumn": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}], "description": "Shows given Column. NOTE: You cannot hide/show nested Columns. You can only\nhide/show non-nested Columns, and top-level parent Columns (which will\nhide/show all children Columns).", "guessedname": "showColumn", "guessedtype": "function"}, "_setColumnWidth": {"guessedname": "_setColumnWidth", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sWidth", "description": "  New width value."}, {"type": "String", "name": "sOverflow", "description": "  Should be \"hidden\" when Column width is explicitly\nbeing set to a value, but should be \"visible\" when Column is meant to auto-fit content."}], "description": "Sets liner DIV elements of given Column to given width. When value should be\nauto-calculated to fit content overflow is set to visible, otherwise overflow\nis set to hidden. No validations against minimum width and no updating\nColumn.width value.", "private": "", "guessedtype": "function"}, "getSelectedRows": {"return": {"type": "String[]", "description": "Array of selected rows by Record ID."}, "description": "Returns selected rows as an array of Record IDs.", "guessedname": "getSelectedRows", "guessedtype": "function"}, "getTdEl": {"return": {"type": "HTMLElement", "description": "Reference to TD element."}, "params": [{"type": "HTMLElement | String | Object} TD element or child of a TD element, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": " ."}], "description": "Returns DOM reference to a TD element.", "guessedname": "getTdEl", "guessedtype": "function"}, "onDataReturnReplaceRows": {"params": [{"type": "MIXED", "name": "oRequest", "description": "  Original generated request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Callback function receives reponse from DataSource, replaces all existing\nRecords in  RecordSet, updates TR elements with new data, and updates state\nUI for pagination and sorting from payload data, if necessary.", "guessedname": "onDataReturnReplaceRows", "guessedtype": "function"}, "addRows": {"params": [{"type": "Object[]", "name": "aData", "description": "  Array of object literal data for the rows."}, {"type": "Number", "name": "index", "description": "  (optional) RecordSet position index at which to add data."}], "description": "Convenience method to add multiple rows.", "guessedname": "addRows", "guessedtype": "function"}, "onEventHighlightCell": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to highlight cell. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventHighlightCell", "guessedtype": "function"}, "_defaultPaginatorContainers": {"guessedname": "_defaultPaginatorContainers", "params": [{"type": "boolean", "name": "create", "description": "  Create the default containers if not found"}], "description": "Returns the default containers used for Paginators.  If create param is\npassed, the containers will be created and added to the DataTable container.", "private": "", "guessedtype": "function"}, "onEventSelectRow": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to manage selection according to desktop paradigm.", "guessedname": "onEventSelectRow", "guessedtype": "function"}, "_initContainerEl": {"guessedname": "_initContainerEl", "params": [{"type": "HTMLElement | String", "name": "elContainer", "description": "  HTML DIV element by reference or ID."}], "description": "Initializes the DataTable outer container element, including a mask.", "private": "", "guessedtype": "function"}, "_onEditorSaveEvent": {"guessedname": "_onEditorSaveEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through saveEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "_onTableMousedown": {"guessedname": "_onTableMousedown", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The mousedown event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles mousedown events on the DataTable instance.", "private": "", "guessedtype": "function"}, "onPaginatorChangeRequest": {"params": [{"type": "Object", "name": "oPaginatorState", "description": "  An object literal describing the proposed pagination state."}], "description": "Responds to new Pagination states. By default, updates the UI to reflect the\nnew state. If \"dynamicData\" is true, current selections are purged before\na request is sent to the DataSource for data for the new state (using the\nrequest returned by \"generateRequest()\").", "guessedname": "onPaginatorChangeRequest", "guessedtype": "function"}, "_initDataSource": {"guessedname": "_initDataSource", "params": [{"type": "YAHOO.util.DataSource", "name": "oDataSource", "description": "  DataSource instance."}], "description": "Initializes DataSource.", "private": "", "guessedtype": "function"}, "_onDropdownChange": {"guessedname": "_onDropdownChange", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The change event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles change events on SELECT elements within DataTable.", "private": "", "guessedtype": "function"}, "onEventUnhighlightColumn": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to unhighlight Column. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventUnhighlightColumn", "guessedtype": "function"}, "DataTable._destroyColumnResizerProxyEl": {"return": {"type": "HTMLElement", "description": "Reference to Column resizer proxy."}, "description": "Destroys shared Column resizer proxy.", "private": "", "static": "", "guessedname": "_destroyColumnResizerProxyEl", "guessedtype": "function"}, "_initEvents": {"private": "", "description": "Initialize internal event listeners", "guessedname": "_initEvents", "guessedtype": "function"}, "updateRows": {"params": [{"type": "YAHOO.widget.Record | Number | HTMLElement | String", "name": "startrow", "description": " \nStarting row to update: By Record instance, by Record's RecordSet\nposition index, by HTMLElement reference to the TR element, or by ID string\nof the TR element."}, {"type": "Object[]", "name": "aData", "description": "  Array of object literal of data for the rows."}], "description": "Starting with the given row, updates associated Records with the given data.\nThe number of rows to update are determined by the array of data provided.\nUndefined data (i.e., not an object literal) causes a row to be skipped. If\nany of the rows are on current page, the corresponding DOM elements are also\nupdated.", "guessedname": "updateRows", "guessedtype": "function"}, "deleteRows": {"params": [{"type": "HTMLElement | String | Number", "name": "row", "description": "  DOM element reference or ID string\nto DataTable page element or RecordSet index."}, {"type": "Number", "name": "count", "description": "  (optional) How many rows to delete. A negative value\nwill delete towards the beginning."}], "description": "Convenience method to delete multiple rows.", "guessedname": "deleteRows", "guessedtype": "function"}, "onEventCancelCellEditor": {"description": "Overridable custom event handler to cancel active CellEditor.", "guessedname": "onEventCancelCellEditor", "guessedtype": "function"}, "_initColumnSort": {"private": "", "description": "Initializes Column sorting.", "guessedname": "_initColumnSort", "guessedtype": "function"}, "highlightColumn": {"params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  DOM reference or ID string to a\nTH/TD element (or child of a TH/TD element), a Column key, or a ColumnSet key index."}], "description": "Assigns the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED to cells of the given Column.\nNOTE: You cannot highlight/unhighlight nested Columns. You can only\nhighlight/unhighlight non-nested Columns, and bottom-level key Columns.", "guessedname": "highlightColumn", "guessedtype": "function"}, "onEditorBlurEvent": {"params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Public handler of the editorBlurEvent. By default, saves on blur if\ndisableBtns is true, otherwise cancels on blur.", "guessedname": "onEditorBlurEvent", "guessedtype": "function"}, "onEventEditCell": {"deprecated": "Use onEventShowCellEditor.", "guessedname": "onEventEditCell", "guessedtype": "function"}, "getThLinerEl": {"return": {"type": "HTMLElement", "description": "Reference to TH liner element."}, "params": [{"type": "YAHOO.widget.Column | HTMLElement | String", "name": "theadCell", "description": "  Column instance,\nDOM element reference, or string ID."}], "description": "Returns DOM reference to a TH liner element. Needed to normalize for resizeable \nColumns, which have an additional resizer liner DIV element between the TH\nelement and the liner DIV element.", "guessedname": "getThLinerEl", "guessedtype": "function"}, "getRecordSet": {"return": {"type": "YAHOO.widget.RecordSet", "description": "RecordSet instance."}, "description": "Returns the DataTable instance's RecordSet instance.", "guessedname": "getRecordSet", "guessedtype": "function"}, "updateRow": {"params": [{"type": "YAHOO.widget.Record | Number | HTMLElement | String", "name": "row", "description": " \nWhich row to update: By Record instance, by Record's RecordSet\nposition index, by HTMLElement reference to the TR element, or by ID string\nof the TR element."}, {"type": "Object", "name": "oData", "description": "  Object literal of data for the row."}], "description": "For the given row, updates the associated Record with the given data. If the\nrow is on current page, the corresponding DOM elements are also updated.", "guessedname": "updateRow", "guessedtype": "function"}, "getPreviousTrEl": {"return": {"type": "HTMLElement", "description": "Reference to previous TR element."}, "params": [{"type": "HTMLElement | String | Number | YAHOO.widget.Record", "name": "row", "description": "  Element\nreference, ID string, page row index, or Record from which to get previous TR element."}], "description": "Returns DOM reference to the previous TR element from the given TR element, or null.", "guessedname": "getPreviousTrEl", "guessedtype": "function"}, "_initColumnHelpers": {"private": "", "description": "Initializes elements associated with Column functionality: ColumnDD and ColumnResizers.", "guessedname": "_initColumnHelpers", "guessedtype": "function"}, "hideTableMessage": {"description": "Hides secondary TBODY.", "guessedname": "hideTableMessage", "guessedtype": "function"}, "_getColumnClassnames": {"return": {"type": "String", "description": "A String of classnames to be assigned to TH or TD elements\nfor given Column."}, "description": "Retruns classnames to represent current Column states.", "private": "", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String[]", "name": "aAddClasses", "description": "  An array of additional classnames to add to the\nreturn value."}], "guessedname": "_getColumnClassNames", "guessedtype": "function"}, "onEventUnhighlightCell": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to unhighlight cell. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventUnhighlightCell", "guessedtype": "function"}, "onEventSelectColumn": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to select Column.", "guessedname": "onEventSelectColumn", "guessedtype": "function"}, "_initTbodyEl": {"guessedname": "_initTbodyEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create TBODY ."}], "description": "Initializes TBODY element for data.", "private": "", "guessedtype": "function"}, "DataTable.formatCurrency": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "oData", "description": "  Data value for the cell."}], "description": "Formats currency. Default unit is USD.", "guessedname": "formatCurrency", "guessedtype": "function"}, "unselectRow": {"params": [{"type": "HTMLElement | String | YAHOO.widget.Record | Number", "name": "row", "description": "  HTML element\nreference or ID string, Record instance, or RecordSet position index."}], "description": "Sets given row to the unselected state.", "guessedname": "unselectRow", "guessedtype": "function"}, "DataTable.formatTheadCell": {"deprecated": "Use formatTheadCell.", "params": [{"type": "HTMLElement", "name": "elCellLabel", "description": "  The label SPAN element within the TH liner,\nnot the liner DIV element."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oSortedBy", "description": "  Sort state object literal."}], "description": "Outputs markup into the given TH based on given Column.", "guessedname": "formatTheadCell", "guessedtype": "function"}, "_onRenderChainEnd": {"private": "", "description": "Validates minWidths whenever the render chain ends.", "guessedname": "_onRenderChainEnd", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the DataSource instance."}, "description": "DataSource instance name, for logging.", "guessedname": "toString", "guessedtype": "function"}, "getTbodyEl": {"return": {"type": "HTMLElement", "description": "Reference to TBODY element."}, "description": "Returns DOM reference to the DataTable's primary TBODY element.", "guessedname": "getTbodyEl", "guessedtype": "function"}, "DataTable.formatLink": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats links.", "guessedname": "formatLink", "guessedtype": "function"}, "getTdLinerEl": {"return": {"type": "HTMLElement", "description": "Reference to TD liner element."}, "params": [{"type": "HTMLElement | Object} TD element or child of a TD element, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": " ."}], "description": "Returns DOM reference to a TD liner element.", "guessedname": "getTdLinerEl", "guessedtype": "function"}, "getColumnSet": {"return": {"type": "YAHOO.widget.ColumnSet", "description": "ColumnSet instance."}, "description": "Returns the DataTable instance's ColumnSet instance.", "guessedname": "getColumnSet", "guessedtype": "function"}, "addRow": {"params": [{"type": "Object", "name": "oData", "description": "  Object literal of data for the row."}, {"type": "Number", "name": "index", "description": "  (optional) RecordSet position index at which to add data."}], "description": "Adds one new Record of data into the RecordSet at the index if given,\notherwise at the end. If the new Record is in page view, the\ncorresponding DOM elements are also updated.", "guessedname": "addRow", "guessedtype": "function"}, "onEventShowCellEditor": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to edit cell.", "guessedname": "onEventShowCellEditor", "guessedtype": "function"}, "_initColumnSet": {"guessedname": "_initColumnSet", "params": [{"type": "Object[]", "name": "aColumnDefs", "description": "  Array of object literal Column definitions."}], "description": "Initializes ColumnSet.", "private": "", "guessedtype": "function"}, "DataTable._destroyColumnDragTargetEl": {"guessedname": "_destroyColumnDragTargetEl", "static": "", "description": "Destroys shared Column drag target.", "private": "", "guessedtype": "function"}, "getMsgTdEl": {"return": {"type": "HTMLElement", "description": "Reference to TD element."}, "description": "Returns DOM reference to the TD element within the secondary TBODY that is\nused to display messages.", "guessedname": "getMsgTdEl", "guessedtype": "function"}, "DataTable.formatEmail": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats emails.", "guessedname": "formatEmail", "guessedtype": "function"}, "unselectCell": {"params": [{"type": "HTMLElement | String", "name": "cell", "description": "  DOM element reference or ID string\nto DataTable page element or RecordSet index."}], "description": "Sets given cell to the unselected state.", "guessedname": "unselectCell", "guessedtype": "function"}, "_onTableMouseout": {"guessedname": "_onTableMouseout", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The mouseout event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles mouseout events on the DataTable instance.", "private": "", "guessedtype": "function"}, "getCellEditor": {"return": {"type": "YAHOO.widget.CellEditor", "description": "CellEditor instance."}, "description": "Returns current CellEditor instance, or null.", "guessedname": "getCellEditor", "guessedtype": "function"}, "_destroyColumnHelpers": {"private": "", "description": "Destroys elements associated with Column functionality: ColumnDD and ColumnResizers.", "guessedname": "_destroyColumnHelpers", "guessedtype": "function"}, "getAboveTdEl": {"return": {"type": "HTMLElement", "description": "Reference to next TD element, or null."}, "params": [{"type": "HTMLElement | String | Object} DOM element reference or string ID, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": "  from which to get next TD element."}], "description": "Returns DOM reference to the above TD element from the given cell, or null.", "guessedname": "getAboveTdEl", "guessedtype": "function"}, "onEventFormatCell": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to format cell.", "guessedname": "onEventFormatCell", "guessedtype": "function"}, "_onEditorKeydownEvent": {"guessedname": "_onEditorKeydownEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through keydownEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "_setRowStripes": {"guessedname": "_setRowStripes", "params": [{"type": "HTMLElement | String | Number", "name": "row", "description": "  (optional) HTML TR element reference\nor string ID, or page row index of where to start striping."}, {"type": "Number", "name": "range", "description": "  (optional) If given, how many rows to stripe, otherwise\nstripe all the rows until the end."}], "description": "Assigns the classes DT.CLASS_EVEN and DT.CLASS_ODD to one, many, or all TR elements.", "private": "", "guessedtype": "function"}, "_deleteTrEl": {"return": {"type": "Boolean", "description": "Returns true if successful, else returns false."}, "description": "Deletes TR element by DOM reference or by DataTable page row index.", "private": "", "params": [{"type": "HTMLElement | Number", "name": "row", "description": "  TR element reference or Datatable page row index."}], "guessedname": "_deleteTrEl", "guessedtype": "function"}, "_destroyPaginator": {"private": "", "description": "Calls Paginator's destroy() method", "guessedname": "_destroyPaginator", "guessedtype": "function"}, "_clearTrTemplateEl": {"private": "", "description": "Clears TR element template in response to any Column state change.", "guessedname": "_clearTrTemplateEl", "guessedtype": "function"}, "onEventUnhighlightRow": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to unhighlight row. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventUnhighlightRow", "guessedtype": "function"}, "getPreviousTdEl": {"return": {"type": "HTMLElement", "description": "Reference to previous TD element, or null."}, "params": [{"type": "HTMLElement | String | Object} DOM element reference or string ID, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": "  from which to get previous TD element."}], "description": "Returns DOM reference to the previous TD element from the given cell, or null.", "guessedname": "getPreviousTdEl", "guessedtype": "function"}, "_destroyContainerEl": {"guessedname": "_destroyContainerEl", "params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Reference to the container element."}], "description": "Destroy's the DataTable outer container element, if available.", "private": "", "guessedtype": "function"}, "_getTrTemplateEl": {"guessedname": "_getTrTemplateEl", "return": {"type": "HTMLElement", "description": "A TR element to be cloned and added to the DOM."}, "description": "Returns a new TR element template with TD elements classed with current\nColumn states.", "private": "", "guessedtype": "function"}, "unselectAllRows": {"description": "Clears out all row selections.", "guessedname": "unselectAllRows", "guessedtype": "function"}, "getSelectedTdEls": {"return": {"type": "HTMLElement[]", "description": "Array of selected TD elements."}, "description": "Returns array of selected TD elements on the page.", "guessedname": "getSelectedTdEls", "guessedtype": "function"}, "destroyCellEditor": {"description": "Destroys active CellEditor instance and UI.", "guessedname": "destroyCellEditor", "guessedtype": "function"}, "onDataReturnInitializeTable": {"params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Callback function receives data from DataSource and populates an entire\nDataTable with Records and TR elements, clearing previous Records, if any.", "guessedname": "onDataReturnInitializeTable", "guessedtype": "function"}, "doBeforeShowCellEditor": {"return": {"type": "Boolean", "description": "Return true to continue showing CellEditor."}, "params": [{"type": "YAHOO.widget.CellEditor", "name": "oCellEditor", "description": "  The CellEditor instance."}], "description": "Overridable abstract method to customize CellEditor before showing.", "guessedname": "doBeforeShowCellEditor", "guessedtype": "function"}, "_setFirstRow": {"private": "", "description": "Assigns the class YAHOO.widget.DataTable.CLASS_FIRST to the first TR element\nof the DataTable page and updates internal tracker.", "guessedname": "_setFirstRow", "guessedtype": "function"}, "reorderColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Reordered Column instance."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "index", "description": "  New tree index."}], "description": "Removes given Column and inserts into given tree index. NOTE: You\ncan only reorder non-nested Columns and top-level parent Columns. You cannot\nreorder a nested Column to an existing parent.", "guessedname": "reorderColumn", "guessedtype": "function"}, "_restoreMinWidth": {"guessedname": "_restoreMinWidth", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Which Column."}], "description": "Restores minWidth.", "private": "", "guessedtype": "function"}, "_onDocumentClick": {"guessedname": "_onDocumentClick", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The click event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles click events on the DOCUMENT.", "private": "", "guessedtype": "function"}, "DataTable.validateNumber": {"static": "", "params": [{"type": "Object", "name": "oData", "description": "  Data to validate."}], "description": "Validates data value to type Number, doing type conversion as\nnecessary. A valid Number value is return, else null is returned\nif input value does not validate.", "guessedname": "validateNumber", "guessedtype": "function"}, "DataTable._initColumnDragTargetEl": {"return": {"type": "HTMLElement", "description": "Reference to Column drag target."}, "description": "Creates HTML markup for shared Column drag target.", "private": "", "static": "", "guessedname": "_initColumnDragTargetEl", "guessedtype": "function"}, "undisable": {"description": "Undisables DataTable UI.", "guessedname": "undisable", "guessedtype": "function"}, "_destroyTheadEl": {"private": "", "description": "Destroy's the DataTable THEAD element, if available.", "guessedname": "_destroyTheadEl", "guessedtype": "function"}, "DataTable.formatCheckbox": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object | Boolean} Data value for the cell. Can be a simple\nBoolean to indicate whether checkbox is checked or not. Can be object literal\n{checked:bBoolean, label:sLabel", "name": "oData", "description": " . Other forms of oData require a custom\nformatter."}], "description": "Formats a CHECKBOX element.", "guessedname": "formatCheckbox", "guessedtype": "function"}, "getColumn": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  TH/TD element (or child of a\nTH/TD element), a Column key, or a ColumnSet key index."}], "description": "For the given identifier, returns the associated Column instance. Note: For\ngetting Columns by Column ID string, please use the method getColumnById().", "guessedname": "getColumn", "guessedtype": "function"}, "DataTable.formatNumber": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats numbers.", "guessedname": "formatNumber", "guessedtype": "function"}, "_handleCellBlockSelectionByMouse": {"guessedname": "_handleCellBlockSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"cellblock\".", "private": "", "guessedtype": "function"}, "validateColumnWidths": {"params": [{"type": "YAHOO.widget.Column", "name": "oArg.column", "description": "  (optional) One Column to validate. If null, all Columns' widths are validated."}], "description": "For one or all Columns, when Column is not hidden, width is not set, and minWidth\nand/or maxAutoWidth is set, validates auto-width against minWidth and maxAutoWidth.", "guessedname": "validateColumnWidths", "guessedtype": "function"}, "_onTheadFocus": {"guessedname": "_onTheadFocus", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The focus event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles focus events on the THEAD element.", "private": "", "guessedtype": "function"}, "getDataSource": {"return": {"type": "YAHOO.util.DataSource", "description": "DataSource instance."}, "description": "Returns the DataTable instance's DataSource instance.", "guessedname": "getDataSource", "guessedtype": "function"}, "getColumnSortDir": {"return": {"type": "String", "description": "YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTableCLASS_DESC."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oSortedBy", "description": "  (optional) Specify the state, or use current state."}], "description": "For the given Column instance, returns next direction to sort.", "guessedname": "getColumnSortDir", "guessedtype": "function"}, "_handleCellBlockSelectionByKey": {"guessedname": "_handleCellBlockSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"cellblock\".", "private": "", "guessedtype": "function"}, "DataTable.formatDefault": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Default cell formatter", "guessedname": "formatDefault", "guessedtype": "function"}, "select": {"deprecated": "Use selectRow.", "guessedname": "select", "guessedtype": "function"}, "_initRecordSet": {"private": "", "description": "Initializes RecordSet.", "guessedname": "_initRecordSet", "guessedtype": "function"}, "getNextTrEl": {"return": {"type": "HTMLElement", "description": "Reference to next TR element."}, "params": [{"type": "HTMLElement | String | Number | YAHOO.widget.Record", "name": "row", "description": "  Element\nreference, ID string, page row index, or Record from which to get next TR element."}], "description": "Returns DOM reference to the next TR element from the given TR element, or null.", "guessedname": "getNextTrEl", "guessedtype": "function"}, "_updateTrEl": {"return": {"type": "HTMLElement", "description": "DOM reference to the new TR element."}, "description": "Formats the contents of the given TR's TD elements with data from the given\nRecord. Only innerHTML should change, nothing structural.", "private": "", "params": [{"type": "HTMLElement", "name": "elTr", "description": "  The TR element to update."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  The associated Record instance."}], "guessedname": "_updateTrEl", "guessedtype": "function"}, "_initTableEl": {"guessedname": "_initTableEl", "params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Container element into which to create TABLE."}], "description": "Creates HTML markup for TABLE, COLGROUP, THEAD and TBODY elements in outer\ncontainer element.", "private": "", "guessedtype": "function"}, "unhighlightColumn": {"params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  DOM reference or ID string to a\nTH/TD element (or child of a TH/TD element), a Column key, or a ColumnSet key index."}], "description": "Removes the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED to cells of the given Column.\nNOTE: You cannot highlight/unhighlight nested Columns. You can only\nhighlight/unhighlight non-nested Columns, and bottom-level key Columns.", "guessedname": "unhighlightColumn", "guessedtype": "function"}, "DataTable.editDropdown": {"deprecated": "Use YAHOO.widget.DropdownCellEditor.", "guessedname": "editDropdown", "guessedtype": "function"}, "_getSelectionAnchor": {"guessedname": "_getSelectionAnchor", "params": [{"type": "Object", "name": "oTrigger", "description": "  (Optional) Object literal of selection trigger values\n(for key events)."}], "description": "Returns object literal of values that represent the selection anchor. Used\nto determine selection behavior resulting from a user event.", "private": "", "guessedtype": "function"}, "_onEditorBlurEvent": {"guessedname": "_onEditorBlurEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through blurEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "getNextTdEl": {"return": {"type": "HTMLElement", "description": "Reference to next TD element, or null."}, "params": [{"type": "HTMLElement | String | Object} DOM element reference or string ID, or\nobject literal of syntax {record:oRecord, column:oColumn", "name": "cell", "description": "  from which to get next TD element."}], "description": "Returns DOM reference to the next TD element from the given cell, or null.", "guessedname": "getNextTdEl", "guessedtype": "function"}, "_destroyResizeableColumns": {"private": "", "description": "Disables resizeability on key Column TH elements.", "guessedname": "_destroyResizeableColumns", "guessedtype": "function"}, "onDataReturnInsertRows": {"params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  Argument payload, looks in oPayload.insertIndex."}], "description": "Callback function receives data from DataSource and inserts new records\nstarting at the index specified in oPayload.insertIndex. The value for\noPayload.insertIndex can be populated when sending the request to the DataSource,\nor by accessing oPayload.insertIndex with the doBeforeLoadData() method at runtime.\nIf applicable, creates or updates corresponding TR elements.", "guessedname": "onDataReturnInsertRows", "guessedtype": "function"}, "saveCellEditor": {"description": "Saves active CellEditor input to Record and upates DOM UI.", "guessedname": "saveCellEditor", "guessedtype": "function"}, "unhighlightRow": {"params": [{"type": "HTMLElement | String", "name": "row", "description": "  DOM element reference or ID string."}], "description": "Removes the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED from the given row.", "guessedname": "unhighlightRow", "guessedtype": "function"}, "_setSelections": {"private": "", "description": "Assigns the class DT.CLASS_SELECTED to TR and TD elements.", "guessedname": "_setSelections", "guessedtype": "function"}, "_unsetLastRow": {"private": "", "description": "Removes the class YAHOO.widget.DataTable.CLASS_LAST from the last TR element\nof the DataTable page and updates internal tracker.", "guessedname": "_unsetLastRow", "guessedtype": "function"}, "getSelectedCells": {"return": {"type": "Object[]", "description": "Array of selected cells by Record ID and Column ID."}, "description": "Returns selected cells as an array of object literals:\n{recordId:sRecordId, columnKey:sColumnKey}.", "guessedname": "getSelectedCells", "guessedtype": "function"}, "unselectColumn": {"params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  DOM reference or ID string to a\nTH/TD element (or child of a TH/TD element), a Column key, or a ColumnSet key index."}], "description": "Unselects given Column. NOTE: You cannot select/unselect nested Columns. You can only\nselect/unselect non-nested Columns, and bottom-level key Columns.", "guessedname": "unselectColumn", "guessedtype": "function"}, "DataTable.formatTextbox": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Formats INPUT TYPE=TEXT elements.", "guessedname": "formatTextbox", "guessedtype": "function"}, "_setLastRow": {"private": "", "description": "Assigns the class YAHOO.widget.DataTable.CLASS_LAST to the last TR element\nof the DataTable page and updates internal tracker.", "guessedname": "_setLastRow", "guessedtype": "function"}, "_destroyColgroupEl": {"private": "", "description": "Destroy's the DataTable COLGROUP element, if available.", "guessedname": "_destroyColgroupEl", "guessedtype": "function"}, "_initDraggableColumns": {"private": "", "description": "Initializes top-level Column TH elements into DD instances.", "guessedname": "_initDraggableColumns", "guessedtype": "function"}, "DataTable._initColumnResizerProxyEl": {"return": {"type": "HTMLElement", "description": "Reference to Column resizer proxy."}, "description": "Creates HTML markup for shared Column resizer proxy.", "private": "", "static": "", "guessedname": "_initColumnResizerProxyEl", "guessedtype": "function"}, "_onTbodyFocus": {"guessedname": "_onTbodyFocus", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The focus event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles focus events on the TBODY element.", "private": "", "guessedtype": "function"}, "getLastSelectedCell": {"return": {"type": "Object", "description": "Object literal representation of a cell."}, "description": "Returns last selected cell as an object literal:\n{recordId:sRecordId, columnKey:sColumnKey}.", "guessedname": "getLastSelectedCell", "guessedtype": "function"}, "onDataReturnUpdateRows": {"params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  Argument payload, looks in oPayload.updateIndex."}], "description": "Callback function receives data from DataSource and incrementally updates Records\nstarting at the index specified in oPayload.updateIndex. The value for\noPayload.updateIndex can be populated when sending the request to the DataSource,\nor by accessing oPayload.updateIndex with the doBeforeLoadData() method at runtime.\nIf applicable, creates or updates corresponding TR elements.", "guessedname": "onDataReturnUpdateRows", "guessedtype": "function"}, "DataTable.editRadio": {"deprecated": "Use YAHOO.widget.RadioCellEditor.", "guessedname": "editRadio", "guessedtype": "function"}, "_reorderColgroupColEl": {"guessedname": "_reorderColgroupColEl", "params": [{"type": "Number[]", "name": "aKeyIndexes", "description": "  Array of indexes of removed COL element."}, {"type": "Number", "name": "newIndex", "description": "  New index."}], "description": "Reorders a COL element from old index(es) to new index.", "private": "", "guessedtype": "function"}, "_runRenderChain": {"private": "", "description": "Internal wrapper calls run() on render Chain instance.", "guessedname": "_runRenderChain", "guessedtype": "function"}, "_getSelectionTrigger": {"private": "", "description": "Returns object literal of values that represent the selection trigger. Used\nto determine selection behavior resulting from a key event.", "guessedname": "_getSelectionTrigger", "guessedtype": "function"}, "_createTrEl": {"return": {"type": "HTMLElement", "description": "The new TR element.  This must be added to the DOM."}, "description": "Create a new TR element for a given Record and appends it with the correct\nnumber of Column-state-classed TD elements. Striping is the responsibility of\nthe calling function, which may decide to stripe the single row, a subset of\nrows, or all the rows.", "private": "", "params": [{"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance"}], "guessedname": "_addTrEl", "guessedtype": "function"}, "getLastTrEl": {"return": {"type": "HTMLElement", "description": "Reference to last TR element."}, "description": "Returns DOM reference to the last TR element in the DataTable page, or null.", "guessedname": "getLastTrEl", "guessedtype": "function"}, "selectColumn": {"params": [{"type": "HTMLElement | String | Number", "name": "column", "description": "  DOM reference or ID string to a\nTH/TD element (or child of a TH/TD element), a Column key, or a ColumnSet key index."}], "description": "Selects given Column. NOTE: You cannot select/unselect nested Columns. You can only\nselect/unselect non-nested Columns, and bottom-level key Columns.", "guessedname": "selectColumn", "guessedtype": "function"}, "onEventHighlightColumn": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Overridable custom event handler to highlight Column. Accounts for spurious\ncaused-by-child events.", "guessedname": "onEventHighlightColumn", "guessedtype": "function"}, "DataTable.formatText": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  (Optional) Data value for the cell."}], "description": "Formats text strings.", "guessedname": "formatText", "guessedtype": "function"}, "_initCellEditing": {"private": "", "description": "Initializes CellEditor integration.", "guessedname": "_initCellEditing", "guessedtype": "function"}, "_setColumnWidthDynFunction": {"guessedname": "_setColumnWidthDynFunction", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sWidth", "description": "  New width value."}], "description": "Updates width of a Column's liner DIV elements by dynamically creating a\nfunction to update all element style properties in one pass. Note: This\ntechnique is not supported in sandboxed environments that prohibit EVALs.", "private": "", "guessedtype": "function"}, "_destroyDraggableColumns": {"private": "", "description": "Disables DD from top-level Column TH elements.", "guessedname": "_destroyDraggableColumns", "guessedtype": "function"}, "_initConfigs": {"guessedname": "_initConfigs", "params": [{"type": "Object", "name": "oConfig", "description": "  Object literal of config values."}], "description": "Initializes object literal of config values.", "private": "", "guessedtype": "function"}, "_initThEl": {"guessedname": "_initThEl", "params": [{"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column object."}], "description": "Populates TH element as defined by Column.", "private": "", "guessedtype": "function"}, "getTrEl": {"return": {"type": "HTMLElement", "description": "Reference to TR element, or null."}, "params": [{"type": "HTMLElement | String | Number | YAHOO.widget.Record", "name": "row", "description": "  Which row to\nget: by element reference, ID string, page row index, or Record."}], "description": "Returns the corresponding TR reference for a given DOM element, ID string or\ndirectly page row index. If the given identifier is a child of a TR element,\nthen DOM tree is traversed until a parent TR element is returned, otherwise\nnull.", "guessedname": "getTrEl", "guessedtype": "function"}, "resetCellEditor": {"deprecated": "Use destroyCellEditor", "guessedname": "resetCellEditor", "guessedtype": "function"}, "onPaginatorChange": {"deprecated": "Use onPaginatorChangeRequest", "description": "Alias for onPaginatorChange for backward compatibility", "guessedname": "onPaginatorChange", "guessedtype": "property"}, "doBeforeSortColumn": {"return": {"type": "Boolean", "description": "Return true to continue sorting Column."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "String", "name": "sSortDir", "description": "  YAHOO.widget.DataTable.CLASS_ASC or\nYAHOO.widget.DataTable.CLASS_DESC."}], "description": "Overridable method gives implementers a hook to show loading message before\nsorting Column.", "guessedname": "doBeforeSortColumn", "guessedtype": "function"}, "onShow": {"description": "Setting display:none on DataTable or any parent may impact width validations.\nAfter setting display back to \"\", implementers should call this method to \nmanually perform those validations.", "guessedname": "onShow", "guessedtype": "function"}, "getLastSelectedRecord": {"return": {"type": "String", "description": "Record ID of last selected row."}, "description": "Returns last selected Record ID.", "guessedname": "getLastSelectedRecord", "guessedtype": "function"}, "getTheadEl": {"return": {"type": "HTMLElement", "description": "Reference to THEAD element."}, "description": "Returns DOM reference to the DataTable's THEAD element.", "guessedname": "getTheadEl", "guessedtype": "function"}, "_repaintWebkit": {"guessedname": "_repaintWebkit", "el": "{HTMLElement} (Optional) Element to repaint, otherwise entire document body.", "description": "Forces Webkit repaint.", "private": "", "guessedtype": "property"}, "_handleStandardSelectionByKey": {"guessedname": "_handleStandardSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"standard\".", "private": "", "guessedtype": "function"}, "DataTable.editTextbox": {"deprecated": "Use YAHOO.widget.TextboxCellEditor", "guessedname": "editTextbox", "guessedtype": "function"}, "insertColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Inserted Column instance."}, "params": [{"type": "Object | YAHOO.widget.Column", "name": "oColumn", "description": "  Object literal Column\ndefinition or a Column instance."}, {"type": "Number", "name": "index", "description": "  (optional) New tree index."}], "description": "Inserts given Column at the index if given, otherwise at the end. NOTE: You\ncan only add non-nested Columns and top-level parent Columns. You cannot add\na nested Column to an existing parent.", "guessedname": "insertColumn", "guessedtype": "function"}, "getState": {"return": {"type": "Object", "description": "DataTable instance state object literal values."}, "description": "Returns on object literal representing the DataTable instance's current\nstate with the following properties:\n<dl>\n<dt>pagination</dt>\n<dd>Instance of YAHOO.widget.Paginator</dd>\n<dt>sortedBy</dt>\n<dd>\n<dl>\n<dt>sortedBy.key</dt>\n<dd>{String} Key of sorted Column</dd>\n<dt>sortedBy.dir</dt>\n<dd>{String} Initial sort direction, either YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTable.CLASS_DESC</dd>\n</dl>\n</dd>\n<dt>selectedRows</dt>\n<dd>Array of selected rows by Record ID.</dd>\n<dt>selectedCells</dt>\n<dd>Selected cells as an array of object literals:\n{recordId:sRecordId, columnKey:sColumnKey}</dd>\n</dl>", "guessedname": "getState", "guessedtype": "function"}, "onEditorUnblockEvent": {"params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Public handler of the editorUnblockEvent. By default, undisables DataTable UI.", "guessedname": "onEditorUnblockEvent", "guessedtype": "function"}, "getSelectedTrEls": {"return": {"type": "HTMLElement[]", "description": "Array of selected TR elements."}, "description": "Returns array of selected TR elements on the page.", "guessedname": "getSelectedTrEls", "guessedtype": "function"}, "getThEl": {"return": {"type": "HTMLElement", "description": "Reference to TH element."}, "params": [{"type": "YAHOO.widget.Column | HTMLElement | String", "name": "theadCell", "description": "  Column instance,\nDOM element reference, or string ID."}], "description": "Returns DOM reference to a TH element.", "guessedname": "getThEl", "guessedtype": "function"}, "_handleCellRangeSelectionByMouse": {"guessedname": "_handleCellRangeSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"cellrange\".", "private": "", "guessedtype": "function"}, "_focusEl": {"guessedname": "_focusEl", "params": [{"type": "HTMLElement", "name": "el", "description": "  Element."}], "description": "Sets focus on the given element.", "private": "", "guessedtype": "function"}, "getFirstTrEl": {"return": {"type": "HTMLElement", "description": "Reference to TR element."}, "description": "Returns DOM reference to the first TR element in the DataTable page, or null.", "guessedname": "getFirstTrEl", "guessedtype": "function"}, "_onEditorUnblockEvent": {"guessedname": "_onEditorUnblockEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through unblockEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "hideColumn": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}], "description": "Hides given Column. NOTE: You cannot hide/show nested Columns. You can only\nhide/show non-nested Columns, and top-level parent Columns (which will\nhide/show all children Columns).", "guessedname": "hideColumn", "guessedtype": "function"}, "onDataReturnSetRecords": {"deprecated": "Use onDataReturnSetRows", "description": "Alias for onDataReturnSetRows for backward compatibility", "guessedname": "onDataReturnSetRecords", "guessedtype": "property"}, "_onTableKeypress": {"guessedname": "_onTableKeypress", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The key event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles keypress events on the TABLE. Mainly to support stopEvent on Mac.", "private": "", "guessedtype": "function"}, "refreshView": {"deprecated": "Use render.", "guessedname": "refreshView", "guessedtype": "function"}, "focusTheadEl": {"description": "Brings focus to the THEAD element.", "guessedname": "focusTheadEl", "guessedtype": "function"}, "getRecord": {"return": {"type": "YAHOO.widget.Record", "description": "Record instance."}, "params": [{"type": "HTMLElement | Number | String", "name": "row", "description": "  DOM reference to a TR element (or\nchild of a TR element), RecordSet position index, or Record ID."}], "description": "For the given identifier, returns the associated Record instance.", "guessedname": "getRecord", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique ID of the DataSource instance."}, "description": "Returns unique id assigned to instance, which is a useful prefix for\ngenerating unique DOM ID strings.", "guessedname": "getId", "guessedtype": "function"}, "_destroyMsgTbodyEl": {"private": "", "description": "Destroy's the DataTable message TBODY element, if available.", "guessedname": "_destroyMsgTbodyEl", "guessedtype": "function"}, "initializeTable": {"description": "Resets a RecordSet with the given data and populates the page view\nwith the new data. Any previous data, and selection and sort states are\ncleared. New data should be added as a separate step.", "guessedname": "initializeTable", "guessedtype": "function"}, "_onEditorShowEvent": {"guessedname": "_onEditorShowEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through showEvent of the active CellEditor.", "private": "", "guessedtype": "function"}, "highlightCell": {"params": [{"type": "HTMLElement | String", "name": "cell", "description": "  DOM element reference or ID string."}], "description": "Assigns the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED to the given cell.", "guessedname": "highlightCell", "guessedtype": "function"}, "_initResizeableColumns": {"private": "", "description": "Initializes resizeability on key Column TH elements.", "guessedname": "_initResizeableColumns", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire DataTable instance and related objects, removes attached\nevent listeners, and clears out DOM elements inside the container. After\ncalling this method, the instance reference should be expliclitly nulled by\nimplementer, as in myDataTable = null. Use with caution!", "guessedname": "destroy", "guessedtype": "function"}, "_handlePaginatorChange": {"guessedname": "_handlePaginatorChange", "params": [{"type": "Object", "name": "e", "description": "  Change event object containing keys 'type','newValue',\nand 'prevValue'"}], "description": "Update the UI infrastructure in response to a \"paginator\" attribute change.", "private": "", "guessedtype": "function"}, "DataTable.formatButton": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object | Boolean", "name": "oData", "description": "  Data value for the cell. By default, the value\nis what gets written to the BUTTON."}], "description": "Formats a BUTTON element.", "guessedname": "formatButton", "guessedtype": "function"}, "DataTable.formatDropdown": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats SELECT elements.", "guessedname": "formatDropdown", "guessedtype": "function"}, "_onTableMouseup": {"guessedname": "_onTableMouseup", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The mouseup event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles mouseup events on the DataTable instance.", "private": "", "guessedtype": "function"}, "_handleSingleSelectionByMouse": {"guessedname": "_handleSingleSelectionByMouse", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  Event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  Target element."}], "description": "Determines selection behavior resulting from a mouse event when selection mode\nis set to \"single\".", "private": "", "guessedtype": "function"}, "selectCell": {"params": [{"type": "HTMLElement | String", "name": "cell", "description": "  DOM element reference or ID string\nto DataTable page element or RecordSet index."}], "description": "Sets given cell to the selected state.", "guessedname": "selectCell", "guessedtype": "function"}, "onEditorBlockEvent": {"params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Public handler of the editorBlockEvent. By default, disables DataTable UI.", "guessedname": "onEditorBlockEvent", "guessedtype": "function"}, "cancelCellEditor": {"description": "Cancels active CellEditor.", "guessedname": "cancelCellEditor", "guessedtype": "function"}, "_unselectAllTrEls": {"private": "", "description": "Convenience method to remove the class YAHOO.widget.DataTable.CLASS_SELECTED\nfrom all TR elements on the page.", "guessedname": "_unselectAllTrEls", "guessedtype": "function"}, "_removeColgroupColEl": {"guessedname": "_removeColgroupColEl", "params": [{"type": "Number", "name": "index", "description": "  Index of removed COL element."}], "description": "Removes a COL element to COLGROUP at given index.", "private": "", "guessedtype": "function"}, "_initDomElements": {"guessedname": "_initDomElements", "params": [{"type": "HTMLElement | String} HTML DIV element by reference or ID. \nreturn {Boolean", "name": "elContainer", "description": "  False in case of error, otherwise true"}], "description": "Initializes DOM elements.", "private": "", "guessedtype": "function"}, "DataTable.editDate": {"deprecated": "Use YAHOO.widget.DateCellEditor.", "guessedname": "editDate", "guessedtype": "function"}, "render": {"description": "Renders the view with existing Records from the RecordSet while\nmaintaining sort, pagination, and selection states. For performance, reuses\nexisting DOM elements when possible while deleting extraneous elements.", "guessedname": "render", "guessedtype": "function"}, "disable": {"description": "Disables DataTable UI.", "guessedname": "disable", "guessedtype": "function"}, "_destroyTableEl": {"private": "", "description": "Destroy's the DataTable TABLE element, if available.", "guessedname": "_destroyTableEl", "guessedtype": "function"}, "getBody": {"deprecated": "Use getTbodyEl().", "guessedname": "getBody", "guessedtype": "function"}, "doBeforePaginatorChange": {"return": {"type": "Boolean", "description": "Return true to continue changing Paginator value."}, "params": [{"type": "Object", "name": "oPaginatorState", "description": "  An object literal describing the proposed pagination state."}], "description": "Overridable method gives implementers a hook to show loading message before\nchanging Paginator value.", "guessedname": "doBeforePaginatorChange", "guessedtype": "function"}, "_unsetFirstRow": {"private": "", "description": "Removes the class YAHOO.widget.DataTable.CLASS_FIRST from the first TR element\nof the DataTable page and updates internal tracker.", "guessedname": "_unsetFirstRow", "guessedtype": "function"}, "getRecordIndex": {"return": {"type": "Number", "description": "Record's RecordSet index, or null."}, "params": [{"type": "YAHOO.widget.Record | HTMLElement | Number", "name": "row", "description": "  Record instance, TR\nelement reference or page row index."}], "description": "Returns Record index for given TR element or page row index.", "guessedname": "getRecordIndex", "guessedtype": "function"}, "_repaintOpera": {"private": "", "description": "Forces Opera repaint.", "guessedname": "_repaintOpera", "guessedtype": "property"}, "handleDataReturnPayload": {"return": {"type": "MIXED", "description": "oPayload  State values."}, "description": "Hook to update oPayload before consumption.", "param": "oRequest {MIXED} Original generated request.", "params": [{"type": "MIXED", "name": "oRequest", "description": "  Original generated request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  State values."}], "guessedname": "handleDataReturnPayload", "guessedtype": "function"}, "doBeforeLoadData": {"return": {"type": "Boolean", "description": "Return true to continue loading data into RecordSet and\nupdating DataTable with new Records, false to cancel."}, "params": [{"type": "String", "name": "sRequest", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  additional arguments"}], "description": "Overridable method gives implementers a hook to access data before\nit gets added to RecordSet and rendered to the TBODY.", "guessedname": "doBeforeLoadData", "guessedtype": "function"}, "onDataReturnSetRows": {"params": [{"type": "MIXED", "name": "oRequest", "description": "  Original generated request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Callback function receives reponse from DataSource and populates the\nRecordSet with the results.", "guessedname": "onDataReturnSetRows", "guessedtype": "function"}, "getContainerEl": {"return": {"type": "HTMLElement", "description": "Reference to DIV element."}, "description": "Returns DOM reference to the DataTable's container element.", "guessedname": "getContainerEl", "guessedtype": "function"}, "_onTableDblclick": {"guessedname": "_onTableDblclick", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The dblclick event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles dblclick events on the DataTable instance.", "private": "", "guessedtype": "function"}, "getMsgTbodyEl": {"return": {"type": "HTMLElement", "description": "Reference to TBODY element."}, "description": "Returns DOM reference to the DataTable's secondary TBODY element that is\nused to display messages.", "guessedname": "getMsgTbodyEl", "guessedtype": "function"}, "getLastTdEl": {"return": {"type": "HTMLElement", "description": "Reference to last TD element."}, "description": "Returns DOM reference to the last TD element in the DataTable page (by default),\nthe first TD element of the optionally given row, or null.", "guessedname": "getLastTdEl", "guessedtype": "function"}, "getSelectedColumns": {"return": {"type": "YAHOO.widget.Column[]", "description": "Array of Column instances."}, "description": "Returns an array selected Column instances.", "guessedname": "getSelectedColumns", "guessedtype": "function"}, "_onTableMouseover": {"guessedname": "_onTableMouseover", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The mouseover event."}, {"type": "YAHOO.wiget.DataTable", "name": "oSelf", "description": "  DataTable instance."}], "description": "Handles mouseover events on the DataTable instance.", "private": "", "guessedtype": "function"}, "DataTable.formatDate": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": "  The element to format with markup."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Object", "name": "oData", "description": "  Data value for the cell, or null."}], "description": "Formats JavaScript Dates.", "guessedname": "formatDate", "guessedtype": "function"}, "_syncColWidths": {"deprecated": "Use validateColumnWidths.", "guessedname": "_syncColWidths", "guessedtype": "function"}, "_initMsgTbodyEl": {"guessedname": "_initMsgTbodyEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create TBODY"}], "description": "Initializes TBODY element for messaging.", "private": "", "guessedtype": "function"}, "formatCell": {"params": [{"type": "HTMLElement", "name": "elLiner", "description": "  The liner DIV element within the TD."}, {"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  (Optional) Record instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  (Optional) Column instance."}], "description": "Outputs markup into the given TD based on given Record.", "guessedname": "formatCell", "guessedtype": "function"}, "_handleSingleSelectionByKey": {"guessedname": "_handleSingleSelectionByKey", "params": [{"type": "HTMLEvent", "name": "e", "description": "  Event object."}], "description": "Determines selection behavior resulting from a key event when selection mode\nis set to \"single\".", "private": "", "guessedtype": "function"}, "highlightRow": {"params": [{"type": "HTMLElement | String", "name": "row", "description": "  DOM element reference or ID string."}], "description": "Assigns the class YAHOO.widget.DataTable.CLASS_HIGHLIGHTED to the given row.", "guessedname": "highlightRow", "guessedtype": "function"}, "unselectAllCells": {"description": "Clears out all cell selections.", "guessedname": "unselectAllCells", "guessedtype": "function"}, "_onEditorBlockEvent": {"guessedname": "_onEditorBlockEvent", "params": [{"type": "Object", "name": "oArgs", "description": "   Custom Event args."}], "description": "Passes through blockEvent of the active CellEditor.", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "DataTable.js", "guessedtype": "function", "shortname": "DataTable", "properties": {"DataTable.CLASS_MASK": {"description": "Class name assigned to mask element when DataTable is disabled.", "default": "\"yui-dt-mask\"", "static": "", "guessedname": "CLASS_MASK", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_LABEL": {"description": "Class name assigned to display label elements.", "default": "\"yui-dt-label\"", "static": "", "guessedname": "CLASS_LABEL", "guessedtype": "property", "type": "String", "final": ""}, "_sFirstTrId": {"guessedname": "_sFirstTrId", "type": "String", "description": "ID string of first TR element of the current DataTable page.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_LINER": {"description": "Class name assigned to liner DIV elements.", "default": "\"yui-dt-liner\"", "static": "", "guessedname": "CLASS_LINER", "guessedtype": "property", "type": "String", "final": ""}, "DataTable._elDynStyleNode": {"description": "Reference to the STYLE node that is dynamically created and updated\nin order to manage Column widths.", "private": "", "static": "", "guessedname": "_elDynStyleNode", "guessedtype": "property", "type": "HTMLElement"}, "_oColumnSet": {"guessedname": "_oColumnSet", "type": "YAHOO.widget.ColumnSet", "description": "ColumnSet instance for the DataTable instance.", "private": "", "guessedtype": "property"}, "_elMsgTbody": {"guessedname": "_elMsgTbody", "type": "HTMLElement", "description": "DOM reference to the secondary TBODY element used to display DataTable messages.", "private": "", "guessedtype": "property"}, "DataTable._oDynStyles": {"description": "Object literal hash of Columns and their dynamically create style rules.", "private": "", "static": "", "guessedname": "_oDynStyles", "guessedtype": "property", "type": "Object"}, "_bInit": {"description": "True if instance is initialized, so as to fire the initEvent after render.", "default": "true", "private": "", "guessedname": "_bInit", "guessedtype": "property", "type": "Boolean"}, "_elCaption": {"guessedname": "_elCaption", "type": "HTMLElement", "description": "DOM reference to the CAPTION element for the DataTable instance.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_DISABLED": {"description": "Class name assigned to disabled elements.", "default": "\"yui-dt-disabled\"", "static": "", "guessedname": "CLASS_DISABLED", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.Formatter": {"type": "Object", "static": "", "description": "Cell formatting functions.", "guessedname": "Formatter", "guessedtype": "property"}, "DataTable.CLASS_CHECKBOX": {"description": "Class name assigned to INPUT TYPE=CHECKBOX elements and/or container elements.", "default": "\"yui-dt-checkbox\"", "static": "", "guessedname": "CLASS_CHECKBOX", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_PAGINATOR": {"description": "Class name assigned to paginator container elements.", "default": "\"yui-dt-paginator\"", "static": "", "guessedname": "CLASS_PAGINATOR", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_ERROR": {"description": "Class name assigned to error indicators.", "default": "\"yui-dt-error\"", "static": "", "guessedname": "CLASS_ERROR", "guessedtype": "property", "type": "String", "final": ""}, "_oRecordSet": {"guessedname": "_oRecordSet", "type": "YAHOO.widget.RecordSet", "description": "RecordSet instance for the DataTable instance.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_DESC": {"description": "Class name assigned to descending elements.", "default": "\"yui-dt-desc\"", "static": "", "guessedname": "CLASS_DESC", "guessedtype": "property", "type": "String", "final": ""}, "DataTable._nCurrentCount": {"description": "Internal class variable tracking current number of DataTable instances,\nso that certain class values can be reset when all instances are destroyed.", "private": "", "static": "", "guessedname": "_nCurrentCount", "guessedtype": "property", "type": "Number"}, "DataTable.CLASS_HIGHLIGHTED": {"description": "Class name assigned to highlighted elements.", "default": "\"yui-dt-highlighted\"", "static": "", "guessedname": "CLASS_HIGHLIGHTED", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_EVEN": {"description": "Class name assigned to even elements.", "default": "\"yui-dt-even\"", "static": "", "guessedname": "CLASS_EVEN", "guessedtype": "property", "type": "String", "final": ""}, "DataTable._bDynStylesFallback": {"description": "Set to true if _elDynStyleNode cannot be populated due to browser incompatibility.", "private": "", "static": "", "guessedname": "_bDynStylesFallback", "guessedtype": "property", "type": "boolean"}, "_elContainer": {"guessedname": "_elContainer", "type": "HTMLElement", "description": "DOM reference to the container element for the DataTable instance into which\nall other elements get created.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_HIDDEN": {"description": "Class name assigned to hidden elements.", "default": "\"yui-dt-hidden\"", "static": "", "guessedname": "CLASS_HIDDEN", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_NEXT": {"description": "Class name assigned next indicators.", "default": "\"yui-dt-next\"", "static": "", "guessedname": "CLASS_NEXT", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_RESIZERPROXY": {"description": "Class name assigned to resizer proxy elements.", "default": "\"yui-dt-resizerproxy\"", "static": "", "guessedname": "CLASS_RESIZERPROXY", "guessedtype": "property", "type": "String", "final": ""}, "_oAnchorCell": {"guessedname": "_oAnchorCell", "type": "Object", "description": "Object literal representing cell selection anchor:\n{recordId:sRecordId, columnKey:sColumnKey}.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_RESIZER": {"description": "Class name assigned to resizer handle elements.", "default": "\"yui-dt-resizer\"", "static": "", "guessedname": "CLASS_RESIZER", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_RADIO": {"description": "Class name assigned to INPUT TYPE=RADIO elements and/or container elements.", "default": "\"yui-dt-radio\"", "static": "", "guessedname": "CLASS_RADIO", "guessedtype": "property", "type": "String", "final": ""}, "_oCellEditor": {"guessedname": "_oCellEditor", "type": "YAHOO.widget.CellEditor", "description": "The active CellEditor instance for the DataTable instance.", "private": "", "guessedtype": "property"}, "DataTable._elColumnResizerProxy": {"description": "Element reference to shared Column resizer proxy.", "private": "", "static": "", "guessedname": "_elColumnResizerProxy", "guessedtype": "property", "type": "HTMLElement"}, "DataTable.CLASS_MESSAGE": {"description": "Class name assigned to messaging elements.", "default": "\"yui-dt-message\"", "static": "", "guessedname": "CLASS_MESSAGE", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_PREVIOUS": {"description": "Class name assigned to previous indicators.", "default": "\"yui-dt-previous\"", "static": "", "guessedname": "CLASS_PREVIOUS", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_DEFAULT": {"description": "Class name assigned to default indicators.", "default": "\"yui-dt-default\"", "static": "", "guessedname": "CLASS_DEFAULT", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_DATA": {"description": "Class name assigned to data elements.", "default": "\"yui-dt-data\"", "static": "", "guessedname": "CLASS_DATA", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_RESIZERLINER": {"description": "Class name assigned to resizer liner elements.", "default": "\"yui-dt-resizerliner\"", "static": "", "guessedname": "CLASS_RESIZERLINER", "guessedtype": "property", "type": "String", "final": ""}, "_elMsgTr": {"guessedname": "_elMsgTr", "type": "HTMLElement", "description": "DOM reference to the secondary TBODY element's single TR element used to display DataTable messages.", "private": "", "guessedtype": "property"}, "_sLastTrId": {"guessedname": "_sLastTrId", "type": "String", "description": "ID string of the last TR element of the current DataTable page.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_BUTTON": {"description": "Class name assigned to BUTTON elements and/or container elements.", "default": "\"yui-dt-button\"", "static": "", "guessedname": "CLASS_BUTTON", "guessedtype": "property", "type": "String", "final": ""}, "DataTable._elColumnDragTarget": {"description": "Element reference to shared Column drag target.", "private": "", "static": "", "guessedname": "_elColumnDragTarget", "guessedtype": "property", "type": "HTMLElement"}, "DataTable.CLASS_RESIZEABLE": {"description": "Class name assigned to resizeable elements.", "default": "\"yui-dt-resizeable\"", "static": "", "guessedname": "CLASS_RESIZEABLE", "guessedtype": "property", "type": "String", "final": ""}, "_oChainRender": {"guessedname": "_oChainRender", "type": "YAHOO.util.Chain", "description": "Render chain.", "private": "", "guessedtype": "property"}, "DataTable._nCount": {"description": "Internal class variable for indexing multiple DataTable instances.", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}, "DataTable.CLASS_PAGE": {"description": "Class name assigned to page number indicators.", "default": "\"yui-dt-page\"", "static": "", "guessedname": "CLASS_PAGE", "guessedtype": "property", "type": "String", "final": ""}, "_aSelections": {"guessedname": "_aSelections", "type": "Object[]", "description": "Array to track row selections (by sRecordId) and/or cell selections\n(by {recordId:sRecordId, columnKey:sColumnKey})", "private": "", "guessedtype": "property"}, "DataTable.CLASS_ASC": {"description": "Class name assigned to ascending elements.", "default": "\"yui-dt-asc\"", "static": "", "guessedname": "CLASS_ASC", "guessedtype": "property", "type": "String", "final": ""}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique id assigned to instance \"yui-dtN\", useful prefix for generating unique\nDOM ID strings and log messages.", "private": "", "guessedtype": "property"}, "configs": {"default": "{}", "type": "Object", "description": "Returns object literal of initial configs.", "guessedname": "configs", "guessedtype": "property"}, "_oDataSource": {"guessedname": "_oDataSource", "type": "YAHOO.util.DataSource", "description": "DataSource instance for the DataTable instance.", "private": "", "guessedtype": "property"}, "_elMask": {"guessedname": "_elMask", "type": "HTMLElement", "description": "DOM reference to the mask element for the DataTable instance which disables it.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_EMPTY": {"description": "Class name assigned to empty indicators.", "default": "\"yui-dt-empty\"", "static": "", "guessedname": "CLASS_EMPTY", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_DATATABLE": {"description": "Class name assigned to outer DataTable container.", "default": "\"yui-dt\"", "static": "", "guessedname": "CLASS_DATATABLE", "guessedtype": "property", "type": "String", "final": ""}, "_elTable": {"guessedname": "_elTable", "type": "HTMLElement", "description": "DOM reference to the TABLE element for the DataTable instance.", "private": "", "guessedtype": "property"}, "_elColgroup": {"guessedname": "_elColgroup", "type": "HTMLElement", "description": "DOM reference to the COLGROUP element for the DataTable instance.", "private": "", "guessedtype": "property"}, "_nIndex": {"guessedname": "_nIndex", "type": "Number", "description": "Index assigned to instance.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_DRAGGABLE": {"description": "Class name assigned to draggable elements.", "default": "\"yui-dt-draggable\"", "static": "", "guessedname": "CLASS_DRAGGABLE", "guessedtype": "property", "type": "String", "final": ""}, "_elThead": {"guessedname": "_elThead", "type": "HTMLElement", "description": "DOM reference to the THEAD element for the DataTable instance.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_DROPDOWN": {"description": "Class name assigned to SELECT elements and/or container elements.", "default": "\"yui-dt-dropdown\"", "static": "", "guessedname": "CLASS_DROPDOWN", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_SCROLLABLE": {"description": "Class name assigned to scrollable elements.", "default": "\"yui-dt-scrollable\"", "static": "", "guessedname": "CLASS_SCROLLABLE", "guessedtype": "property", "type": "String", "final": ""}, "_nTdCount": {"guessedname": "_nTdCount", "type": "Number", "description": "Counter for IDs assigned to TD elements.", "private": "", "guessedtype": "property"}, "_oAnchorRecord": {"guessedname": "_oAnchorRecord", "type": "YAHOO.widget.Record", "description": "Record instance of the row selection anchor.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_EDITOR": {"description": "Class name assigned to CellEditor container elements.", "default": "\"yui-dt-editor\"", "static": "", "guessedname": "CLASS_EDITOR", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_LAST": {"description": "Class name assigned to last elements.", "default": "\"yui-dt-last\"", "static": "", "guessedname": "CLASS_LAST", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_ODD": {"description": "Class name assigned to odd elements.", "default": "\"yui-dt-odd\"", "static": "", "guessedname": "CLASS_ODD", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_FIRST": {"description": "Class name assigned to first elements.", "default": "\"yui-dt-first\"", "static": "", "guessedname": "CLASS_FIRST", "guessedtype": "property", "type": "String", "final": ""}, "_aDynFunctions": {"guessedname": "_aDynFunctions", "type": "Array", "description": "Sparse array of custom functions to set column widths for browsers that don't\nsupport dynamic CSS rules.  Functions are added at the index representing\nthe number of rows they update.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_COLTARGET": {"description": "Class name assigned to Column drag target.", "default": "\"yui-dt-coltarget\"", "static": "", "guessedname": "CLASS_COLTARGET", "guessedtype": "property", "type": "String", "final": ""}, "_elTbody": {"guessedname": "_elTbody", "type": "HTMLElement", "description": "DOM reference to the primary TBODY element for the DataTable instance.", "private": "", "guessedtype": "property"}, "_elTrTemplate": {"guessedname": "_elTrTemplate", "type": "{HTMLElement}", "description": "Template row to create all new rows from.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_SELECTED": {"description": "Class name assigned to selected elements.", "default": "\"yui-dt-selected\"", "static": "", "guessedname": "CLASS_SELECTED", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_LOADING": {"description": "Class name assigned to loading indicatorx.", "default": "\"yui-dt-loading\"", "static": "", "guessedname": "CLASS_LOADING", "guessedtype": "property", "type": "String", "final": ""}, "_nTrCount": {"guessedname": "_nTrCount", "type": "Number", "description": "Counter for IDs assigned to TR elements.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_EDITABLE": {"description": "Class name assigned to editable elements.", "default": "\"yui-dt-editable\"", "static": "", "guessedname": "CLASS_EDITABLE", "guessedtype": "property", "type": "String", "final": ""}, "DataTable.CLASS_SORTABLE": {"description": "Class name assigned to sortable elements.", "default": "\"yui-dt-sortable\"", "static": "", "guessedname": "CLASS_SORTABLE", "guessedtype": "property", "type": "String", "final": ""}, "_elMsgTd": {"guessedname": "_elMsgTd", "type": "HTMLElement", "description": "DOM reference to the secondary TBODY element's single TD element used to display DataTable messages.", "private": "", "guessedtype": "property"}}, "description": "DataTable class for the YUI DataTable widget."}, "YAHOO.widget.Paginator.ui.PreviousPageLink": {"properties": {"current": {"guessedname": "current", "type": "HTMLElement", "description": "Currently placed HTMLElement node", "private": "", "guessedtype": "property"}, "span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node (inactive link)", "private": "", "guessedtype": "property"}, "link": {"guessedname": "link", "type": "HTMLElement", "description": "Link node", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.PreviousPageLink", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the link to jump to the previous page."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforePreviousPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePreviousPageLinkLabelChange", "description": "Fires before the value for the configuration attribute 'previousPageLinkLabel' changes. Return false to cancel the attribute change."}, "beforePreviousPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePreviousPageLinkClassChange", "description": "Fires before the value for the configuration attribute 'previousPageLinkClass' changes. Return false to cancel the attribute change."}, "previousPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "previousPageLinkClassChange", "description": "Fires when the value for the configuration attribute 'previousPageLinkClass' changes."}, "previousPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "previousPageLinkLabelChange", "description": "Fires when the value for the configuration attribute 'previousPageLinkLabel' changes."}}, "guessedname": "PreviousPageLink", "methods": {"onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the link's onclick event.  Passes to setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the link/span node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Swap the link and span nodes if appropriate.", "guessedname": "update", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}}, "file": "PreviousPageLink.js", "guessedtype": "function", "shortname": "PreviousPageLink", "configs": {"previousPageLinkLabel": {"default": "'< prev'", "description": "Used as innerHTML for the previous page link/span."}, "previousPageLinkClass": {"default": "'yui-pg-previous'", "description": "CSS class assigned to the link/span"}}, "description": "ui Component to generate the link to jump to the previous page."}, "YAHOO.util.ColorAnim": {"name": "YAHOO.util.ColorAnim", "constructors": [{"params": [{"type": "HTMLElement | String", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.\nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.\nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").\nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Anim subclass for color transitions.\n<p>Usage: <code>var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut);</code> Color values can be specified with either 112233, #112233, \n[255,255,255], or rgb(255,255,255)</p>"}], "namespace": "YAHOO.util", "module": "animation", "guessedname": "ColorAnim", "methods": {"parseColor": {"return": {"type": "Array", "description": "The 3-tuple of rgb values."}, "params": [{"type": "String", "name": "s", "description": " The string to parse."}], "description": "Attempts to parse the given string and return a 3-tuple.", "guessedname": "parseColor", "guessedtype": "function"}}, "extends": "YAHOO.util.Anim", "superclass": "YAHOO.util.Anim", "file": "ColorAnim.js", "guessedtype": "function", "shortname": "ColorAnim", "requires": "YAHOO.util.Anim", "description": "Anim subclass for color transitions.\n<p>Usage: <code>var myAnim = new Y.ColorAnim(el, { backgroundColor: { from: '#FF0000', to: '#FFFFFF' } }, 1, Y.Easing.easeOut);</code> Color values can be specified with either 112233, #112233, \n[255,255,255], or rgb(255,255,255)</p>"}, "YAHOO.lang.JSON": {"name": "YAHOO.lang.JSON", "namespace": "YAHOO.lang", "module": "json", "methods": {"stringify": {"return": {"type": "string", "description": "JSON string representation of the input"}, "description": "<p>Converts an arbitrary value to a JSON string representation.</p>\n<p>Objects with cyclical references will trigger an exception.</p>\n<p>If a whitelist is provided, only matching object keys will be\nincluded.  Alternately, a replacer function may be passed as the\nsecond parameter.  This function is executed on every value in the\ninput, and its return value will be used in place of the original value.\nThis is useful to serialize specialized objects or class instances.</p>\n<p>If a positive integer or non-empty string is passed as the third\nparameter, the output will be formatted with carriage returns and\nindentation for readability.  If a String is passed (such as \"\\t\") it\nwill be used once for each indentation level.  If a number is passed,\nthat number of spaces will be used.</p>\n<p>When lang.JSON.useNativeStringify is true, this will defer to the\nnative JSON.stringify if the browser has a native implementation.\nOtherwise, a JavaScript implementation is used.</p>", "static": "", "guessedname": "stringify", "guessedtype": "function", "params": [{"type": "MIXED", "name": "o", "description": "  any arbitrary object to convert to JSON string"}, {"type": "Array|Function", "name": "w", "description": "  (optional) whitelist of acceptable object keys\nto include OR a function(value,key) to alter values\nbefore serialization"}, {"type": "Number|String", "name": "space", "description": "  (optional) indentation character(s) or\ndepthy of spaces to format the output"}], "throws": "Error"}, "_prepare": {"return": {"type": "String", "description": "sanitized JSON string ready to be validated/parsed"}, "params": [{"type": "String", "name": "s", "description": "  parse input"}], "description": "Replace certain Unicode characters that may be handled incorrectly by\nsome browser implementations.", "private": ""}, "isValid": {"return": {"type": "boolean", "description": "is the string safe for eval?"}, "description": "<p>Four step determination whether a string is safe to eval. In three steps,\nescape sequences, safe values, and properly placed open square brackets\nare replaced with placeholders or removed.  Then in the final step, the\nresult of all these replacements is checked for invalid characters.</p>\n<p>This is an alias for isSafe.</p>", "deprecated": "use isSafe", "static": "", "guessedname": "isValid", "guessedtype": "property", "params": [{"type": "String", "name": "str", "description": "  JSON string to be tested"}]}, "dateToString": {"return": {"type": "String", "description": "stringified Date in UTC format YYYY-MM-DDTHH:mm:SSZ"}, "description": "Serializes a Date instance as a UTC date string.  Used internally by\nthe JavaScript implementation of stringify.  If you need a different\nDate serialization format, override this method.  If you change this,\nyou should also set useNativeStringify to false, since native JSON\nimplementations serialize Dates per the ECMAScript 5 spec.  You've been\nwarned.", "static": "", "guessedname": "dateToString", "guessedtype": "function", "params": [{"type": "Date", "name": "d", "description": "  The Date to serialize"}]}, "parse": {"return": {"type": "MIXED", "description": "the native JavaScript representation of the JSON string"}, "description": "<p>Parse a JSON string, returning the native JavaScript\nrepresentation.</p>\n<p>When lang.JSON.useNativeParse is true, this will defer to the native\nJSON.parse if the browser has a native implementation.  Otherwise, a\nJavaScript implementation based on http://www.json.org/json2.js\nis used.</p>", "static": "", "guessedname": "parse", "guessedtype": "function", "params": [{"type": "string", "name": "s", "description": "  JSON string data"}, {"type": "function", "name": "reviver", "description": "  (optional) function(k,v) passed each key:value\npair of object literals, allowing pruning or altering values"}], "throws": "SyntaxError"}, "isSafe": {"return": {"type": "boolean", "description": "is the string safe for eval?"}, "description": "Four step determination whether a string is safe to eval. In three steps,\nescape sequences, safe values, and properly placed open square brackets\nare replaced with placeholders or removed.  Then in the final step, the\nresult of all these replacements is checked for invalid characters.", "static": "", "guessedname": "isSafe", "guessedtype": "function", "params": [{"type": "String", "name": "str", "description": "  JSON string to be tested"}]}, "stringToDate": {"return": {"type": "Date", "description": ""}, "params": [{"type": "String", "name": "str", "description": "  String serialization of a Date"}], "description": "Reconstitute Date instances from the default JSON UTC serialization.\nReference this from a reviver function to rebuild Dates during the\nparse operation.", "guessedname": "stringToDate", "guessedtype": "function"}, "_revive": {"return": {"type": "MIXED", "description": "The results of the filtered/mutated data structure"}, "params": [{"type": "MIXED", "name": "data", "description": "  Any JavaScript data"}, {"type": "Function", "name": "reviver", "description": "  filter or mutation function"}], "description": "Traverses nested objects, applying a filter or reviver function to\neach value.  The value returned from the function will replace the\noriginal value in the key:value pair.  If the value returned is\nundefined, the key will be omitted from the returned object.", "private": ""}}, "static": "", "file": "JSON.js", "shortname": "JSON", "properties": {"_BRACKETS": {"description": "Third step in the safety evaluation.  Regex used to remove all open\nsquare brackets following a colon, comma, or at the beginning of the\nstring.", "private": "", "static": "", "guessedname": "_BRACKETS", "guessedtype": "property", "type": "{RegExp}"}, "_VALUES": {"description": "Second step in the safety evaluation.  Regex used to replace all simple\nvalues with ']' characters.", "private": "", "static": "", "guessedname": "_VALUES", "guessedtype": "property", "type": "{RegExp}"}, "useNativeStringify": {"description": "Leverage native JSON stringify if the browser has a native\nimplementation.  In general, this is a good idea.  See the Known Issues\nsection in the JSON user guide for caveats.  The default value is true\nfor browsers with native JSON support.", "default": "true", "static": "", "guessedname": "useNativeStringify", "guessedtype": "property", "type": "Boolean"}, "useNativeParse": {"description": "Leverage native JSON parse if the browser has a native implementation.\nIn general, this is a good idea.  See the Known Issues section in the\nJSON user guide for caveats.  The default value is true for browsers with\nnative JSON support.", "default": "true", "static": "", "guessedname": "useNativeParse", "guessedtype": "property", "type": "Boolean"}, "_SPECIAL_CHARS": {"description": "Regex used to replace special characters in strings for JSON\nstringification.", "private": "", "static": "", "guessedname": "_SPECIAL_CHARS", "guessedtype": "property", "type": "{RegExp}"}, "_CHARS": {"description": "Character substitution map for common escapes and special characters.", "private": "", "static": "", "guessedname": "_CHARS", "guessedtype": "property", "type": "{Object}"}, "_UNSAFE": {"description": "Final step in the safety evaluation.  Regex used to test the string left\nafter all previous replacements for invalid characters.", "private": "", "static": "", "guessedname": "_UNSAFE", "guessedtype": "property", "type": "{RegExp}"}, "_ESCAPES": {"description": "First step in the safety evaluation.  Regex used to replace all escape\nsequences (i.e. \"\\\\\", etc) with '@' characters (a non-JSON character).", "private": "", "static": "", "guessedname": "_ESCAPES", "guessedtype": "property", "type": "{RegExp}"}, "_UNICODE_EXCEPTIONS": {"guessedname": "_UNICODE_EXCEPTIONS", "type": "{RegExp}", "description": "Replace certain Unicode characters that JavaScript may handle incorrectly\nduring eval--either by deleting them or treating them as line\nendings--with escape sequences.\nIMPORTANT NOTE: This regex will be used to modify the input if a match is\nfound.", "private": "", "guessedtype": "property"}}, "description": "Provides methods to parse JSON strings and convert objects to JSON strings."}, "YAHOO.util.ImageLoader.srcImgObj": {"name": "YAHOO.util.ImageLoader.srcImgObj", "constructors": [{"params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}, {"type": "Int", "name": "width", "description": "\tpixel width of the image - defaults to image's natural size"}, {"type": "Int", "name": "height", "description": "\tpixel height of the image - defaults to image's natural size"}], "description": "Source image object. A source image is one whose URL is specified by a src attribute in the DOM element"}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "srcImgObj", "methods": {"_applyUrl": {"guessedname": "_applyUrl", "params": [{"type": "Object", "name": "el", "description": "\tHTML DOM element"}], "description": "Inserts the image URL into the DOM so that the image is displayed.\nSets src", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.ImageLoader.imgObj", "superclass": "YAHOO.util.ImageLoader.imgObj", "file": "ImageLoader.js", "guessedtype": "function", "shortname": "srcImgObj", "description": "Source image object. A source image is one whose URL is specified by a src attribute in the DOM element"}, "LogMsg": {"name": "LogMsg", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  Object literal of configuration params."}], "description": "The LogMsg class defines a single log message."}], "namespace": "", "module": "logger", "guessedname": "LogMsg", "file": "LogMsg.js", "guessedtype": "function", "shortname": "LogMsg", "properties": {"msg": {"type": "String", "description": "Log message.", "guessedname": "msg", "guessedtype": "property"}, "category": {"type": "String", "description": "Log category.", "guessedname": "category", "guessedtype": "property"}, "sourceDetail": {"type": "String", "description": "Log source detail. The remainder of the string passed in as the source argument, not\nincluding the first word (if any).", "guessedname": "sourceDetail", "guessedtype": "property"}, "source": {"type": "String", "description": "Log source. The first word passed in as the source argument.", "guessedname": "source", "guessedtype": "property"}, "time": {"type": "Date", "description": "Log timestamp.", "guessedname": "time", "guessedtype": "property"}}, "description": "The LogMsg class defines a single log message."}, "YAHOO.widget.CartesianChart": {"name": "YAHOO.widget.CartesianChart", "configs": {"yField": {"type": "String", "description": "The field in each item that corresponds to a value on the x axis."}, "constrainViewport": {"type": "Boolean", "description": "Determines whether the viewport is constrained to prevent series data from overflow."}, "yAxis": {"type": "Axis", "description": "A custom configuration for the vertical y axis."}, "xAxes": {"type": "Array", "description": "Custom configurations for the horizontal x axes."}, "yAxes": {"type": "Array", "description": "Custom configurations for the vertical y axes."}, "xAxis": {"type": "Axis", "description": "A custom configuration for the horizontal x axis."}, "xField": {"type": "String", "description": "The field in each item that corresponds to a value on the x axis."}}, "constructors": [{"params": [{"type": "String", "name": "type", "description": "  The char type. May be \"line\", \"column\", or \"bar\""}, {"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "CartesianChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "events": {"beforeYFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeYFieldChange", "description": "Fires before the value for the configuration attribute 'yField' changes. Return false to cancel the attribute change."}, "xAxesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "xAxesChange", "description": "Fires when the value for the configuration attribute 'xAxes' changes."}, "beforeXAxisChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeXAxisChange", "description": "Fires before the value for the configuration attribute 'xAxis' changes. Return false to cancel the attribute change."}, "xAxisChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "xAxisChange", "description": "Fires when the value for the configuration attribute 'xAxis' changes."}, "yAxesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "yAxesChange", "description": "Fires when the value for the configuration attribute 'yAxes' changes."}, "constrainViewportChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "constrainViewportChange", "description": "Fires when the value for the configuration attribute 'constrainViewport' changes."}, "yAxisChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "yAxisChange", "description": "Fires when the value for the configuration attribute 'yAxis' changes."}, "xFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "xFieldChange", "description": "Fires when the value for the configuration attribute 'xField' changes."}, "yFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "yFieldChange", "description": "Fires when the value for the configuration attribute 'yField' changes."}, "beforeYAxisChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeYAxisChange", "description": "Fires before the value for the configuration attribute 'yAxis' changes. Return false to cancel the attribute change."}, "beforeYAxesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeYAxesChange", "description": "Fires before the value for the configuration attribute 'yAxes' changes. Return false to cancel the attribute change."}, "beforeConstrainViewportChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeConstrainViewportChange", "description": "Fires before the value for the configuration attribute 'constrainViewport' changes. Return false to cancel the attribute change."}, "beforeXAxesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeXAxesChange", "description": "Fires before the value for the configuration attribute 'xAxes' changes. Return false to cancel the attribute change."}, "beforeXFieldChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeXFieldChange", "description": "Fires before the value for the configuration attribute 'xField' changes. Return false to cancel the attribute change."}}, "guessedname": "CartesianChart", "methods": {"_setYAxis": {"private": "", "description": "Setter for the yAxis attribute.", "guessedname": "_setYAxis", "guessedtype": "function"}, "_removeAxisFunctions": {"private": "", "description": "Removes axis functions contained in an array", "guessedname": "_removeAxisFunctions", "guessedtype": "function"}, "setSeriesStylesByIndex": {"params": [{"type": "Number", "name": "index", "description": "  The position within the series definition to apply the style"}, {"type": "object", "name": "style", "description": "  Style object to be applied to the selected series"}], "description": "Sets the style object for a single series based on its index", "guessedname": "setSeriesStylesByIndex", "guessedtype": "function"}, "_setXAxes": {"private": "", "description": "Setter for the xAxes attribute", "guessedname": "_setXAxes", "guessedtype": "function"}, "_setConstrainViewport": {"private": "", "description": "Setter for the constrainViewport attribute", "guessedname": "_setConstrainViewport", "guessedtype": "function"}, "_getYField": {"private": "", "description": "Getter for the yField attribute.", "guessedname": "_getYField", "guessedtype": "function"}, "_setYAxes": {"private": "", "description": "Setter for the yAxes attribute.", "guessedname": "_setYAxes", "guessedtype": "function"}, "_initAttributes": {"private": "", "description": "Initializes the attributes.", "guessedname": "_initAttributes", "guessedtype": "function"}, "_setXAxis": {"private": "", "description": "Setter for the xAxis attribute.", "guessedname": "_setXAxis", "guessedtype": "function"}, "_getXField": {"private": "", "description": "Getter for the xField attribute.", "guessedname": "_getXField", "guessedtype": "function"}, "_setXField": {"private": "", "description": "Setter for the xField attribute.", "guessedname": "_setXField", "guessedtype": "function"}, "_setYField": {"private": "", "description": "Setter for the yField attribute.", "guessedname": "_setYField", "guessedtype": "function"}, "_getClonedAxis": {"private": "", "description": "Receives an axis object, creates a proxy function for \nthe labelFunction and returns the updated object.", "guessedname": "_getClonedAxis", "guessedtype": "function"}}, "uses": ["YAHOO.widget.Chart"], "file": "CartesianChart.js", "guessedtype": "function", "shortname": "CartesianChart", "properties": {"_yAxisLabelFunctions": {"guessedname": "_yAxisLabelFunctions", "type": "Array", "description": "Stores a reference to the yAxis labelFunctions created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}, "_xAxisLabelFunctions": {"guessedname": "_xAxisLabelFunctions", "type": "String", "description": "Stores a reference to the xAxis labelFunction created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}}, "description": "CartesianChart class for the YUI Charts widget."}, "YAHOO.widget.Layout": {"name": "YAHOO.widget.Layout", "configs": {"parent": {"type": "Object YAHOO.widget.Layout", "description": "If this layout is to be used as a child of another Layout instance, this config will bind the resize events together."}, "minHeight": {"type": "Number", "description": "The minimum height in pixels"}, "height": {"type": "Number", "description": "The height in pixels"}, "minWidth": {"type": "Number", "description": "The minimum width in pixels"}, "width": {"type": "Number", "description": "The width in pixels"}, "units": {"type": "Array", "description": "An array of config definitions for the LayoutUnits to add to this layout"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to make contain a layout."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Provides a fixed layout containing, top, bottom, left, right and center layout units. It can be applied to either the body or an element.</p>"}], "namespace": "YAHOO.widget", "module": "layout", "events": {"beforeMinWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinWidthChange", "description": "Fires before the value for the configuration attribute 'minWidth' changes. Return false to cancel the attribute change."}, "minHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minHeightChange", "description": "Fires when the value for the configuration attribute 'minHeight' changes."}, "startResize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the Resize Utility for a Unit fires it's startResize Event."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "unitsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "unitsChange", "description": "Fires when the value for the configuration attribute 'units' changes."}, "beforeMinHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinHeightChange", "description": "Fires before the value for the configuration attribute 'minHeight' changes. Return false to cancel the attribute change."}, "render": {"type": "YAHOO.util.CustomEvent", "description": "Fired after the render method completes.", "guessedname": "Layout", "guessedtype": "property"}, "resize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when this.resize is called"}, "parentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "parentChange", "description": "Fires when the value for the configuration attribute 'parent' changes."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "beforeUnitsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUnitsChange", "description": "Fires before the value for the configuration attribute 'units' changes. Return false to cancel the attribute change."}, "beforeParentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeParentChange", "description": "Fires before the value for the configuration attribute 'parent' changes. Return false to cancel the attribute change."}, "beforeResize": {"type": "YAHOO.util.CustomEvent", "description": "Fires at the beginning of the resize method. If you return false, the resize is cancelled."}, "minWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minWidthChange", "description": "Fires when the value for the configuration attribute 'minWidth' changes."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "Layout", "methods": {"_stamp": {"description": "Stamps the root node with a secure classname for ease of use. Also sets the this.browser.standardsMode variable.", "private": "", "guessedname": "_stamp", "guessedtype": "function"}, "_setupElements": {"description": "Sets up the main doc element when not using the body as the main element.", "private": "", "guessedname": "_setupElements", "guessedtype": "function"}, "addUnit": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "params": [{"type": "Object", "name": "cfg", "description": " The config for the LayoutUnit that you want to add"}], "description": "Add a unit to this layout and if the layout is rendered, resize the layout.", "guessedname": "addUnit", "guessedtype": "function"}, "render": {"return": {"type": "<a href=\"YAHOO.widget.Layout.html\">YAHOO.widget.Layout</a>", "description": "The Layout instance"}, "description": "This method starts the render process, applying classnames and creating elements", "guessedname": "render", "guessedtype": "function"}, "removeUnit": {"params": [{"type": "Object", "name": "unit", "description": " The LayoutUnit that you want to remove"}], "description": "Remove the unit from this layout and resize the layout.", "guessedname": "removeUnit", "guessedtype": "function"}, "getUnitByPosition": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "params": [{"type": "String", "name": "pos", "description": " The position of the unit in this layout"}], "description": "Get the LayoutUnit by it's position in this layout", "guessedname": "getUnitByPosition", "guessedtype": "function"}, "_setBodySize": {"guessedname": "_setBodySize", "params": [{"type": "Boolean", "name": "set", "description": " If set to false, it will NOT set the size, just perform the calculations (used for collapsing units)"}], "description": "Used to set the body size of the layout, sets the height and width of the parent container", "private": "", "guessedtype": "function"}, "getLayoutById": {"static": "", "return": {"type": "Object", "description": "The Layout Object"}, "description": "Get's a layout object by the HTML id of the element associated with the Layout object.", "guessedname": "getLayoutById", "guessedtype": "function"}, "_setCenter": {"guessedname": "_setCenter", "params": [{"type": "Boolean", "name": "set", "description": " If set to false, it will NOT set the size, just perform the calculations (used for collapsing units)"}], "description": "Used to set the size and position of the center unit", "private": "", "guessedtype": "function"}, "_createUnits": {"description": "Private method to create units from the config that was passed in.", "private": "", "guessedname": "_createUnits", "guessedtype": "function"}, "init": {"description": "The Layout class' initialization method", "private": "", "guessedname": "init", "guessedtype": "function"}, "initAttributes": {"description": "Processes the config", "private": "", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the Layout.", "guessedname": "toString", "guessedtype": "function"}, "resize": {"return": {"type": "<a href=\"YAHOO.widget.Layout.html\">YAHOO.widget.Layout</a>", "description": "The Layout instance"}, "params": [{"type": "", "name": "Boolean/Event", "description": " set If set to false, it will NOT set the size, just perform the calculations (used for collapsing units). This can also have an attribute event passed to it."}], "description": "Starts the chain of resize routines that will resize all the units.", "guessedname": "resize", "guessedtype": "function"}, "destroy": {"description": "Removes this layout from the page and destroys all units that it contains. This will destroy all data inside the layout and it's children.", "guessedname": "destroy", "guessedtype": "function"}, "getUnitById": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "params": [{"type": "String", "name": "id", "description": " The HTML element id of the unit"}], "description": "Get the LayoutUnit by it's HTML id", "guessedname": "getUnitById", "guessedtype": "function"}, "_setupBodyElements": {"description": "Sets up the main doc element when using the body as the main element.", "private": "", "guessedname": "_setupBodyElements", "guessedtype": "function"}, "_setSides": {"guessedname": "_setSides", "params": [{"type": "Boolean", "name": "set", "description": " If set to false, it will NOT set the size, just perform the calculations (used for collapsing units)"}], "description": "Used to set the size and position of the left, right, top and bottom units", "private": "", "guessedtype": "function"}, "getSizes": {"return": {"type": "Object", "description": "An object of the layout unit sizes"}, "description": "Get a reference to the internal Layout Unit sizes object used to build the layout wireframe", "guessedname": "getSizes", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "layout.js", "guessedtype": "function", "shortname": "Layout", "properties": {"_sizes": {"guessedname": "_sizes", "type": "Object", "description": "A collection of the current sizes of all usable LayoutUnits to be used for calculations", "private": "", "guessedtype": "property"}, "_units": {"guessedname": "_units", "type": "Object", "description": "An object literal that contains a list of units in the layout", "private": "", "guessedtype": "property"}, "_doc": {"guessedname": "_doc", "type": "HTMLElement", "description": "Reference to the root element", "private": "", "guessedtype": "property"}, "_rendered": {"guessedname": "_rendered", "type": "Boolean", "description": "Set to true when the layout is rendered", "private": "", "guessedtype": "property"}, "_zIndex": {"guessedname": "_zIndex", "type": "Number", "description": "The zIndex to set all LayoutUnits to", "private": "", "guessedtype": "property"}, "_instances": {"description": "Internal hash table for all layout instances", "private": "", "static": "", "guessedname": "_instances", "guessedtype": "property", "type": "Object"}, "_isBody": {"guessedname": "_isBody", "type": "Boolean", "description": "Flag to determine if we are using the body as the root element.", "private": "", "guessedtype": "property"}, "browser": {"type": "Object", "description": "A modified version of the YAHOO.env.ua object", "guessedname": "browser", "guessedtype": "function"}}, "description": "<p>Provides a fixed layout containing, top, bottom, left, right and center layout units. It can be applied to either the body or an element.</p>"}, "YAHOO.util.DDProxy": {"name": "YAHOO.util.DDProxy", "constructors": [{"params": [{"type": "String", "name": "id", "description": " the id of the linked html element"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop objects"}, {"type": "object", "name": "config", "description": " an object containing configurable attributes\nValid properties for DDProxy in addition to those in DragDrop: \nresizeFrame, centerFrame, dragElId"}], "description": "A DragDrop implementation that inserts an empty, bordered div into\nthe document that follows the cursor during drag operations.  At the time of\nthe click, the frame div is resized to the dimensions of the linked html\nelement, and moved to the exact location of the linked element.\nReferences to the \"frame\" element refer to the single proxy element that\nwas created to be dragged in place of all DDProxy elements on the\npage."}], "namespace": "YAHOO.util", "module": "dragdrop", "events": {"startDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs after a mouse down and the drag threshold has been met. The drag threshold default is either 3 pixels of mouse movement or 1 full second of holding the mousedown."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fired from inside DragDropMgr when the drag operation is finished."}, "dragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs every mousemove event while dragging."}, "dragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires every mousemove event while over a drag and drop object."}, "dragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when a dragged object is no longer over an object that had the onDragEnter fire."}, "b4EndDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the endDragEvent. Returning false will cancel."}, "b4StartDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the startDragEvent, returning false will cancel the startDrag Event."}, "b4DragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOutEvent"}, "endDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires on the mouseup event after a drag has been initiated (startDrag fired)."}, "b4DragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOverEvent."}, "dragEnterEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs when the dragged object first interacts with another targettable drag and drop object."}, "b4DragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragDropEvent"}, "b4DragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragEvent."}, "dragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped on another."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event. The mousedown does not always result in a drag operation."}, "invalidDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped in a location that contains no drop targets."}, "b4MouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event, before the mouseDownEvent gets fired. Returning false will cancel the drag."}}, "guessedname": "DDProxy", "methods": {"createFrame": {"description": "Creates the proxy element if it does not yet exist", "guessedname": "createFrame", "guessedtype": "function"}, "initFrame": {"description": "Initialization for the drag frame element.  Must be called in the\nconstructor of all subclasses", "guessedname": "initFrame", "guessedtype": "function"}, "_resizeProxy": {"private": "", "description": "The proxy is automatically resized to the dimensions of the linked\nelement when a drag is initiated, unless resizeFrame is set to false", "guessedname": "_resizeProxy", "guessedtype": "function"}, "showFrame": {"guessedname": "showFrame", "params": [{"type": "int", "name": "iPageX", "description": " X click position"}, {"type": "int", "name": "iPageY", "description": " Y click position"}], "description": "Resizes the drag frame to the dimensions of the clicked object, positions \nit over the object, and finally displays it", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.DD", "superclass": "YAHOO.util.DD", "file": "DDProxy.js", "guessedtype": "function", "shortname": "DDProxy", "properties": {"YAHOO.util.DDProxy.dragElId": {"type": "String", "static": "", "description": "The default drag frame div id", "guessedname": "dragElId", "guessedtype": "property"}, "resizeFrame": {"type": "boolean", "description": "By default we resize the drag frame to be the same size as the element\nwe want to drag (this is to get the frame effect).  We can turn it off\nif we want a different behavior.", "guessedname": "resizeFrame", "guessedtype": "property"}, "centerFrame": {"type": "boolean", "description": "By default the frame is positioned exactly where the drag element is, so\nwe use the cursor offset provided by YAHOO.util.DD.  Another option that works only if\nyou do not have constraints on the obj is to have the drag frame centered\naround the cursor.  Set centerFrame to true for this effect.", "guessedname": "centerFrame", "guessedtype": "property"}}, "description": "A DragDrop implementation that inserts an empty, bordered div into\nthe document that follows the cursor during drag operations.  At the time of\nthe click, the frame div is resized to the dimensions of the linked html\nelement, and moved to the exact location of the linked element.\nReferences to the \"frame\" element refer to the single proxy element that\nwas created to be dragged in place of all DDProxy elements on the\npage."}, "YAHOO.widget.RecordSet": {"name": "YAHOO.widget.RecordSet", "constructors": [{"params": [{"type": "Object || Object[]", "name": "data", "description": "  An object literal or an array of data."}], "description": "A RecordSet defines and manages a set of Records."}], "namespace": "YAHOO.widget", "module": "datatable", "events": {"resetEvent": {"description": "Fired when all Records are deleted from the RecordSet at once."}, "recordDeleteEvent": {"params": [{"type": "Object", "name": "oArgs.data", "description": "  A copy of the data held by the Record,\nor an array of data object literals if multiple Records were deleted at once."}, {"type": "Object", "name": "oArgs.index", "description": "  Index of the deleted Record."}], "description": "Fired when a Record is deleted from the RecordSet."}, "recordSetEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The Record instance."}, {"type": "Object", "name": "oArgs.data", "description": "  Data added."}], "description": "Fired when a Record is set in the RecordSet."}, "recordAddEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The Record instance."}, {"type": "Object", "name": "oArgs.data", "description": "  Data added."}], "description": "Fired when a new Record is added to the RecordSet."}, "recordsDeleteEvent": {"params": [{"type": "Object[]", "name": "oArgs.data", "description": "  An array of data object literals copied\nfrom the Records."}, {"type": "Object", "name": "oArgs.index", "description": "  Index of the first deleted Record."}], "description": "Fired when multiple Records are deleted from the RecordSet at once."}, "keyUpdateEvent": {"deprecated": "Use recordValueUpdateEvent"}, "recordUpdateEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The Record instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data."}], "description": "Fired when a Record is updated with new data."}, "recordValueUpdateEvent": {"params": [{"type": "YAHOO.widget.Record", "name": "oArgs.record", "description": "  The Record instance."}, {"type": "String", "name": "oArgs.key", "description": "  The updated key."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data."}], "description": "Fired when a Record value is updated with new data."}, "recordsAddEvent": {"params": [{"type": "YAHOO.widget.Record[]", "name": "oArgs.records", "description": "  An array of Record instances."}, {"type": "Object[]", "name": "oArgs.data", "description": "  Data added."}], "description": "Fired when multiple Records are added to the RecordSet at once."}, "recordsSetEvent": {"params": [{"type": "YAHOO.widget.Record[]", "name": "oArgs.records", "description": "  An array of Record instances."}, {"type": "Object[]", "name": "oArgs.data", "description": "  Data added."}], "description": "Fired when multiple Records are set in the RecordSet at once."}}, "guessedname": "RecordSet", "methods": {"hasRecords": {"return": {"type": "Boolean", "description": "true if all indices are populated in the RecordSet"}, "params": [{"type": "", "name": "index", "description": ""}, {"type": "", "name": "range", "description": ""}], "description": "Returns a boolean indicating whether Records exist in the RecordSet at the\nspecified index range.  Returns true if and only if a Record exists at each\nindex in the range.", "guessedname": "hasRecords", "guessedtype": "function"}, "updateRecord": {"return": {"type": "YAHOO.widget.Record", "description": "Updated Record, or null."}, "params": [{"type": "YAHOO.widget.Record | Number | String", "name": "record", "description": "  A Record instance,\na RecordSet position index, or a Record ID."}, {"type": "Object", "name": "oData", "description": "  Object literal of new data."}], "description": "Updates given Record with given data.", "guessedname": "updateRecord", "guessedtype": "function"}, "replaceRecords": {"return": {"type": "YAHOO.widget.Record || YAHOO.widget.Record[]", "description": "A Record instance or\nan array of Records."}, "params": [{"type": "Object || Object[]", "name": "data", "description": "  An object literal of data or an array of\ndata object literals."}], "description": "Replaces all Records in RecordSet with new object literal data.", "guessedname": "replaceRecords", "guessedtype": "function"}, "addRecord": {"return": {"type": "YAHOO.widget.Record", "description": "A Record instance."}, "params": [{"type": "Object", "name": "oData", "description": "  An object literal of data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "description": "Adds one Record to the RecordSet at the given index. If index is null,\nthen adds the Record to the end of the RecordSet.", "guessedname": "addRecord", "guessedtype": "function"}, "updateKey": {"deprecated": "Use updateRecordValue", "guessedname": "updateKey", "guessedtype": "function"}, "deleteRecord": {"return": {"type": "Object", "description": "A copy of the data held by the deleted Record."}, "params": [{"type": "Number", "name": "index", "description": "  Record's RecordSet position index."}, {"type": "Number", "name": "range", "description": "  (optional) How many Records to delete."}], "description": "Removes the Record at the given position index from the RecordSet. If a range\nis also provided, removes that many Records, starting from the index. Length\nof RecordSet is correspondingly shortened.", "guessedname": "deleteRecord", "guessedtype": "function"}, "_setRecord": {"return": {"type": "YAHOO.widget.Record", "description": "A Record instance."}, "description": "Sets/replaces one Record to the RecordSet at the given index.  Existing\nRecords with higher indexes are not shifted.  If no index specified, the\nRecord is added to the end of the RecordSet.", "private": "", "params": [{"type": "Object", "name": "oData", "description": "  An object literal of data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "guessedname": "_setRecord", "guessedtype": "function"}, "getLength": {"return": {"type": "Number", "description": "Number of records in the RecordSet."}, "description": "Returns the number of Records held in the RecordSet.", "guessedname": "getLength", "guessedtype": "function"}, "getRecord": {"return": {"type": "YAHOO.widget.Record", "description": "Record object."}, "params": [{"type": "YAHOO.widget.Record | Number | String", "name": "record", "description": "  Record instance,\nRecordSet position index, or Record ID."}], "description": "Returns Record by ID or RecordSet position index.", "guessedname": "getRecord", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique name of the RecordSet instance."}, "description": "Returns unique name of the RecordSet instance.", "guessedname": "getId", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the RecordSet instance."}, "description": "Public accessor to the unique name of the RecordSet instance.", "guessedname": "toString", "guessedtype": "function"}, "reverseRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "Reverse-sorted array of Records."}, "description": "Reverses all Records, so [\"one\", \"two\", \"three\"] becomes [\"three\", \"two\", \"one\"].", "guessedname": "reverseRecords", "guessedtype": "function"}, "addRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "An array of Record instances."}, "params": [{"type": "Object[]", "name": "aData", "description": "  An object literal data or an array of data object literals."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "description": "Adds multiple Records at once to the RecordSet at the given index with the\ngiven object literal data. If index is null, then the new Records are\nadded to the end of the RecordSet.", "guessedname": "addRecords", "guessedtype": "function"}, "setRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "An array of Record instances."}, "params": [{"type": "Object[]", "name": "aData", "description": "  An array of object literal data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "description": "Sets or replaces multiple Records at once to the RecordSet with the given\ndata, starting at the given index. If index is not specified, then the new\nRecords are added to the end of the RecordSet.", "guessedname": "setRecords", "guessedtype": "function"}, "reset": {"description": "Deletes all Records from the RecordSet.", "guessedname": "reset", "guessedtype": "function"}, "getRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "Array of Records starting at given index and\nlength equal to given range. If index is not given, all Records are returned."}, "params": [{"type": "Number", "name": "index", "description": "  (optional) Recordset position index of which Record to\nstart at."}, {"type": "Number", "name": "range", "description": "  (optional) Number of Records to get."}], "description": "Returns an array of Records from the RecordSet.", "guessedname": "getRecords", "guessedtype": "function"}, "sortRecords": {"return": {"type": "YAHOO.widget.Record[]", "description": "Sorted array of Records."}, "params": [{"type": "Function", "name": "fnSort", "description": "  Reference to a sort function."}, {"type": "Boolean", "name": "desc", "description": "  True if sort direction is descending, false if sort\ndirection is ascending."}, {"type": "String", "name": "field", "description": "  The field to sort by, from sortOptions.field"}], "description": "Sorts all Records by given function. Records keep their unique IDs but will\nhave new RecordSet position indexes.", "guessedname": "sortRecords", "guessedtype": "function"}, "updateRecordValue": {"params": [{"type": "YAHOO.widget.Record | Number | String", "name": "record", "description": "  A Record instance,\na RecordSet position index, or a Record ID."}, {"type": "String", "name": "sKey", "description": "  Key name."}, {"type": "Object", "name": "oData", "description": "  New data."}], "description": "Sets given Record at given key to given data.", "guessedname": "updateRecordValue", "guessedtype": "function"}, "getRecordIndex": {"return": {"type": "Number", "description": "Record's RecordSet position index."}, "params": [{"type": "YAHOO.widget.Record", "name": "oRecord", "description": "  Record instance."}], "description": "Returns current position index for the given Record.", "guessedname": "getRecordIndex", "guessedtype": "function"}, "setRecord": {"return": {"type": "YAHOO.widget.Record", "description": "A Record instance."}, "params": [{"type": "Object", "name": "oData", "description": "  An object literal of data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "description": "Sets or replaces one Record to the RecordSet at the given index. Unlike\naddRecord, an existing Record at that index is not shifted to preserve it.\nIf no index is specified, it adds the Record to the end of the RecordSet.", "guessedname": "setRecord", "guessedtype": "function"}, "_deleteRecord": {"guessedname": "_deleteRecord", "params": [{"type": "Number", "name": "index", "description": "  Position index."}, {"type": "Number", "name": "range", "description": "  (optional) How many Records to delete"}], "description": "Deletes Records from the RecordSet at the given index. If range is null,\nthen only one Record is deleted.", "private": "", "guessedtype": "function"}, "deleteRecords": {"return": {"type": "Object[]", "description": "An array of copies of the data held by the deleted Records."}, "params": [{"type": "Number", "name": "index", "description": "  Record's RecordSet position index."}, {"type": "Number", "name": "range", "description": "  (optional) How many Records to delete."}], "description": "Removes the Record at the given position index from the RecordSet. If a range\nis also provided, removes that many Records, starting from the index. Length\nof RecordSet is correspondingly shortened.", "guessedname": "deleteRecords", "guessedtype": "function"}, "_addRecord": {"return": {"type": "YAHOO.widget.Record", "description": "A Record instance."}, "description": "Adds one Record to the RecordSet at the given index. If index is null,\nthen adds the Record to the end of the RecordSet.", "private": "", "params": [{"type": "Object", "name": "oData", "description": "  An object literal of data."}, {"type": "Number", "name": "index", "description": "  (optional) Position index."}], "guessedname": "_addRecord", "guessedtype": "function"}}, "file": "RecordSet.js", "guessedtype": "function", "shortname": "RecordSet", "properties": {"_length": {"deprecated": "No longer used", "type": "Number", "description": "Internal counter of how many Records are in the RecordSet.", "private": ""}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique String identifier assigned at instantiation.", "private": "", "guessedtype": "property"}, "RecordSet._nCount": {"description": "Internal class variable to name multiple Recordset instances.", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}}, "description": "A RecordSet defines and manages a set of Records."}, "YAHOO.widget.TextNode": {"name": "YAHOO.widget.TextNode", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node.\nProviding a string is the same as providing an object with a single property named label.\nAll values in the oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private or functions.\nAll attributes are made available in noderef.data, which\ncan be used to store custom attributes.  TreeView.getNode(s)ByProperty\ncan be used to retrieve a node by one of the attributes."}, {"type": "YAHOO.widget.Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated; use oData.expanded)"}], "description": "The default node presentation.  The first parameter should be\neither a string that will be used as the node's label, or an object\nthat has at least a string property called label.  By default,  clicking the\nlabel will toggle the expanded/collapsed state of the node.  By\nsetting the href property of the instance, this behavior can be\nchanged so that the label will go to the specified href."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "TextNode", "methods": {"getEditorValue": {"return": {"type": "string", "description": "value entered"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Returns the value from the input element.\nOverrides Node.getEditorValue.", "guessedname": "getEditorValue", "guessedtype": "function"}, "fillEditorContainer": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Places an <input>  textbox in the input container and loads the label text into it.", "guessedname": "fillEditorContainer", "guessedtype": "function"}, "displayEditedValue": {"params": [{"type": "string", "name": "value", "description": "  value to be displayed and stored in the node"}, {"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Finally displays the newly edited value in the tree.\nOverrides Node.displayEditedValue.", "guessedname": "displayEditedValue", "guessedtype": "function"}, "getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if this node or any descendant is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nIt will return false if the node or any descendant loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getNodeDefinition", "guessedtype": "function"}, "destroyEditorContents": {"params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Destroys the contents of the inline editor panel.\nOverrides Node.destroyEditorContent.\nSince we didn't set any event listeners on this inline editor, it is more efficient to avoid the generic method in Node.", "guessedname": "destroyEditorContents", "guessedtype": "function"}, "getLabelEl": {"return": {"type": "object", "description": "the element"}, "description": "Returns the label element", "guessedname": "getLabelEl", "guessedtype": "function"}, "setUpLabel": {"params": [{"type": "", "name": "oData", "description": " string containing the label, or an object with a label property"}], "description": "Sets up the node label", "guessedname": "setUpLabel", "guessedtype": "function"}}, "extends": "YAHOO.widget.Node", "superclass": "YAHOO.widget.Node", "file": "TextNode.js", "guessedtype": "function", "shortname": "TextNode", "properties": {"_type": {"description": "The node type", "default": "\"TextNode\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}, "target": {"type": "string", "description": "The label href target, defaults to current window", "guessedname": "target", "guessedtype": "property"}, "title": {"type": "string", "description": "The text for the title (tooltip) for the label element", "guessedname": "title", "guessedtype": "property"}, "labelStyle": {"type": "string", "description": "The CSS class for the label href.  Defaults to ygtvlabel, but can be\noverridden to provide a custom presentation for a specific node.", "guessedname": "labelStyle", "guessedtype": "property"}, "label": {"type": "string", "description": "The text for the label.  It is assumed that the oData parameter will\neither be a string that will be used as the label, or an object that\nhas a property called \"label\" that we will use.", "guessedname": "label", "guessedtype": "property"}, "href": {"type": "string", "description": "The href for the node's label.  If one is not specified, the href will\nbe set so that it toggles the node.", "guessedname": "href", "guessedtype": "property"}, "labelElId": {"type": "string", "description": "The derived element id of the label for this node", "guessedname": "labelElId", "guessedtype": "property"}}, "description": "The default node presentation.  The first parameter should be\neither a string that will be used as the node's label, or an object\nthat has at least a string property called label.  By default,  clicking the\nlabel will toggle the expanded/collapsed state of the node.  By\nsetting the href property of the instance, this behavior can be\nchanged so that the label will go to the specified href."}, "YAHOO.util.ImageLoader.imgObj": {"name": "YAHOO.util.ImageLoader.imgObj", "constructors": [{"params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}], "description": "Base class for image objects to be registered with the groups"}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "imgObj", "methods": {"fetch": {"description": "Displays the image; puts the URL into the DOM", "guessedname": "fetch", "guessedtype": "function"}, "_applyUrl": {"guessedname": "_applyUrl", "params": [{"type": "Object", "name": "el", "description": "\tHTML DOM element"}], "description": "Inserts the image URL into the DOM so that the image is displayed.\nMust be overridden by child class", "private": "", "guessedtype": "function"}}, "file": "ImageLoader.js", "guessedtype": "function", "shortname": "imgObj", "properties": {"_fetched": {"guessedname": "_fetched", "type": "Boolean", "description": "Whether the image has already been fetched. In the case of a foldCondional group, keeps track for when the trigger is fired so images aren't fetched twice", "private": "", "guessedtype": "property"}, "url": {"type": "String", "description": "URL for the image", "guessedname": "url", "guessedtype": "property"}, "domId": {"type": "String", "description": "HTML DOM id of the image element", "guessedname": "domId", "guessedtype": "property"}, "height": {"type": "Int", "description": "Pixel height of the image. Will be set as a \"height\" attribute after the image is fetched.\nDetaults to the natural height of the image.\nOnly appropriate with src images", "guessedname": "height", "guessedtype": "property"}, "width": {"type": "Int", "description": "Pixel width of the image. Will be set as a \"width\" attribute after the image is fetched.\nDetaults to the natural width of the image.\nOnly appropriate with src images", "guessedname": "width", "guessedtype": "property"}, "setVisible": {"type": "Boolean", "description": "Whether the style.visibility should be set to \"visible\" after the image is fetched.\nUsed when setting src images as visibility:hidden prior to image fetching", "guessedname": "setVisible", "guessedtype": "property"}}, "description": "Base class for image objects to be registered with the groups"}, "YAHOO.widget.ImageCropper": {"name": "YAHOO.widget.ImageCropper", "configs": {"status": {"type": "Boolean", "description": "Show the Resize Utility status, defaults to true"}, "initialXY": {"type": "Array", "description": "Array of the XY position that we need to set the crop element to when we build it. Defaults to [10, 10]"}, "minHeight": {"type": "Number", "description": "MinHeight of the crop area, default 50"}, "minWidth": {"type": "Number", "description": "MinWidth of the crop area, default 50."}, "initHeight": {"type": "Number", "description": "Set the initlal height of the crop area, defaults to 1/4 of the image height"}, "shiftKeyTick": {"type": "Number", "description": "The pixel tick for shift + the arrow keys, defaults to 10"}, "initWidth": {"type": "Number", "description": "Set the initlal width of the crop area, defaults to 1/4 of the image width"}, "ratio": {"type": "Boolean", "description": "Set the ratio config option of the Resize Utlility, default false"}, "keyTick": {"type": "Number", "description": "The pixel tick for the arrow keys, defaults to 1"}, "useKeys": {"type": "Boolean", "description": "Should we use the Arrow keys to position the crop element, defaults to true"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The image element to make croppable."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Creates a Image Cropper control.</p>"}], "namespace": "YAHOO.widget", "module": "imagecropper", "events": {"beforeUseKeysChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUseKeysChange", "description": "Fires before the value for the configuration attribute 'useKeys' changes. Return false to cancel the attribute change."}, "ratioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "ratioChange", "description": "Fires when the value for the configuration attribute 'ratio' changes."}, "resizeEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires on every element resize."}, "beforeMinHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinHeightChange", "description": "Fires before the value for the configuration attribute 'minHeight' changes. Return false to cancel the attribute change."}, "beforeShiftKeyTickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShiftKeyTickChange", "description": "Fires before the value for the configuration attribute 'shiftKeyTick' changes. Return false to cancel the attribute change."}, "dragEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the DragDrop dragEvent"}, "beforeMinWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinWidthChange", "description": "Fires before the value for the configuration attribute 'minWidth' changes. Return false to cancel the attribute change."}, "beforeRatioChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRatioChange", "description": "Fires before the value for the configuration attribute 'ratio' changes. Return false to cancel the attribute change."}, "beforeStatusChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeStatusChange", "description": "Fires before the value for the configuration attribute 'status' changes. Return false to cancel the attribute change."}, "useKeysChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "useKeysChange", "description": "Fires when the value for the configuration attribute 'useKeys' changes."}, "initHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initHeightChange", "description": "Fires when the value for the configuration attribute 'initHeight' changes."}, "beforeInitWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitWidthChange", "description": "Fires before the value for the configuration attribute 'initWidth' changes. Return false to cancel the attribute change."}, "minWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minWidthChange", "description": "Fires when the value for the configuration attribute 'minWidth' changes."}, "initWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initWidthChange", "description": "Fires when the value for the configuration attribute 'initWidth' changes."}, "startResizeEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when when a resize action is started."}, "shiftKeyTickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "shiftKeyTickChange", "description": "Fires when the value for the configuration attribute 'shiftKeyTick' changes."}, "beforeKeyTickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeKeyTickChange", "description": "Fires before the value for the configuration attribute 'keyTick' changes. Return false to cancel the attribute change."}, "keyTickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "keyTickChange", "description": "Fires when the value for the configuration attribute 'keyTick' changes."}, "beforeInitHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitHeightChange", "description": "Fires before the value for the configuration attribute 'initHeight' changes. Return false to cancel the attribute change."}, "minHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minHeightChange", "description": "Fires when the value for the configuration attribute 'minHeight' changes."}, "moveEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires on every element move. Inside these methods: _handleKeyPress, _handleDragEvent, _handleResizeEvent"}, "statusChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "statusChange", "description": "Fires when the value for the configuration attribute 'status' changes."}, "beforeInitialXYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitialXYChange", "description": "Fires before the value for the configuration attribute 'initialXY' changes. Return false to cancel the attribute change."}, "initialXYChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initialXYChange", "description": "Fires when the value for the configuration attribute 'initialXY' changes."}}, "guessedname": "Crop", "methods": {"_handleStartResizeEvent": {"description": "Handles the Resize Utilitys startResize event", "private": "", "guessedname": "_handleStartResizeEvent", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the ImageCropper Object.", "guessedname": "toString", "guessedtype": "function"}, "_setBackgroundImage": {"guessedname": "_setBackgroundImage", "params": [{"type": "", "name": "String", "description": " url The url of the image"}], "description": "Sets the background image of the resize element", "private": "", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the widget."}], "description": "Initializes all of the configuration attributes used to create a croppable element.", "private": "", "guessedtype": "function"}, "_handleResizeEvent": {"guessedname": "_handleResizeEvent", "params": [{"type": "", "name": "Event", "description": " ev The Resize Utilitys resize event."}], "description": "Handles the Resize Utilitys Resize event", "private": "", "guessedtype": "function"}, "getResizeObject": {"return": {"type": "<a href=\"YAHOO.util.Resize.html\">YAHOO.util.Resize</a>", "description": "The Resize instance"}, "description": "Get the Resize Utility object.", "guessedname": "getResizeObject", "guessedtype": "function"}, "getResizeMaskEl": {"return": {"type": "HTMLElement", "description": "The resize objects mask element."}, "description": "Get the HTML reference for the resizable object's mask element.", "guessedname": "getResizeMaskEl", "guessedtype": "function"}, "_handleBeforeResizeEvent": {"description": "Handles the Resize Utilitys beforeResize event", "private": "", "guessedname": "_handleBeforeResizeEvent", "guessedtype": "function"}, "_syncBackgroundPosition": {"description": "Syncs the packground position of the resize element with the resize elements top and left style position", "private": "", "guessedname": "_syncBackgroundPosition", "guessedtype": "function"}, "_handleMouseOut": {"description": "Handles the mouseout event", "private": "", "guessedname": "_handleMouseOut", "guessedtype": "function"}, "init": {"description": "The ImageCropper class's initialization method", "private": "", "guessedname": "init", "guessedtype": "function"}, "_moveEl": {"description": "Moves the resize element based on the arrow keys", "private": "", "guessedname": "_moveEl", "guessedtype": "function"}, "getCropperById": {"static": "", "return": {"type": "Object", "description": "The ImageCropper Object"}, "description": "Get's an ImageCropper object by the HTML id of the image associated with the ImageCropper object.", "guessedname": "getCropperById", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": "The image element"}, "description": "Get the HTML reference for the image element.", "guessedname": "getEl", "guessedtype": "function"}, "_handleKeyPress": {"description": "Handles the keypress event", "private": "", "guessedname": "_handleKeyPress", "guessedtype": "function"}, "getResizeEl": {"return": {"type": "HTMLElement", "description": "The resize element"}, "description": "Get the HTML reference for the resize element.", "guessedname": "getResizeEl", "guessedtype": "function"}, "_handleDragEvent": {"description": "Handles the DragDrop DragEvent event", "private": "", "guessedname": "_handleDragEvent", "guessedtype": "function"}, "_createResize": {"description": "Creates the resize element and the instance of the Resize Utility", "private": "", "guessedname": "_createResize", "guessedtype": "function"}, "_createWrap": {"description": "Creates the wrapper element used to wrap the image", "private": "", "guessedname": "_createWrap", "guessedtype": "function"}, "getMaskEl": {"return": {"type": "HTMLElement", "description": "The mask element"}, "description": "Get the HTML reference for the mask element.", "guessedname": "getMaskEl", "guessedtype": "function"}, "_handleB4DragEvent": {"description": "Handles the DragDrop b4DragEvent event", "private": "", "guessedname": "_handleB4DragEvent", "guessedtype": "function"}, "getWrapEl": {"return": {"type": "HTMLElement", "description": "The wrap element"}, "description": "Get the HTML reference for the wrap element.", "guessedname": "getWrapEl", "guessedtype": "function"}, "destroy": {"description": "Destroys the ImageCropper object and all of it's elements & listeners.", "guessedname": "destroy", "guessedtype": "function"}, "getCropCoords": {"return": {"type": "Object", "description": "The top, left, height, width and image url of the image being cropped"}, "description": "Returns the coordinates needed to crop the image", "guessedname": "getCropCoords", "guessedtype": "function"}, "_setBackgroundPosition": {"guessedname": "_setBackgroundPosition", "params": [{"type": "", "name": "Number", "description": " l The left position"}, {"type": "", "name": "Number", "description": " t The top position"}], "description": "Sets the background image position to the top and left position", "private": "", "guessedtype": "function"}, "_handleMouseOver": {"description": "Handles the mouseover event", "private": "", "guessedname": "_handleMouseOver", "guessedtype": "function"}, "reset": {"return": {"type": "<a href=\"YAHOO.widget.ImageCropper.html\">YAHOO.widget.ImageCropper</a>", "description": "The ImageCropper instance"}, "description": "Resets the crop element back to it's original position", "guessedname": "reset", "guessedtype": "function"}, "_handleResizeMaskEl": {"description": "Resizes the inner mask element", "private": "", "guessedname": "_handleResizeMaskEl", "guessedtype": "function"}, "_setConstraints": {"return": {"type": "Object", "description": "Object containing Top, Right, Bottom and Left constraints"}, "description": "Set the DragDrop constraints to keep the element inside the crop area.", "private": "", "params": [{"type": "", "name": "Boolean", "description": " inside Used when called from inside a resize event, false by default (dragging)"}], "guessedname": "_setConstraints", "guessedtype": "function"}, "_createMask": {"description": "Creates the mask element used to mask the image", "private": "", "guessedname": "_createMask", "guessedtype": "function"}, "_handleEndResizeEvent": {"description": "Handles the Resize Utilitys endResize event", "private": "", "guessedname": "_handleEndResizeEvent", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "crop.js", "guessedtype": "function", "shortname": "ImageCropper", "properties": {"_resizeEl": {"guessedname": "_resizeEl", "type": "HTMLElement", "description": "The HTML Element used to create the Resize Oject", "private": "", "guessedtype": "property"}, "CSS_RESIZE_MASK": {"guessedname": "CSS_RESIZE_MASK", "type": "String", "description": "The CSS class for the mask inside the resize element", "private": "", "guessedtype": "property"}, "_resizeMaskEl": {"guessedname": "_resizeMaskEl", "type": "HTMLElement", "description": "The HTML Element used to create the Resize mask", "private": "", "guessedtype": "property"}, "_active": {"guessedname": "_active", "type": "Boolean", "description": "Flag to determine if the crop region is active", "private": "", "guessedtype": "property"}, "_mask": {"guessedname": "_mask", "type": "HTMLElement", "description": "The HTML Element created to \"mask\" the image being cropped", "private": "", "guessedtype": "property"}, "_image": {"guessedname": "_image", "type": "String", "description": "The url of the image we are cropping", "private": "", "guessedtype": "property"}, "_instances": {"description": "Internal hash table for all ImageCropper instances", "private": "", "static": "", "guessedname": "_instances", "guessedtype": "property", "type": "Object"}, "CSS_MASK": {"guessedname": "CSS_MASK", "type": "String", "description": "The CSS class for the mask element", "private": "", "guessedtype": "property"}, "_resize": {"guessedname": "_resize", "type": "Object", "description": "A reference to the Resize Utility used in this Cropper Instance", "private": "", "guessedtype": "property"}, "_wrap": {"guessedname": "_wrap", "type": "HTMLElement", "description": "The HTML Element created to wrap the image", "private": "", "guessedtype": "property"}, "CSS_MAIN": {"guessedname": "CSS_MAIN", "type": "String", "description": "The CSS class used to wrap the element", "private": "", "guessedtype": "property"}}, "description": "<p>Creates a Image Cropper control.</p>"}, "YAHOO.widget.ContextMenuItem": {"name": "YAHOO.widget.ContextMenuItem", "deprecated": "As of version 2.4.0 items for YAHOO.widget.ContextMenu instances\nare of type YAHOO.widget.MenuItem.", "constructors": [{"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the context menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying the \n<code><li></code> element of the context menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the context \nmenu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><option></code> element of the context menu item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the context menu item. See configuration class \ndocumentation for more details."}], "description": "Creates an item for a context menu."}], "namespace": "YAHOO.widget", "module": "menu", "guessedname": "ContextMenuItem", "extends": "YAHOO.widget.MenuItem", "superclass": "YAHOO.widget.MenuItem", "file": "contextmenuitem.js", "guessedtype": "property", "shortname": "ContextMenuItem", "description": "Creates an item for a context menu."}, "YAHOO.util.EventProvider": {"name": "YAHOO.util.EventProvider", "namespace": "YAHOO.util", "module": "event", "guessedname": "EventProvider", "methods": {"unsubscribeAll": {"params": [{"type": "string", "name": "p_type", "description": "    The type, or name of the event"}], "description": "Removes all listeners from the specified event.  If the event type\nis not specified, all listeners from all hosted custom events will\nbe removed.", "guessedname": "unsubscribeAll", "guessedtype": "function"}, "subscribe": {"params": [{"type": "string", "name": "p_type", "description": "        the type, or name of the event"}, {"type": "function", "name": "p_fn", "description": "        the function to exectute when the event fires"}, {"type": "Object", "name": "p_obj", "description": "         An object to be passed along when the event \nfires"}, {"type": "boolean", "name": "overrideContext", "description": "   If true, the obj passed in becomes the \nexecution scope of the listener"}], "description": "Subscribe to a CustomEvent by event type", "guessedname": "subscribe", "guessedtype": "function"}, "unsubscribe": {"return": {"type": "boolean", "description": "true if the subscriber was found and detached."}, "params": [{"type": "string", "name": "p_type", "description": "    The type, or name of the event.  If the type\nis not specified, it will attempt to remove\nthe listener from all hosted events."}, {"type": "Function", "name": "p_fn", "description": "    The subscribed function to unsubscribe, if not\nsupplied, all subscribers will be removed."}, {"type": "Object", "name": "p_obj", "description": "     The custom object passed to subscribe.  This is\noptional, but if supplied will be used to\ndisambiguate multiple listeners that are the same\n(e.g., you subscribe many object using a function\nthat lives on the prototype)"}], "description": "Unsubscribes one or more listeners the from the specified event", "guessedname": "unsubscribe", "guessedtype": "function"}, "hasEvent": {"params": [{"type": "string", "name": "type", "description": "  the type, or name of the event"}], "description": "Returns true if the custom event of the provided type has been created\nwith createEvent.", "guessedname": "hasEvent", "guessedtype": "function"}, "fireEvent": {"return": {"type": "boolean", "description": "the return value from CustomEvent.fire"}, "params": [{"type": "string", "name": "p_type", "description": "      the type, or name of the event"}, {"type": "Object*", "name": "arguments", "description": "  an arbitrary set of parameters to pass to \nthe handler."}], "description": "Fire a custom event by name.  The callback functions will be executed\nfrom the scope specified when the event was created, and with the \nfollowing parameters:\n<ul>\n<li>The first argument fire() was executed with</li>\n<li>The custom object (if any) that was passed into the subscribe() \nmethod</li>\n</ul>", "guessedname": "fireEvent", "guessedtype": "function"}, "createEvent": {"return": {"type": "CustomEvent", "description": "the custom event"}, "params": [{"type": "string", "name": "p_type", "description": "  the type, or name of the event"}, {"type": "object", "name": "p_config", "description": "  optional config params.  Valid properties are:\n<ul>\n<li>\nscope: defines the default execution scope.  If not defined\nthe default scope will be this instance.\n</li>\n<li>\nsilent: if true, the custom event will not generate log messages.\nThis is false by default.\n</li>\n<li>\nfireOnce: if true, the custom event will only notify subscribers\nonce regardless of the number of times the event is fired.  In\naddition, new subscribers will be executed immediately if the\nevent has already fired.\nThis is false by default.\n</li>\n<li>\nonSubscribeCallback: specifies a callback to execute when the\nevent has a new subscriber.  This will fire immediately for\neach queued subscriber if any exist prior to the creation of\nthe event.\n</li>\n</ul>"}], "description": "Creates a new custom event of the specified type.  If a custom event\nby that name already exists, it will not be re-created.  In either\ncase the custom event is returned.", "guessedname": "createEvent", "guessedtype": "function"}}, "file": "EventProvider.js", "guessedtype": "function", "shortname": "EventProvider", "properties": {"__yui_subscribers": {"guessedname": "__yui_subscribers", "type": "Object[]", "description": "Private storage of custom event subscribers", "private": "", "guessedtype": "property"}, "__yui_events": {"guessedname": "__yui_events", "type": "Object[]", "description": "Private storage of custom events", "private": "", "guessedtype": "property"}}, "description": "EventProvider is designed to be used with YAHOO.augment to wrap \nCustomEvents in an interface that allows events to be subscribed to \nand fired by name.  This makes it possible for implementing code to\nsubscribe to an event that either has not been created yet, or will\nnot be created at all."}, "YAHOO.widget.CheckboxCellEditor": {"name": "YAHOO.widget.CheckboxCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The CheckboxCellEditor class provides functionality for inline editing\nDataTable cell data with checkboxes."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "CheckboxCellEditor", "methods": {"renderForm": {"description": "Render a form with input(s) type=checkbox.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from CheckboxCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in CheckboxCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets CheckboxCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "CheckboxCellEditor", "properties": {"checkboxOptions": {"type": "String[] | Object[]", "description": "Array of checkbox values. Can either be a simple array (e.g., [\"red\",\"green\",\"blue\"])\nor a an array of objects (e.g., [{label:\"red\", value:\"#FF0000\"},\n{label:\"green\", value:\"#00FF00\"}, {label:\"blue\", value:\"#0000FF\"}]).", "guessedname": "checkboxOptions", "guessedtype": "property"}, "checkboxes": {"type": "HTMLElement[]", "description": "Reference to the checkbox elements.", "guessedname": "checkboxes", "guessedtype": "property"}, "value": {"type": "String[]", "description": "Array of checked values", "guessedname": "value", "guessedtype": "property"}}, "description": "The CheckboxCellEditor class provides functionality for inline editing\nDataTable cell data with checkboxes."}, "YAHOO.tool.Profiler": {"name": "YAHOO.tool.Profiler", "namespace": "YAHOO.tool", "module": "profiler", "guessedname": "Profiler", "methods": {"getFunctionReport": {"return": {"type": "Object", "description": "An object containing profile data for a given function."}, "description": "Returns an object containing profiling data for a single function.\nThe object has an entry for min, max, avg, calls, and points).", "deprecated": "Use getReport() instead.", "static": "", "guessedname": "getFunctionReport", "guessedtype": "function"}, "pause": {"return": {"type": "Void", "description": ""}, "description": "Pauses profiling information for a given name.", "static": "", "guessedname": "pause", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the data point."}]}, "getReport": {"static": "", "return": {"type": "Object", "description": "An object containing profile data for a given function."}, "description": "Returns an object containing profiling data for a single function.\nThe object has an entry for min, max, avg, calls, and points).", "guessedname": "getReport", "guessedtype": "function"}, "start": {"return": {"type": "Void", "description": ""}, "description": "Start profiling information for a given name. The name cannot be the name\nof a registered function or object. This is used to start timing for a\nparticular block of code rather than instrumenting the entire function.", "static": "", "guessedname": "start", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the data point."}]}, "getFullReport": {"static": "", "return": {"type": "Object", "description": "An object containing all profile data."}, "description": "Returns an object containing profiling data for all of the functions \nthat were profiled. The object has an entry for each function and \nreturns all information (min, max, average, calls, etc.) for each\nfunction.", "guessedname": "getFullReport", "guessedtype": "function"}, "unregisterFunction": {"return": {"type": "Void", "description": ""}, "description": "Removes a constructor function from profiling. Reverses the registerConstructor() method.", "param": "{String} name The full name of the function including namespacing. This\nis the name of the function that is stored in the report.", "static": "", "guessedname": "unregisterConstructor", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The full name of the function including namespacing. This\nis the name of the function that is stored in the report."}]}, "clear": {"return": {"type": "Void", "description": ""}, "description": "Removes all report data from the profiler.", "static": "", "guessedname": "clear", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " (Optional) The name of the report to clear. If\nomitted, then all report data is cleared."}]}, "stop": {"return": {"type": "Void", "description": ""}, "description": "Stops profiling information for a given name.", "static": "", "guessedname": "stop", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the data point."}]}, "getCallCount": {"return": {"type": "int", "description": "The number of times the function was called."}, "description": "Returns the number of times that the given function has been called.", "static": "", "guessedname": "getCallCount", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function whose data should be returned."}]}, "saveDataPoint": {"return": {"type": "Void", "description": ""}, "static": "", "params": [{"type": "String", "name": "name", "description": " The name of the function to mark as stopped."}, {"type": "int", "name": "duration", "description": " The number of milliseconds it took the function to\nexecute."}], "description": "Called when a method ends execution. Marks the start and end time of the \nmethod so it can calculate how long the function took to execute. Also \nupdates min/max/avg calculations for the function.", "private": ""}, "registerFunction": {"return": {"type": "Void", "description": ""}, "description": "Sets up a function for profiling. It essentially overwrites the function with one\nthat has instrumentation data. This method also creates an entry for the function\nin the profile report. The original function is stored on the container object.", "static": "", "guessedname": "registerFunction", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The full name of the function including namespacing. This\nis the name of the function that is stored in the report."}, {"type": "Object", "name": "owner", "description": " (Optional) The object that owns the function. If the function\nisn't global then this argument is required. This could be the namespace that\nthe function belongs to, such as YAHOO.util.Dom, or the object on which it's\na method."}, {"type": "Boolean", "name": "registerPrototype", "description": " (Optional) Indicates that the prototype should\nalso be instrumented. Setting to true has the same effect as calling\nregisterConstructor()."}]}, "instrument": {"return": {"type": "Function", "description": "An instrumented version of the function."}, "description": "Instruments a method to have profiling calls.", "static": "", "guessedname": "instrument", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the report for the function."}, {"type": "Function", "name": "method", "description": " The function to instrument."}]}, "getOriginal": {"return": {"type": "Function|Object", "description": "The uninstrumented version of a function/object."}, "description": "Returns the uninstrumented version of a function/object.", "static": "", "guessedname": "getOriginal", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function/object to retrieve."}]}, "getAverage": {"return": {"type": "float", "description": "The average time it takes the function to execute."}, "description": "Returns the average amount of time (in milliseconds) that the function\nwith the given name takes to execute.", "static": "", "guessedname": "getAverage", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function whose data should be returned.\nIf an object type method, it should be 'constructor.prototype.methodName';\na normal object method would just be 'object.methodName'."}]}, "createReport": {"return": {"type": "Void", "description": ""}, "params": [{"type": "String", "name": "name", "description": " The name to store for the report object."}], "description": "Creates a report object with the given name.", "private": ""}, "getMin": {"return": {"type": "float", "description": "The minimum time it takes the function to execute."}, "description": "Returns the minimum amount of time (in milliseconds) that the function\nwith the given name takes to execute.", "static": "", "guessedname": "getMin", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function whose data should be returned.\nIf an object type method, it should be 'constructor.prototype.methodName';\na normal object method would just be 'object.methodName'."}]}, "unregisterObject": {"return": {"type": "Void", "description": ""}, "description": "Unregisters an object for profiling. It takes the object and looks for functions.\nWhen a function is found, unregisterMethod() is called on it. If set to recrusive\nmode, it will also unregister objects found inside of this object, \nusing the same methodology.", "static": "", "guessedname": "unregisterObject", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the object to unregister."}, {"type": "Boolean", "name": "recurse", "description": " (Optional) Determines if subobject methods should also be\nunregistered."}]}, "getMax": {"return": {"type": "float", "description": "The maximum time it takes the function to execute."}, "description": "Returns the maximum amount of time (in milliseconds) that the function\nwith the given name takes to execute.", "static": "", "guessedname": "getMax", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the function whose data should be returned.\nIf an object type method, it should be 'constructor.prototype.methodName';\na normal object method would just be 'object.methodName'."}]}, "registerConstructor": {"return": {"type": "Void", "description": ""}, "description": "Sets up a constructor for profiling, including all properties and methods on the prototype.", "static": "", "guessedname": "registerConstructor", "guessedtype": "function", "params": [{"type": "string", "name": "name", "description": " The fully-qualified name of the function including namespace information."}, {"type": "Object", "name": "owner", "description": " (Optional) The object that owns the function (namespace or containing object)."}]}, "registerObject": {"return": {"type": "Void", "description": ""}, "description": "Sets up an object for profiling. It takes the object and looks for functions.\nWhen a function is found, registerMethod() is called on it. If set to recrusive\nmode, it will also setup objects found inside of this object for profiling, \nusing the same methodology.", "static": "", "guessedname": "registerObject", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the object to profile (shows up in report)."}, {"type": "Object", "name": "owner", "description": " (Optional) The object represented by the name."}, {"type": "Boolean", "name": "recurse", "description": " (Optional) Determines if subobject methods are also profiled."}]}}, "static": "", "file": "Profiler.js", "guessedtype": "function", "shortname": "Profiler", "description": "Profiles functions in JavaScript."}, "YAHOO.widget.OverlayManager": {"name": "YAHOO.widget.OverlayManager", "configs": {"focusevent": {"default": "\"mousedown\"", "type": "String", "description": "The default DOM event that should be used to focus an Overlay", "guessedname": "value", "guessedtype": "property"}, "overlays": {"default": "null", "type": "YAHOO.widget.Overlay[]", "description": "The collection of registered Overlays in use by \nthe OverlayManager", "guessedname": "suppressEvent", "guessedtype": "property"}}, "constructors": [{"params": [{"type": "Array", "name": "overlays", "description": " Optional. A collection of Overlays to register \nwith the manager."}, {"type": "Object", "name": "userConfig", "description": "  The object literal representing the user \nconfiguration of the OverlayManager"}], "description": "OverlayManager is used for maintaining the focus status of \nmultiple Overlays."}], "namespace": "YAHOO.widget", "module": "container", "guessedname": "OverlayManager", "methods": {"toString": {"return": {"type": "String", "description": "The string representation of the OverlayManager"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "blurAll": {"description": "Removes focus from all registered Overlays in the manager", "guessedname": "blurAll", "guessedtype": "function"}, "focus": {"params": [{"type": "Overlay", "name": "overlay", "description": " The Overlay to focus"}, {"type": "String", "name": "overlay", "description": " The id of the Overlay to focus"}], "description": "Focuses the specified Overlay", "guessedname": "focus", "guessedtype": "function"}, "_bindBlur": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay for which blur needs to be managed"}], "description": "Subscribes to the Overlay based instance's blurEvent to allow the OverlayManager to\nmonitor blur state.\nIf the instance already has a blurEvent (e.g. Menu), OverlayManager will subscribe \nto the existing blurEvent, however if a blurEvent or blur method does not exist\non the instance, the _bindBlur method will add them, and the blur method \nupdate the OverlayManager's state directly.", "guessedname": "_bindBlur", "guessedtype": "function"}, "_manageBlur": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay instance which got blurred."}], "description": "Updates the state of the OverlayManager and overlay, as a result of the overlay\nbeing blurred.", "guessedname": "_manageBlur", "guessedtype": "function"}, "_onOverlayBlurHandler": {"guessedname": "_onOverlayBlurHandler", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}, {"type": "Overlay", "name": "p_oOverlay", "description": " Object representing the overlay that \nfired the event."}], "description": "blurEvent Handler, used to delegate to _manageBlur with the correct arguments.", "private": "", "guessedtype": "function"}, "_manageFocus": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay instance which got focus."}], "description": "Updates the state of the OverlayManager and overlay, as a result of the overlay \nreceiving focus.", "guessedname": "_manageFocus", "guessedtype": "function"}, "find": {"return": {"type": "Overlay", "description": "The requested Overlay, if found, or null if it \ncannot be located."}, "params": [{"type": "Overlay", "name": "overlay", "description": "  An Overlay to locate within the manager"}, {"type": "String", "name": "overlay", "description": "  An Overlay id to locate within the manager"}], "description": "Attempts to locate an Overlay by instance or ID.", "guessedname": "find", "guessedtype": "function"}, "bringToTop": {"params": [{"type": "YAHOO.widget.Overlay", "name": "p_oOverlay", "description": " Object representing an \nOverlay instance."}, {"type": "String", "name": "p_oOverlay", "description": " String representing the id of an \nOverlay instance."}], "description": "Places the specified Overlay instance on top of all other \nOverlay instances.", "guessedname": "bringToTop", "guessedtype": "function"}, "init": {"params": [{"type": "Overlay[]", "name": "overlays", "description": " Optional. A collection of Overlays to \nregister with the manager."}, {"type": "Object", "name": "userConfig", "description": "  The object literal representing the user \nconfiguration of the OverlayManager"}], "description": "Initializes the OverlayManager", "guessedname": "init", "guessedtype": "function"}, "getActive": {"return": {"type": "Overlay", "description": "The currently focused Overlay"}, "description": "Returns the currently focused Overlay", "guessedname": "getActive", "guessedtype": "function"}, "_bindDestroy": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay instance being managed"}], "description": "Subscribes to the Overlay based instance's destroyEvent, to allow the Overlay\nto be removed for the OverlayManager when destroyed.", "guessedname": "_bindDestroy", "guessedtype": "function"}, "showAll": {"description": "Shows all Overlays in the manager.", "guessedname": "showAll", "guessedtype": "function"}, "_bindFocus": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay for which focus needs to be managed"}], "description": "Subscribes to the Overlay based instance focusEvent, to allow the OverlayManager to\nmonitor focus state.\nIf the instance already has a focusEvent (e.g. Menu), OverlayManager will subscribe \nto the existing focusEvent, however if a focusEvent or focus method does not exist\non the instance, the _bindFocus method will add them, and the focus method will \nupdate the OverlayManager's state directly.", "guessedname": "_bindFocus", "guessedtype": "function"}, "hideAll": {"description": "Hides all Overlays in the manager.", "guessedname": "hideAll", "guessedtype": "function"}, "_syncZIndex": {"protected": "", "params": [{"type": "Overlay", "name": "overlay", "description": " The overlay instance being managed"}], "description": "Ensures the zIndex configuration property on the managed overlay based instance\nis set to the computed zIndex value from the DOM (with \"auto\" translating to 0).", "guessedname": "_syncZIndex", "guessedtype": "function"}, "_onOverlayDestroy": {"guessedname": "_onOverlayDestroy", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}, {"type": "Overlay", "name": "p_oOverlay", "description": " Object representing the overlay that \nfired the event."}], "description": "\"destroy\" event handler for the Overlay.", "private": "", "guessedtype": "function"}, "_onOverlayFocusHandler": {"guessedname": "_onOverlayFocusHandler", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}, {"type": "Overlay", "name": "p_oOverlay", "description": " Object representing the overlay that \nfired the event."}], "description": "focusEvent Handler, used to delegate to _manageFocus with the correct arguments.", "private": "", "guessedtype": "function"}, "register": {"return": {"type": "boolean", "description": "true if any Overlays are registered."}, "params": [{"type": "Overlay", "name": "overlay", "description": "  An Overlay to register with the manager."}, {"type": "Overlay[]", "name": "overlay", "description": "  An array of Overlays to register with \nthe manager."}], "description": "Registers an Overlay or an array of Overlays with the manager. Upon \nregistration, the Overlay receives functions for focus and blur, \nalong with CustomEvents for each.", "guessedname": "register", "guessedtype": "function"}, "remove": {"params": [{"type": "Overlay", "name": "overlay", "description": " The Overlay to remove"}, {"type": "String", "name": "overlay", "description": " The id of the Overlay to remove"}], "description": "Removes the specified Overlay from the manager", "guessedname": "remove", "guessedtype": "function"}, "compareZIndexDesc": {"guessedname": "compareZIndexDesc", "return": {"type": "Number", "description": "0, 1, or -1, depending on where the Overlay should \nfall in the stacking order."}, "description": "Used for sorting the manager's Overlays by z-index.", "private": "", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the default configuration of the OverlayManager", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "_onOverlayElementFocus": {"guessedname": "_onOverlayElementFocus", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event \nobject passed back by the event utility (Event)."}], "description": "Event handler for the DOM event that is used to focus \nthe Overlay instance as specified by the \"focusevent\" \nconfiguration property.", "private": "", "guessedtype": "function"}}, "file": "OverlayManager.js", "guessedtype": "function", "shortname": "OverlayManager", "properties": {"activeOverlay": {"guessedname": "activeOverlay", "type": "YAHOO.widget.Overlay", "description": "The currently activated Overlay", "private": "", "guessedtype": "property"}, "cfg": {"type": "Config", "description": "The OverlayManager's Config object used for monitoring \nconfiguration properties.", "guessedname": "cfg", "guessedtype": "property"}, "contructor": {"type": "Function", "description": "The class's constructor function", "guessedname": "constructor", "guessedtype": "property"}, "overlays": {"type": "YAHOO.widget.Overlay[]", "description": "The array of Overlays that are currently registered", "guessedname": "overlays", "guessedtype": "property"}, "OverlayManager.CSS_FOCUSED": {"description": "The CSS class representing a focused Overlay", "static": "", "guessedname": "CSS_FOCUSED", "guessedtype": "property", "type": "String", "final": ""}}, "description": "OverlayManager is used for maintaining the focus status of \nmultiple Overlays."}, "YAHOO.widget.SimpleEditor": {"name": "YAHOO.widget.SimpleEditor", "configs": {"saveEl": {"default": "element", "type": "HTMLElement", "description": "When save HTML is called, this element will be updated as well as the source of data."}, "height": {"default": "Best guessed size of the textarea, for best results use CSS to style the height of the textarea or pass it in as an argument", "type": "String", "description": "The height of the editor iframe container, not including the toolbar.."}, "disabled": {"default": "false", "type": "Boolean", "description": "This will toggle the editor's disabled state. When the editor is disabled, designMode is turned off and a mask is placed over the iframe so no interaction can take place.\nAll Toolbar buttons are also disabled so they cannot be used."}, "focusAtStart": {"default": "false", "type": "Boolean", "description": "Should we focus the window when the content is ready?"}, "toolbar_cont": {"default": "false", "type": "Boolean", "description": "Internal config for the toolbars container"}, "editor_wrapper": {"default": "null", "type": "HTMLElement", "description": "The outter wrapper for the entire editor.", "private": ""}, "animate": {"default": "false unless Animation is found, then true", "type": "Boolean", "description": "Should the editor animate window movements"}, "maxUndo": {"default": "30", "type": "Number", "description": "The max number of undo levels to store."}, "container": {"default": "false", "type": "HTMLElement", "description": "Used when dynamically creating the Editor from Javascript with no default textarea.\nWe will create one and place it in this container. If no container is passed we will append to document.body."}, "extracss": {"default": "''", "type": "String", "description": "Extra user defined css to load after the default SimpleEditor CSS"}, "width": {"default": "Best guessed size of the textarea, for best results use CSS to style the width of the textarea or pass it in as an argument", "type": "String", "description": "The width of the editor container."}, "setDesignMode": {"default": "true", "type": "Boolean", "description": "Should the Editor set designMode on the document. Default: true."}, "blankimage": {"default": "The yahooapis.com address for the current release + 'assets/blankimage.png'", "type": "String", "description": "The URL for the image placeholder to put in when inserting an image."}, "handleSubmit": {"default": "false", "type": "Boolean", "description": "Config handles if the editor will attach itself to the textareas parent form's submit handler.\nIf it is set to true, the editor will attempt to attach a submit listener to the textareas parent form.\nThen it will trigger the editors save handler and place the new content back into the text area before the form is submitted."}, "allowNoEdit": {"default": "false", "type": "Boolean", "description": "Should the editor check for non-edit fields. It should be noted that this technique is not perfect. If the user does the right things, they will still be able to make changes.\nSuch as highlighting an element below and above the content and hitting a toolbar button or a shortcut key."}, "css": {"default": "<code><pre>html {\nheight: 95%;\n}\nbody {\nheight: 100%;\npadding: 7px; background-color: #fff; font:13px/1.22 arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;\n}\na {\ncolor: blue;\ntext-decoration: underline;\ncursor: pointer;\n}\n.warning-localfile {\nborder-bottom: 1px dashed red !important;\n}\n.yui-busy {\ncursor: wait !important;\n}\nimg.selected { //Safari image selection\nborder: 2px dotted #808080;\n}\nimg {\ncursor: pointer !important;\nborder: none;\n}\n</pre></code>", "type": "String", "description": "The Base CSS used to format the content of the editor"}, "autoHeight": {"default": "false", "type": "Boolean || Number", "description": "Remove the scrollbars from the edit area and resize it to fit the content. It will not go any lower than the current config height."}, "element_cont": {"default": "false", "type": "HTMLElement", "description": "Internal config for the editors container"}, "disabled_iframe": {"default": "null", "type": "HTMLElement", "description": "Internal config for holding the iframe element used when disabling the Editor.", "private": ""}, "ptags": {"default": "false", "type": "Boolean", "description": "If true, the editor uses <P> tags instead of <br> tags. (Use Shift + Enter to get a <br>)"}, "filterWord": {"type": "Boolean", "description": "Attempt to filter out MS Word HTML from the Editor's output."}, "removeLineBreaks": {"default": "false", "type": "Boolean", "description": "Should we remove linebreaks and extra spaces on cleanup"}, "toolbar": {"type": "Object", "description": "The default toolbar config."}, "drag": {"type": "{Boolean/String}", "description": "Set this config to make the Editor draggable, pass 'proxy' to make use YAHOO.util.DDProxy."}, "resize": {"type": "Boolean", "description": "Set this to true to make the Editor Resizable with YAHOO.util.Resize. The default config is available: myEditor._resizeConfig\nAnimation will be ignored while performing this resize to allow for the dynamic change in size of the toolbar."}, "nodeChangeThreshold": {"default": "3", "type": "Number", "description": "The number of seconds that need to be in between nodeChange processing"}, "limitCommands": {"default": "false", "type": "Boolean", "description": "Should the Editor limit the allowed execCommands to the ones available in the toolbar. If true, then execCommand and keyboard shortcuts will fail if they are not defined in the toolbar."}, "panel": {"default": "false", "type": "Boolean", "description": "A reference to the panel we are using for windows."}, "insert": {"default": "false", "type": "Boolean", "description": "If true, selection is not required for: fontname, fontsize, forecolor, backcolor."}, "nodeChangeDelay": {"default": "true", "type": "Boolean", "description": "Do we wrap the nodeChange method in a timeout for performance. Default: true."}, "textarea": {"default": "null", "depreciated": "- No longer used, should use this.get('element')", "type": "HTMLElement", "description": "Internal config for holding the textarea element (replaced with element).", "private": ""}, "plainText": {"default": "false", "type": "Boolean", "description": "Process the inital textarea data as if it was plain text. Accounting for spaces, tabs and line feeds."}, "markup": {"default": "\"semantic\"", "type": "String", "description": "Should we try to adjust the markup for the following types: semantic, css, default or xhtml"}, "html": {"default": "This HTML requires a few things if you are to override:\n<p><code>{TITLE}, {CSS}, {HIDDEN_CSS}, {EXTRA_CSS}</code> and <code>{CONTENT}</code> need to be there, they are passed to YAHOO.lang.substitute to be replace with other strings.<p>\n<p><code>onload=\"document.body._rteLoaded = true;\"</code> : the onload statement must be there or the editor will not finish loading.</p>\n<code>\n<pre>\n<html>\n<head>\n<title>{TITLE}</title>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<style>\n{CSS}\n</style>\n<style>\n{HIDDEN_CSS}\n</style>\n<style>\n{EXTRA_CSS}\n</style>\n</head>\n<body onload=\"document.body._rteLoaded = true;\">\n{CONTENT}\n</body>\n</html>\n</pre>\n</code>", "type": "String", "description": "The default HTML to be written to the iframe document before the contents are loaded (Note that the DOCTYPE attr will be added at render item)"}, "dompath": {"default": "false", "type": "Boolean", "description": "Toggle the display of the current Dom path below the editor"}, "iframe": {"default": "null", "type": "HTMLElement", "description": "Internal config for holding the iframe element.", "private": ""}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The textarea element to turn into an editor."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "The Rich Text Editor is a UI control that replaces a standard HTML textarea; it allows for the rich formatting of text content, including common structural treatments like lists, formatting treatments like bold and italic text, and drag-and-drop inclusion and sizing of images. The Rich Text Editor's toolbar is extensible via a plugin architecture so that advanced implementations can achieve a high degree of customization."}], "namespace": "YAHOO.widget", "module": "editor", "events": {"markupChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "markupChange", "description": "Fires when the value for the configuration attribute 'markup' changes."}, "beforeBlankimageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBlankimageChange", "description": "Fires before the value for the configuration attribute 'blankimage' changes. Return false to cancel the attribute change."}, "editorKeyUp": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "htmlChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "htmlChange", "description": "Fires when the value for the configuration attribute 'html' changes."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "dompathChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dompathChange", "description": "Fires when the value for the configuration attribute 'dompath' changes."}, "beforeFocusAtStartChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFocusAtStartChange", "description": "Fires before the value for the configuration attribute 'focusAtStart' changes. Return false to cancel the attribute change."}, "beforeEditorMouseDown": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "toolbarLoaded": {"type": "YAHOO.util.CustomEvent", "description": "Event is fired during the render process directly after the Toolbar is loaded. Allowing you to attach events to the toolbar. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeToolbarChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeToolbarChange", "description": "Fires before the value for the configuration attribute 'toolbar' changes. Return false to cancel the attribute change."}, "editorMouseDown": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "editorDoubleClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeHtmlChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHtmlChange", "description": "Fires before the value for the configuration attribute 'html' changes. Return false to cancel the attribute change."}, "afterRender": {"type": "YAHOO.util.CustomEvent", "description": "Event is fired after the render process finishes. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "cssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "cssChange", "description": "Fires when the value for the configuration attribute 'css' changes."}, "editorWindowFocus": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the iframe is focused. Note, this is window focus event, not an Editor focus event."}, "afterExecCommand": {"type": "YAHOO.util.CustomEvent", "description": "Event fires at the end of the execCommand process. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeEditorKeyPress": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "beforeEditorMouseUp": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "beforeEditorKeyDown": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "beforeCssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCssChange", "description": "Fires before the value for the configuration attribute 'css' changes. Return false to cancel the attribute change."}, "editorKeyDown": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeMarkupChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMarkupChange", "description": "Fires before the value for the configuration attribute 'markup' changes. Return false to cancel the attribute change."}, "beforeExtracssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeExtracssChange", "description": "Fires before the value for the configuration attribute 'extracss' changes. Return false to cancel the attribute change."}, "beforeEditorKeyUp": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "removeLineBreaksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "removeLineBreaksChange", "description": "Fires when the value for the configuration attribute 'removeLineBreaks' changes."}, "beforeDompathChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDompathChange", "description": "Fires before the value for the configuration attribute 'dompath' changes. Return false to cancel the attribute change."}, "editorClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "animateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateChange", "description": "Fires when the value for the configuration attribute 'animate' changes."}, "focusAtStartChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "focusAtStartChange", "description": "Fires when the value for the configuration attribute 'focusAtStart' changes."}, "beforeExecCommand": {"type": "YAHOO.util.CustomEvent", "description": "Event fires at the beginning of the execCommand process. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "toolbarChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "toolbarChange", "description": "Fires when the value for the configuration attribute 'toolbar' changes."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}, "blankimageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "blankimageChange", "description": "Fires when the value for the configuration attribute 'blankimage' changes."}, "beforeEditorDoubleClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "editorMouseUp": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeAnimateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateChange", "description": "Fires before the value for the configuration attribute 'animate' changes. Return false to cancel the attribute change."}, "editorContentLoaded": {"type": "YAHOO.util.CustomEvent", "description": "Event is fired after the editor iframe's document fully loads and fires it's onload event. From here you can start injecting your own things into the document. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeRemoveLineBreaksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRemoveLineBreaksChange", "description": "Fires before the value for the configuration attribute 'removeLineBreaks' changes. Return false to cancel the attribute change."}, "beforeEditorClick": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Fires before editor event, returning false will stop the internal processing."}, "cleanHTML": {"type": "YAHOO.util.CustomEvent", "description": "Event is fired after the cleanHTML method is called."}, "beforeHandleSubmitChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHandleSubmitChange", "description": "Fires before the value for the configuration attribute 'handleSubmit' changes. Return false to cancel the attribute change."}, "extracssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "extracssChange", "description": "Fires when the value for the configuration attribute 'extracss' changes."}, "editorKeyPress": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Event", "name": "ev", "description": " The DOM Event that occured"}], "description": "Passed through HTML Event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "handleSubmitChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "handleSubmitChange", "description": "Fires when the value for the configuration attribute 'handleSubmit' changes."}, "beforeNodeChange": {"type": "YAHOO.util.CustomEvent", "description": "Event fires at the beginning of the nodeChange process. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "afterNodeChange": {"type": "YAHOO.util.CustomEvent", "description": "Event fires at the end of the nodeChange process. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "editorWindowBlur": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the iframe is blurred. Note, this is window blur event, not an Editor blur event."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "SimpleEditor", "methods": {"_setCurrentEvent": {"guessedname": "_setCurrentEvent", "params": [{"type": "Event", "name": "ev", "description": " The event to cache"}], "description": "Sets the current event property", "private": "", "guessedtype": "function"}, "show": {"description": "This method needs to be called if the Editor was hidden (like in a TabView or Panel). It is used to reset the editor after being in a container that was set to display none.", "guessedname": "show", "guessedtype": "function"}, "focus": {"description": "Attempt to set the focus of the iframes window.", "guessedname": "focus", "guessedtype": "function"}, "cmd_inserthtml": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('inserthtml') is used.", "guessedname": "cmd_inserthtml", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the editor."}], "description": "Initializes all of the configuration attributes used to create \nthe editor.", "guessedname": "initAttributes", "guessedtype": "function"}, "cmd_bold": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('bold') is used.", "guessedname": "cmd_bold", "guessedtype": "function"}, "filter_invalid_lists": {"params": [{"type": "", "name": "String", "description": " html The HTML string to filter"}], "description": "Filters invalid ol and ul list markup, converts this: <li></li><ol>..</ol> to this: <li></li><li><ol>..</ol></li>", "guessedname": "filter_invalid_lists", "guessedtype": "function"}, "_checkLoaded": {"guessedname": "_checkLoaded", "params": [{"type": "Boolean", "name": "raw", "description": " Don't add events."}], "description": "Called from a setTimeout loop to check if the iframes body.onload event has fired, then it will init the editor.", "private": "", "guessedtype": "function"}, "_removeEditorEvents": {"description": "This method removes the listeners on the Editors document (for disabling).", "private": "", "guessedname": "_removeEditorEvents", "guessedtype": "function"}, "_toggleDesignMode": {"guessedname": "_toggleDesignMode", "return": {"type": "String", "description": "The state that it was set to."}, "description": "Toggles the designMode property of the iFrame document on and off.", "private": "", "guessedtype": "function"}, "_setupDD": {"description": "Sets up the DD instance used from the 'drag' config option.", "private": "", "guessedname": "_setupDD", "guessedtype": "function"}, "render": {"description": "Calls the private method _render in a setTimeout to allow for other things on the page to continue to load.", "guessedname": "render", "guessedtype": "function"}, "_handleAfterNodeChange": {"description": "Fires after a nodeChange happens to setup the things that where reset on the node change (button state).", "private": "", "guessedname": "_handleAfterNodeChange", "guessedtype": "function"}, "_fixListDupIds": {"description": "Some browsers will duplicate the id of an LI when created in designMode.\nThis method will fix the duplicate id issue. However it will only preserve the first element \nin the document list with the unique id.", "private": "", "guessedname": "_fixListDupIds", "guessedtype": "function"}, "init": {"description": "The Editor class' initialization method", "guessedname": "init", "guessedtype": "function"}, "closeWindow": {"description": "Override Method for Advanced Editor", "guessedname": "closeWindow", "guessedtype": "function"}, "_handleFormSubmit": {"guessedname": "_handleFormSubmit", "params": [{"type": "Object", "name": "ev", "description": " The Form Submit Event"}], "description": "Handles the form submission.", "private": "", "guessedtype": "function"}, "_handleMouseDown": {"guessedname": "_handleMouseDown", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all mousedown events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_handleFocus": {"guessedname": "_handleFocus", "params": [{"type": "Event", "name": "e", "description": " The DOM Event"}], "description": "Handles the focus of the iframe. Note, this is window focus event, not an Editor focus event.", "private": "", "guessedtype": "function"}, "_handleFontSize": {"guessedname": "_handleFontSize", "params": [{"type": "Object", "name": "o", "description": " Object returned from Toolbar's buttonClick Event"}], "description": "Handles the font size button in the toolbar.", "private": "", "guessedtype": "function"}, "_initEditorEvents": {"description": "This method sets up the listeners on the Editors document.", "private": "", "guessedname": "_initEditorEvents", "guessedtype": "function"}, "nodeChange": {"params": [{"type": "Boolean", "name": "force", "description": " Optional paramenter to skip the threshold counter"}], "description": "Handles setting up the toolbar buttons, getting the Dom path, fixing nodes.", "guessedname": "nodeChange", "guessedtype": "function"}, "_updateMenuChecked": {"guessedname": "_updateMenuChecked", "params": [{"type": "Object", "name": "button", "description": " The command identifier of the button you want to check"}, {"type": "String", "name": "value", "description": " The value of the menu item you want to check"}, {"type": "<a href=\"YAHOO.widget.Toolbar.html\">YAHOO.widget.Toolbar</a>", "name": "The", "description": " Toolbar instance the button belongs to (defaults to this.toolbar)"}], "description": "Gets the menu from a button instance, if the menu is not rendered it will render it. It will then search the menu for the specified value, unchecking all other items and checking the specified on.", "private": "", "guessedtype": "function"}, "_cleanClassName": {"return": {"type": "String", "description": ""}, "description": "Makes a useable classname from dynamic data, by dropping it to lowercase and replacing spaces with -'s.", "private": "", "params": [{"type": "String", "name": "str", "description": " The classname to clean up"}], "guessedname": "_cleanClassName", "guessedtype": "function"}, "_setDesignMode": {"guessedname": "_setDesignMode", "params": [{"type": "String", "name": "state", "description": " This should be either on or off"}], "description": "Sets the designMode property of the iFrame document's body.", "private": "", "guessedtype": "function"}, "cmd_fontname": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('fontname') is used.", "guessedname": "cmd_fontname", "guessedtype": "function"}, "_handleMouseUp": {"guessedname": "_handleMouseUp", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all mouseup events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_render": {"description": "Causes the toolbar and the editor to render and replace the textarea.", "private": "", "guessedname": "_render", "guessedtype": "function"}, "_getSelection": {"guessedname": "_getSelection", "return": {"type": "Object", "description": "Selection Object"}, "description": "Handles the different selection objects across the A-Grade list.", "private": "", "guessedtype": "function"}, "_createIframe": {"return": {"type": "Object", "description": "iFrame object"}, "description": "_createIframe", "private": "", "params": [{"type": "String", "name": "id", "description": " The string ID to prefix the iframe with"}], "guessedname": "_createIframe", "guessedtype": "function"}, "cmd_forecolor": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('forecolor') is used.", "guessedname": "cmd_forecolor", "guessedtype": "function"}, "_handleBlur": {"guessedname": "_handleBlur", "params": [{"type": "Event", "name": "e", "description": " The DOM Event"}], "description": "Handles the blur of the iframe. Note, this is window blur event, not an Editor blur event.", "private": "", "guessedtype": "function"}, "_getDoc": {"guessedname": "_getDoc", "return": {"type": "Object", "description": ""}, "description": "Get the Document of the IFRAME", "private": "", "guessedtype": "function"}, "filter_all_rgb": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " str The HTML string to filter"}], "description": "Converts all RGB color strings found in passed string to a hex color, example: style=\"color: rgb(0, 255, 0)\" converts to style=\"color: #00ff00\"", "guessedname": "filter_all_rgb", "guessedtype": "function"}, "cmd_italic": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('italic') is used.", "guessedname": "cmd_italic", "guessedtype": "function"}, "_handleInsertImageWindowClose": {"description": "Handles the closing of the Image Properties Window.", "private": "", "guessedname": "_handleInsertImageWindowClose", "guessedtype": "function"}, "_handleToolbarClick": {"guessedname": "_handleToolbarClick", "params": [{"type": "Event", "name": "ev", "description": " The event that triggered the button click"}], "description": "This is an event handler attached to the Toolbar's buttonClick event. It will fire execCommand with the command identifier from the Toolbar Button.", "private": "", "guessedtype": "function"}, "filter_rgb": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " css The CSS string containing rgb(#,#,#);"}], "description": "Converts an RGB color string to a hex color, example: rgb(0, 255, 0) converts to #00ff00", "guessedname": "filter_rgb", "guessedtype": "function"}, "cmd_createlink": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('createlink') is used.", "guessedname": "cmd_createlink", "guessedtype": "function"}, "cmd_insertorderedlist": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('insertorderedlist ') is used.", "guessedname": "cmd_insertorderedlist", "guessedtype": "function"}, "_disableEditor": {"guessedname": "_disableEditor", "params": [{"type": "Boolean", "name": "disabled", "description": " Pass true to disable, false to enable"}], "description": "Creates a mask to place over the Editor.", "private": "", "guessedtype": "function"}, "cmd_insertunorderedlist": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('insertunorderedlist') is used.", "guessedname": "cmd_insertunorderedlist", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the editor.", "guessedname": "toString", "guessedtype": "function"}, "cmd_insertimage": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('insertimage') is used.", "guessedname": "cmd_insertimage", "guessedtype": "function"}, "getEditorHTML": {"description": "Gets the unprocessed/unfiltered HTML from the editor", "guessedname": "getEditorHTML", "guessedtype": "function"}, "saveHTML": {"return": {"type": "", "description": "String"}, "description": "Cleans the HTML with the cleanHTML method then places that string back into the textarea.", "guessedname": "saveHTML", "guessedtype": "function"}, "_setupAfterElement": {"description": "Creates the accessibility h2 header and places it after the iframe in the Dom for navigation.", "private": "", "guessedname": "_setupAfterElement", "guessedtype": "function"}, "cmd_underline": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('underline') is used.", "guessedname": "cmd_underline", "guessedtype": "function"}, "_getDomPath": {"return": {"type": "Array", "description": "An array of node references that will create the DOM Path."}, "description": "This method will attempt to build the DOM path from the currently selected element.", "private": "", "params": [{"type": "", "name": "HTMLElement", "description": " el The element to start with, if not provided _getSelectedElement is used"}], "guessedname": "_getDomPath", "guessedtype": "function"}, "_hasParent": {"return": {"type": "", "description": "HTMLElement"}, "description": "_hasParent", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "tag", "description": " The tag that the element needs to be"}], "guessedname": "_hasParent", "guessedtype": "function"}, "_listFix": {"guessedname": "_listFix", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles the Enter key, Tab Key and Shift + Tab keys for List Items.", "private": "", "guessedtype": "function"}, "_createCurrentElement": {"guessedname": "_createCurrentElement", "params": [{"type": "String", "name": "tagName", "description": " (optional defaults to a) The tagname of the element that you wish to create"}, {"type": "Object", "name": "tagStyle", "description": " (optional) Object literal containing styles to apply to the new element."}], "description": "This is a work around for the various browser issues with execCommand. This method will run <code>execCommand('fontname', false, 'yui-tmp')</code> on the given selection.\nIt will then search the document for an element with the font-family set to <strong>yui-tmp</strong> and replace that with another span that has other information in it, then assign the new span to the \n<code>this.currentElement</code> array, so we now have element references to the elements that were just modified. At this point we can use standard DOM manipulation to change them as we see fit.", "private": "", "guessedtype": "function"}, "_focusWindow": {"guessedname": "_focusWindow", "depreciated": "- This should not be used, moved to this.focus();", "description": "Attempt to set the focus of the iframes window.", "private": "", "guessedtype": "function"}, "_handleKeyDown": {"guessedname": "_handleKeyDown", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all keydown events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_closeWindow": {"description": "Override Method for Advanced Editor", "private": "", "guessedname": "_closeWindow", "guessedtype": "function"}, "_nodeChange": {"guessedname": "_nodeChange", "params": [{"type": "Boolean", "name": "force", "description": " Optional paramenter to skip the threshold counter"}], "description": "Fired from nodeChange in a setTimeout.", "private": "", "guessedtype": "function"}, "_fixNodes": {"description": "Fix href and imgs as well as remove invalid HTML.", "private": "", "guessedname": "_fixNodes", "guessedtype": "function"}, "setEditorHTML": {"params": [{"type": "String", "name": "incomingHTML", "description": " The html content to load into the editor"}], "description": "Loads HTML into the editors body", "guessedname": "setEditorHTML", "guessedtype": "function"}, "_cleanIncomingHTML": {"return": {"type": "String", "description": "The filtered HTML"}, "params": [{"type": "String", "name": "html", "description": " The unfiltered HTML"}], "description": "Process the HTML with a few regexes to clean it up and stabilize the input", "guessedname": "_cleanIncomingHTML", "guessedtype": "function"}, "_isLocalFile": {"guessedname": "_isLocalFile", "params": [{"type": "String", "name": "url", "description": " THe url/string to check"}], "description": "Checks to see if a string (href or img src) is possibly a local file reference..", "private": "", "guessedtype": "function"}, "_swapEl": {"guessedname": "_swapEl", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to swap with"}, {"type": "String", "name": "tagName", "description": " The tagname of the element that you wish to create"}, {"type": "Function", "name": "callback", "description": " (optional) A function to run on the element after it is created, but before it is replaced. An element reference is passed to this function."}], "description": "This function will create a new element in the DOM and populate it with the contents of another element. Then it will assume it's place.", "private": "", "guessedtype": "function"}, "openWindow": {"description": "Override Method for Advanced Editor", "guessedname": "openWindow", "guessedtype": "function"}, "pre_filter_linebreaks": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " html The HTML to filter"}, {"type": "", "name": "String", "description": " markup The markup type to filter to"}], "description": "HTML Pre Filter", "guessedname": "pre_filter_linebreaks", "guessedtype": "function"}, "_getSelectedElement": {"guessedname": "_getSelectedElement", "return": {"type": "HTMLElement", "description": "The currently selected element."}, "description": "This method will attempt to locate the element that was last interacted with, either via selection, location or event.", "private": "", "guessedtype": "function"}, "clearEditorDoc": {"description": "Clear the doc of the Editor", "guessedname": "clearEditorDoc", "guessedtype": "function"}, "_handleInsertImageClick": {"description": "Opens the Image Properties Window when the insert Image button is clicked or an Image is Double Clicked.", "private": "", "guessedname": "_handleInsertImageClick", "guessedtype": "function"}, "_handleKeyPress": {"guessedname": "_handleKeyPress", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all keypress events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_hasSelection": {"guessedname": "_hasSelection", "return": {"type": "Boolean", "description": ""}, "description": "Determines if there is a selection in the editor document.", "private": "", "guessedtype": "function"}, "_handleColorPicker": {"guessedname": "_handleColorPicker", "params": [{"type": "Object", "name": "o", "description": " Object returned from Toolbar's buttonClick Event"}], "description": "Handles the colorpicker buttons in the toolbar.", "private": "", "guessedtype": "function"}, "_selectNode": {"guessedname": "_selectNode", "params": [{"type": "HTMLElement", "name": "node", "description": " The node to select"}], "description": "Places the highlight around a given node", "private": "", "guessedtype": "function"}, "_handleAutoHeight": {"description": "Handles resizing the editor's height based on the content", "private": "", "guessedname": "_handleAutoHeight", "guessedtype": "function"}, "_handleAlign": {"guessedname": "_handleAlign", "params": [{"type": "Object", "name": "o", "description": " Object returned from Toolbar's buttonClick Event"}], "description": "Handles the alignment buttons in the toolbar.", "private": "", "guessedtype": "function"}, "cmd_backcolor": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('backcolor') is used.", "guessedname": "cmd_backcolor", "guessedtype": "function"}, "moveWindow": {"description": "Override Method for Advanced Editor", "guessedname": "moveWindow", "guessedtype": "function"}, "cleanHTML": {"return": {"type": "String", "description": "The filtered HTML"}, "params": [{"type": "String", "name": "html", "description": " The unfiltered HTML"}], "description": "Process the HTML with a few regexes to clean it up and stabilize the output", "guessedname": "cleanHTML", "guessedtype": "function"}, "_createInsertElement": {"return": {"type": "HTMLElement", "description": ""}, "description": "Creates a new \"currentElement\" then adds some text (and other things) to make it selectable and stylable. Then the user can continue typing.", "private": "", "params": [{"type": "Object", "name": "css", "description": " (optional) Object literal containing styles to apply to the new element."}], "guessedname": "_createInsertElement", "guessedtype": "function"}, "_isNonEditable": {"return": {"type": "", "description": "Boolean"}, "description": "Method is called at the beginning of all event handlers to check if this element or a parent element has the class yui-noedit (this.CLASS_NOEDIT) applied.\nIf it does, then this method will stop the event and return true. The event handlers will then return false and stop the nodeChange from occuring. This method will also\ndisable and enable the Editor's toolbar based on the noedit state.", "private": "", "params": [{"type": "", "name": "Event", "description": " ev The Dom event being checked"}], "guessedname": "_isNonEditable", "guessedtype": "function"}, "_isElement": {"return": {"type": "Boolean", "description": ""}, "description": "_isElement", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "tag", "description": " The tag that the element needs to be"}], "guessedname": "_isElement", "guessedtype": "function"}, "_initEditor": {"guessedname": "_initEditor", "params": [{"type": "Boolean", "name": "raw", "description": " Don't add events."}], "description": "This method is fired from _checkLoaded when the document is ready. It turns on designMode and set's up the listeners.", "private": "", "guessedtype": "function"}, "_handleKeyUp": {"guessedname": "_handleKeyUp", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all keyup events inside the iFrame document.", "private": "", "guessedtype": "function"}, "_handleFormButtonClick": {"guessedname": "_handleFormButtonClick", "params": [{"type": "Event", "name": "ev", "description": " The click event"}], "description": "The click listener assigned to each submit button in the Editor's parent form.", "private": "", "guessedtype": "function"}, "_handleCreateLinkClick": {"description": "Handles the opening of the Link Properties Window when the Create Link button is clicked or an href is doubleclicked.", "private": "", "guessedname": "_handleCreateLinkClick", "guessedtype": "function"}, "_getBlankImage": {"guessedname": "_getBlankImage", "return": {"type": "String", "description": "The URL to the blank image"}, "description": "Retrieves the full url of the image to use as the blank image.", "private": "", "guessedtype": "function"}, "_setMarkupType": {"guessedname": "_setMarkupType", "params": [{"type": "String", "name": "action", "description": " The action to take. Possible values are: css, default or semantic"}], "description": "This method will turn on/off the useCSS execCommand.", "private": "", "guessedtype": "function"}, "filter_safari": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " html The HTML string to filter"}], "description": "Filters strings specific to Safari", "guessedname": "filter_safari", "guessedtype": "function"}, "destroy": {"return": {"type": "Boolean", "description": ""}, "description": "Destroys the editor, all of it's elements and objects.", "guessedname": "destroy", "guessedtype": "function"}, "_handleCreateLinkWindowClose": {"description": "Handles the closing of the Link Properties Window.", "private": "", "guessedname": "_handleCreateLinkWindowClose", "guessedtype": "function"}, "filter_internals": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " html The HTML string to filter"}], "description": "Filters internal RTE strings and bogus attrs we don't want", "guessedname": "filter_internals", "guessedtype": "function"}, "cmd_list": {"params": [{"type": "", "name": "tag", "description": " The tag of the list you want to create (eg, ul or ol)"}], "description": "This is a combined execCommand override method. It is called from the cmd_insertorderedlist and cmd_insertunorderedlist methods.", "guessedname": "cmd_list", "guessedtype": "function"}, "cmd_fontsize": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('fontsize') is used.", "guessedname": "cmd_fontsize", "guessedtype": "function"}, "_setInitialContent": {"guessedname": "_setInitialContent", "params": [{"type": "Boolean", "name": "raw", "description": " Don't add events."}], "description": "This method will open the iframes content document and write the textareas value into it, then start the body.onload checking.", "private": "", "guessedtype": "function"}, "_handleDoubleClick": {"guessedname": "_handleDoubleClick", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all doubleclick events inside the iFrame document.", "private": "", "guessedtype": "function"}, "filter_msword": {"params": [{"type": "", "name": "String", "description": " html The HTML string to filter"}], "description": "Filters out msword html attributes and other junk. Activate with filterWord: true in config", "guessedname": "filter_msword", "guessedtype": "function"}, "hide": {"description": "This method needs to be called if the Editor is to be hidden (like in a TabView or Panel). It should be called to clear timeouts and close open editor windows.", "guessedname": "hide", "guessedtype": "function"}, "post_filter_linebreaks": {"return": {"type": "", "description": "String"}, "params": [{"type": "", "name": "String", "description": " html The HTML to filter"}, {"type": "", "name": "String", "description": " markup The markup type to filter to"}], "description": "HTML Pre Filter", "guessedname": "post_filter_linebreaks", "guessedtype": "function"}, "cmd_unlink": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('unlink') is used.", "guessedname": "cmd_unlink", "guessedtype": "function"}, "_getWindow": {"guessedname": "_getWindow", "return": {"type": "Object", "description": ""}, "description": "Get the Window of the IFRAME", "private": "", "guessedtype": "function"}, "_writeDomPath": {"description": "Write the current DOM path out to the dompath container below the editor.", "private": "", "guessedname": "_writeDomPath", "guessedtype": "function"}, "_handleClick": {"guessedname": "_handleClick", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Handles all click events inside the iFrame document.", "private": "", "guessedtype": "function"}, "execCommand": {"params": [{"type": "String", "name": "action", "description": " The \"execCommand\" action to try to execute (Example: bold, insertimage, inserthtml)"}, {"type": "String", "name": "value", "description": " (optional) The value for a given action such as action: fontname value: 'Verdana'"}], "description": "This method attempts to try and level the differences in the various browsers and their support for execCommand actions", "guessedname": "execCommand", "guessedtype": "function"}, "_checkKey": {"return": {"type": "Boolean", "description": ""}, "description": "Checks a keyMap entry against a key event", "private": "", "params": [{"type": "Object", "name": "k", "description": " The _keyMap object"}, {"type": "Event", "name": "e", "description": " The Mouse Event"}], "guessedname": "_checkKey", "guessedtype": "function"}, "_getRange": {"guessedname": "_getRange", "return": {"type": "Object", "description": "Range Object"}, "description": "Handles the different range objects across the A-Grade list.", "private": "", "guessedtype": "function"}, "_setupResize": {"description": "Creates the Resize instance and binds its events.", "private": "", "guessedname": "_setupResize", "guessedtype": "function"}, "_setEditorStyle": {"params": [{"type": "Booleen", "name": "stat", "description": " True/False"}], "description": "Set the editor to use CSS instead of HTML", "guessedname": "_setEditorStyle", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "simple-editor.js", "guessedtype": "function", "shortname": "SimpleEditor", "properties": {"CLASS_EDITABLE_CONT": {"protected": "", "type": "String", "description": "Default CSS class to apply to the editors iframe's parent element", "guessedname": "CLASS_EDITABLE_CONT", "guessedtype": "property"}, "_alwaysDisabled": {"guessedname": "_alwaysDisabled", "type": "Object", "description": "The Toolbar items that should ALWAYS be disabled event if there is a selection present in the editor.", "private": "", "guessedtype": "property"}, "_blankImageLoaded": {"guessedname": "_blankImageLoaded", "type": "Boolean", "description": "Don't load the blank image more than once..", "private": "", "guessedtype": "property"}, "_showingHiddenElements": {"guessedname": "_showingHiddenElements", "type": "Boolean", "description": "Status of the hidden elements button", "private": "", "guessedtype": "property"}, "afterElement": {"type": "HTMLElement", "description": "A reference to the H2 placed after the editor for Accessibilty.", "guessedname": "afterElement", "guessedtype": "property"}, "CLASS_EDITABLE": {"protected": "", "type": "String", "description": "Default CSS class to apply to the editors iframe element", "guessedname": "CLASS_EDITABLE", "guessedtype": "property"}, "_baseHREF": {"guessedname": "_baseHREF", "type": "String", "description": "The base location of the editable page (this page) so that relative paths for image work.", "private": "", "guessedtype": "function"}, "operaEvent": {"guessedname": "operaEvent", "type": "Object", "description": "setTimeout holder for Opera and Image DoubleClick event..", "private": "", "guessedtype": "property"}, "SEP_DOMPATH": {"type": "String", "description": "The value to place in between the Dom path items", "guessedname": "SEP_DOMPATH", "guessedtype": "property"}, "_selection": {"guessedname": "_selection", "type": "Object", "description": "Holder for caching iframe selections", "private": "", "guessedtype": "property"}, "STR_BEFORE_EDITOR": {"type": "String", "description": "The accessibility string for the element before the iFrame", "guessedname": "STR_BEFORE_EDITOR", "guessedtype": "property"}, "_defaultCSS": {"type": "String", "description": "The default CSS used in the config for 'css'. This way you can add to the config like this: { css: YAHOO.widget.SimpleEditor.prototype._defaultCSS + 'ADD MYY CSS HERE' }", "guessedname": "_defaultCSS", "guessedtype": "property"}, "_formButtons": {"guessedname": "_formButtons", "type": "Array", "description": "Array of buttons that are in the Editor's parent form (for handleSubmit)", "private": "", "guessedtype": "property"}, "DOMReady": {"guessedname": "DOMReady", "type": "Boolean", "description": "Flag to determine if DOM is ready or not", "private": "", "guessedtype": "property"}, "_tag2cmd": {"guessedname": "_tag2cmd", "type": "Object", "description": "A tag map of HTML tags to convert to the different types of commands so we can select the proper toolbar button.", "private": "", "guessedtype": "property"}, "_resizeConfig": {"private": "", "description": "The default config for the Resize Utility", "guessedname": "_resizeConfig", "guessedtype": "property"}, "_lastNodeChangeEvent": {"guessedname": "_lastNodeChangeEvent", "type": "Event", "description": "Flag to determine the last event that fired a node change", "private": "", "guessedtype": "property"}, "STOP_NODE_CHANGE": {"protected": "", "type": "Boolean", "description": "Set to true when you want the default nodeChange function to not process anything", "guessedname": "STOP_NODE_CHANGE", "guessedtype": "property"}, "_textarea": {"type": "Boolean", "description": "Flag to determine if we are using a textarea or an HTML Node.", "guessedname": "_textarea", "guessedtype": "property"}, "currentEvent": {"type": "Event", "description": "A reference to the current editor event", "guessedname": "currentEvent", "guessedtype": "property"}, "STR_TITLE": {"type": "String", "description": "The Title of the HTML document that is created in the iFrame", "guessedname": "STR_TITLE", "guessedtype": "property"}, "_rendered": {"guessedname": "_rendered", "type": "Boolean", "description": "Flag to determine if editor has been rendered or not", "private": "", "guessedtype": "property"}, "STR_LINK_URL": {"type": "String", "description": "The label string for the Link URL.", "guessedname": "STR_LINK_URL", "guessedtype": "property"}, "CLASS_PREFIX": {"protected": "", "type": "String", "description": "Default prefix for dynamically created class names", "guessedname": "CLASS_PREFIX", "guessedtype": "property"}, "CLASS_NOEDIT": {"protected": "", "type": "String", "description": "CSS class applied to elements that are not editable.", "guessedname": "CLASS_NOEDIT", "guessedtype": "property"}, "_fixListRunning": {"guessedname": "_fixListRunning", "type": "Boolean", "description": "Keeps more than one _fixListDupIds from running at the same time.", "private": "", "guessedtype": "property"}, "toolbar": {"type": "<a href=\"YAHOO.widget.Toolbar.html\">YAHOO.widget.Toolbar</a>", "description": "Local property containing the <a href=\"YAHOO.widget.Toolbar.html\">YAHOO.widget.Toolbar</a> instance", "guessedname": "toolbar", "guessedtype": "property"}, "editorDirty": {"type": "Boolean", "description": "This flag will be set when certain things in the Editor happen. It is to be used by the developer to check to see if content has changed.", "guessedname": "editorDirty", "guessedtype": "property"}, "_semantic": {"guessedname": "_semantic", "type": "Object", "description": "The Toolbar commands that we should attempt to make tags out of instead of using styles.", "private": "", "guessedtype": "property"}, "_alwaysEnabled": {"guessedname": "_alwaysEnabled", "type": "Object", "description": "The Toolbar items that should ALWAYS be enabled event if there isn't a selection present in the editor.", "private": "", "guessedtype": "property"}, "_contentTimerCounter": {"guessedname": "_contentTimerCounter", "type": "Number", "description": "Counter to check the number of times the body is polled for before giving up", "private": "", "guessedtype": "property"}, "_disabled": {"guessedname": "_disabled", "type": "Array", "description": "The Toolbar items that should be disabled if there is no selection present in the editor.", "private": "", "guessedtype": "property"}, "STR_LEAVE_EDITOR": {"type": "String", "description": "The accessibility string for the element after the iFrame", "guessedname": "STR_LEAVE_EDITOR", "guessedtype": "property"}, "_lastImage": {"guessedname": "_lastImage", "type": "HTMLElement", "description": "Safari reference for the last image selected (for styling as selected).", "private": "", "guessedtype": "property"}, "_lastButton": {"guessedname": "_lastButton", "type": "Object", "description": "The last button pressed, so we don't disable it.", "private": "", "guessedtype": "property"}, "dd": {"type": "YAHOO.util.DD/YAHOO.util.DDProxy", "description": "A reference to the DragDrop object.", "guessedname": "dd", "guessedtype": "property"}, "currentFont": {"type": "HTMLElement", "description": "A reference to the last font selected from the Toolbar", "guessedname": "currentFont", "guessedtype": "property"}, "_lastNodeChange": {"guessedname": "_lastNodeChange", "type": "Date", "description": "Flag to determine when the last node change was fired", "private": "", "guessedtype": "property"}, "_nodeChangeTimer": {"guessedname": "_nodeChangeTimer", "type": "Number", "description": "Holds a reference to the nodeChange setTimeout call", "private": "", "guessedtype": "property"}, "_fixNodesTimer": {"guessedname": "_fixNodesTimer", "type": "Date", "description": "Holder for the fixNodes timer", "private": "", "guessedtype": "property"}, "_contentTimerMax": {"private": "", "description": "The number of times the loaded content should be checked before giving up. Default: 500", "guessedname": "_contentTimerMax", "guessedtype": "property"}, "currentWindow": {"type": "Object", "description": "A reference to the currently open EditorWindow", "guessedname": "currentWindow", "guessedtype": "property"}, "currentElement": {"type": "Array", "description": "A reference to the current working element in the editor", "guessedname": "currentElement", "guessedtype": "property"}, "_nodeChangeDelayTimer": {"guessedname": "_nodeChangeDelayTimer", "type": "Number", "description": "Holds a reference to the nodeChangeDelay setTimeout call", "private": "", "guessedtype": "property"}, "CLASS_CONTAINER": {"protected": "", "type": "String", "description": "Default CSS class to apply to the editors container element", "guessedname": "CLASS_CONTAINER", "guessedtype": "property"}, "_keyMap": {"guessedname": "_keyMap", "type": "{Object/Mixed}", "description": "Named key maps for various actions in the Editor. Example: <code>CLOSE_WINDOW: { key: 87, mods: ['shift', 'ctrl'] }</code>. \nThis entry shows that when key 87 (W) is found with the modifiers of shift and control, the window will close. You can customize this object to tweak keyboard shortcuts.", "private": "", "guessedtype": "property"}, "_formButtonClicked": {"guessedname": "_formButtonClicked", "type": "HTMLElement", "description": "The form button that was clicked to submit the form.", "private": "", "guessedtype": "property"}, "resize": {"type": "YAHOO.util.Resize", "description": "A reference to the Resize object", "guessedname": "resize", "guessedtype": "property"}, "_docType": {"type": "String", "description": "The DOCTYPE to use in the editable container.", "guessedname": "_docType", "guessedtype": "property"}, "STR_IMAGE_URL": {"type": "String", "description": "The label string for Image URL", "guessedname": "STR_IMAGE_URL", "guessedtype": "property"}, "STR_IMAGE_HERE": {"type": "String", "description": "The text to place in the URL textbox when using the blankimage.", "guessedname": "STR_IMAGE_HERE", "guessedtype": "property"}, "_lastCommand": {"guessedname": "_lastCommand", "type": "String", "description": "A cache of the last execCommand (used for Undo/Redo so they don't mark an undo level)", "private": "", "guessedtype": "property"}, "_mask": {"guessedname": "_mask", "type": "Object", "description": "DOM Element holder for the editor Mask when disabled", "private": "", "guessedtype": "property"}, "dompath": {"type": "HTMLElement", "description": "A reference to the dompath container for writing the current working dom path to.", "guessedname": "dompath", "guessedtype": "property"}, "beforeElement": {"type": "HTMLElement", "description": "A reference to the H2 placed before the editor for Accessibilty.", "guessedname": "beforeElement", "guessedtype": "property"}, "STOP_EXEC_COMMAND": {"protected": "", "type": "Boolean", "description": "Set to true when you want the default execCommand function to not process anything", "guessedname": "STOP_EXEC_COMMAND", "guessedtype": "property"}, "_contentTimer": {"private": "", "description": "setTimeout holder for documentReady check", "guessedname": "_contentTimer", "guessedtype": "property"}, "_focused": {"guessedname": "_focused", "type": "Boolean", "description": "Holder for trapping focus/blur state and prevent double events", "private": "", "guessedtype": "property"}, "_defaultToolbar": {"guessedname": "_defaultToolbar", "type": "Object", "description": "Default toolbar config.", "private": "", "guessedtype": "property"}, "invalidHTML": {"type": "Object", "description": "Contains a list of HTML elements that are invalid inside the editor. They will be removed when they are found. If you set the value of a key to \"{ keepContents: true }\", then the element will be replaced with a yui-non span to be filtered out when cleanHTML is called. The only tag that is ignored here is the span tag as it will force the Editor into a loop and freeze the browser. However.. all of these tags will be removed in the cleanHTML routine.", "guessedname": "invalidHTML", "guessedtype": "property"}, "browser": {"type": "Object", "description": "Standard browser detection", "guessedname": "browser", "guessedtype": "function"}}, "description": "The Rich Text Editor is a UI control that replaces a standard HTML textarea; it allows for the rich formatting of text content, including common structural treatments like lists, formatting treatments like bold and italic text, and drag-and-drop inclusion and sizing of images. The Rich Text Editor's toolbar is extensible via a plugin architecture so that advanced implementations can achieve a high degree of customization."}, "YAHOO.util.Get": {"name": "YAHOO.util.Get", "namespace": "YAHOO.util", "module": "get", "guessedname": "Get", "methods": {"_purge": {"private": "", "description": "Removes the nodes for the specified queue", "guessedname": "_purge", "guessedtype": "function"}, "_finalize": {"guessedname": "_finalize", "params": [{"type": "string", "name": "id", "description": "  the transaction id"}], "description": "Called by the the helper for detecting script load in Safari", "private": "", "guessedtype": "function"}, "_autoPurge": {"private": "", "description": "Removes processed queues and corresponding nodes", "guessedname": "_autoPurge", "guessedtype": "function"}, "_finish": {"guessedname": "_finish", "params": [{"type": "string", "name": "id", "description": "  the id of the request"}], "description": "The request is complete, so executing the requester's callback", "private": "", "guessedtype": "function"}, "_linkNode": {"return": {"type": "HTMLElement", "description": "the generated node"}, "description": "Generates a link node", "private": "", "params": [{"type": "string", "name": "url", "description": "  the url for the css file"}, {"type": "Window", "name": "win", "description": "  optional window to create the node in"}], "guessedname": "_linkNode", "guessedtype": "function"}, "script": {"return": {"type": "tId: string", "description": "an object containing info about the transaction"}, "description": "Fetches and inserts one or more script nodes into the head\nof the current document or the document in a specified window.", "static": "", "guessedname": "script", "guessedtype": "function", "params": [{"type": "string|string[]", "name": "url", "description": "  the url or urls to the script(s)"}, {"type": "object", "name": "opts", "description": "  Options: \n<dl>\n<dt>onSuccess</dt>\n<dd>\ncallback to execute when the script(s) are finished loading\nThe callback receives an object back with the following\ndata:\n<dl>\n<dt>win</dt>\n<dd>the window the script(s) were inserted into</dd>\n<dt>data</dt>\n<dd>the data object passed in when the request was made</dd>\n<dt>nodes</dt>\n<dd>An array containing references to the nodes that were\ninserted</dd>\n<dt>purge</dt>\n<dd>A function that, when executed, will remove the nodes\nthat were inserted</dd>\n<dt>\n</dl>\n</dd>\n<dt>onFailure</dt>\n<dd>\ncallback to execute when the script load operation fails\nThe callback receives an object back with the following\ndata:\n<dl>\n<dt>win</dt>\n<dd>the window the script(s) were inserted into</dd>\n<dt>data</dt>\n<dd>the data object passed in when the request was made</dd>\n<dt>nodes</dt>\n<dd>An array containing references to the nodes that were\ninserted successfully</dd>\n<dt>purge</dt>\n<dd>A function that, when executed, will remove any nodes\nthat were inserted</dd>\n<dt>\n</dl>\n</dd>\n<dt>onTimeout</dt>\n<dd>\ncallback to execute when a timeout occurs.\nThe callback receives an object back with the following\ndata:\n<dl>\n<dt>win</dt>\n<dd>the window the script(s) were inserted into</dd>\n<dt>data</dt>\n<dd>the data object passed in when the request was made</dd>\n<dt>nodes</dt>\n<dd>An array containing references to the nodes that were\ninserted</dd>\n<dt>purge</dt>\n<dd>A function that, when executed, will remove the nodes\nthat were inserted</dd>\n<dt>\n</dl>\n</dd>\n<dt>scope</dt>\n<dd>the execution context for the callbacks</dd>\n<dt>win</dt>\n<dd>a window other than the one the utility occupies</dd>\n<dt>autopurge</dt>\n<dd>\nsetting to true will let the utilities cleanup routine purge \nthe script once loaded\n</dd>\n<dt>data</dt>\n<dd>\ndata that is supplied to the callback when the script(s) are\nloaded.\n</dd>\n<dt>varName</dt>\n<dd>\nvariable that should be available when a script is finished\nloading.  Used to help Safari 2.x and below with script load \ndetection.  The type of this property should match what was\npassed into the url parameter: if loading a single url, a\nstring can be supplied.  If loading multiple scripts, you\nmust supply an array that contains the variable name for\neach script.\n</dd>\n<dt>insertBefore</dt>\n<dd>node or node id that will become the new node's nextSibling</dd>\n</dl>\n<dt>charset</dt>\n<dd>Node charset, deprecated, use 'attributes'</dd>\n<dt>attributes</dt>\n<dd>A hash of attributes to apply to dynamic nodes.</dd>\n<dt>timeout</dt>\n<dd>Number of milliseconds to wait before aborting and firing the timeout event</dd>\n<pre>\n// assumes yahoo, dom, and event are already on the page\n  YAHOO.util.Get.script(\n  [\"http://yui.yahooapis.com/2.7.0/build/dragdrop/dragdrop-min.js\",\n   \"http://yui.yahooapis.com/2.7.0/build/animation/animation-min.js\"], {\n    onSuccess: function(o) {\n      YAHOO.log(o.data); // foo\n      new YAHOO.util.DDProxy(\"dd1\"); // also new o.reference(\"dd1\"); would work\n      this.log(\"won't cause error because YAHOO is the scope\");\n      this.log(o.nodes.length === 2) // true\n      // o.purge(); // optionally remove the script nodes immediately\n    },\n    onFailure: function(o) {\n      YAHOO.log(\"transaction failed\");\n    },\n    data: \"foo\",\n    timeout: 10000, // 10 second timeout\n    scope: YAHOO,\n    // win: otherframe // target another window/frame\n    autopurge: true // allow the utility to choose when to remove the nodes\n  });\n</pre>"}]}, "_returnData": {"private": "", "description": "Returns the data payload for callback functions", "guessedname": "_returnData", "guessedtype": "function"}, "queue": {"guessedname": "_queue", "params": [{"type": "string", "name": "type", "description": "  the type of node to insert"}, {"type": "string", "name": "url", "description": "  the url to load"}, {"type": "", "name": "opts", "description": " the hash of options for this request"}], "description": "Saves the state for the request and begins loading\nthe requested urls", "private": "", "guessedtype": "function"}, "_scriptNode": {"return": {"type": "HTMLElement", "description": "the generated node"}, "description": "Generates a script node", "private": "", "params": [{"type": "string", "name": "url", "description": "  the url for the script file"}, {"type": "Window", "name": "win", "description": "  optional window to create the node in"}], "guessedname": "_scriptNode", "guessedtype": "function"}, "_node": {"return": {"type": "HTMLElement", "description": "the generated node"}, "description": "Generates an HTML element, this is not appended to a document", "private": "", "params": [{"type": "string", "name": "type", "description": "  the type of element"}, {"type": "string", "name": "attr", "description": "  the attributes"}, {"type": "Window", "name": "win", "description": "  optional window to create the element in"}], "guessedname": "_node", "guessedtype": "function"}, "abort": {"params": [{"type": "string|object", "name": "either", "description": " the tId or the object returned from\nscript() or css()"}], "description": "Abort a transaction", "guessedname": "abort", "guessedtype": "function"}, "_next": {"guessedname": "_next", "params": [{"type": "string", "name": "id", "description": "  the id of the request"}, {"type": "string", "name": "loaded", "description": "  the url that was just loaded, if any"}], "description": "Loads the next item for a given request", "private": "", "guessedtype": "function"}, "_timeout": {"guessedname": "_timeout", "params": [{"type": "string", "name": "id", "description": "  the id of the request"}], "description": "Timeout detected", "private": "", "guessedtype": "function"}, "_track": {"guessedname": "_track", "params": [{"type": "string", "name": "type", "description": "  the type of node to track"}, {"type": "HTMLElement", "name": "n", "description": "  the node to track"}, {"type": "string", "name": "id", "description": "  the id of the request"}, {"type": "string", "name": "url", "description": "  the url that is being loaded"}, {"type": "Window", "name": "win", "description": "  the targeted window"}, {"type": "", "name": "qlength", "description": " the number of remaining items in the queue,\nincluding this one"}, {"type": "Function", "name": "trackfn", "description": "  function to execute when finished\nthe default is _next"}], "description": "Detects when a node has been loaded.  In the case of\nscript nodes, this does not guarantee that contained\nscript is ready to use.", "private": "", "guessedtype": "function"}, "css": {"return": {"type": "tId: string", "description": "an object containing info about the transaction"}, "description": "Fetches and inserts one or more css link nodes into the \nhead of the current document or the document in a specified\nwindow.", "static": "", "guessedname": "css", "guessedtype": "function", "params": [{"type": "string", "name": "url", "description": "  the url or urls to the css file(s)"}, {"type": "", "name": "opts", "description": " Options: \n<dl>\n<dt>onSuccess</dt>\n<dd>\ncallback to execute when the css file(s) are finished loading\nThe callback receives an object back with the following\ndata:\n<dl>win</dl>\n<dd>the window the link nodes(s) were inserted into</dd>\n<dt>data</dt>\n<dd>the data object passed in when the request was made</dd>\n<dt>nodes</dt>\n<dd>An array containing references to the nodes that were\ninserted</dd>\n<dt>purge</dt>\n<dd>A function that, when executed, will remove the nodes\nthat were inserted</dd>\n<dt>\n</dl>\n</dd>\n<dt>scope</dt>\n<dd>the execution context for the callbacks</dd>\n<dt>win</dt>\n<dd>a window other than the one the utility occupies</dd>\n<dt>data</dt>\n<dd>\ndata that is supplied to the callbacks when the nodes(s) are\nloaded.\n</dd>\n<dt>insertBefore</dt>\n<dd>node or node id that will become the new node's nextSibling</dd>\n<dt>charset</dt>\n<dd>Node charset, deprecated, use 'attributes'</dd>\n<dt>attributes</dt>\n<dd>A hash of attributes to apply to dynamic nodes.</dd>\n</dl>\n<pre>\nYAHOO.util.Get.css(\"http://yui.yahooapis.com/2.7.0/build/menu/assets/skins/sam/menu.css\");\n</pre>\n<pre>\nYAHOO.util.Get.css([\"http://yui.yahooapis.com/2.7.0/build/menu/assets/skins/sam/menu.css\",\n\"http://yui.yahooapis.com/2.7.0/build/logger/assets/skins/sam/logger.css\"]);\n</pre>"}]}}, "file": "Get.js", "guessedtype": "function", "shortname": "Get", "properties": {"POLL_FREQ": {"description": "The default poll freqency in ms, when needed", "default": "10", "static": "", "guessedname": "POLL_FREQ", "guessedtype": "property", "type": "int"}, "qidx": {"guessedname": "qidx", "type": "int", "description": "queue index used to generate transaction ids", "private": "", "guessedtype": "property"}, "queues": {"private": "", "description": "hash of queues to manage multiple requests", "guessedname": "queues", "guessedtype": "property"}, "purging": {"guessedname": "purging", "type": "boolean", "description": "interal property used to prevent multiple simultaneous purge \nprocesses", "private": "", "guessedtype": "property"}, "TIMEOUT": {"description": "The length time to poll for varName when loading a script in\nSafari 2.x before the transaction fails.\nproperty TIMEOUT", "default": "2000", "static": "", "guessedname": "TIMEOUT", "guessedtype": "property", "type": "int"}, "nidx": {"guessedname": "nidx", "type": "int", "description": "node index used to generate unique node ids", "private": "", "guessedtype": "property"}, "PURGE_THRESH": {"description": "The number of request required before an automatic purge.\nproperty PURGE_THRESH", "default": "20", "static": "", "guessedname": "PURGE_THRESH", "guessedtype": "property", "type": "int"}}, "description": "Fetches and inserts one or more script or link nodes into the document"}, "YAHOO.widget.BaseCellEditor": {"name": "YAHOO.widget.BaseCellEditor", "constructors": [{"params": [{"type": "String", "name": "sType", "description": "  Type indicator, to map to YAHOO.widget.DataTable.Editors."}, {"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The BaseCellEditor class provides base functionality common to all inline cell\neditors for a DataTable widget."}], "namespace": "YAHOO.widget", "module": "datatable", "events": {"saveEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is saved."}, "revertEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is reverted due to asyncSubmitter failure."}, "blurEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor has a blur event."}, "showEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor is shown."}, "cancelEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}], "description": "Fired when a CellEditor input is canceled."}, "invalidDataEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "Object", "name": "oArgs.newData", "description": "  New data value from form input field."}, {"type": "Object", "name": "oArgs.oldData", "description": "  Old data value."}], "description": "Fired when a CellEditor input is reverted due to invalid data."}, "keydownEvent": {"params": [{"type": "YAHOO.widget.CellEditor", "name": "oArgs.editor", "description": "  The CellEditor instance."}, {"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}], "description": "Fired when a CellEditor has a keydown."}}, "guessedname": "BaseCellEditor", "methods": {"_initEvents": {"private": "", "description": "Initialize Custom Events.", "guessedname": "_initEvents", "guessedtype": "function"}, "getColumn": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "description": "Returns reference to associated Column instance.", "guessedname": "getColumn", "guessedtype": "function"}, "getDataTable": {"return": {"type": "YAHOO.widget.DataTable", "description": "DataTable instance."}, "description": "Returns reference to associated DataTable instance.", "guessedname": "getDataTable", "guessedtype": "function"}, "render": {"description": "Renders DOM elements and attaches event listeners.", "guessedname": "render", "guessedtype": "function"}, "show": {"description": "Displays CellEditor UI in the correct position.", "guessedname": "show", "guessedtype": "function"}, "move": {"description": "Moves container into position for display.", "guessedname": "move", "guessedtype": "function"}, "focus": {"description": "Sets focus in CellEditor.", "guessedname": "focus", "guessedtype": "function"}, "renderBtns": {"description": "Renders Save/Cancel buttons.", "guessedname": "renderBtns", "guessedtype": "function"}, "unblock": {"description": "Fires unblockEvent", "guessedname": "unblock", "guessedtype": "function"}, "cancel": {"description": "Cancels CellEditor input and hides UI.", "guessedname": "cancel", "guessedtype": "function"}, "doAfterRender": {"description": "Access to add additional event listeners.", "guessedname": "doAfterRender", "guessedtype": "function"}, "renderForm": {"description": "Renders form elements.", "guessedname": "renderForm", "guessedtype": "function"}, "getRecord": {"return": {"type": "YAHOO.widget.Record", "description": "Record instance."}, "description": "Returns reference to associated Record instance.", "guessedname": "getRecord", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique ID of the CellEditor instance."}, "description": "CellEditor unique ID.", "guessedname": "getId", "guessedtype": "function"}, "attach": {"params": [{"type": "YAHOO.widget.DataTable", "name": "oDataTable", "description": "  Associated DataTable instance."}, {"type": "HTMLElement", "name": "elCell", "description": "  Cell to edit."}], "description": "Attach CellEditor for a new interaction.", "guessedname": "attach", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the CellEditor instance."}, "description": "CellEditor instance name, for logging.", "guessedname": "toString", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from CellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire CellEditor instance and related objects, removes attached\nevent listeners, and clears out DOM elements inside the container, removes\ncontainer from the DOM.", "guessedname": "destroy", "guessedtype": "function"}, "save": {"description": "Saves value of CellEditor and hides UI.", "guessedname": "save", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "resetForm": {"description": "Resets CellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}, "getContainerEl": {"return": {"type": "HTMLElement", "description": "Reference to container element."}, "description": "Returns container element.", "guessedname": "getContainerEl", "guessedtype": "function"}, "getTdEl": {"return": {"type": "HTMLElement", "description": "TD element."}, "description": "Returns reference to associated TD element.", "guessedname": "getTdEl", "guessedtype": "function"}, "_initConfigs": {"private": "", "description": "Initialize configs.", "guessedname": "_initConfigs", "guessedtype": "function"}, "block": {"description": "Fires blockEvent", "guessedname": "block", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "CellEditor.js", "guessedtype": "function", "shortname": "BaseCellEditor", "properties": {"LABEL_SAVE": {"default": "\"Save\"", "type": "String", "description": "Text to display on Save button.", "guessedname": "LABEL_SAVE", "guessedtype": "property"}, "CellEditor._nCount": {"description": "Global instance counter.", "default": "0", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}, "_sType": {"guessedname": "_sType", "type": "String", "description": "Editor type.", "private": "", "guessedtype": "property"}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique id assigned to instance \"yui-ceditorN\", useful prefix for generating unique\nDOM ID strings and log messages.", "private": "", "guessedtype": "property"}, "defaultValue": {"default": "null", "type": "MIXED", "description": "Default value in case Record data is undefined. NB: Null values will not trigger\nthe default value.", "guessedname": "defaultValue", "guessedtype": "property"}, "resetInvalidData": {"default": "true", "type": "Boolean", "description": "If validation is enabled, resets input field of invalid data.", "guessedname": "resetInvalidData", "guessedtype": "property"}, "_oColumn": {"description": "Column instance.", "default": "null", "private": "", "guessedname": "_oColumn", "guessedtype": "property", "type": "YAHOO.widget.Column"}, "_elContainer": {"guessedname": "_elContainer", "type": "HTMLElement", "description": "Container for inline editor.", "private": "", "guessedtype": "property"}, "value": {"type": "MIXED", "description": "Current value.", "guessedname": "value", "guessedtype": "property"}, "_elCancelBtn": {"description": "Reference to Cancel button, if available.", "default": "null", "private": "", "guessedname": "_elCancelBtn", "guessedtype": "property", "type": "HTMLElement"}, "asyncSubmitter": {"type": "HTMLFunction", "description": "Implementer defined function that can submit the input value to a server. This\nfunction must accept the arguments fnCallback and oNewValue. When the submission\nis complete, the function must also call fnCallback(bSuccess, oNewValue) to \nfinish the save routine in the CellEditor. This function can also be used to \nperform extra validation or input value manipulation.", "guessedname": "asyncSubmitter", "guessedtype": "property"}, "disableBtns": {"default": "false", "type": "Boolean", "description": "True if Save/Cancel buttons should not be displayed in the CellEditor.", "guessedname": "disableBtns", "guessedtype": "property"}, "_oDataTable": {"guessedname": "_oDataTable", "type": "YAHOO.widget.DataTable", "description": "DataTable instance.", "private": "", "guessedtype": "property"}, "_elTd": {"description": "TD element.", "default": "null", "private": "", "guessedname": "_elTd", "guessedtype": "property", "type": "HTMLElement"}, "CellEditor.CLASS_CELLEDITOR": {"description": "Class applied to CellEditor container.", "default": "\"yui-ceditor\"", "static": "", "guessedname": "CLASS_CELLEDITOR", "guessedtype": "property", "type": "String"}, "_oRecord": {"description": "Record instance.", "default": "null", "private": "", "guessedname": "_oRecord", "guessedtype": "property", "type": "YAHOO.widget.Record"}, "_elSaveBtn": {"description": "Reference to Save button, if available.", "default": "null", "private": "", "guessedname": "_elSaveBtn", "guessedtype": "property", "type": "HTMLElement"}, "LABEL_CANCEL": {"default": "\"Cancel\"", "type": "String", "description": "Text to display on Cancel button.", "guessedname": "LABEL_CANCEL", "guessedtype": "property"}, "isActive": {"type": "Boolean", "description": "True if currently active.", "guessedname": "isActive", "guessedtype": "property"}, "validator": {"default": "null", "type": "HTMLFunction", "description": "Validator function for input data, called from the DataTable instance scope,\nreceives the arguments (inputValue, currentValue, editorInstance) and returns\neither the validated (or type-converted) value or undefined.", "guessedname": "validator", "guessedtype": "property"}}, "description": "The BaseCellEditor class provides base functionality common to all inline cell\neditors for a DataTable widget."}, "YAHOO.widget.TVFadeIn": {"name": "YAHOO.widget.TVFadeIn", "constructors": [{"params": [{"type": "HTMLElement", "name": "el", "description": "  the element to animate"}, {"type": "function", "name": "callback", "description": "  function to invoke when the animation is finished"}], "description": "A 1/2 second fade-in animation."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "TVFadeIn", "methods": {"onComplete": {"description": "Clean up and invoke callback", "guessedname": "onComplete", "guessedtype": "function"}, "animate": {"description": "Performs the animation", "guessedname": "animate", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "the string representation of the instance"}, "description": "toString", "guessedname": "toString", "guessedtype": "function"}}, "file": "TVFadeIn.js", "guessedtype": "function", "shortname": "TVFadeIn", "properties": {"el": {"type": "HTMLElement", "description": "The element to animate", "guessedname": "el", "guessedtype": "property"}, "callback": {"type": "function", "description": "the callback to invoke when the animation is complete", "guessedname": "callback", "guessedtype": "property"}}, "description": "A 1/2 second fade-in animation."}, "YAHOO.widget.CalendarGroup": {"name": "YAHOO.widget.CalendarGroup", "configs": {"MY_LABEL_YEAR_POSITION": {"default": "2", "type": "Number", "description": "The position of the year in the month year label string used as the Calendar header", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEKDAYS": {"default": "true", "type": "Boolean", "description": "True if the Calendar should show weekday labels. True by default.", "guessedname": "value", "guessedtype": "property"}, "MDY_DAY_POSITION": {"default": "2", "type": "Number", "description": "The position of the day in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "MY_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "MONTHS_SHORT": {"default": "[\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]", "type": "String[]", "description": "The short month labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MULTI_SELECT": {"default": "false", "type": "Boolean", "description": "True if the Calendar should allow multiple selections. False by default.", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_YEAR_SUFFIX": {"default": "\"\"", "type": "String", "description": "The suffix used after the year when rendering the Calendar header", "guessedname": "value", "guessedtype": "property"}, "DATE_FIELD_DELIMITER": {"default": "\"/\"", "type": "String", "description": "The value used to delimit date fields in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "MY_YEAR_POSITION": {"default": "2", "type": "Number", "description": "The position of the year in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "close": {"default": "false", "type": "Boolean", "description": "Whether or not a close button should be displayed for this CalendarGroup", "guessedname": "value", "guessedtype": "property"}, "MONTHS_LONG": {"default": "[\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"", "type": "String[]", "description": "The long month labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_MEDIUM": {"default": "[\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]", "type": "String[]", "description": "The medium weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "LOCALE_WEEKDAYS": {"default": "\"short\"", "type": "String", "description": "The setting that determines which length of weekday labels should be used. Possible values are \"1char\", \"short\", \"medium\", and \"long\".", "guessedname": "value", "guessedtype": "property"}, "DATE_RANGE_DELIMITER": {"default": "\"-\"", "type": "String", "description": "The value used to delimit date ranges in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEK_HEADER": {"default": "false", "type": "Boolean", "description": "True if the Calendar should show week row headers. False by default.", "guessedname": "value", "guessedtype": "property"}, "title": {"default": "\"\"", "type": "String", "description": "The title to display above the CalendarGroup's month header", "guessedname": "value", "guessedtype": "property"}, "maxdate": {"default": "null", "type": "String | Date", "description": "The maximum selectable date in the current Calendar (mm/dd/yyyy)", "guessedname": "value", "guessedtype": "property"}, "selected": {"default": "[]", "type": "String", "description": "The date or range of dates representing the current Calendar selection", "guessedname": "value", "guessedtype": "property"}, "pages": {"default": "2", "type": "Number", "description": "The number of pages to include in the CalendarGroup. This value can only be set once, in the CalendarGroup's constructor arguments.", "guessedname": "value", "guessedtype": "property"}, "NAV_ARROW_RIGHT": {"description": "The image that should be used for the right navigation arrow.", "default": "null", "deprecated": "You can customize the image by overriding the default CSS class for the right arrow - \"calnavright\"", "guessedname": "value", "guessedtype": "property", "type": "String"}, "HIDE_BLANK_WEEKS": {"default": "false", "type": "Boolean", "description": "True if the Calendar should suppress weeks that are not a part of the current month. False by default.", "guessedname": "value", "guessedtype": "property"}, "today": {"default": "Today's date", "type": "Date", "description": "The date to use to represent \"Today\".", "guessedname": "value", "guessedtype": "property"}, "mindate": {"default": "null", "type": "String | Date", "description": "The minimum selectable date in the current Calendar (mm/dd/yyyy)", "guessedname": "value", "guessedtype": "property"}, "START_WEEKDAY": {"default": "0", "type": "number", "description": "The weekday the week begins on. Default is 0 (Sunday).", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEK_FOOTER": {"default": "false", "type": "Boolean", "description": "True if the Calendar should show week row footers. False by default.", "guessedname": "value", "guessedtype": "property"}, "MDY_YEAR_POSITION": {"default": "3", "type": "Number", "description": "The position of the year in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_LONG": {"default": "[\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]", "type": "String[]", "description": "The long weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MDY_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "year_offset": {"default": "0", "type": "Number", "description": "The positive or negative year offset from the Gregorian calendar year (assuming a January 1st rollover) to \nbe used when displaying or parsing dates.  NOTE: All JS Date objects returned by methods, or expected as input by\nmethods will always represent the Gregorian year, in order to maintain date/month/week values.", "guessedname": "value", "guessedtype": "property"}, "pagedate": {"default": "Today's date", "type": "String | Date", "description": "The month/year representing the current visible Calendar date (mm/yyyy)", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_MONTH_SUFFIX": {"default": "\" \"", "type": "String", "description": "The suffix used after the month when rendering the Calendar header", "guessedname": "value", "guessedtype": "property"}, "MD_DAY_POSITION": {"default": "2", "type": "Number", "description": "The position of the day in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "NAV_ARROW_LEFT": {"description": "The image that should be used for the left navigation arrow.", "default": "null", "deprecated": "You can customize the image by overriding the default CSS class for the left arrow - \"calnavleft\"", "guessedname": "value", "guessedtype": "property", "type": "String"}, "MY_LABEL_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in the month year label string used as the Calendar header", "guessedname": "value", "guessedtype": "property"}, "MD_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/day date string", "guessedname": "value", "guessedtype": "property"}, "DATE_DELIMITER": {"default": "\",\"", "type": "String", "description": "The value used to delimit individual dates in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "LOCALE_MONTHS": {"default": "\"long\"", "type": "String", "description": "The setting that determines which length of month labels should be used. Possible values are \"short\" and \"long\".", "guessedname": "value", "guessedtype": "property"}, "iframe": {"default": "true for IE6 and below, false for all other browsers", "type": "Boolean", "description": "Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below.\nThis property is enabled by default for IE6 and below. It is disabled by default for other browsers for performance reasons, but can be \nenabled if required.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_1CHAR": {"default": "[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]", "type": "String[]", "description": "The 1-character weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_SHORT": {"default": "[\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]", "type": "String[]", "description": "The short weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "NAV": {"default": "null", "type": "Object", "description": "Configuration for the Month Year Navigation UI. By default it is disabled", "guessedname": "value", "guessedtype": "property"}, "strings": {"default": "An object with the properties shown below:\n<dl>\n<dt>previousMonth</dt><dd><em>String</em> : The string to use for the \"Previous Month\" navigation UI. Defaults to \"Previous Month\".</dd>\n<dt>nextMonth</dt><dd><em>String</em> : The string to use for the \"Next Month\" navigation UI. Defaults to \"Next Month\".</dd>\n<dt>close</dt><dd><em>String</em> : The string to use for the close button label. Defaults to \"Close\".</dd>\n</dl>", "type": "{Object}", "description": "The map of UI strings which the CalendarGroup UI uses."}}, "constructors": [{"params": [{"type": "String", "name": "id", "description": " optional The id of the table element that will represent the CalendarGroup widget. As of 2.4.0, this argument is optional."}, {"type": "String | HTMLElement", "name": "container", "description": " The id of the container div element that will wrap the CalendarGroup table, or a reference to a DIV element which exists in the document."}, {"type": "Object", "name": "config", "description": " optional The configuration object containing the initial configuration values for the CalendarGroup."}], "description": "YAHOO.widget.CalendarGroup is a special container class for YAHOO.widget.Calendar. This class facilitates\nthe ability to have multi-page calendar views that share a single dataset and are\ndependent on each other.\nThe calendar group instance will refer to each of its elements using a 0-based index.\nFor example, to construct the placeholder for a calendar group widget with id \"cal1\" and\ncontainerId of \"cal1Container\", the markup would be as follows:\n<xmp>\n<div id=\"cal1Container_0\"></div>\n<div id=\"cal1Container_1\"></div>\n</xmp>\nThe tables for the calendars (\"cal1_0\" and \"cal1_1\") will be inserted into those containers.\n<p>\n<strong>NOTE: As of 2.4.0, the constructor's ID argument is optional.</strong>\nThe CalendarGroup can be constructed by simply providing a container ID string, \nor a reference to a container DIV HTMLElement (the element needs to exist \nin the document).\nE.g.:\n<xmp>\nvar c = new YAHOO.widget.CalendarGroup(\"calContainer\", configOptions);\n</xmp>\nor:\n<xmp>\nvar containerDiv = YAHOO.util.Dom.get(\"calContainer\");\nvar c = new YAHOO.widget.CalendarGroup(containerDiv, configOptions);\n</xmp>\n</p>\n<p>\nIf not provided, the ID will be generated from the container DIV ID by adding an \"_t\" suffix.\nFor example if an ID is not provided, and the container's ID is \"calContainer\", the CalendarGroup's ID will be set to \"calContainer_t\".\n</p>"}], "namespace": "YAHOO.widget", "module": "calendar", "events": {"showNavEvent": {"description": "Fired after the CalendarNavigator is shown", "guessedname": "showNavEvent", "guessedtype": "property"}, "beforeDeselectEvent": {"description": "Fired before a date or set of dates is deselected", "guessedname": "beforeDeselectEvent", "guessedtype": "property"}, "beforeRenderNavEvent": {"description": "Fired just before the CalendarNavigator is to be rendered", "guessedname": "beforeRenderNavEvent", "guessedtype": "property"}, "beforeHideNavEvent": {"description": "Fired just before the CalendarNavigator is to be hidden", "guessedname": "beforeHideNavEvent", "guessedtype": "property"}, "hideEvent": {"description": "Fired after the CalendarGroup is hidden", "guessedname": "hideEvent", "guessedtype": "property"}, "hideNavEvent": {"description": "Fired after the CalendarNavigator is hidden", "guessedname": "hideNavEvent", "guessedtype": "property"}, "renderNavEvent": {"description": "Fired after the CalendarNavigator is rendered", "guessedname": "renderNavEvent", "guessedtype": "property"}, "beforeRenderEvent": {"description": "Fired before the Calendar is rendered", "guessedname": "beforeRenderEvent", "guessedtype": "property"}, "beforeShowEvent": {"description": "Fired just before the CalendarGroup is to be shown", "guessedname": "beforeShowEvent", "guessedtype": "property"}, "beforeSelectEvent": {"description": "Fired before a date selection is made", "guessedname": "beforeSelectEvent", "guessedtype": "property"}, "renderEvent": {"description": "Fired when the Calendar is rendered", "guessedname": "renderEvent", "guessedtype": "property"}, "changePageEvent": {"description": "Fired when the Calendar page is changed", "guessedname": "changePageEvent", "guessedtype": "property"}, "resetEvent": {"description": "Fired when the Calendar is reset", "guessedname": "resetEvent", "guessedtype": "property"}, "clearEvent": {"description": "Fired when the Calendar is cleared", "guessedname": "clearEvent", "guessedtype": "property"}, "showEvent": {"description": "Fired after the CalendarGroup is shown", "guessedname": "showEvent", "guessedtype": "property"}, "beforeDestroyEvent": {"description": "Fired just before the CalendarGroup is to be destroyed", "guessedname": "beforeDestroyEvent", "guessedtype": "property"}, "destroyEvent": {"description": "Fired after the CalendarGroup is destroyed. This event should be used\nfor notification only. When this event is fired, important CalendarGroup instance\nproperties, dom references and event listeners have already been \nremoved/dereferenced, and hence the CalendarGroup instance is not in a usable \nstate.", "guessedname": "destroyEvent", "guessedtype": "property"}, "selectEvent": {"params": [{"type": "Array", "name": "Array", "description": " of Date field arrays in the format [YYYY, MM, DD]."}], "description": "Fired when a date selection is made", "guessedname": "selectEvent", "guessedtype": "property"}, "beforeHideEvent": {"description": "Fired just before the CalendarGroup is to be hidden", "guessedname": "beforeHideEvent", "guessedtype": "property"}, "beforeShowNavEvent": {"description": "Fired just before the CalendarNavigator is to be shown", "guessedname": "beforeShowNavEvent", "guessedtype": "property"}, "deselectEvent": {"params": [{"type": "Array", "name": "Array", "description": " of Date field arrays in the format [YYYY, MM, DD]."}], "description": "Fired when a date or set of dates has been deselected", "guessedname": "deselectEvent", "guessedtype": "property"}}, "methods": {"deselectCell": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "Number", "name": "cellIndex", "description": " The index of the cell to deselect."}], "description": "Deselects dates in the CalendarGroup based on the cell index provided. This method is used to select cells without having to do a full render. The selected style is applied to the cells directly.\ndeselectCell will deselect the cell at the specified index on each displayed Calendar page.", "guessedname": "deselectCell", "guessedtype": "function"}, "addWeekdayRenderer": {"params": [{"type": "Number", "name": "weekday", "description": "  The weekday (1-7) to associate with this renderer. 1=Sunday, 2=Monday etc."}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a weekday to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the weekday passed to this method.", "guessedname": "addWeekdayRenderer", "guessedtype": "function"}, "render": {"description": "Calls the render function of all child calendars within the group.", "guessedname": "render", "guessedtype": "function"}, "nextYear": {"description": "Navigates to the next year in the currently selected month in the calendar widget.", "guessedname": "nextYear", "guessedtype": "function"}, "delegateConfig": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, this will usually equal the owner."}], "description": "Delegates a configuration property to the CustomEvents associated with the CalendarGroup's children", "guessedname": "delegateConfig", "guessedtype": "function"}, "configPages": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, this will usually equal the owner."}], "description": "The default Config handler for the \"pages\" property", "guessedname": "configPages", "guessedtype": "function"}, "subtractYears": {"params": [{"type": "Number", "name": "count", "description": " The number of years to subtract from the current calendar"}], "description": "Subtcats the designated number of years from the current calendar, and sets the current\ncalendar page date to the new month.", "guessedname": "subtractYears", "guessedtype": "function"}, "previousMonth": {"description": "Navigates to the previous month page in the calendar widget.", "guessedname": "previousMonth", "guessedtype": "function"}, "select": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "String/Date/Date[]", "name": "date", "description": "    The date string of dates to select in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "description": "Selects a date or a collection of dates on the current calendar. This method, by default,\ndoes not call the render method explicitly. Once selection has completed, render must be \ncalled for the changes to be reflected visually.", "guessedname": "select", "guessedtype": "function"}, "callChildFunction": {"params": [{"type": "String", "name": "fnName", "description": "  The name of the function"}, {"type": "Array", "name": "args", "description": "  The arguments to pass to the function"}], "description": "Calls a function within all child Calendars within this CalendarGroup.", "guessedname": "callChildFunction", "guessedtype": "function"}, "deselect": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "String/Date/Date[]", "name": "date", "description": " The date string of dates to deselect in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "description": "Deselects a date or a collection of dates on the current calendar. This method, by default,\ndoes not call the render method explicitly. Once deselection has completed, render must be \ncalled for the changes to be reflected visually.", "guessedname": "deselect", "guessedtype": "function"}, "sub": {"guessedname": "sub", "params": [{"type": "Function", "name": "fn", "description": " The function to subscribe to this CustomEvent"}, {"type": "Object", "name": "obj", "description": " The CustomEvent's scope object"}, {"type": "Boolean", "name": "bOverride", "description": " Whether or not to apply scope correction"}], "description": "Proxy subscriber to subscribe to the CalendarGroup's child Calendars' CustomEvents", "private": "", "guessedtype": "function"}, "initEvents": {"description": "Initializes CalendarGroup's built-in CustomEvents", "guessedname": "initEvents", "guessedtype": "function"}, "previousYear": {"description": "Navigates to the previous year in the currently selected month in the calendar widget.", "guessedname": "previousYear", "guessedtype": "function"}, "nextMonth": {"description": "Navigates to the next month page in the calendar widget.", "guessedname": "nextMonth", "guessedtype": "function"}, "configPageDate": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, this will usually equal the owner."}], "description": "The default Config handler for the \"pagedate\" property", "guessedname": "configPageDate", "guessedtype": "function"}, "setChildFunction": {"params": [{"type": "String", "name": "fnName", "description": "  The name of the function"}, {"type": "Function", "name": "fn", "description": "   The function to apply to each Calendar page object"}], "description": "Adds a function to all child Calendars within this CalendarGroup.", "guessedname": "setChildFunction", "guessedtype": "function"}, "addMonthRenderer": {"params": [{"type": "Number", "name": "month", "description": "  The month (1-12) to associate with this renderer"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a month to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the month passed to this method.", "guessedname": "addMonthRenderer", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "id", "description": " optional The id of the table element that will represent the CalendarGroup widget. As of 2.4.0, this argument is optional."}, {"type": "String | HTMLElement", "name": "container", "description": " The id of the container div element that will wrap the CalendarGroup table, or a reference to a DIV element which exists in the document."}, {"type": "Object", "name": "config", "description": " optional The configuration object containing the initial configuration values for the CalendarGroup."}], "description": "Initializes the calendar group. All subclasses must call this method in order for the\ngroup to be initialized properly.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "A string representation of the CalendarGroup object."}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "_setMonthOnDate": {"guessedname": "_setMonthOnDate", "params": [{"type": "Date", "name": "date", "description": " The Date object on which to set the month index"}, {"type": "Number", "name": "iMonth", "description": " The month index to set"}], "description": "Sets the month on a Date object, taking into account year rollover if the month is less than 0 or greater than 11.\nThe Date object passed in is modified. It should be cloned before passing it into this method if the original value needs to be maintained", "private": "", "guessedtype": "function"}, "removeRenderers": {"description": "Removes all custom renderers added to the CalendarGroup through the addRenderer, addMonthRenderer and \naddWeekRenderer methods. CalendarGroup's render method needs to be called to after removing renderers \nto see the changes applied.", "guessedname": "removeRenderers", "guessedtype": "function"}, "selectCell": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "Number", "name": "cellIndex", "description": " The index of the cell to be selected."}], "description": "Selects dates in the CalendarGroup based on the cell index provided. This method is used to select cells without having to do a full render. The selected style is applied to the cells directly.\nThe value of the MULTI_SELECT Configuration attribute will determine the set of dates which get selected. \n<ul>\n<li>If MULTI_SELECT is false, selectCell will select the cell at the specified index for only the last displayed Calendar page.</li>\n<li>If MULTI_SELECT is true, selectCell will select the cell at the specified index, on each displayed Calendar page.</li>\n</ul>", "guessedname": "selectCell", "guessedtype": "function"}, "renderFooter": {"description": "Renders a footer for the 2-up calendar container. By default, this method is\nunimplemented.", "guessedname": "renderFooter", "guessedtype": "function"}, "configSelected": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration handlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, this will usually equal the owner."}], "description": "The default Config handler for the CalendarGroup \"selected\" property", "guessedname": "configSelected", "guessedtype": "function"}, "_fixWidth": {"private": "", "description": "Fixes the width of the CalendarGroup container element, to account for miswrapped floats", "guessedname": "_fixWidth", "guessedtype": "function"}, "destroy": {"description": "Destroys the CalendarGroup instance. The method will remove references\nto HTML elements, remove any event listeners added by the CalendarGroup.\nIt will also destroy the Config and CalendarNavigator instances created by the \nCalendarGroup and the individual Calendar instances created for each page.", "guessedname": "destroy", "guessedtype": "function"}, "unsub": {"guessedname": "unsub", "params": [{"type": "Function", "name": "fn", "description": " The function to subscribe to this CustomEvent"}, {"type": "Object", "name": "obj", "description": " The CustomEvent's scope object"}], "description": "Proxy unsubscriber to unsubscribe from the CalendarGroup's child Calendars' CustomEvents", "private": "", "guessedtype": "function"}, "getSelectedDates": {"type": "Date[]", "return": {"type": "", "description": "An array of currently selected JavaScript Date objects."}, "description": "Gets the list of currently selected dates from the calendar.", "guessedname": "getSelectedDates", "guessedtype": "function"}, "addRenderer": {"params": [{"type": "String", "name": "sDates", "description": "  A date string to associate with the specified renderer. Valid formats\ninclude date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a renderer to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the conditions specified in the date string for this renderer.", "guessedname": "addRenderer", "guessedtype": "function"}, "reset": {"description": "Resets the calendar widget to the originally selected month and year, and \nsets the calendar to the initial selection(s).", "guessedname": "reset", "guessedtype": "function"}, "deselectAll": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected.\nAssuming that this function executes properly, the return value should be an empty array.\nHowever, the empty array is returned for the sake of being able to check the selection status\nof the calendar."}, "description": "Deselects all dates on the current calendar.", "guessedname": "deselectAll", "guessedtype": "function"}, "setMonth": {"params": [{"type": "Number", "name": "month", "description": "  The numeric month, from 0 (January) to 11 (December)"}], "description": "Sets the calendar group's month explicitly. This month will be set into the first\npage of the multi-page calendar, and all other months will be iterated appropriately.", "guessedname": "setMonth", "guessedtype": "function"}, "clear": {"description": "Clears the selected dates in the current calendar widget and sets the calendar\nto the current month and year.", "guessedname": "clear", "guessedtype": "function"}, "getCalendarPage": {"return": {"type": "Calendar", "description": "The Calendar page instance representing the month to which the date \nbelongs."}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object for which a Calendar page is to be found."}], "description": "Returns the Calendar page instance which has a pagedate (month/year) matching the given date. \nReturns null if no match is found.", "guessedname": "getCalendarPage", "guessedtype": "function"}, "addMonths": {"params": [{"type": "Number", "name": "count", "description": " The number of months to add to the current calendar"}], "description": "Adds the designated number of months to the current calendar month, and sets the current\ncalendar page date to the new month.", "guessedname": "addMonths", "guessedtype": "function"}, "subtractMonths": {"params": [{"type": "Number", "name": "count", "description": " The number of months to subtract from the current calendar"}], "description": "Subtracts the designated number of months from the current calendar month, and sets the current\ncalendar page date to the new month.", "guessedname": "subtractMonths", "guessedtype": "function"}, "constructChild": {"return": {"type": "YAHOO.widget.Calendar", "description": "The YAHOO.widget.Calendar instance that is constructed"}, "params": [{"type": "String", "name": "id", "description": "   The id of the table element that will represent the calendar widget"}, {"type": "String", "name": "containerId", "description": " The id of the container div element that will wrap the calendar table"}, {"type": "Object", "name": "config", "description": "  The configuration object containing the Calendar's arguments"}], "description": "Constructs a child calendar. This method can be overridden if a subclassed version of the default\ncalendar is to be used.", "guessedname": "constructChild", "guessedtype": "function"}, "setYear": {"params": [{"type": "Number", "name": "year", "description": "  The numeric 4-digit year"}], "description": "Sets the calendar group's year explicitly. This year will be set into the first\npage of the multi-page calendar, and all other months will be iterated appropriately.", "guessedname": "setYear", "guessedtype": "function"}, "renderHeader": {"description": "Renders the header for the CalendarGroup.", "guessedname": "renderHeader", "guessedtype": "function"}, "addYears": {"params": [{"type": "Number", "name": "count", "description": " The number of years to add to the current calendar"}], "description": "Adds the designated number of years to the current calendar, and sets the current\ncalendar page date to the new month.", "guessedname": "addYears", "guessedtype": "function"}}, "file": "CalendarGroup.js", "shortname": "CalendarGroup", "properties": {"Options": {"type": "Object", "description": "The local object which contains the CalendarGroup's options", "guessedname": "Options", "guessedtype": "property"}, "YAHOO.widget.CalendarGroup.CSS_2UPCLOSE": {"description": "CSS class representing the close icon for the 2-up calendar", "deprecated": "Along with Calendar.IMG_ROOT and NAV_ARROW_LEFT, NAV_ARROW_RIGHT configuration properties.\nCalendar's <a href=\"YAHOO.widget.Calendar.html#Style.CSS_CLOSE\">Style.CSS_CLOSE</a> property now represents the CSS class used to render the close icon", "static": "", "guessedname": "CSS_2UPCLOSE", "guessedtype": "property", "type": "String", "final": ""}, "containerId": {"type": "String", "description": "The unique id associated with the CalendarGroup container", "guessedname": "containerId", "guessedtype": "property"}, "Locale": {"type": "Object", "description": "The local object which contains the CalendarGroup's locale settings", "guessedname": "Locale", "guessedtype": "property"}, "cfg": {"type": "YAHOO.util.Config", "description": "The Config object used to hold the configuration variables for the CalendarGroup", "guessedname": "cfg", "guessedtype": "property"}, "YAHOO.widget.CalendarGroup.CSS_2UPTITLE": {"description": "CSS class representing the title for the 2-up calendar", "static": "", "guessedname": "CSS_2UPTITLE", "guessedtype": "property", "type": "String", "final": ""}, "id": {"type": "String", "description": "The unique id associated with the CalendarGroup", "guessedname": "id", "guessedtype": "property"}, "YAHOO.widget.CalendarGroup.DEFAULT_CONFIG": {"static": "", "type": "Object An object with key/value pairs, the key being the \nuppercase configuration property name and the value being an objec \nliteral with a key string property, and a value property, specifying the \ndefault value of the property", "description": "The set of default Config property keys and values for the CalendarGroup.\n<p>\nNOTE: This property is made public in order to allow users to change \nthe default values of configuration properties. Users should not \nmodify the key string, unless they are overriding the Calendar implementation\n</p>"}, "YAHOO.widget.CalendarGroup.CSS_CONTAINER": {"description": "CSS class representing the container for the calendar", "static": "", "guessedname": "CSS_CONTAINER", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.CalendarGroup.CSS_MULTI_UP": {"description": "CSS class representing the container for the calendar", "static": "", "guessedname": "CSS_MULTI_UP", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.CalendarGroup._DEFAULT_CONFIG": {"description": "The set of default Config property keys and values for the CalendarGroup", "deprecated": "Made public. See the public DEFAULT_CONFIG property for details", "private": "", "static": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object"}, "pages": {"type": "YAHOO.widget.Calendar[]", "description": "The collection of Calendar pages contained within the CalendarGroup", "guessedname": "pages", "guessedtype": "property"}}, "description": "YAHOO.widget.CalendarGroup is a special container class for YAHOO.widget.Calendar. This class facilitates\nthe ability to have multi-page calendar views that share a single dataset and are\ndependent on each other.\nThe calendar group instance will refer to each of its elements using a 0-based index.\nFor example, to construct the placeholder for a calendar group widget with id \"cal1\" and\ncontainerId of \"cal1Container\", the markup would be as follows:\n<xmp>\n<div id=\"cal1Container_0\"></div>\n<div id=\"cal1Container_1\"></div>\n</xmp>\nThe tables for the calendars (\"cal1_0\" and \"cal1_1\") will be inserted into those containers.\n<p>\n<strong>NOTE: As of 2.4.0, the constructor's ID argument is optional.</strong>\nThe CalendarGroup can be constructed by simply providing a container ID string, \nor a reference to a container DIV HTMLElement (the element needs to exist \nin the document).\nE.g.:\n<xmp>\nvar c = new YAHOO.widget.CalendarGroup(\"calContainer\", configOptions);\n</xmp>\nor:\n<xmp>\nvar containerDiv = YAHOO.util.Dom.get(\"calContainer\");\nvar c = new YAHOO.widget.CalendarGroup(containerDiv, configOptions);\n</xmp>\n</p>\n<p>\nIf not provided, the ID will be generated from the container DIV ID by adding an \"_t\" suffix.\nFor example if an ID is not provided, and the container's ID is \"calContainer\", the CalendarGroup's ID will be set to \"calContainer_t\".\n</p>"}, "YAHOO.widget.CategoryAxis": {"name": "YAHOO.widget.CategoryAxis", "constructors": [{"description": "A type of axis that displays items in categories."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "CategoryAxis", "file": "CategoryAxis.js", "guessedtype": "function", "shortname": "CategoryAxis", "properties": {"categoryNames": {"type": "Array", "description": "A list of category names to display along this axis.", "guessedname": "categoryNames", "guessedtype": "property"}, "calculateCategoryCount": {"type": "Boolean", "description": "Indicates whether or not to calculate the number of categories (ticks and labels)\nwhen there is not enough room to display all labels on the axis. If set to true, the axis \nwill determine the number of categories to plot. If not, all categories will be plotted.", "guessedname": "calculateCategoryCount", "guessedtype": "property"}}, "description": "A type of axis that displays items in categories."}, "YAHOO.util.Assert": {"name": "YAHOO.util.Assert", "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "Assert", "methods": {"isTrue": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is true. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isTrue", "guessedtype": "function"}, "isFalse": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is false. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isFalse", "guessedtype": "function"}, "isNotNull": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not null. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isNotNull", "guessedtype": "function"}, "fail": {"static": "", "params": [{"type": "String", "name": "message", "description": " (Optional) The message to display with the failure."}], "description": "Forces an assertion error to occur.", "guessedname": "fail", "guessedtype": "function"}, "isFunction": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is a function.", "guessedname": "isFunction", "guessedtype": "function"}, "isNaN": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not a number.", "guessedname": "isNaN", "guessedtype": "function"}, "isBoolean": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is a Boolean.", "guessedname": "isBoolean", "guessedtype": "function"}, "areNotSame": {"static": "", "params": [{"type": "Object", "name": "unexpected", "description": " The unexpected value."}, {"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not the same as another. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "areNotSame", "guessedtype": "function"}, "isNotNaN": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not the special NaN value.", "guessedname": "isNotNaN", "guessedtype": "function"}, "areNotEqual": {"static": "", "params": [{"type": "Object", "name": "unexpected", "description": " The unexpected value."}, {"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not equal to another. This uses the double equals sign\nso type cohersion may occur.", "guessedname": "areNotEqual", "guessedtype": "function"}, "areSame": {"static": "", "params": [{"type": "Object", "name": "expected", "description": " The expected value."}, {"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is the same as another. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "areSame", "guessedtype": "function"}, "isUndefined": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is undefined. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isUndefined", "guessedtype": "function"}, "isArray": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is an array.", "guessedname": "isArray", "guessedtype": "function"}, "isTypeOf": {"static": "", "params": [{"type": "String", "name": "expectedType", "description": " The expected type of the variable."}, {"type": "Object", "name": "actualValue", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is of a particular type.", "guessedname": "isTypeOf", "guessedtype": "function"}, "_formatMessage": {"return": {"type": "String", "description": "The final error message, containing either or both."}, "description": "Formats a message so that it can contain the original assertion message\nin addition to the custom message.", "protected": "", "static": "", "guessedname": "_formatMessage", "guessedtype": "function", "params": [{"type": "String", "name": "customMessage", "description": " The message passed in by the developer."}, {"type": "String", "name": "defaultMessage", "description": " The message created by the error by default."}]}, "areEqual": {"static": "", "params": [{"type": "Object", "name": "expected", "description": " The expected value."}, {"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is equal to another. This uses the double equals sign\nso type cohersion may occur.", "guessedname": "areEqual", "guessedtype": "function"}, "isNumber": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is a number.", "guessedname": "isNumber", "guessedtype": "function"}, "isObject": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is an object.", "guessedname": "isObject", "guessedtype": "function"}, "isString": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is a string.", "guessedname": "isString", "guessedtype": "function"}, "isNotUndefined": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not undefined. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isNotUndefined", "guessedtype": "function"}, "isNull": {"static": "", "params": [{"type": "Object", "name": "actual", "description": " The actual value to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is null. This uses the triple equals sign\nso no type cohersion may occur.", "guessedname": "isNull", "guessedtype": "function"}, "isInstanceOf": {"static": "", "params": [{"type": "Function", "name": "expected", "description": " The function that the object should be an instance of."}, {"type": "Object", "name": "actual", "description": " The object to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is an instance of a particular object. This may return\nincorrect results when comparing objects from one frame to constructors in\nanother frame. For best results, don't use in a cross-frame manner.", "guessedname": "isInstanceOf", "guessedtype": "function"}}, "static": "", "file": "Assert.js", "guessedtype": "property", "shortname": "Assert", "description": "The Assert object provides functions to test JavaScript values against\nknown and expected results. Whenever a comparison (assertion) fails,\nan error is thrown."}, "YAHOO.widget.DropdownCellEditor": {"name": "YAHOO.widget.DropdownCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The DropdownCellEditor class provides functionality for inline editing\nDataTable cell data a SELECT element."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "DropdownCellEditor", "methods": {"renderForm": {"description": "Render a form with select element.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from DropdownCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in DropdownCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets DropdownCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "DropdownCellEditor", "properties": {"dropdownOptions": {"type": "String[] | Object[]", "description": "Array of dropdown values. Can either be a simple array (e.g.,\n[\"Alabama\",\"Alaska\",\"Arizona\",\"Arkansas\"]) or a an array of objects (e.g., \n[{label:\"Alabama\", value:\"AL\"}, {label:\"Alaska\", value:\"AK\"},\n{label:\"Arizona\", value:\"AZ\"}, {label:\"Arkansas\", value:\"AR\"}]).", "guessedname": "dropdownOptions", "guessedtype": "property"}, "size": {"type": "Number", "description": "Specifies number of visible options.", "guessedname": "size", "guessedtype": "property"}, "multiple": {"type": "Boolean", "description": "Enables multi-select.", "guessedname": "multiple", "guessedtype": "property"}, "dropdown": {"type": "HTMLElement", "description": "Reference to Dropdown element.", "guessedname": "dropdown", "guessedtype": "property"}}, "description": "The DropdownCellEditor class provides functionality for inline editing\nDataTable cell data a SELECT element."}, "YAHOO.widget.TextboxCellEditor": {"name": "YAHOO.widget.TextboxCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The TextboxCellEditor class provides functionality for inline editing\nDataTable cell data with an INPUT TYPE=TEXT element."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "TextboxCellEditor", "methods": {"renderForm": {"description": "Render a form with input type=text.", "guessedname": "renderForm", "guessedtype": "function"}, "move": {"description": "Moves TextboxCellEditor UI to a cell.", "guessedname": "move", "guessedtype": "function"}, "getInputValue": {"description": "Returns new value for TextboxCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in TextboxCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets TextboxCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "TextboxCellEditor", "properties": {"DataTable.Editors": {"type": "Object", "static": "", "description": "CellEditor subclasses.", "guessedname": "Editors", "guessedtype": "property"}, "textbox": {"description": "Reference to the textbox element.", "guessedname": "textbox", "guessedtype": "property"}}, "description": "The TextboxCellEditor class provides functionality for inline editing\nDataTable cell data with an INPUT TYPE=TEXT element."}, "YAHOO.widget.Paginator.ui.CurrentPageReport": {"properties": {"span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node containing the formatted info", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.CurrentPageReport", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the textual report of current pagination status.\nE.g. \"Now viewing page 1 of 13\"."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"pageReportTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageReportTemplateChange", "description": "Fires when the value for the configuration attribute 'pageReportTemplate' changes."}, "beforePageReportValueGenaratorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageReportValueGenaratorChange", "description": "Fires before the value for the configuration attribute 'pageReportValueGenarator' changes. Return false to cancel the attribute change."}, "beforePageReportClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageReportClassChange", "description": "Fires before the value for the configuration attribute 'pageReportClass' changes. Return false to cancel the attribute change."}, "pageReportValueGenaratorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageReportValueGenaratorChange", "description": "Fires when the value for the configuration attribute 'pageReportValueGenarator' changes."}, "beforePageReportTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageReportTemplateChange", "description": "Fires before the value for the configuration attribute 'pageReportTemplate' changes. Return false to cancel the attribute change."}, "pageReportClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageReportClassChange", "description": "Fires when the value for the configuration attribute 'pageReportClass' changes."}}, "guessedname": "CurrentPageReport", "methods": {"destroy": {"private": "", "description": "Removes the link/span node and clears event listeners\nremoval.", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "sprintf": {"return": {"type": "string", "description": ""}, "description": "Replace place holders in a string with the named values found in an\nobject literal.", "static": "", "guessedname": "sprintf", "guessedtype": "function", "params": [{"type": "string", "name": "template", "description": "  The content string containing place holders"}, {"type": "object", "name": "values", "description": "  The key:value pairs used to replace the place holders"}]}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the span containing info formatted per the pageReportTemplate\nattribute.", "guessedname": "render", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Regenerate the content of the span if appropriate. Calls\nCurrentPageReport.sprintf with the value of the pageReportTemplate\nattribute and the value map returned from pageReportValueGenerator\nfunction.", "guessedname": "update", "guessedtype": "function"}}, "file": "CurrentPageReport.js", "guessedtype": "function", "shortname": "CurrentPageReport", "configs": {"pageReportValueGenarator": {"description": "Function to generate the value map used to populate the\npageReportTemplate.  The function is passed the Paginator instance as a\nparameter.  The default function returns a map with the following keys:\n<ul>\n<li>currentPage</li>\n<li>totalPages</li>\n<li>startIndex</li>\n<li>endIndex</li>\n<li>startRecord</li>\n<li>endRecord</li>\n<li>totalRecords</li>\n</ul>"}, "pageReportClass": {"default": "'yui-pg-current'", "description": "CSS class assigned to the span containing the info."}, "pageReportTemplate": {"default": "'({currentPage} of {totalPages})'", "see": "pageReportValueGenerator attribute", "description": "Used as innerHTML for the span.  Place holders in the form of {name}\nwill be replaced with the so named value from the key:value map\ngenerated by the function held in the pageReportValueGenerator attribute."}}, "description": "ui Component to generate the textual report of current pagination status.\nE.g. \"Now viewing page 1 of 13\"."}, "YAHOO.util.Bezier": {"name": "YAHOO.util.Bezier", "namespace": "YAHOO.util", "module": "animation", "guessedname": "Bezier", "methods": {"getPosition": {"return": {"type": "Array", "description": "An array containing int x and y member data"}, "params": [{"type": "Array", "name": "points", "description": " An array containing Bezier points"}, {"type": "Number", "name": "t", "description": " A number between 0 and 1 which is the basis for determining current position"}], "description": "Get the current position of the animated element based on t.\nEach point is an array of \"x\" and \"y\" values (0 = x, 1 = y)\nAt least 2 points are required (start and end).\nFirst point is start. Last point is end.\nAdditional control points are optional.", "guessedname": "getPosition", "guessedtype": "function"}}, "file": "Bezier.js", "guessedtype": "function", "shortname": "Bezier", "description": "Used to calculate Bezier splines for any number of control points."}, "YAHOO.util.StorageEngineGears": {"name": "YAHOO.util.StorageEngineGears", "extend": "YAHOO.util.Storage", "constructors": [{"params": [{"type": "String", "name": "location", "description": "  Required. The storage location."}, {"type": "Object", "name": "conf", "description": "  Required. A configuration object."}], "description": "The StorageEngineGears class implements the Google Gears storage engine."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEngineGears", "file": "StorageEngineGears.js", "guessedtype": "function", "shortname": "StorageEngineGears", "description": "The StorageEngineGears class implements the Google Gears storage engine."}, "YAHOO.util.Subscriber": {"name": "YAHOO.util.Subscriber", "constructors": [{"params": [{"type": "Function", "name": "fn", "description": "       The function to execute"}, {"type": "Object", "name": "obj", "description": "      An object to be passed along when the event fires"}, {"type": "boolean", "name": "overrideContext", "description": " If true, the obj passed in becomes the execution\ncontext of the listener"}], "description": "Stores the subscriber information to be used when the event fires."}], "namespace": "YAHOO.util", "module": "event", "guessedname": "Subscriber", "methods": {"getScope": {"params": [{"type": "Object", "name": "defaultScope", "description": " the context to use if this listener does not\noverride it."}], "description": "Returns the execution context for this listener.  If overrideContext was set to true\nthe custom obj will be the context.  If overrideContext is an object, that is the\ncontext, otherwise the default context will be used.", "guessedname": "getScope", "guessedtype": "function"}, "contains": {"return": {"type": "boolean", "description": "true if the supplied arguments match this \nsubscriber's signature."}, "params": [{"type": "Function", "name": "fn", "description": " the function to execute"}, {"type": "Object", "name": "obj", "description": " an object to be passed along when the event fires"}], "description": "Returns true if the fn and obj match this objects properties.\nUsed by the unsubscribe method to match the right subscriber.", "guessedname": "contains", "guessedtype": "function"}, "toString": {"guessedname": "toString", "guessedtype": "function"}}, "file": "CustomEvent.js", "guessedtype": "function", "shortname": "Subscriber", "properties": {"obj": {"type": "object", "description": "An optional custom object that will passed to the callback when\nthe event fires", "guessedname": "obj", "guessedtype": "property"}, "overrideContext": {"type": "boolean|object", "description": "The default execution context for the event listener is defined when the\nevent is created (usually the object which contains the event).\nBy setting overrideContext to true, the execution context becomes the custom\nobject passed in by the subscriber.  If overrideContext is an object, that \nobject becomes the context.", "guessedname": "overrideContext", "guessedtype": "property"}, "fn": {"type": "function", "description": "The callback that will be execute when the event fires", "guessedname": "fn", "guessedtype": "property"}}, "description": "Stores the subscriber information to be used when the event fires."}, "YAHOO.util.StorageEngineSWF": {"name": "YAHOO.util.StorageEngineSWF", "extend": "YAHOO.util.Storage", "constructors": [{"params": [{"type": "String", "name": "location", "description": "  Required. The storage location."}, {"type": "Object", "name": "conf", "description": "  Required. A configuration object."}], "description": "The StorageEngineSWF class implements the SWF storage engine."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEngineSWF", "uses": ["YAHOO.widget.SWF"], "file": "StorageEngineSWF.js", "guessedtype": "function", "shortname": "StorageEngineSWF", "properties": {"_swf": {"protected": "", "type": "{Object}", "description": "The underlying SWF of the engine, exposed so developers can modify the adapter behavior.", "guessedname": "_swf", "guessedtype": "property"}}, "description": "The StorageEngineSWF class implements the SWF storage engine."}, "YAHOO.widget.Paginator.ui.PageLinks": {"properties": {"current": {"guessedname": "current", "type": "number", "description": "Current page", "private": "", "guessedtype": "property"}, "container": {"guessedname": "container", "type": "HTMLElement", "description": "Span node containing the page links", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.PageLinks", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the page links"}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"currentPageClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "currentPageClassChange", "description": "Fires when the value for the configuration attribute 'currentPageClass' changes."}, "pageLabelBuilderChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageLabelBuilderChange", "description": "Fires when the value for the configuration attribute 'pageLabelBuilder' changes."}, "beforePageLinksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageLinksChange", "description": "Fires before the value for the configuration attribute 'pageLinks' changes. Return false to cancel the attribute change."}, "beforeCurrentPageClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCurrentPageClassChange", "description": "Fires before the value for the configuration attribute 'currentPageClass' changes. Return false to cancel the attribute change."}, "beforePageLabelBuilderChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageLabelBuilderChange", "description": "Fires before the value for the configuration attribute 'pageLabelBuilder' changes. Return false to cancel the attribute change."}, "beforePageLinksContainerClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageLinksContainerClassChange", "description": "Fires before the value for the configuration attribute 'pageLinksContainerClass' changes. Return false to cancel the attribute change."}, "pageLinksChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageLinksChange", "description": "Fires when the value for the configuration attribute 'pageLinks' changes."}, "pageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageLinkClassChange", "description": "Fires when the value for the configuration attribute 'pageLinkClass' changes."}, "beforePageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePageLinkClassChange", "description": "Fires before the value for the configuration attribute 'pageLinkClass' changes. Return false to cancel the attribute change."}, "pageLinksContainerClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pageLinksContainerClassChange", "description": "Fires when the value for the configuration attribute 'pageLinksContainerClass' changes."}}, "guessedname": "PageLinks", "methods": {"render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the container node containing page links\nappropriate to the current pagination state.", "guessedname": "render", "guessedtype": "function"}, "rebuild": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Force a rebuild of the page links.", "guessedname": "rebuild", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Update the links if appropriate", "guessedname": "update", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the container's onclick event.  Looks for qualifying link\nclicks, and pulls the page number from the link's page attribute.\nSends link's page attribute to the Paginator's setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the page links container node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "calculateRange": {"return": {"type": "Array", "description": "[start_page_number, end_page_number]"}, "description": "Calculates start and end page numbers given a current page, attempting\nto keep the current page in the middle", "static": "", "guessedname": "calculateRange", "guessedtype": "function", "params": [{"type": "int", "name": "currentPage", "description": "  The current page"}, {"type": "int", "name": "totalPages", "description": "   (optional) Maximum number of pages"}, {"type": "int", "name": "numPages", "description": "     (optional) Preferred number of pages in range"}]}}, "file": "PageLinks.js", "guessedtype": "function", "shortname": "PageLinks", "configs": {"pageLinksContainerClass": {"default": "'yui-pg-pages'", "description": "CSS class assigned to the span containing the page links."}, "currentPageClass": {"default": "'yui-pg-current-page'", "description": "CSS class assigned to the current page span."}, "pageLabelBuilder": {"default": "function (page, paginator) { return page; }", "description": "Function used generate the innerHTML for each page link/span.  The\nfunction receives as parameters the page number and a reference to the\npaginator object."}, "pageLinks": {"default": "10", "description": "Maximum number of page links to display at one time."}, "pageLinkClass": {"default": "'yui-pg-page'", "description": "CSS class assigned to each page link/span."}}, "description": "ui Component to generate the page links"}, "YAHOO.widget.MenuBar": {"name": "YAHOO.widget.MenuBar", "configs": {"position": {"default": "static", "type": "String", "description": "String indicating how a menu bar should be positioned on the \nscreen.  Possible values are \"static\" and \"dynamic.\"  Static menu bars \nare visible by default and reside in the normal flow of the document \n(CSS position: static).  Dynamic menu bars are hidden by default, reside\nout of the normal flow of the document (CSS position: absolute), and can \noverlay other elements on the screen."}, "submenualignment": {"default": "[\"tl\",\"bl\"]", "type": "Array", "description": "Array defining how submenus should be aligned to their \nparent menu bar item. The format is: [itemCorner, submenuCorner]."}, "autosubmenudisplay": {"default": "false", "type": "Boolean", "description": "Boolean indicating if submenus are automatically made \nvisible when the user mouses over the menu bar's items."}, "submenutoggleregion": {"default": "false", "type": "Boolean", "description": "Boolean indicating if only a specific region of a MenuBarItem should toggle the \ndisplay of a submenu.  The default width of the region is determined by the value of the\nSUBMENU_TOGGLE_REGION_WIDTH property.  If set to true, the autosubmenudisplay \nconfiguration property will be set to false, and any click event listeners will not be \ncalled when the user clicks inside the submenu toggle region of a MenuBarItem.  If the \nuser clicks outside of the submenu toggle region, the MenuBarItem will maintain its \nstandard behavior."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the menu bar."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source for the \nmenu bar."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object specifying \nthe <code><div></code> element of the menu bar."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><select></code> element to be used as the data \nsource for the menu bar."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu bar. See configuration class documentation for\nmore details."}], "description": "Horizontal collection of items, each of which can contain a submenu."}], "namespace": "YAHOO.widget", "module": "menu", "guessedname": "MenuBar", "methods": {"configSubmenuToggle": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event was fired."}], "description": "Event handler for when the \"submenutoggleregion\" configuration property of \na MenuBar changes.", "guessedname": "configSubmenuToggle", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the menu bar."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source for the \nmenu bar."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object specifying \nthe <code><div></code> element of the menu bar."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><select></code> element to be used as the data \nsource for the menu bar."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu bar. See configuration class documentation for\nmore details."}], "description": "The MenuBar class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references for \npre-existing markup, and creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu bar.", "guessedname": "toString", "guessedtype": "function"}, "_onClick": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuBar", "name": "p_oMenuBar", "description": " Object representing the menu bar \nthat fired the event."}], "description": "\"click\" event handler for the menu bar.", "guessedname": "_onClick", "guessedtype": "function"}, "checkPosition": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "Object", "name": "p_sPosition", "description": " String specifying the position of the menu."}], "description": "Checks to make sure that the value of the \"position\" property \nis one of the supported strings. Returns true if the position is supported.", "private": ""}, "_onKeyDown": {"guessedname": "_onKeyDown", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuBar", "name": "p_oMenuBar", "description": " Object representing the menu bar \nthat fired the event."}], "description": "\"keydown\" Custom Event handler for the menu bar.", "private": "", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be\nchanged using the menu bar's Config object (\"cfg\").", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Menu", "superclass": "YAHOO.widget.Menu", "file": "menubar.js", "guessedtype": "function", "shortname": "MenuBar", "properties": {"SUBMENU_TOGGLE_REGION_WIDTH": {"description": "Width (in pixels) of the area of a MenuBarItem that, when pressed, will toggle the\ndisplay of the MenuBarItem's submenu.", "default": "20", "guessedname": "SUBMENU_TOGGLE_REGION_WIDTH", "guessedtype": "property", "type": "Number", "final": ""}, "CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the menu \nbar's <code><div></code> element.", "default": "\"yuimenubar\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Horizontal collection of items, each of which can contain a submenu."}, "YAHOO.env": {"name": "YAHOO.env", "namespace": "", "module": "yahoo", "guessedname": "env", "methods": {"getVersion": {"return": {"type": "Object", "description": "The version info"}, "description": "Returns the version data for the specified module:\n<dl>\n<dt>name:</dt>      <dd>The name of the module</dd>\n<dt>version:</dt>   <dd>The version in use</dd>\n<dt>build:</dt>     <dd>The build number in use</dd>\n<dt>versions:</dt>  <dd>All versions that were registered</dd>\n<dt>builds:</dt>    <dd>All builds that were registered.</dd>\n<dt>mainClass:</dt> <dd>An object that was was stamped with the\ncurrent version and build. If \nmainClass.VERSION != version or mainClass.BUILD != build,\nmultiple versions of pieces of the library have been\nloaded, potentially causing issues.</dd>\n</dl>", "static": "", "guessedname": "getVersion", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " the name of the module (event, slider, etc)"}]}}, "static": "", "file": "Env.js", "guessedtype": "property", "shortname": "YAHOO.env", "properties": {"listeners": {"type": "Function[]", "description": "List of functions that should be executed every time a YUI module\nreports itself.", "guessedname": "listeners", "guessedtype": "property"}, "modules": {"type": "Object[]", "description": "Keeps the version info for all YUI modules that have reported themselves", "guessedname": "modules", "guessedtype": "property"}}, "description": "YAHOO.env is used to keep track of what is known about the YUI library and\nthe browsing environment"}, "YAHOO.util.ShouldFail": {"name": "YAHOO.util.ShouldFail", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}], "description": "ShouldFail is subclass of AssertionError that is thrown whenever\na test was expected to fail but did not."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ShouldFail", "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "ShouldFail", "properties": {"name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "ShouldFail is subclass of AssertionError that is thrown whenever\na test was expected to fail but did not."}, "YAHOO.widget.TextareaCellEditor": {"name": "YAHOO.widget.TextareaCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The TextareaCellEditor class provides functionality for inline editing\nDataTable cell data with a TEXTAREA element."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "TextareaCellEditor", "methods": {"move": {"description": "Moves TextareaCellEditor UI to a cell.", "guessedname": "move", "guessedtype": "function"}, "renderForm": {"description": "Render a form with textarea.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "focus": {"description": "Sets focus in TextareaCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets TextareaCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from TextareaCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "TextareaCellEditor", "properties": {"textarea": {"type": "HTMLElement", "description": "Reference to textarea element.", "guessedname": "textarea", "guessedtype": "property"}}, "description": "The TextareaCellEditor class provides functionality for inline editing\nDataTable cell data with a TEXTAREA element."}, "YAHOO.widget.SliderThumb": {"name": "YAHOO.widget.SliderThumb", "constructors": [{"params": [{"type": "String", "name": "id", "description": " the id of the slider html element"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop items"}, {"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}], "description": "A drag and drop implementation to be used as the thumb of a slider."}], "namespace": "YAHOO.widget", "module": "slider", "guessedname": "SliderThumb", "methods": {"onChange": {"private": "", "description": "The onchange event for the handle/thumb is delegated to the YAHOO.widget.Slider\ninstance it belongs to.", "guessedname": "onChange", "guessedtype": "function"}, "getValue": {"return": {"type": "int", "description": "the number of pixels (positive or negative) the\nslider has moved from the start position."}, "description": "Gets the current offset from the element's start position in\npixels.", "guessedname": "getValue", "guessedtype": "function"}, "getOffsetFromParent": {"type": "[int, int]", "params": [{"type": "[int, int]", "name": "parentPos", "description": " Optionally accepts the position of the parent"}], "description": "Returns the difference between the location of the thumb and its parent.", "guessedname": "getOffsetFromParent0", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the instance"}, "description": "Thumb toString", "guessedname": "toString", "guessedtype": "function"}, "getYValue": {"return": {"type": "int", "description": "the number of pixels (positive or negative) the\nslider has moved vertically from the start position."}, "description": "Gets the current Y offset from the element's start position in\npixels.", "guessedname": "getYValue", "guessedtype": "function"}, "initSlider": {"params": [{"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " the width of the tick interval."}], "description": "Set up the slider, must be called in the constructor of all subclasses", "guessedname": "initSlider", "guessedtype": "function"}, "getXValue": {"return": {"type": "int", "description": "the number of pixels (positive or negative) the\nslider has moved horizontally from the start position."}, "description": "Gets the current X offset from the element's start position in\npixels.", "guessedname": "getXValue", "guessedtype": "function"}, "clearTicks": {"description": "Clear's the slider's ticks", "guessedname": "clearTicks", "guessedtype": "function"}}, "extends": "YAHOO.util.DD", "superclass": "YAHOO.util.DD", "file": "SliderThumb.js", "guessedtype": "function", "shortname": "SliderThumb", "properties": {"isTarget": {"private": "", "description": "Overrides the isTarget property in YAHOO.util.DragDrop", "guessedname": "isTarget", "guessedtype": "property"}, "maintainOffset": {"guessedname": "maintainOffset", "type": "boolean", "description": "Informs the drag and drop util that the offsets should remain when\nresetting the constraints.  This preserves the slider value when\nthe constraints are reset", "private": "", "guessedtype": "property"}, "parentElId": {"type": "string", "description": "The id of the thumbs parent HTML element (the slider background \nelement).", "guessedname": "parentElId", "guessedtype": "property"}, "_isHoriz": {"guessedname": "_isHoriz", "type": "boolean", "description": "Flag used to figure out if this is a horizontal or vertical slider", "private": "", "guessedtype": "property"}, "tickSize": {"guessedname": "tickSize", "type": "int", "description": "The tick size for this slider", "private": "", "guessedtype": "property"}, "_prevVal": {"guessedname": "_prevVal", "type": "int", "description": "Cache the last value so we can check for change", "private": "", "guessedtype": "property"}, "startOffset": {"type": "[int, int]", "description": "The (X and Y) difference between the thumb location and its parent \n(the slider background) when the control is instantiated.", "guessedname": "startOffset", "guessedtype": "property"}, "dragOnly": {"default": "true", "type": "boolean", "description": "Override the default setting of dragOnly to true.", "guessedname": "dragOnly", "guessedtype": "property"}, "_graduated": {"guessedname": "_graduated", "type": "boolean", "description": "The slider is _graduated if there is a tick interval defined", "private": "", "guessedtype": "property"}, "scroll": {"private": "", "description": "Turns off the autoscroll feature in drag and drop", "guessedname": "scroll", "guessedtype": "property"}}, "description": "A drag and drop implementation to be used as the thumb of a slider."}, "YAHOO.util.AttributeProvider": {"name": "YAHOO.util.AttributeProvider", "namespace": "YAHOO.util", "module": "element", "guessedname": "AttributeProvider", "methods": {"set": {"return": {"type": "Boolean", "description": "Whether or not the value was set."}, "params": [{"type": "String", "name": "key", "description": " The name of the attribute"}, {"type": "Any", "name": "value", "description": " The value to apply to the attribute"}, {"type": "Boolean", "name": "silent", "description": " Whether or not to suppress change events"}], "description": "Sets the value of a config.", "guessedname": "set", "guessedtype": "function"}, "fireBeforeChangeEvent": {"params": [{"type": "String", "name": "key", "description": " The attribute's name."}, {"type": "Obj", "name": "e", "description": " The event object to pass to handlers."}], "description": "Fires the attribute's beforeChange event.", "guessedname": "fireBeforeChangeEvent", "guessedtype": "function"}, "resetValue": {"return": {"type": "Boolean", "description": "Whether or not the value was set"}, "params": [{"type": "String", "name": "key", "description": " The name of the attribute"}, {"type": "Boolean", "name": "silent", "description": " Whether or not to suppress change events"}], "description": "Resets the specified attribute's value to its initial value.", "guessedname": "resetValue", "guessedtype": "function"}, "get": {"return": {"type": "Any", "description": "The current value of the attribute."}, "params": [{"type": "String", "name": "key", "description": " The attribute whose value will be returned."}], "description": "Returns the current value of the attribute.", "guessedname": "get", "guessedtype": "function"}, "setAttributeConfig": {"params": [{"type": "String", "name": "key", "description": " The attribute's name."}, {"type": "Object", "name": "map", "description": " A key-value map of attribute properties"}, {"type": "Boolean", "name": "init", "description": " Whether or not this should become the intial config."}], "description": "Sets or updates an Attribute instance's properties.", "guessedname": "setAttributeConfig", "guessedtype": "function"}, "resetAttributeConfig": {"guessedname": "resetAttributeConfig", "params": [{"type": "String", "name": "key", "description": " The attribute's name."}], "description": "Resets an attribute to its intial configuration.", "private": "", "guessedtype": "function"}, "register": {"deprecated": "Use setAttributeConfig", "params": [{"type": "String", "name": "key", "description": " The attribute's name"}, {"type": "Object", "name": "map", "description": " A key-value map containing the\nattribute's properties."}], "description": "Adds an Attribute to the AttributeProvider instance.", "guessedname": "register", "guessedtype": "function"}, "getAttributeConfig": {"return": {"type": "object", "description": "A key-value map containing all of the\nattribute's properties."}, "description": "Returns the attribute's properties.", "private": "", "params": [{"type": "String", "name": "key", "description": " The attribute's name"}], "guessedname": "getAttributeConfig", "guessedtype": "function"}, "refresh": {"params": [{"type": "String | Array", "name": "key", "description": " The attribute(s) to refresh"}, {"type": "Boolean", "name": "silent", "description": " Whether or not to suppress change events"}], "description": "Sets the attribute's value to its current value.", "guessedname": "refresh", "guessedtype": "function"}, "configureAttribute": {"deprecated": "Use setAttributeConfig", "params": [{"type": "String", "name": "key", "description": " The attribute's name."}, {"type": "Object", "name": "map", "description": " A key-value map of attribute properties"}, {"type": "Boolean", "name": "init", "description": " Whether or not this should become the intial config."}], "description": "Sets or updates an Attribute instance's properties.", "guessedname": "configureAttribute", "guessedtype": "function"}, "getAttributeKeys": {"return": {"type": "Array", "description": "An array of attribute names."}, "description": "Returns an array of attribute names.", "guessedname": "getAttributeKeys", "guessedtype": "function"}, "fireChangeEvent": {"params": [{"type": "String", "name": "key", "description": " The attribute's name."}, {"type": "Obj", "name": "e", "description": " The event object to pass to the handlers."}], "description": "Fires the attribute's change event.", "guessedname": "fireChangeEvent", "guessedtype": "function"}, "setAttributes": {"params": [{"type": "Object", "name": "map", "description": "  A key-value map of attributes"}, {"type": "Boolean", "name": "silent", "description": " Whether or not to suppress change events"}], "description": "Sets multiple attribute values.", "guessedname": "setAttributes", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "AttributeProvider.js", "guessedtype": "function", "shortname": "AttributeProvider", "properties": {"_configs": {"description": "A key-value map of Attribute configurations", "private": "", "protected": "", "guessedname": "_configs", "guessedtype": "property", "type": "{Object}"}}, "description": "Provides and manages YAHOO.util.Attribute instances"}, "YAHOO.widget.Column": {"name": "YAHOO.widget.Column", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  Object literal of definitions."}], "description": "The Column class defines and manages attributes of DataTable Columns"}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "Column", "methods": {"getSanitizedKey": {"return": {"type": "String", "description": "Sanitized Column key."}, "description": "Returns Column key which has been sanitized for DOM (class and ID) usage\nstarts with letter, contains only letters, numbers, hyphen, or period.", "guessedname": "getSanitizedKey", "guessedtype": "function"}, "getTreeIndex": {"return": {"type": "Number", "description": "Position index, or null."}, "description": "Public accessor returns Column's current position index within its\nColumnSet's tree array, if applicable. Only non-nested and top-level parent\nColumns will return a value;", "guessedname": "getTreeIndex", "guessedtype": "function"}, "getParent": {"return": {"type": "YAHOO.widget.Column", "description": "Column's parent instance."}, "description": "Public accessor returns Column's parent instance if any, or null otherwise.", "guessedname": "getParent", "guessedtype": "function"}, "getField": {"return": {"type": "String", "description": "Column field."}, "description": "Returns field.", "guessedname": "getField", "guessedtype": "function"}, "getDefinition": {"return": {"type": "Object", "description": "Object literal definition."}, "description": "Returns object literal definition.", "guessedname": "getDefinition", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique ID string."}, "description": "Returns unique ID string.", "guessedname": "getId", "guessedtype": "function"}, "getKey": {"return": {"type": "String", "description": "Column key."}, "description": "Returns unique Column key.", "guessedname": "getKey", "guessedtype": "function"}, "getKeyIndex": {"return": {"type": "Number", "description": "Position index, or null."}, "description": "Public accessor returns Column's current position index within its\nColumnSet's keys array, if applicable. Only non-nested and bottom-level\nchild Columns will return a value.", "guessedname": "getKeyIndex", "guessedtype": "function"}, "getColspan": {"return": {"type": "Number", "description": "Column's COLSPAN value."}, "description": "Public accessor returns Column's calculated COLSPAN value.", "guessedname": "getColspan", "guessedtype": "function"}, "getRowspan": {"return": {"type": "Number", "description": "Column's ROWSPAN value."}, "description": "Public accessor returns Column's calculated ROWSPAN value.", "guessedname": "getRowspan", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Column's unique name."}, "description": "Column instance name, for logging.", "guessedname": "toString", "guessedtype": "function"}, "getColEl": {"deprecated": "Use getThEl", "guessedname": "getColEl", "guessedtype": "function"}, "getThLInerEl": {"return": {"type": "HTMLElement", "description": "TH element."}, "description": "Returns DOM reference to the TH's liner DIV element. Introduced since\nresizeable Columns may have an extra resizer liner, making the DIV liner\nnot reliably the TH element's first child.", "guessedname": "getThLinerEl", "guessedtype": "function"}, "getThEl": {"return": {"type": "HTMLElement", "description": "TH element."}, "description": "Returns DOM reference to the key TH element.", "guessedname": "getThEl", "guessedtype": "function"}, "getResizerEl": {"return": {"type": "HTMLElement", "description": "DIV element."}, "description": "Returns DOM reference to the resizer element, or null.", "guessedname": "getResizerEl", "guessedtype": "function"}}, "file": "ColumnSet.js", "guessedtype": "function", "shortname": "Column", "properties": {"sortOptions.sortFunction": {"default": "null", "type": "Function", "description": "Custom sort handler. Signature: sortFunction(a, b, desc, field) where field is the sortOptions.field value", "guessedname": "sortOptions", "guessedtype": "property"}, "_nTreeIndex": {"guessedname": "_nTreeIndex", "type": "Number", "description": "Reference to Column's current position index within its ColumnSet's tree\narray, if applicable. This property only applies to non-nested and top-\nlevel parent Columns.", "private": "", "guessedtype": "property"}, "_elResizer": {"guessedname": "_elResizer", "type": "HTMLElement", "description": "The DOM reference to the associated resizerelement (if any).", "private": "", "guessedtype": "property"}, "sortOptions.defaultOrder": {"deprecated": "Use sortOptions.defaultDir."}, "resizeable": {"default": "false", "type": "Boolean", "description": "True if Column is resizeable, false otherwise. The Drag & Drop Utility is\nrequired to enable this feature. Only bottom-level and non-nested Columns are\nresizeble.", "guessedname": "resizeable", "guessedtype": "property"}, "children": {"type": "Object[]", "description": "Array of object literals that define children (nested headers) of a Column.", "guessedname": "children", "guessedtype": "property"}, "dropdownOptions": {"type": "String[] | Object[]", "description": "Array of dropdown values for formatter:\"dropdown\" cases. Can either be a simple array (e.g.,\n[\"Alabama\",\"Alaska\",\"Arizona\",\"Arkansas\"]) or a an array of objects (e.g.,\n[{label:\"Alabama\", value:\"AL\"}, {label:\"Alaska\", value:\"AK\"},\n{label:\"Arizona\", value:\"AZ\"}, {label:\"Arkansas\", value:\"AR\"}]).", "guessedname": "dropdownOptions", "guessedtype": "property"}, "_elThLiner": {"guessedname": "_elThLiner", "type": "HTMLElement", "description": "The DOM reference to the associated TH element's liner DIV element.", "private": "", "guessedtype": "property"}, "_elTh": {"guessedname": "_elTh", "type": "HTMLElement", "description": "The DOM reference to the associated TH element.", "private": "", "guessedtype": "property"}, "width": {"type": "Number", "description": "Column width (in pixels).", "guessedname": "width", "guessedtype": "property"}, "sortOptions.field": {"default": "null", "type": "String", "description": "Custom field to sort on."}, "selected": {"default": "false", "type": "Boolean", "description": "True if Column is in selected state.", "guessedname": "selected", "guessedtype": "property"}, "sortOptions.defaultDir": {"default": "null", "type": "String", "description": "Default sort direction for Column: YAHOO.widget.DataTable.CLASS_ASC or YAHOO.widget.DataTable.CLASS_DESC."}, "label": {"type": "String", "description": "Text or HTML for display as Column's label in the TH element.", "guessedname": "label", "guessedtype": "property"}, "minWidth": {"default": "null", "type": "Number", "description": "Minimum Column width (in pixels).", "guessedname": "minWidth", "guessedtype": "property"}, "field": {"type": "String", "description": "Associated database field, or null.", "guessedname": "field", "guessedtype": "property"}, "editor": {"type": "YAHOO.widget.CellEditor", "description": "A CellEditor instance, otherwise Column is not editable.", "guessedname": "editor", "guessedtype": "property"}, "_nRowspan": {"guessedname": "_nRowspan", "type": "Number", "description": "Number of table rows the Column spans.", "private": "", "guessedtype": "property"}, "_nColspan": {"guessedname": "_nColspan", "type": "Number", "description": "Number of table cells the Column spans.", "private": "", "guessedtype": "property"}, "formatter": {"type": "String || HTMLFunction", "description": "Defines a format function.", "guessedname": "formatter", "guessedtype": "property"}, "Column._nCount": {"description": "Internal class variable to index multiple Column instances.", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}, "_dd": {"guessedname": "_dd", "type": "YAHOO.util.DragDrop", "description": "For unreg() purposes, a reference to the Column's DragDrop instance.", "private": "", "guessedtype": "property"}, "currencyOptions": {"default": "null", "type": "Object", "description": "Config passed to YAHOO.util.Number.format() by the 'currency' Column formatter.", "guessedname": "currencyOptions", "guessedtype": "property"}, "_nKeyIndex": {"guessedname": "_nKeyIndex", "type": "Number", "description": "Reference to Column's current position index within its ColumnSet's keys\narray, if applicable. This property only applies to non-nested and bottom-\nlevel child Columns.", "private": "", "guessedtype": "property"}, "abbr": {"type": "String", "description": "Column head cell ABBR for accessibility.", "guessedname": "abbr", "guessedtype": "property"}, "key": {"type": "String", "description": "Unique name, required.", "guessedname": "key", "guessedtype": "property"}, "hidden": {"default": "false", "type": "Boolean", "description": "True if Column is in hidden state.", "guessedname": "hidden", "guessedtype": "property"}, "_elThLabel": {"guessedname": "_elThLabel", "type": "HTMLElement", "description": "The DOM reference to the associated TH element's label SPAN element.", "private": "", "guessedtype": "property"}, "_ddResizer": {"guessedname": "_ddResizer", "type": "YAHOO.util.DragDrop", "description": "For unreg() purposes, a reference to the Column resizer's DragDrop instance.", "private": "", "guessedtype": "property"}, "sortable": {"default": "false", "type": "Boolean", "description": "True if Column is sortable, false otherwise.", "guessedname": "sortable", "guessedtype": "property"}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique String identifier assigned at instantiation.", "private": "", "guessedtype": "property"}, "className": {"type": "String || String[]", "description": "Custom CSS class or array of classes to be applied to every cell in the Column.", "guessedname": "className", "guessedtype": "property"}, "dateOptions": {"default": "null", "type": "Object", "description": "Config passed to YAHOO.util.Date.format() by the 'date' Column formatter.", "guessedname": "dateOptions", "guessedtype": "property"}, "_nWidth": {"guessedname": "_nWidth", "type": "Number", "description": "Internal width tracker.", "private": "", "guessedtype": "property"}, "_oParent": {"guessedname": "_oParent", "type": "YAHOO.widget.Column", "description": "Column's parent Column instance, or null.", "private": "", "guessedtype": "property"}, "maxAutoWidth": {"default": "null", "type": "Number", "description": "When a width is not defined for a Column, maxAutoWidth defines an upper\nlimit that the Column should be auto-sized to. If resizeable is enabled, \nusers may still resize to a greater width. Most useful for Columns intended\nto hold long unbroken, unwrapped Strings, such as URLs, to prevent very\nwide Columns from disrupting visual readability by inducing truncation.", "guessedname": "maxAutoWidth", "guessedtype": "property"}}, "description": "The Column class defines and manages attributes of DataTable Columns"}, "YAHOO.util.LocalDataSource": {"name": "YAHOO.util.LocalDataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "LocalDataSource class for in-memory data structs including JavaScript arrays,\nJavaScript object literals (JSON), XML documents, and HTML tables."}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "LocalDataSource", "extends": "YAHOO.util.DataSourceBase", "superclass": "YAHOO.util.DataSourceBase", "file": "DataSource.js", "guessedtype": "function", "shortname": "LocalDataSource", "description": "LocalDataSource class for in-memory data structs including JavaScript arrays,\nJavaScript object literals (JSON), XML documents, and HTML tables."}, "YAHOO.env.ua": {"name": "YAHOO.env.ua", "namespace": "", "module": "yahoo", "guessedname": "ua", "static": "", "file": "Env.js", "guessedtype": "function", "shortname": "YAHOO.env.ua", "properties": {"secure": {"type": "boolean", "static": "", "description": "Set to true if the page appears to be in SSL", "guessedname": "secure", "guessedtype": "property"}, "opera": {"type": "float", "description": "Opera version number or 0.  Example: 9.2", "guessedname": "opera", "guessedtype": "property"}, "ie": {"type": "float", "description": "Internet Explorer version number or 0.  Example: 6", "guessedname": "ie", "guessedtype": "property"}, "air": {"type": "float", "description": "Adobe AIR version number or 0.  Only populated if webkit is detected.\nExample: 1.0", "guessedname": "air", "guessedtype": "property"}, "mobile": {"type": "string", "description": "The mobile property will be set to a string containing any relevant\nuser agent information when a modern mobile browser is detected.\nCurrently limited to Safari on the iPhone/iPod Touch, Nokia N-series\ndevices with the WebKit-based browser, and Opera Mini.", "guessedname": "mobile", "guessedtype": "property"}, "caja": {"type": "float", "description": "Google Caja version number or 0.", "guessedname": "caja", "guessedtype": "property"}, "os": {"type": "string", "static": "", "description": "The operating system.  Currently only detecting windows or macintosh", "guessedname": "os", "guessedtype": "property"}, "webkit": {"type": "float", "description": "AppleWebKit version.  KHTML browsers that are not WebKit browsers \nwill evaluate to 1, other browsers 0.  Example: 418.9.1\n<pre>\nSafari 1.3.2 (312.6): 312.8.1 <-- Reports 312.8 -- currently the \nlatest available for Mac OSX 10.3.\nSafari 2.0.2:         416     <-- hasOwnProperty introduced\nSafari 2.0.4:         418     <-- preventDefault fixed\nSafari 2.0.4 (419.3): 418.9.1 <-- One version of Safari may run\ndifferent versions of webkit\nSafari 2.0.4 (419.3): 419     <-- Tiger installations that have been\nupdated, but not updated\nto the latest patch.\nWebkit 212 nightly:   522+    <-- Safari 3.0 precursor (with native SVG\nand many major issues fixed).  \n3.x yahoo.com, flickr:422     <-- Safari 3.x hacks the user agent\nstring when hitting yahoo.com and \nflickr.com.\nSafari 3.0.4 (523.12):523.12  <-- First Tiger release - automatic update\nfrom 2.x via the 10.4.11 OS patch\nWebkit nightly 1/2008:525+    <-- Supports DOMContentLoaded event.\nyahoo.com user agent hack removed.\n</pre>\nhttp://developer.apple.com/internet/safari/uamatrix.html", "guessedname": "webkit", "guessedtype": "property"}, "gecko": {"type": "float", "description": "Gecko engine revision number.  Will evaluate to 1 if Gecko \nis detected but the revision could not be found. Other browsers\nwill be 0.  Example: 1.8\n<pre>\nFirefox 1.0.0.4: 1.7.8   <-- Reports 1.7\nFirefox 1.5.0.9: 1.8.0.9 <-- Reports 1.8\nFirefox 2.0.0.3: 1.8.1.3 <-- Reports 1.8\nFirefox 3 alpha: 1.9a4   <-- Reports 1.9\n</pre>", "guessedname": "gecko", "guessedtype": "property"}}, "description": "Do not fork for a browser if it can be avoided.  Use feature detection when\nyou can.  Use the user agent as a last resort.  YAHOO.env.ua stores a version\nnumber for the browser engine, 0 otherwise.  This value may or may not map\nto the version number of the browser using the engine.  The value is \npresented as a float so that it can easily be used for boolean evaluation \nas well as for looking for a particular range of versions.  Because of this, \nsome of the granularity of the version info may be lost (e.g., Gecko 1.8.0.9 \nreports 1.8)."}, "YAHOO.util.StorageManager": {"name": "YAHOO.util.StorageManager", "namespace": "YAHOO.util", "module": "Storage", "methods": {"register": {"return": {"type": "Boolean", "description": "When successfully registered."}, "description": "Registers a engineType Class with the StorageManager singleton; first in is the first out.", "static": "", "guessedname": "register", "guessedtype": "function", "params": [{"type": "Function", "name": "engineConstructor", "description": "  Required. The engine constructor function, see engines."}]}, "_getClass": {"return": {"type": "Function", "description": "An available storage constructor or NULL."}, "description": "Fetches a storage constructor if it is available, otherwise returns NULL.", "private": "", "params": [{"type": "Function", "name": "klass", "description": "  Required. The storage constructor to test."}], "guessedname": "_getClass", "guessedtype": "function"}, "_getStorageEngine": {"guessedname": "_getStorageEngine", "params": [{"type": "String", "name": "location", "description": "  Required. The location to store."}, {"type": "Function", "name": "klass", "description": "  Required. A pointer to the engineType Class."}, {"type": "Object", "name": "conf", "description": "  Optional. Additional configuration for the data source engine."}], "description": "Fetches the storage engine from the cache, or creates and caches it.", "private": "", "guessedtype": "function"}, "_getValidLocation": {"guessedname": "_getValidLocation", "params": [{"type": "String", "name": "location", "description": "  Required. The location to evaluate."}], "description": "Ensures that the location is valid before returning it or a default value.", "private": "", "guessedtype": "function"}, "get": {"static": "", "params": [{"type": "String", "name": "engineType", "description": "  Optional. The engine type, see engines."}, {"type": "String", "name": "location", "description": "  Optional. The storage location - LOCATION_SESSION & LOCATION_LOCAL; default is LOCAL."}, {"type": "Object} Optional. Additional configuration for the getting the storage engine.\n{\nengine: {Object} configuration parameters for the desired engine\norder: {Array} an array of storage engine names; the desired order to try engines}\n", "name": "conf", "description": ""}], "description": "Fetches the desired engine type or first available engine type.", "guessedname": "get", "guessedtype": "function"}}, "static": "", "file": "StorageManager.js", "shortname": "StorageManager", "properties": {"LOCATION_SESSION": {"type": "{String}", "static": "", "description": "The storage location - session; data cleared at the end of a user's session.", "guessedname": "LOCATION_SESSION", "guessedtype": "property"}, "LOCATION_LOCAL": {"type": "{String}", "static": "", "description": "The storage location - local; data cleared on demand.", "guessedname": "LOCATION_LOCAL", "guessedtype": "property"}}, "description": "The StorageManager class is a singleton that registers DataStorage objects and returns instances of those objects."}, "YAHOO.widget.PieSeries": {"name": "YAHOO.widget.PieSeries", "constructors": [{"description": "PieSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "PieSeries", "uses": ["YAHOO.widget.Series"], "file": "Series.js", "guessedtype": "function", "shortname": "PieSeries", "properties": {"categoryField": {"type": "String", "description": "The field used to access the category value from the items from the data source.", "guessedname": "categoryField", "guessedtype": "property"}, "labelFunction": {"type": "String", "description": "A string reference to the globally-accessible function that may be called to\ndetermine each of the label values for this series. Also accepts function references.", "guessedname": "labelFunction", "guessedtype": "property"}, "dataField": {"type": "String", "description": "The field used to access the data value from the items from the data source.", "guessedname": "dataField", "guessedtype": "property"}}, "description": "PieSeries class for the YUI Charts widget."}, "YAHOO.widget.ScrollingDataTable": {"name": "YAHOO.widget.ScrollingDataTable", "configs": {"width": {"type": "String", "description": "Table width for scrollable tables (e.g., \"40em\")."}, "COLOR_COLUMNFILLER": {"default": "\"#F2F2F2\"", "type": "String", "description": "CSS color value assigned to header filler on scrollable tables."}, "height": {"type": "String", "description": "Table body height for scrollable tables, not including headers (e.g., \"40em\")."}}, "constructors": [{"params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Container element for the TABLE."}, {"type": "Object[]", "name": "aColumnDefs", "description": "  Array of object literal Column definitions."}, {"type": "YAHOO.util.DataSource", "name": "oDataSource", "description": "  DataSource instance."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "The ScrollingDataTable class extends the DataTable class to provide\nfunctionality for x-scrolling, y-scrolling, and xy-scrolling."}], "namespace": "YAHOO.widget", "module": "datatable", "events": {"COLOR_COLUMNFILLERChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "COLOR_COLUMNFILLERChange", "description": "Fires when the value for the configuration attribute 'COLOR_COLUMNFILLER' changes."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "beforeCOLOR_COLUMNFILLERChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCOLOR_COLUMNFILLERChange", "description": "Fires before the value for the configuration attribute 'COLOR_COLUMNFILLER' changes. Return false to cancel the attribute change."}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "tableScrollEvent": {"params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "  The event object."}, {"type": "HTMLElement", "name": "oArgs.target", "description": "  The DataTable's CONTAINER element (in IE)\nor the DataTable's TBODY element (everyone else)."}], "description": "Fired when a fixed scrolling DataTable has a scroll."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "ScrollingDataTable", "methods": {"_onTheadKeydown": {"guessedname": "_onTheadKeydown", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The key event."}, {"type": "YAHOO.widget.ScrollingDataTable", "name": "oSelf", "description": "  ScrollingDataTable instance."}], "description": "Handles keydown events on the THEAD element.", "private": "", "guessedtype": "function"}, "onColumnChange": {"params": [{"type": "Object", "name": "oArgs", "description": "  Custom Event data."}], "description": "Handles Column mutations", "guessedname": "_onColumnChange", "guessedtype": "function"}, "scrollTo": {"params": [{"type": "YAHOO.widget.Record | HTMLElement ", "name": "to", "description": "  Itme to scroll to."}], "description": "Scrolls to given row or cell", "guessedname": "scrollTo", "guessedtype": "function"}, "setColumnWidth": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "nWidth", "description": "  New width in pixels."}], "description": "Sets given Column to given pixel width. If new width is less than minWidth\nwidth, sets to minWidth. Updates oColumn.width value.", "guessedname": "setColumnWidth", "guessedtype": "function"}, "validateColumnWidths": {"params": [{"type": "YAHOO.widget.Column", "name": "oArg.column", "description": "  (optional) One Column to validate. If null, all Columns' widths are validated."}], "description": "For one or all Columns of a ScrollingDataTable, when Column is not hidden,\nand width is not set, syncs widths of header and body cells and \nvalidates that width against minWidth and/or maxAutoWidth as necessary.", "guessedname": "validateColumnWidths", "guessedtype": "function"}, "insertColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Inserted Column instance."}, "params": [{"type": "Object | YAHOO.widget.Column", "name": "oColumn", "description": "  Object literal Column\ndefinition or a Column instance."}, {"type": "Number", "name": "index", "description": "  (optional) New tree index."}], "description": "Inserts given Column at the index if given, otherwise at the end. NOTE: You\ncan only add non-nested Columns and top-level parent Columns. You cannot add\na nested Column to an existing parent.", "guessedname": "insertColumn", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal definition of configuration values."}], "description": "Implementation of Element's abstract method. Sets up config values.", "private": "", "guessedtype": "function"}, "_validateColumnWidth": {"guessedname": "_validateColumnWidth", "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "HTMLElement", "name": "elTd", "description": "  TD element to validate against."}], "description": "Helper function calculates and sets a validated width for a Column in a ScrollingDataTable.", "private": "", "guessedtype": "function"}, "_syncScrollY": {"private": "", "description": "Snaps container width for y-scrolling tables.", "guessedname": "_syncScrollY", "guessedtype": "function"}, "_syncScrollX": {"private": "", "description": "Snaps container height for x-scrolling tables in IE. Syncs message TBODY width.", "guessedname": "_syncScrollX", "guessedtype": "function"}, "_initBdThEl": {"guessedname": "_initBdThEl", "params": [{"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column object."}], "description": "Populates TH element for the body THEAD element.", "private": "", "guessedtype": "function"}, "_destroyBdTheadEl": {"private": "", "description": "Destroy's the DataTable body THEAD element, if available.", "guessedname": "_destroyBdTheadEl", "guessedtype": "function"}, "_initTableEl": {"private": "", "description": "Initializes ScrollingDataTable TABLE elements into the two inner containers.", "guessedname": "_initTableEl", "guessedtype": "function"}, "_initTheadEl": {"guessedname": "_initTheadEl", "params": [{"type": "HTMLElement", "name": "elHdTable", "description": "  (optional) Fixed header TABLE element reference."}, {"type": "HTMLElement", "name": "elTable", "description": "  (optional) TABLE element reference."}], "description": "Initializes ScrollingDataTable THEAD elements into the two inner containers.", "private": "", "guessedtype": "function"}, "showTableMessage": {"params": [{"type": "String", "name": "sHTML", "description": "  (optional) Value for innerHTMlang."}, {"type": "String", "name": "sClassName", "description": "  (optional) Classname."}], "description": "Displays message within secondary TBODY.", "guessedname": "showTableMessage", "guessedtype": "function"}, "_focusEl": {"guessedname": "_focusEl", "params": [{"type": "HTMLElement", "name": "el", "description": "  Element."}], "description": "Sets focus on the given element.", "private": "", "guessedtype": "function"}, "_destroyHdTableEl": {"private": "", "description": "Destroy's the DataTable head TABLE element, if available.", "guessedname": "_destroyHdTableEl", "guessedtype": "function"}, "getHdTableEl": {"return": {"type": "HTMLElement", "description": "Reference to TABLE element."}, "description": "Returns DOM reference to the DataTable's fixed header TABLE element.", "guessedname": "getHdTableEl", "guessedtype": "function"}, "clearScrollPositions": {"private": "", "description": "Clears stored scroll positions to interrupt the automatic restore mechanism.\nUseful for setting scroll positions programmatically rather than as part of\nthe post-render cleanup process.", "guessedname": "clearScrollPositions", "guessedtype": "function"}, "getBdContainerEl": {"return": {"type": "HTMLElement", "description": "Reference to DIV element."}, "description": "Returns DOM reference to the DataTable's scrolling body container element.", "guessedname": "getBdContainerEl", "guessedtype": "function"}, "_initDomElements": {"guessedname": "_initDomElements", "params": [{"type": "HTMLElement | String} HTML DIV element by reference or ID. \nreturn {Boolean", "name": "elContainer", "description": "  False in case of error, otherwise true"}], "description": "Initializes DOM elements for a ScrollingDataTable, including creation of\ntwo separate TABLE elements.", "private": "", "guessedtype": "function"}, "_syncScroll": {"private": "", "description": "Syncs padding around scrollable tables, including Column header right-padding\nand container width and height.", "guessedname": "_syncScroll", "guessedtype": "function"}, "disable": {"description": "Disables ScrollingDataTable UI.", "guessedname": "disable", "guessedtype": "function"}, "_setOverhangValue": {"guessedname": "_setOverhangValue", "params": [{"type": "Number", "name": "nBorderWidth", "description": "  Value of new border for overhang."}], "description": "Sets Column header overhang to given width.", "private": "", "guessedtype": "function"}, "_initCaptionEl": {"guessedname": "_initCaptionEl", "params": [{"type": "String", "name": "sCaption", "description": "  Text for caption."}], "description": "Creates HTML markup CAPTION element.", "private": "", "guessedtype": "function"}, "removeColumn": {"return": {"type": "YAHOO.widget.Column", "description": "oColumn  Removed Column instance."}, "params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}], "description": "Removes given Column. NOTE: You cannot remove nested Columns. You can only remove\nnon-nested Columns, and top-level parent Columns (which will remove all\nchildren Columns).", "guessedname": "removeColumn", "guessedtype": "function"}, "_runRenderChain": {"private": "", "description": "Internal wrapper calls run() on render Chain instance.", "guessedname": "_runRenderChain", "guessedtype": "function"}, "_destroyContainerEl": {"guessedname": "_destroyContainerEl", "params": [{"type": "HTMLElement", "name": "elContainer", "description": "  Reference to the container element."}], "description": "Destroy's the DataTable outer and inner container elements, if available.", "private": "", "guessedtype": "function"}, "getBdTableEl": {"return": {"type": "HTMLElement", "description": "Reference to TABLE element."}, "description": "Returns DOM reference to the DataTable's scrolling body TABLE element.", "guessedname": "getBdTableEl", "guessedtype": "function"}, "getHdContainerEl": {"return": {"type": "HTMLElement", "description": "Reference to DIV element."}, "description": "Returns DOM reference to the DataTable's fixed header container element.", "guessedname": "getHdContainerEl", "guessedtype": "function"}, "_onScroll": {"guessedname": "_onScroll", "params": [{"type": "HTMLEvent", "name": "e", "description": "  The scroll event."}, {"type": "YAHOO.widget.ScrollingDataTable", "name": "oSelf", "description": "  ScrollingDataTable instance."}], "description": "Syncs scrolltop and scrollleft of all TABLEs.", "private": "", "guessedtype": "function"}, "_retoreScrollPositions": {"private": "", "description": "Restores scroll positions to stored value.", "guessedname": "_restoreScrollPositions", "guessedtype": "function"}, "_initBdTheadEl": {"return": {"type": "HTMLElement", "description": "Initialized THEAD element."}, "description": "Initializes body THEAD element.", "private": "", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create THEAD."}], "guessedname": "_initBdTheadEl", "guessedtype": "function"}, "_initTbodyEl": {"guessedname": "_initTbodyEl", "params": [{"type": "HTMLElement", "name": "elTable", "description": "  TABLE element into which to create TBODY ."}], "description": "Initializes ScrollingDataTable TBODY element for data", "private": "", "guessedtype": "function"}, "_storeScrollPositions": {"private": "", "description": "Stores scroll positions so they can be restored after a render.", "guessedname": "_storeScrollPositions", "guessedtype": "function"}, "_initContainerEl": {"guessedname": "_initContainerEl", "params": [{"type": "HTMLElement | String", "name": "elContainer", "description": "  HTML DIV element by reference or ID."}], "description": "Initializes the DataTable outer container element and creates inner header\nand body container elements.", "private": "", "guessedtype": "function"}, "reorderColumn": {"params": [{"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "Number", "name": "index", "description": "  New tree index."}], "description": "Removes given Column and inserts into given tree index. NOTE: You\ncan only reorder non-nested Columns and top-level parent Columns. You cannot\nreorder a nested Column to an existing parent.", "guessedname": "reorderColumn", "guessedtype": "function"}, "_initThEl": {"guessedname": "_initThEl", "params": [{"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column object."}], "description": "SDT changes ID so as not to duplicate the accessibility TH IDs.", "private": "", "guessedtype": "function"}, "_syncScrollOverhang": {"private": "", "description": "Adds/removes Column header overhang as necesary.", "guessedname": "_syncScrollOverhang", "guessedtype": "function"}}, "extends": "YAHOO.widget.DataTable", "superclass": "YAHOO.widget.DataTable", "file": "ScrollingDataTable.js", "guessedtype": "function", "shortname": "ScrollingDataTable", "properties": {"DataTable.CLASS_BODY": {"description": "Class name assigned to inner DataTable body container.", "default": "\"yui-dt-bd\"", "static": "", "guessedname": "CLASS_BODY", "guessedtype": "property", "type": "String", "final": ""}, "_elBdThead": {"guessedname": "_elBdThead", "type": "HTMLElement", "description": "Body THEAD element.", "private": "", "guessedtype": "property"}, "DataTable.CLASS_HEADER": {"description": "Class name assigned to inner DataTable header container.", "default": "\"yui-dt-hd\"", "static": "", "guessedname": "CLASS_HEADER", "guessedtype": "property", "type": "String", "final": ""}, "_elHdContainer": {"guessedname": "_elHdContainer", "type": "HTMLElement", "description": "Container for fixed header TABLE element.", "private": "", "guessedtype": "property"}, "_elHdTable": {"guessedname": "_elHdTable", "type": "HTMLElement", "description": "Fixed header TABLE element.", "private": "", "guessedtype": "property"}, "_bScrollbarX": {"guessedname": "_bScrollbarX", "type": "Boolean", "description": "True if x-scrollbar is currently visible.", "private": "", "guessedtype": "property"}, "_elTmpTable": {"guessedname": "_elTmpTable", "type": "HTMLElement", "description": "Offscreen TABLE element for auto-width calculation.", "private": "", "guessedtype": "property"}, "_elBdContainer": {"guessedname": "_elBdContainer", "type": "HTMLElement", "description": "Container for scrolling body TABLE element.", "private": "", "guessedtype": "property"}, "_elTmpContainer": {"guessedname": "_elTmpContainer", "type": "HTMLElement", "description": "Offscreen container to temporarily clone SDT for auto-width calculation.", "private": "", "guessedtype": "property"}}, "description": "The ScrollingDataTable class extends the DataTable class to provide\nfunctionality for x-scrolling, y-scrolling, and xy-scrolling."}, "YAHOO_config": {"name": "YAHOO_config", "namespace": "", "module": "yahoo", "static": "", "file": "YAHOO.js", "shortname": "YAHOO_config", "properties": {"listener": {"default": "undefined", "type": "Function", "static": "", "description": "A reference to a function that will be executed every time a YAHOO module\nis loaded.  As parameter, this function will receive the version\ninformation for the module. See <a href=\"YAHOO.env.html#getVersion\">\nYAHOO.env.getVersion</a> for the description of the version data structure."}, "load": {"default": "undefined", "see": "yuiloader", "static": "", "description": "Instructs the yuiloader component to dynamically load yui components and\ntheir dependencies.  See the yuiloader documentation for more information\nabout dynamic loading"}, "locale": {"description": "Forces the use of the supplied locale where applicable in the library", "default": "undefined", "static": "", "guessedname": "YAHOO", "guessedtype": "property", "type": "string"}, "injecting": {"default": "undefined", "type": "boolean", "static": "", "description": "Set to true if the library will be dynamically loaded after window.onload.\nDefaults to false"}}, "description": "YAHOO_config is not included as part of the library.  Instead it is an \nobject that can be defined by the implementer immediately before \nincluding the YUI library.  The properties included in this object\nwill be used to configure global properties needed as soon as the \nlibrary begins to load."}, "YAHOO.util.FunctionDataSource": {"name": "YAHOO.util.FunctionDataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "FunctionDataSource class for JavaScript functions."}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "FunctionDataSource", "methods": {"makeConnection": {"return": {"type": "Number", "description": "Transaction ID."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Overriding method passes query to a function. The returned response is then\nforwarded to the handleResponse function.", "guessedname": "makeConnection", "guessedtype": "function"}}, "extends": "YAHOO.util.DataSourceBase", "superclass": "YAHOO.util.DataSourceBase", "file": "DataSource.js", "guessedtype": "function", "shortname": "FunctionDataSource", "properties": {"scope": {"default": "null", "type": "Object", "description": "Context in which to execute the function. By default, is the DataSource\ninstance itself. If set, the function will receive the DataSource instance\nas an additional argument.", "guessedname": "scope", "guessedtype": "property"}}, "description": "FunctionDataSource class for JavaScript functions."}, "YAHOO.widget.DateMath": {"name": "YAHOO.widget.DateMath", "namespace": "YAHOO.widget", "module": "datemath", "guessedname": "DateMath", "methods": {"isYearOverlapWeek": {"return": {"type": "Boolean", "description": "true if the date overlaps two different years."}, "params": [{"type": "Date", "name": "weekBeginDate", "description": " The JavaScript Date representing the first day of the week."}], "description": "Determines if a given week overlaps two different years.", "guessedname": "isYearOverlapWeek", "guessedtype": "function"}, "getWeekNumber": {"return": {"type": "Number", "description": "The number of the week containing the given date."}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript date for which to find the week number"}, {"type": "Number", "name": "firstDayOfWeek", "description": " The index of the first day of the week (0 = Sun, 1 = Mon ... 6 = Sat).\nDefaults to 0"}, {"type": "Number", "name": "janDate", "description": " The date in the first week of January which defines week one for the year\nDefaults to the value of YAHOO.widget.DateMath.WEEK_ONE_JAN_DATE, which is 1 (Jan 1st). \nFor the U.S, this is normally Jan 1st. ISO8601 uses Jan 4th to define the first week of the year."}], "description": "Calculates the week number for the given date. Can currently support standard\nU.S. week numbers, based on Jan 1st defining the 1st week of the year, and \nISO8601 week numbers, based on Jan 4th defining the 1st week of the year.", "guessedname": "getWeekNumber", "guessedtype": "function"}, "getDayOffset": {"return": {"type": "Number", "description": "The number of days since January 1 of the given year"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript date for which to find the offset"}, {"type": "Number", "name": "calendarYear", "description": " The calendar year to use for determining the offset"}], "description": "Calculates the number of days the specified date is from January 1 of the specified calendar year.\nPassing January 1 to this function would return an offset value of zero.", "guessedname": "getDayOffset", "guessedtype": "function"}, "findMonthEnd": {"return": {"type": "Date", "description": "The JavaScript Date representing the last day of the month"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date used to calculate the month end"}], "description": "Gets the last day of a month containing a given date.", "guessedname": "findMonthEnd", "guessedtype": "function"}, "getFirstDayOfWeek": {"return": {"type": "Date", "description": "The first day of the week"}, "params": [{"type": "Date", "name": "dt", "description": " The date in the week for which the first day is required."}, {"type": "Number", "name": "startOfWeek", "description": " The index for the first day of the week, 0 = Sun, 1 = Mon ... 6 = Sat (defaults to 0)"}], "description": "Get the first day of the week, for the give date.", "guessedname": "getFirstDayOfWeek", "guessedtype": "function"}, "after": {"return": {"type": "Boolean", "description": "true if the date occurs after the compared date; false if not."}, "params": [{"type": "Date", "name": "date", "description": "  The Date object to compare with the compare argument"}, {"type": "Date", "name": "compareTo", "description": " The Date object to use for the comparison"}], "description": "Determines whether a given date is after another date on the calendar.", "guessedname": "after", "guessedtype": "function"}, "clearTime": {"return": {"type": "Date", "description": "The JavaScript Date cleared of all time fields"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date for which the time fields will be cleared"}], "description": "Clears the time fields from a given date, effectively setting the time to 12 noon.", "guessedname": "clearTime", "guessedtype": "function"}, "isMonthOverlapWeek": {"return": {"type": "Boolean", "description": "true if the date overlaps two different months."}, "params": [{"type": "Date", "name": "weekBeginDate", "description": " The JavaScript Date representing the first day of the week."}], "description": "Determines if a given week overlaps two different months.", "guessedname": "isMonthOverlapWeek", "guessedtype": "function"}, "add": {"return": {"type": "Date", "description": "The resulting Date object"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object to perform addition on"}, {"type": "String", "name": "field", "description": " The field constant to be used for performing addition."}, {"type": "Number", "name": "amount", "description": " The number of units (measured in the field constant) to add to the date."}], "description": "Adds the specified amount of time to the this instance.", "guessedname": "add", "guessedtype": "function"}, "getJan1": {"return": {"type": "Date", "description": "January 1 of the calendar year specified."}, "params": [{"type": "Number", "name": "calendarYear", "description": "  The calendar year for which to retrieve January 1"}], "description": "Retrieves a JavaScript Date object representing January 1 of any given year.", "guessedname": "getJan1", "guessedtype": "function"}, "between": {"return": {"type": "Boolean", "description": "true if the date occurs between the compared dates; false if not."}, "params": [{"type": "Date", "name": "date", "description": "  The date to check for"}, {"type": "Date", "name": "dateBegin", "description": " The start of the range"}, {"type": "Date", "name": "dateEnd", "description": "  The end of the range"}], "description": "Determines whether a given date is between two other dates on the calendar.", "guessedname": "between", "guessedtype": "function"}, "findMonthStart": {"return": {"type": "Date", "description": "The JavaScript Date representing the first day of the month"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date used to calculate the month start"}], "description": "Gets the first day of a month containing a given date.", "guessedname": "findMonthStart", "guessedtype": "function"}, "getDate": {"return": {"type": "Date", "description": "The JavaScript date object with year, month, date set as provided."}, "params": [{"type": "Number", "name": "y", "description": " Year."}, {"type": "Number", "name": "m", "description": " Month index from 0 (Jan) to 11 (Dec)."}, {"type": "Number", "name": "d", "description": " (optional) Date from 1 to 31. If not provided, defaults to 1."}], "description": "Returns a new JavaScript Date object, representing the given year, month and date. Time fields (hr, min, sec, ms) on the new Date object\nare set to 0. The method allows Date instances to be created with the a year less than 100. \"new Date(year, month, date)\" implementations \nset the year to 19xx if a year (xx) which is less than 100 is provided.\n<p>\n<em>NOTE:</em>Validation on argument values is not performed. It is the caller's responsibility to ensure\narguments are valid as per the ECMAScript-262 Date object specification for the new Date(year, month[, date]) constructor.\n</p>", "guessedname": "getDate", "guessedtype": "function"}, "subtract": {"return": {"type": "Date", "description": "The resulting Date object"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object to perform subtraction on"}, {"type": "Number", "name": "field", "description": " The this field constant to be used for performing subtraction."}, {"type": "Number", "name": "amount", "description": " The number of units (measured in the field constant) to subtract from the date."}], "description": "Subtracts the specified amount of time from the this instance.", "guessedname": "subtract", "guessedtype": "function"}, "_addDays": {"guessedname": "_addDays", "params": [{"type": "Date", "name": "d", "description": " JavaScript date object"}, {"type": "Number", "name": "nDays", "description": " The number of days to add to the date object (can be negative)"}], "description": "Private helper method to account for bug in Safari 2 (webkit < 420)\nwhen Date.setDate(n) is called with n less than -128 or greater than 127.\n<p>\nFix approach and original findings are available here:\nhttp://brianary.blogspot.com/2006/03/safari-date-bug.html\n</p>", "private": "", "guessedtype": "function"}, "before": {"return": {"type": "Boolean", "description": "true if the date occurs before the compared date; false if not."}, "params": [{"type": "Date", "name": "date", "description": "  The Date object to compare with the compare argument"}, {"type": "Date", "name": "compareTo", "description": " The Date object to use for the comparison"}], "description": "Determines whether a given date is before another date on the calendar.", "guessedname": "before", "guessedtype": "function"}}, "file": "DateMath.js", "guessedtype": "property", "shortname": "DateMath", "properties": {"WEEK": {"description": "Constant field representing Week", "static": "", "guessedname": "WEEK", "guessedtype": "property", "type": "String", "final": ""}, "YEAR": {"description": "Constant field representing Year", "static": "", "guessedname": "YEAR", "guessedtype": "property", "type": "String", "final": ""}, "MONTH": {"description": "Constant field representing Month", "static": "", "guessedname": "MONTH", "guessedtype": "property", "type": "String", "final": ""}, "ONE_DAY_MS": {"description": "Constant field representing one day, in milliseconds", "static": "", "guessedname": "ONE_DAY_MS", "guessedtype": "property", "type": "Number", "final": ""}, "WEEK_ONE_JAN_DATE": {"type": "Number", "static": "", "description": "Constant field representing the date in first week of January\nwhich identifies the first week of the year.\n<p>\nIn the U.S, Jan 1st is normally used based on a Sunday start of week.\nISO 8601, used widely throughout Europe, uses Jan 4th, based on a Monday start of week.\n</p>", "guessedname": "WEEK_ONE_JAN_DATE", "guessedtype": "property"}, "DAY": {"description": "Constant field representing Day", "static": "", "guessedname": "DAY", "guessedtype": "property", "type": "String", "final": ""}}, "description": "YAHOO.widget.DateMath is used for simple date manipulation. The class is a static utility\nused for adding, subtracting, and comparing dates."}, "YAHOO.util.DateLocale": {"name": "YAHOO.util.DateLocale", "namespace": "YAHOO.util", "module": "datasource", "guessedname": "DateLocale", "file": "Type.js", "guessedtype": "property", "shortname": "DateLocale", "requires": "yahoo", "description": "The DateLocale class is a container and base class for all\nlocalised date strings used by YAHOO.util.Date. It is used\ninternally, but may be extended to provide new date localisations.\nTo create your own DateLocale, follow these steps:\n<ol>\n<li>Find an existing locale that matches closely with your needs</li>\n<li>Use this as your base class.  Use YAHOO.util.DateLocale if nothing\nmatches.</li>\n<li>Create your own class as an extension of the base class using\nYAHOO.lang.merge, and add your own localisations where needed.</li>\n</ol>\nSee the YAHOO.util.DateLocale['en-US'] and YAHOO.util.DateLocale['en-GB']\nclasses which extend YAHOO.util.DateLocale['en'].\nFor example, to implement locales for French french and Canadian french,\nwe would do the following:\n<ol>\n<li>For French french, we have no existing similar locale, so use\nYAHOO.util.DateLocale as the base, and extend it:\n<pre>\nYAHOO.util.DateLocale['fr'] = YAHOO.lang.merge(YAHOO.util.DateLocale, {\na: ['dim', 'lun', 'mar', 'mer', 'jeu', 'ven', 'sam'],\nA: ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'],\nb: ['jan', 'fév', 'mar', 'avr', 'mai', 'jun', 'jui', 'aoû', 'sep', 'oct', 'nov', 'déc'],\nB: ['janvier', 'février', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],\nc: '%a %d %b %Y %T %Z',\np: ['', ''],\nP: ['', ''],\nx: '%d.%m.%Y',\nX: '%T'\n});\n</pre>\n</li>\n<li>For Canadian french, we start with French french and change the meaning of \\%x:\n<pre>\nYAHOO.util.DateLocale['fr-CA'] = YAHOO.lang.merge(YAHOO.util.DateLocale['fr'], {\nx: '%Y-%m-%d'\n});\n</pre>\n</li>\n</ol>\nWith that, you can use your new locales:\n<pre>\nvar d = new Date(\"2008/04/22\");\nYAHOO.util.Date.format(d, {format: \"%A, %d %B == %x\"}, \"fr\");\n</pre>\nwill return:\n<pre>\nmardi, 22 avril == 22.04.2008\n</pre>\nAnd\n<pre>\nYAHOO.util.Date.format(d, {format: \"%A, %d %B == %x\"}, \"fr-CA\");\n</pre>\nWill return:\n<pre>\nmardi, 22 avril == 2008-04-22\n</pre>"}, "YAHOO.util.StorageEngineKeyed": {"name": "YAHOO.util.StorageEngineKeyed", "extend": "YAHOO.util.Storage", "constructors": [{"description": "The StorageEngineKeyed class implements the interface necessary for managing keys."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEngineKeyed", "methods": {"_indexOfKey": {"protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key to evaluate."}], "description": "Evaluates if a key exists in the keys array; indexOf does not work in all flavors of IE.", "guessedname": "_indexOfKey", "guessedtype": "function"}, "_removeKey": {"protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key to remove."}], "description": "Removes a key from the keys array.", "guessedname": "_removeKey", "guessedtype": "function"}, "_addKey": {"protected": "", "params": [{"type": "String", "name": "key", "description": "  Required. The key to evaluate."}], "description": "Adds the key to the set.", "guessedname": "_addKey", "guessedtype": "function"}}, "file": "StorageEngineKeyed.js", "guessedtype": "function", "shortname": "StorageEngineKeyed", "properties": {"_keyMap": {"protected": "", "type": "{Object}", "description": "A map of keys to their applicable position in keys array. This should never be edited by the developer.", "guessedname": "_keyMap", "guessedtype": "property"}, "_keys": {"protected": "", "type": "{Array}", "description": "A collection of keys applicable to the current location. This should never be edited by the developer.", "guessedname": "_keys", "guessedtype": "property"}}, "description": "The StorageEngineKeyed class implements the interface necessary for managing keys."}, "YAHOO.tool.TestSuite": {"name": "YAHOO.tool.TestSuite", "constructors": [{"params": [{"type": "String||Object", "name": "data", "description": " The name of the test suite or an object containing\na name property as well as setUp and tearDown methods."}], "description": "A test suite that can contain a collection of TestCase and TestSuite objects."}], "namespace": "YAHOO.tool", "module": "yuitest", "guessedname": "TestSuite", "methods": {"tearDown": {"return": {"type": "Void", "description": ""}, "description": "Function to run after each test is executed.", "guessedname": "tearDown", "guessedtype": "function"}, "add": {"return": {"type": "Void", "description": ""}, "params": [{"type": "YAHOO.tool.TestSuite||YAHOO.tool.TestCase", "name": "testObject", "description": " The test suite or test case to add."}], "description": "Adds a test suite or test case to the test suite.", "guessedname": "add", "guessedtype": "function"}, "setUp": {"return": {"type": "Void", "description": ""}, "description": "Function to run before each test is executed.", "guessedname": "setUp", "guessedtype": "function"}}, "file": "TestSuite.js", "guessedtype": "function", "shortname": "TestSuite", "properties": {"name": {"type": "String", "description": "The name of the test suite."}}, "description": "A test suite that can contain a collection of TestCase and TestSuite objects."}, "YAHOO.util.DragDropMgr.ElementWrapper": {"name": "YAHOO.util.DragDropMgr.ElementWrapper", "for": "DragDropMgr", "innerClasses": ["DragDropMgr"], "deprecated": "", "namespace": "YAHOO.util", "module": "dragdrop", "guessedname": "ElementWrapper", "private": "", "file": "DragDropMgr.js", "guessedtype": "function", "shortname": "DragDropMgr.ElementWrapper", "properties": {"el": {"description": "The element", "guessedname": "el", "guessedtype": "property"}, "id": {"description": "The element id", "guessedname": "id", "guessedtype": "property"}, "css": {"description": "A reference to the style property", "guessedname": "css", "guessedtype": "property"}}, "description": "Inner class for cached elements"}, "YAHOO.util.ColumnResizer": {"name": "YAHOO.util.ColumnResizer", "constructors": [{"params": [{"type": "YAHOO.widget.DataTable", "name": "oDataTable", "description": "  DataTable instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "String", "name": "sHandleElId", "description": "  DOM ID of the handle element that causes the resize."}, {"type": "HTMLElement", "name": "elProxy", "description": "  Resizer proxy element."}], "description": "ColumnResizer subclasses DragDrop to support resizeable Columns."}], "namespace": "YAHOO.util", "module": "datatable", "guessedname": "ColumnResizer", "methods": {"startDrag": {"params": [{"type": "string", "name": "e", "description": "  The drag event"}], "description": "Handles start drag on the Column resizer.", "guessedname": "startDrag", "guessedtype": "function"}, "resetResizerEl": {"description": "Resets resizer element.", "guessedname": "resetResizerEl", "guessedtype": "function"}, "onMouseDown": {"params": [{"type": "string", "name": "e", "description": "  The mousedown event"}], "description": "Handles mousedown events on the Column resizer.", "guessedname": "onMouseDown", "guessedtype": "function"}, "onMouseUp": {"params": [{"type": "string", "name": "e", "description": "  The mouseup event"}], "description": "Handles mouseup events on the Column resizer.", "guessedname": "onMouseUp", "guessedtype": "function"}, "onDrag": {"params": [{"type": "string", "name": "e", "description": "  The drag event"}], "description": "Handles drag events on the Column resizer.", "guessedname": "onDrag", "guessedtype": "function"}, "clickValidator": {"guessedname": "clickValidator", "params": [{"type": "Event", "name": "e", "description": ""}], "description": "Custom clickValidator to ensure Column is not in hidden state.", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.DDProxy", "superclass": "YAHOO.util.DDProxy", "file": "ColumnSet.js", "guessedtype": "function", "shortname": "ColumnResizer", "properties": {"editorOptions": {"deprecated": "Pass configs directly to CellEditor constructor."}}, "description": "ColumnResizer subclasses DragDrop to support resizeable Columns."}, "YAHOO.util.StorageEngineHTML5": {"name": "YAHOO.util.StorageEngineHTML5", "extend": "YAHOO.util.Storage", "constructors": [{"params": [{"type": "String", "name": "location", "description": "  Required. The storage location."}, {"type": "Object", "name": "conf", "description": "  Required. A configuration object."}], "description": "The StorageEngineHTML5 class implements the HTML5 storage engine."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEngineHTML5", "file": "StorageEngineHTML5.js", "guessedtype": "function", "shortname": "StorageEngineHTML5", "description": "The StorageEngineHTML5 class implements the HTML5 storage engine."}, "YAHOO.widget.DualSlider": {"name": "YAHOO.widget.DualSlider", "constructors": [{"params": [{"type": "Slider", "name": "minSlider", "description": " The Slider instance used for the min value thumb"}, {"type": "Slider", "name": "maxSlider", "description": " The Slider instance used for the max value thumb"}, {"type": "int", "name": "range", "description": " The number of pixels the thumbs may move within"}, {"type": "Array", "name": "initVals", "description": " (optional) [min,max] Initial thumb placement"}], "description": "A slider with two thumbs, one that represents the min value and \nthe other the max.  Actually a composition of two sliders, both with\nthe same background.  The constraints for each slider are adjusted\ndynamically so that the min value of the max slider is equal or greater\nto the current value of the min slider, and the max value of the min\nslider is the current value of the max slider.\nConstructor assumes both thumbs are positioned absolutely at the 0 mark on\nthe background."}], "namespace": "YAHOO.widget", "module": "slider", "events": {"ready": {"params": [{"type": "DualSlider", "name": "dualslider", "description": " the DualSlider instance"}], "description": "Event that fires when the slider is finished setting up"}, "slideEnd": {"params": [{"type": "Slider", "name": "activeSlider", "description": " the moving slider"}], "description": "Event that fires when one of the thumbs finishes moving"}, "change": {"params": [{"type": "DualSlider", "name": "dualslider", "description": " the DualSlider instance"}], "description": "Event that fires when either the min or max value changes"}, "slideStart": {"params": [{"type": "Slider", "name": "activeSlider", "description": " the moving slider"}], "description": "Event that fires when one of the thumbs begins to move"}}, "methods": {"_handleSlideStart": {"private": "", "description": "Executed when one of the sliders fires the slideStart event", "guessedname": "_handleSlideStart", "guessedtype": "function"}, "_handleMouseDown": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  mouseup event"}], "description": "Delegates the onMouseDown to the appropriate Slider", "guessedname": "_handleMouseDown", "guessedtype": "function"}, "_oneTimeCallback": {"guessedname": "_oneTimeCallback", "params": [{"type": "EventProvider", "name": "o", "description": "  Object to attach the event to"}, {"type": "string", "name": "evt", "description": "  Name of the event"}, {"type": "Function", "name": "fn", "description": "  function to execute once"}], "description": "Schedule an event callback that will execute once, then unsubscribe\nitself.", "private": "", "guessedtype": "function"}, "_handleSlideEnd": {"private": "", "description": "Executed when one of the sliders fires the slideEnd event", "guessedname": "_handleSlideEnd", "guessedtype": "function"}, "_handleDrag": {"private": "", "description": "Overrides the onDrag method for both sliders", "guessedname": "_handleDrag", "guessedtype": "function"}, "_bindKeyEvents": {"protected": "", "description": "Set up the listeners for the keydown and keypress events.", "guessedname": "_bindKeyEvents", "guessedtype": "function"}, "selectActiveSlider": {"guessedname": "selectActiveSlider", "params": [{"type": "Event", "name": "e", "description": "  the mousedown event"}], "description": "A background click will move the slider thumb nearest to the click.\nOverride if you need different behavior.", "private": "", "guessedtype": "function"}, "setMinValue": {"params": [{"type": "int", "name": "min", "description": "  Pixel offset for min thumb"}, {"type": "boolean", "name": "skipAnim", "description": "  (optional) Set to true to skip thumb animation.\nDefault false"}, {"type": "boolean", "name": "force", "description": "  (optional) ignore the locked setting and set\nvalue anyway. Default false"}, {"type": "boolean", "name": "silent", "description": "  (optional) Set to true to skip firing change\nevents.  Default false"}], "description": "Set the min thumb position to a new value.", "guessedname": "setMinValue", "guessedtype": "function"}, "setMaxValue": {"params": [{"type": "int", "name": "max", "description": "  Pixel offset for max thumb"}, {"type": "boolean", "name": "skipAnim", "description": "  (optional) Set to true to skip thumb animation.\nDefault false"}, {"type": "boolean", "name": "force", "description": "  (optional) ignore the locked setting and set\nvalue anyway. Default false"}, {"type": "boolean", "name": "silent", "description": "  (optional) Set to true to skip firing change\nevents.  Default false"}], "description": "Set the max thumb position to a new value.", "guessedname": "setMaxValue", "guessedtype": "function"}, "_cleanEvent": {"guessedname": "_cleanEvent", "params": [{"type": "EventProvider", "name": "o", "description": "  object housing the CustomEvent"}, {"type": "string", "name": "evt", "description": "  name of the CustomEvent"}], "description": "Clean up the slideEnd event subscribers array, since each one-time\ncallback will be replaced in the event's subscribers property with\nnull.  This will cause memory bloat and loss of performance.", "private": "", "guessedtype": "function"}, "_handleKeyDown": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the mousedown DOM event"}], "description": "Delegate event handling to the active Slider.  See Slider.handleKeyDown.", "guessedname": "_handleKeyDown", "guessedtype": "function"}, "updateValue": {"guessedname": "updateValue", "params": [{"type": "boolean", "name": "silent", "description": "  (optional) Set to true to skip firing change\nevents.  Default false"}], "description": "Executed when one of the sliders is moved", "private": "", "guessedtype": "function"}, "_handleKeyPress": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the mousedown DOM event"}], "description": "Delegate event handling to the active Slider.  See Slider.handleKeyPress.", "guessedname": "_handleKeyPress", "guessedtype": "function"}, "_handleMinChange": {"private": "", "description": "Executed when the min slider fires the change event", "guessedname": "_handleMinChange", "guessedtype": "function"}, "setValues": {"params": [{"type": "int", "name": "min", "description": "  Pixel offset to assign to the min thumb"}, {"type": "int", "name": "max", "description": "  Pixel offset to assign to the max thumb"}, {"type": "boolean", "name": "skipAnim", "description": "  (optional) Set to true to skip thumb animation.\nDefault false"}, {"type": "boolean", "name": "force", "description": "  (optional) ignore the locked setting and set\nvalue anyway. Default false"}, {"type": "boolean", "name": "silent", "description": "  (optional) Set to true to skip firing change\nevents.  Default false"}], "description": "Sets the min and max thumbs to new values.", "guessedname": "setValues", "guessedtype": "function"}, "_handleMaxChange": {"private": "", "description": "Executed when the max slider fires the change event", "guessedname": "_handleMaxChange", "guessedtype": "function"}, "_handleMouseUp": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  mouseup event"}], "description": "Delegates the onMouseUp to the active Slider", "guessedname": "_handleMouseUp", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "DualSlider.js", "shortname": "DualSlider", "properties": {"maxVal": {"type": "int", "description": "The current value of the max thumb. <strong>read only</strong>.", "guessedname": "maxVal", "guessedtype": "property"}, "minRange": {"default": "0", "type": "int", "description": "Pixel distance to maintain between thumbs.", "guessedname": "minRange", "guessedtype": "property"}, "minVal": {"type": "int", "description": "The current value of the min thumb. <strong>read only</strong>.", "guessedname": "minVal", "guessedtype": "property"}, "maxSlider": {"type": "Slider", "description": "A slider instance that keeps track of the upper value of the range.\n<strong>read only</strong>", "guessedname": "maxSlider", "guessedtype": "property"}, "minSlider": {"type": "Slider", "description": "A slider instance that keeps track of the lower value of the range.\n<strong>read only</strong>", "guessedname": "minSlider", "guessedtype": "property"}, "isHoriz": {"type": "boolean", "description": "Is the DualSlider oriented horizontally or vertically?\n<strong>read only</strong>", "guessedname": "isHoriz", "guessedtype": "property"}, "activeSlider": {"type": "Slider", "description": "The currently active slider (min or max). <strong>read only</strong>", "guessedname": "activeSlider", "guessedtype": "property"}}, "description": "A slider with two thumbs, one that represents the min value and \nthe other the max.  Actually a composition of two sliders, both with\nthe same background.  The constraints for each slider are adjusted\ndynamically so that the min value of the max slider is equal or greater\nto the current value of the min slider, and the max value of the min\nslider is the current value of the max slider.\nConstructor assumes both thumbs are positioned absolutely at the 0 mark on\nthe background."}, "YAHOO.widget.DateCellEditor": {"name": "YAHOO.widget.DateCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The DataCellEditor class provides functionality for inline editing\nDataTable cell data with a YUI Calendar."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "DateCellEditor", "methods": {"renderForm": {"description": "Render a Calendar.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from DateCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in DateCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets DateCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "DateCellEditor", "properties": {"calendar": {"type": "YAHOO.widget.Calendar", "description": "Reference to Calendar instance.", "guessedname": "calendar", "guessedtype": "property"}, "defaultValue": {"default": "new Date()", "type": "Date", "description": "Default value.", "guessedname": "defaultValue", "guessedtype": "property"}, "calendarOptions": {"type": "Object", "description": "Configs for the calendar instance, to be passed to Calendar constructor.", "guessedname": "calendarOptions", "guessedtype": "property"}}, "description": "The DataCellEditor class provides functionality for inline editing\nDataTable cell data with a YUI Calendar."}, "YAHOO.util.Element": {"name": "YAHOO.util.Element", "configs": {"element": {"type": "HTMLElement", "description": "The HTMLElement the Element instance refers to."}}, "constructors": [{"params": [{"type": "HTMLElement | String", "name": "el", "description": "  The html element that \nrepresents the Element."}, {"type": "Object", "name": "map", "description": " A key-value map of initial config names and values"}], "description": "Element provides an wrapper object to simplify adding\nevent listeners, using dom methods, and managing attributes."}], "namespace": "YAHOO.util", "module": "element", "events": {"available": {"description": "Fires when the Element's HTMLElement can be retrieved by Id.\n<p>See: <a href=\"#addListener\">Element.addListener</a></p>\n<p><strong>Event fields:</strong><br>\n<code><String> type</code> available<br>\n<code><HTMLElement>\ntarget</code> the HTMLElement bound to this Element instance<br>\n<p><strong>Usage:</strong><br>\n<code>var handler = function(e) {var target = e.target};<br>\nmyTabs.addListener('available', handler);</code></p>"}, "contentReady": {"description": "Fires when the Element's HTMLElement subtree is rendered.\n<p>See: <a href=\"#addListener\">Element.addListener</a></p>\n<p><strong>Event fields:</strong><br>\n<code><String> type</code> contentReady<br>\n<code><HTMLElement>\ntarget</code> the HTMLElement bound to this Element instance<br>\n<p><strong>Usage:</strong><br>\n<code>var handler = function(e) {var target = e.target};<br>\nmyTabs.addListener('contentReady', handler);</code></p>"}, "beforeElementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeElementChange", "description": "Fires before the value for the configuration attribute 'element' changes. Return false to cancel the attribute change."}, "beforeAppendTo": {"description": "Fires before the Element is appended to another Element.\n<p>See: <a href=\"#addListener\">Element.addListener</a></p>\n<p><strong>Event fields:</strong><br>\n<code><String> type</code> beforeAppendTo<br>\n<code><HTMLElement/Element>\ntarget</code> the HTMLElement/Element being appended to \n<p><strong>Usage:</strong><br>\n<code>var handler = function(e) {var target = e.target};<br>\nmyTabs.addListener('beforeAppendTo', handler);</code></p>"}, "elementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "elementChange", "description": "Fires when the value for the configuration attribute 'element' changes."}, "appendTo": {"description": "Fires after the Element is appended to another Element.\n<p>See: <a href=\"#addListener\">Element.addListener</a></p>\n<p><strong>Event fields:</strong><br>\n<code><String> type</code> appendTo<br>\n<code><HTMLElement/Element>\ntarget</code> the HTMLElement/Element being appended to \n<p><strong>Usage:</strong><br>\n<code>var handler = function(e) {var target = e.target};<br>\nmyTabs.addListener('appendTo', handler);</code></p>"}}, "guessedname": "Element", "methods": {"appendChild": {"return": {"type": "HTMLElement", "description": "The appended DOM element."}, "params": [{"type": "YAHOO.util.Element || HTMLElement", "name": "child", "description": " The element to append."}], "description": "Wrapper for HTMLElement method.", "guessedname": "appendChild", "guessedtype": "function"}, "setStyle": {"params": [{"type": "String", "name": "property", "description": " The style property to set"}, {"type": "String", "name": "value", "description": " The value to apply to the style property"}], "description": "Wrapper for Dom method.", "guessedname": "setStyle", "guessedtype": "function"}, "subscribe": {"params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The function call when the event fires"}, {"type": "Any", "name": "obj", "description": " A variable to pass to the handler"}, {"type": "Object", "name": "scope", "description": " The object to use for the scope of the handler"}], "description": "Alias for addListener", "guessedname": "subscribe", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "map", "description": " A key-value map of initial attribute configs"}], "description": "Registers Element specific attributes.", "guessedname": "initAttributes", "guessedtype": "function"}, "removeDelegate": {"return": {"type": "boolean", "description": "Returns true if the unbind was successful, false \notherwise."}, "params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The function call when the event fires"}], "description": "Remove a delegated event listener", "guessedname": "removeDelegate", "guessedtype": "function"}, "getElementsByClassName": {"return": {"type": "Array", "description": "Array of HTMLElements"}, "params": [{"type": "String", "name": "className", "description": " The className to collect"}, {"type": "String", "name": "tag", "description": " (optional) The tag to use in\nconjunction with class name"}], "description": "Wrapper for Dom method.", "guessedname": "getElementsByClassName", "guessedtype": "function"}, "replaceClass": {"params": [{"type": "String", "name": "oldClassName", "description": " The className to replace"}, {"type": "String", "name": "newClassName", "description": " The className to add"}], "description": "Wrapper for Dom method.", "guessedname": "replaceClass", "guessedtype": "function"}, "appendTo": {"return": {"type": "HTMLElement", "description": "The appended DOM element."}, "params": [{"type": "HTMLElement | Element", "name": "parentNode", "description": " The node to append to"}, {"type": "HTMLElement | Element", "name": "before", "description": " An optional node to insert before"}], "description": "Appends the HTMLElement into either the supplied parentNode.", "guessedname": "appendTo", "guessedtype": "function"}, "hasChildNodes": {"return": {"type": "Boolean", "description": "Whether or not the element has childNodes"}, "description": "Wrapper for HTMLElement method.", "guessedname": "hasChildNodes", "guessedtype": "function"}, "_setHTMLAttrConfig": {"guessedname": "_setHTMLAttrConfig", "params": [{"type": "YAHOO.util.Element", "name": "element", "description": " The Element instance to\nregister the config to."}, {"type": "String", "name": "key", "description": " The name of the config to register"}, {"type": "Object", "name": "map", "description": " A key-value map of the config's params"}], "description": "Sets the value of the property and fires beforeChange and change events.", "private": "", "guessedtype": "function"}, "fireQueue": {"description": "Apply any queued set calls.", "guessedname": "fireQueue", "guessedtype": "function"}, "addListener": {"params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The handler to call when the event fires"}, {"type": "Any", "name": "obj", "description": " A variable to pass to the handler"}, {"type": "Object", "name": "scope", "description": " The object to use for the scope of the handler"}], "description": "Adds a listener for the given event.  These may be DOM or \ncustomEvent listeners.  Any event that is fired via fireEvent\ncan be listened for.  All handlers receive an event object.", "guessedname": "addListener", "guessedtype": "function"}, "insertBefore": {"return": {"type": "HTMLElement", "description": "The inserted DOM element."}, "params": [{"type": "HTMLElement", "name": "element", "description": " The HTMLElement to insert"}, {"type": "HTMLElement", "name": "before", "description": " The HTMLElement to insert\nthe element before."}], "description": "Wrapper for HTMLElement method.", "guessedname": "insertBefore", "guessedtype": "function"}, "getElementsByTagName": {"return": {"type": "HTMLCollection", "description": "A collection of DOM elements."}, "params": [{"type": "String", "name": "tag", "description": " The tagName to collect"}], "description": "Wrapper for HTMLElement method.", "guessedname": "getElementsByTagName", "guessedtype": "function"}, "removeClass": {"params": [{"type": "String", "name": "className", "description": " The className to remove"}], "description": "Wrapper for Dom method.", "guessedname": "removeClass", "guessedtype": "function"}, "getStyle": {"return": {"type": "String", "description": "The current value of the property"}, "params": [{"type": "String", "name": "property", "description": " The style property to retrieve"}], "description": "Wrapper for Dom method.", "guessedname": "getStyle", "guessedtype": "function"}, "replaceChild": {"return": {"type": "HTMLElement", "description": "The replaced DOM element."}, "params": [{"type": "HTMLElement", "name": "newNode", "description": " The HTMLElement to insert"}, {"type": "HTMLElement", "name": "oldNode", "description": " The HTMLElement to replace"}], "description": "Wrapper for HTMLElement method.", "guessedname": "replaceChild", "guessedtype": "function"}, "removeListener": {"params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The function call when the event fires"}], "description": "Remove an event listener", "guessedname": "removeListener", "guessedtype": "function"}, "on": {"params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The function call when the event fires"}, {"type": "Any", "name": "obj", "description": " A variable to pass to the handler"}, {"type": "Object", "name": "scope", "description": " The object to use for the scope of the handler"}], "description": "Alias for addListener", "guessedname": "on", "guessedtype": "function"}, "removeChild": {"return": {"type": "HTMLElement", "description": "The removed DOM element."}, "params": [{"type": "HTMLElement", "name": "child", "description": " The HTMLElement to remove"}], "description": "Wrapper for HTMLElement method.", "guessedname": "removeChild", "guessedtype": "function"}, "delegate": {"return": {"type": "boolean", "description": "Returns true if the delegated event listener \nwas added successfully"}, "params": [{"type": "String", "name": "type", "description": " The name of the event to listen for"}, {"type": "Function", "name": "fn", "description": " The handler to call when the event fires"}, {"type": "Function|string", "name": "filter", "description": " Function or CSS selector used to \ndetermine for what element(s) the event listener should be called. \nWhen a function is specified, the function should return an \nHTML element.  Using a CSS Selector requires the inclusion of the \nCSS Selector Utility."}, {"type": "Any", "name": "obj", "description": " A variable to pass to the handler"}, {"type": "Object", "name": "scope", "description": " The object to use for the scope of the handler"}], "description": "Appends a delegated event listener.  Delegated event listeners \nreceive two arguments by default: the DOM event and the element  \nspecified by the filtering function or CSS selector.\n(Note: Using the delegate method requires the element-delegate \nmodule.  Using CSS selectors as the filtering criteria for delegated \nevent listeners requires inclusion of the Selector Utility.)", "guessedname": "delegate", "guessedtype": "function"}, "hasClass": {"return": {"type": "Boolean", "description": "Whether or not the element has the class name"}, "params": [{"type": "String", "name": "className", "description": " The className to add"}], "description": "Wrapper for Dom method.", "guessedname": "hasClass", "guessedtype": "function"}, "addClass": {"params": [{"type": "String", "name": "className", "description": " The className to add"}], "description": "Wrapper for Dom method.", "guessedname": "addClass", "guessedtype": "function"}}, "uses": ["YAHOO.util.AttributeProvider"], "file": "Element.js", "guessedtype": "function", "shortname": "Element", "properties": {"DOM_EVENTS": {"type": "Object", "description": "Dom events supported by the Element instance.", "guessedname": "DOM_EVENTS", "guessedtype": "property"}}, "description": "Element provides an wrapper object to simplify adding\nevent listeners, using dom methods, and managing attributes."}, "YAHOO.util.DragDrop": {"name": "YAHOO.util.DragDrop", "constructors": [{"params": [{"type": "String", "name": "id", "description": " of the element that is linked to this instance"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop objects"}, {"type": "object", "name": "config", "description": " an object containing configurable attributes\nValid properties for DragDrop: \npadding, isTarget, maintainOffset, primaryButtonOnly,"}], "description": "Defines the interface and base operation of items that that can be \ndragged or can be drop targets.  It was designed to be extended, overriding\nthe event handlers for startDrag, onDrag, onDragOver, onDragOut.\nUp to three html elements can be associated with a DragDrop instance:\n<ul>\n<li>linked element: the element that is passed into the constructor.\nThis is the element which defines the boundaries for interaction with \nother DragDrop objects.</li>\n<li>handle element(s): The drag operation only occurs if the element that \nwas clicked matches a handle element.  By default this is the linked \nelement, but there are times that you will want only a portion of the \nlinked element to initiate the drag operation, and the setHandleElId() \nmethod provides a way to define this.</li>\n<li>drag element: this represents an the element that would be moved along\nwith the cursor during a drag operation.  By default, this is the linked\nelement itself as in {@link YAHOO.util.DD}.  setDragElId() lets you define\na separate element that would be moved, as in {@link YAHOO.util.DDProxy}\n</li>\n</ul>\nThis class should not be instantiated until the onload event to ensure that\nthe associated elements are available.\nThe following would define a DragDrop obj that would interact with any \nother DragDrop obj in the \"group1\" group:\n<pre>\ndd = new YAHOO.util.DragDrop(\"div1\", \"group1\");\n</pre>\nSince none of the event handlers have been implemented, nothing would \nactually happen if you were to run the code above.  Normally you would \noverride this class or one of the default implementations, but you can \nalso override the methods you want on an instance of the class...\n<pre>\ndd.onDragDrop = function(e, id) {\n  alert(\"dd was dropped on \" + id);\n}\n</pre>"}], "namespace": "YAHOO.util", "module": "dragdrop", "events": {"startDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs after a mouse down and the drag threshold has been met. The drag threshold default is either 3 pixels of mouse movement or 1 full second of holding the mousedown."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fired from inside DragDropMgr when the drag operation is finished."}, "dragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs every mousemove event while dragging."}, "dragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires every mousemove event while over a drag and drop object."}, "dragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when a dragged object is no longer over an object that had the onDragEnter fire."}, "b4EndDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the endDragEvent. Returning false will cancel."}, "b4StartDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the startDragEvent, returning false will cancel the startDrag Event."}, "b4DragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOutEvent"}, "endDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires on the mouseup event after a drag has been initiated (startDrag fired)."}, "b4DragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOverEvent."}, "dragEnterEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs when the dragged object first interacts with another targettable drag and drop object."}, "b4DragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragDropEvent"}, "b4DragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragEvent."}, "dragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped on another."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event. The mousedown does not always result in a drag operation."}, "invalidDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped in a location that contains no drop targets."}, "b4MouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event, before the mouseDownEvent gets fired. Returning false will cancel the drag."}}, "guessedname": "DragDrop", "methods": {"addToGroup": {"params": [{"type": "string", "name": "sGroup", "description": "  the name of the group"}], "description": "Add this instance to a group of related drag/drop objects.  All \ninstances belong to at least one group, and can belong to as many \ngroups as needed.", "guessedname": "addToGroup", "guessedtype": "function"}, "startDrag": {"params": [{"type": "int", "name": "X", "description": " click location"}, {"type": "int", "name": "Y", "description": " click location"}], "description": "Abstract method called after a drag/drop object is clicked\nand the drag or mousedown time thresholds have beeen met.", "guessedname": "startDrag", "guessedtype": "function"}, "isValidHandleChild": {"return": {"type": "boolean", "description": "true if this is a valid tag type, false if not"}, "params": [{"type": "HTMLElement", "name": "node", "description": " the HTMLElement to evaluate"}], "description": "Checks the tag exclusion list to see if this click should be ignored", "guessedname": "isValidHandleChild", "guessedtype": "function"}, "b4Drag": {"private": "", "description": "Code that executes immediately before the onDrag event", "guessedname": "b4Drag", "guessedtype": "function"}, "lock": {"description": "Lock this instance", "guessedname": "lock", "guessedtype": "function"}, "onDragEnter": {"params": [{"type": "Event", "name": "e", "description": " the mousemove event"}, {"type": "String|DragDrop[]", "name": "id", "description": " In POINT mode, the element\nid this is hovering over.  In INTERSECT mode, an array of one or more \ndragdrop items being hovered over."}], "description": "Abstract method called when this element fist begins hovering over \nanother DragDrop obj", "guessedname": "onDragEnter", "guessedtype": "function"}, "b4StartDrag": {"private": "", "description": "Code that executes immediately before the startDrag event", "guessedname": "b4StartDrag", "guessedtype": "function"}, "onMouseDown": {"params": [{"type": "Event", "name": "e", "description": " the mousedown event"}], "description": "Event handler that fires when a drag/drop obj gets a mousedown", "guessedname": "onMouseDown", "guessedtype": "function"}, "setOuterHandleElId": {"params": [{"type": "", "name": "id", "description": " the id of the element that will be used to initiate the drag"}], "description": "Allows you to set an element outside of the linked element as a drag \nhandle", "guessedname": "setOuterHandleElId", "guessedtype": "function"}, "unlock": {"description": "Unlock this instace", "guessedname": "unlock", "guessedtype": "function"}, "clearTicks": {"description": "Clears any tick interval defined for this instance", "guessedname": "clearTicks", "guessedtype": "function"}, "setStartPosition": {"guessedname": "setStartPosition", "params": [{"type": "", "name": "pos", "description": " current position (from previous lookup)"}], "description": "Sets the start position of the element.  This is set when the obj\nis initialized, the reset when a drag is started.", "private": "", "guessedtype": "function"}, "resetConstraints": {"description": "resetConstraints must be called if you manually reposition a dd element.", "guessedname": "resetConstraints", "guessedtype": "function"}, "clickValidator": {"params": [{"type": "Event", "name": "e", "description": ""}], "description": "Method validates that the clicked element\nwas indeed the handle or a valid child of the handle", "guessedname": "clickValidator", "guessedtype": "function"}, "handleMouseDown": {"guessedname": "handleMouseDown", "params": [{"type": "Event", "name": "e", "description": ""}, {"type": "YAHOO.util.DragDrop", "name": "oDD", "description": " the clicked dd object (this dd obj)"}], "description": "Fired when this object is clicked", "private": "", "guessedtype": "function"}, "onDragOver": {"params": [{"type": "Event", "name": "e", "description": " the mousemove event"}, {"type": "String|DragDrop[]", "name": "id", "description": " In POINT mode, the element\nid this is hovering over.  In INTERSECT mode, an array of dd items \nbeing hovered over."}], "description": "Abstract method called when this element is hovering over another \nDragDrop obj", "guessedname": "onDragOver", "guessedtype": "function"}, "addInvalidHandleType": {"params": [{"type": "string", "name": "tagName", "description": " the type of element to exclude"}], "description": "Allows you to specify a tag name that should not start a drag operation\nwhen clicked.  This is designed to facilitate embedding links within a\ndrag handle that do something other than start the drag.", "guessedname": "addInvalidHandleType", "guessedtype": "function"}, "setDragElId": {"params": [{"type": "string", "name": "id", "description": "  the id of the element that will be used to initiate the drag"}], "description": "Allows you to specify that an element other than the linked element \nwill be moved with the cursor during a drag", "guessedname": "setDragElId", "guessedtype": "function"}, "setXConstraint": {"params": [{"type": "int", "name": "iLeft", "description": " the number of pixels the element can move to the left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move to the \nright"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the \nelement\nshould move iTickSize pixels at a time."}], "description": "By default, the element can be dragged any place on the screen.  Use \nthis method to limit the horizontal travel of the element.  Pass in \n0,0 for the parameters if you want to lock the drag to the y axis.", "guessedname": "setXConstraint", "guessedtype": "function"}, "getTick": {"return": {"type": "int", "description": "the closest tick"}, "description": "Normally the drag element is moved pixel by pixel, but we can specify \nthat it move a number of pixels at a time.  This method resolves the \nlocation when we have it set up like this.", "private": "", "params": [{"type": "int", "name": "val", "description": " where we want to place the object"}, {"type": "int[]", "name": "tickArray", "description": " sorted array of valid points"}], "guessedname": "getTick", "guessedtype": "function"}, "init": {"params": [{"type": "", "name": "id", "description": " the id of the linked element"}, {"type": "String", "name": "sGroup", "description": " the group of related items"}, {"type": "object", "name": "config", "description": " configuration attributes"}], "description": "Sets up the DragDrop object.  Must be called in the constructor of any\nYAHOO.util.DragDrop subclass", "guessedname": "init", "guessedtype": "function"}, "clearConstraints": {"description": "Clears any constraints applied to this instance.  Also clears ticks\nsince they can't exist independent of a constraint at this time.", "guessedname": "clearConstraints", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": "the html element"}, "description": "Returns a reference to the linked element", "guessedname": "getEl", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the dd obj"}, "description": "toString method", "guessedname": "toString", "guessedtype": "function"}, "onMouseUp": {"params": [{"type": "Event", "name": "e", "description": " the mouseup event"}], "description": "Event handler that fires when a drag/drop obj gets a mouseup", "guessedname": "onMouseUp", "guessedtype": "function"}, "removeInvalidHandleType": {"params": [{"type": "string", "name": "tagName", "description": " the type of element to unexclude"}], "description": "Unsets an excluded tag name set by addInvalidHandleType", "guessedname": "removeInvalidHandleType", "guessedtype": "function"}, "getTargetCoord": {"return": {"type": "", "description": "an object that contains the coordinates (Object.x and Object.y)"}, "description": "Finds the location the element should be placed if we want to move\nit to where the mouse location less the click offset would place us.", "private": "", "params": [{"type": "int", "name": "iPageX", "description": " the X coordinate of the click"}, {"type": "int", "name": "iPageY", "description": " the Y coordinate of the click"}], "guessedname": "getTargetCoord", "guessedtype": "function"}, "setHandleElId": {"params": [{"type": "string", "name": "id", "description": "  the id of the element that will be used to \ninitiate the drag."}], "description": "Allows you to specify a child of the linked element that should be \nused to initiate the drag operation.  An example of this would be if \nyou have a content div with text and links.  Clicking anywhere in the \ncontent area would normally start the drag operation.  Use this method\nto specify that an element inside of the content div is the element \nthat starts the drag operation.", "guessedname": "setHandleElId", "guessedtype": "function"}, "onDragOut": {"params": [{"type": "Event", "name": "e", "description": " the mousemove event"}, {"type": "String|DragDrop[]", "name": "id", "description": " In POINT mode, the element\nid this was hovering over.  In INTERSECT mode, an array of dd items \nthat the mouse is no longer over."}], "description": "Abstract method called when we are no longer hovering over an element", "guessedname": "onDragOut", "guessedtype": "function"}, "onInvalidDrop": {"params": [{"type": "Event", "name": "e", "description": " the mouseup event"}], "description": "Abstract method called when this item is dropped on an area with no\ndrop target", "guessedname": "onInvalidDrop", "guessedtype": "function"}, "setInitialPosition": {"guessedname": "setInitPosition", "params": [{"type": "int", "name": "diffX", "description": "   the X offset, default 0"}, {"type": "int", "name": "diffY", "description": "   the Y offset, default 0"}], "description": "Stores the initial placement of the linked element.", "private": "", "guessedtype": "function"}, "b4DragDrop": {"private": "", "description": "Code that executes immediately before the onDragDrop event", "guessedname": "b4DragDrop", "guessedtype": "function"}, "removeFromGroup": {"params": [{"type": "string", "name": "sGroup", "description": "  The group to drop"}], "description": "Remove's this instance from the supplied interaction group", "guessedname": "removeFromGroup", "guessedtype": "function"}, "initTarget": {"params": [{"type": "", "name": "id", "description": " the id of the linked element"}, {"type": "String", "name": "sGroup", "description": " the group of related items"}, {"type": "object", "name": "config", "description": " configuration attributes"}], "description": "Initializes Targeting functionality only... the object does not\nget a mousedown handler.", "guessedname": "initTarget", "guessedtype": "function"}, "removeInvalidHandleClass": {"params": [{"type": "string", "name": "cssClass", "description": " the class of the element(s) you wish to \nre-enable"}], "description": "Unsets an invalid css class", "guessedname": "removeInvalidHandleClass", "guessedtype": "function"}, "onDragDrop": {"params": [{"type": "Event", "name": "e", "description": " the mouseup event"}, {"type": "String|DragDrop[]", "name": "id", "description": " In POINT mode, the element\nid this was dropped on.  In INTERSECT mode, an array of dd items this \nwas dropped on."}], "description": "Abstract method called when this item is dropped on another DragDrop \nobj", "guessedname": "onDragDrop", "guessedtype": "function"}, "setYTicks": {"private": "", "description": "Create the array of vertical tick marks if an interval was specified in \nsetYConstraint().", "guessedname": "setYTicks", "guessedtype": "function"}, "b4EndDrag": {"private": "", "description": "Code that executes immediately before the endDrag event", "guessedname": "b4EndDrag", "guessedtype": "function"}, "removeInvalidHandleId": {"params": [{"type": "string", "name": "id", "description": " the id of the element to re-enable"}], "description": "Unsets an invalid handle id", "guessedname": "removeInvalidHandleId", "guessedtype": "function"}, "onAvailable": {"description": "Override the onAvailable method to do what is needed after the initial\nposition was determined.", "guessedname": "onAvailable", "guessedtype": "function"}, "getDragEl": {"return": {"type": "HTMLElement", "description": "the html element"}, "description": "Returns a reference to the actual element to drag.  By default this is\nthe same as the html element, but it can be assigned to another \nelement. An example of this can be found in YAHOO.util.DDProxy", "guessedname": "getDragEl", "guessedtype": "function"}, "onDrag": {"params": [{"type": "Event", "name": "e", "description": " the mousemove event"}], "description": "Abstract method called during the onMouseMove event while dragging an \nobject.", "guessedname": "onDrag", "guessedtype": "function"}, "applyConfig": {"description": "Applies the configuration parameters that were passed into the constructor.\nThis is supposed to happen at each level through the inheritance chain.  So\na DDProxy implentation will execute apply config on DDProxy, DD, and \nDragDrop in order to get all of the parameters that are available in\neach object.", "guessedname": "applyConfig", "guessedtype": "function"}, "on": {"description": "Shortcut for EventProvider.subscribe, see <a href=\"YAHOO.util.EventProvider.html#subscribe\">YAHOO.util.EventProvider.subscribe</a>", "guessedname": "on", "guessedtype": "function"}, "b4DragOver": {"private": "", "description": "Code that executes immediately before the onDragOver event", "guessedname": "b4DragOver", "guessedtype": "function"}, "setYConstraint": {"params": [{"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the \nelement should move iTickSize pixels at a time."}], "description": "By default, the element can be dragged any place on the screen.  Set \nthis to limit the vertical travel of the element.  Pass in 0,0 for the\nparameters if you want to lock the drag to the x axis.", "guessedname": "setYConstraint", "guessedtype": "function"}, "endDrag": {"params": [{"type": "Event", "name": "e", "description": " the mouseup event"}], "description": "Fired when we are done dragging the object", "guessedname": "endDrag", "guessedtype": "function"}, "isLocked": {"return": {"type": "boolean", "description": "true if this obj or all drag/drop is locked, else \nfalse"}, "description": "Returns true if this instance is locked, or the drag drop mgr is locked\n(meaning that all drag/drop is disabled on the page.)", "guessedname": "isLocked", "guessedtype": "function"}, "addInvalidHandleClass": {"params": [{"type": "string", "name": "cssClass", "description": " the class of the elements you wish to ignore"}], "description": "Lets you specify a css class of elements that will not initiate a drag", "guessedname": "addInvalidHandleClass", "guessedtype": "function"}, "handleOnAvailable": {"private": "", "description": "Executed when the linked element is available", "guessedname": "handleOnAvailable", "guessedtype": "function"}, "setPadding": {"params": [{"type": "int", "name": "iTop", "description": "    Top pad"}, {"type": "int", "name": "iRight", "description": "  Right pad"}, {"type": "int", "name": "iBot", "description": "    Bot pad"}, {"type": "int", "name": "iLeft", "description": "   Left pad"}], "description": "Configures the padding for the target zone in px.  Effectively expands\n(or reduces) the virtual object size for targeting calculations.  \nSupports css-style shorthand; if only one parameter is passed, all sides\nwill have that padding, and if only two are passed, the top and bottom\nwill have the first param, the left and right the second.", "guessedname": "setPadding", "guessedtype": "function"}, "unreg": {"description": "Remove all drag and drop hooks for this element", "guessedname": "unreg", "guessedtype": "function"}, "b4MouseDown": {"guessedname": "b4MouseDown", "params": [{"type": "Event", "name": "e", "description": " the mousedown event"}], "description": "Code executed immediately before the onMouseDown event", "private": "", "guessedtype": "function"}, "b4DragOut": {"private": "", "description": "Code that executes immediately before the onDragOut event", "guessedname": "b4DragOut", "guessedtype": "function"}, "addInvalidHandleId": {"params": [{"type": "string", "name": "id", "description": " the element id of the element you wish to ignore"}], "description": "Lets you to specify an element id for a child of a drag handle\nthat should not initiate a drag", "guessedname": "addInvalidHandleId", "guessedtype": "function"}, "setXTicks": {"private": "", "description": "Create the array of horizontal tick marks if an interval was specified\nin setXConstraint().", "guessedname": "setXTicks", "guessedtype": "function"}}, "file": "DragDrop.js", "guessedtype": "function", "shortname": "DragDrop", "properties": {"maxX": {"guessedname": "maxX", "type": "int", "description": "The right constraint", "private": "", "guessedtype": "property"}, "maxY": {"guessedname": "maxY", "type": "int", "description": "The down constraint", "private": "", "guessedtype": "property"}, "hasOuterHandles": {"default": "false", "type": "boolean", "description": "By default, drags can only be initiated if the mousedown occurs in the\nregion the linked element is.  This is done in part to work around a\nbug in some browsers that mis-report the mousedown if the previous\nmouseup happened outside of the window.  This property is set to true\nif outer handles are defined.", "guessedname": "hasOuterHandles", "guessedtype": "property"}, "_domRef": {"private": "", "description": "Cached reference to the linked element", "guessedname": "_domRef", "guessedtype": "property"}, "yTicks": {"type": "int[]", "description": "Array of pixel locations the element will snap to if we specified a \nvertical graduation/interval.  This array is generated automatically \nwhen you define a tick interval.", "guessedname": "yTicks", "guessedtype": "property"}, "startPageY": {"guessedname": "startPageY", "type": "int", "description": "The linked element's absolute X position at the time the drag was \nstarted", "private": "", "guessedtype": "property"}, "id": {"type": "String", "description": "The id of the element associated with this object.  This is what we \nrefer to as the \"linked element\" because the size and position of \nthis element is used to determine when the drag and drop objects have \ninteracted.", "guessedname": "id", "guessedtype": "property"}, "deltaX": {"guessedname": "deltaX", "type": "int", "description": "The difference between the click position and the source element's location", "private": "", "guessedtype": "property"}, "deltaY": {"guessedname": "deltaY", "type": "int", "description": "The difference between the click position and the source element's location", "private": "", "guessedtype": "property"}, "__ygDragDrop": {"private": "", "description": "Internal typeof flag", "guessedname": "__ygDragDrop", "guessedtype": "property"}, "overlap": {"type": "YAHOO.util.Region", "description": "Property that is assigned to a drag and drop object when testing to\nsee if it is being targeted by another dd object.  This is a region\nthat represents the area the draggable element overlaps this target.\nDDM.getBestMatch uses this property to compare the size of the overlap\nto that of other targets in order to determine the closest match in\nINTERSECT mode when multiple targets are part of the same interaction.", "guessedname": "overlap", "guessedtype": "property"}, "minX": {"guessedname": "minX", "type": "int", "description": "The left constraint", "private": "", "guessedtype": "property"}, "minY": {"guessedname": "minY", "type": "int", "description": "The up constraint", "private": "", "guessedtype": "property"}, "invalidHandleIds": {"type": "{string: string}", "description": "An associative array of ids for elements that will be ignored if clicked", "guessedname": "invalidHandleIds", "guessedtype": "property"}, "config": {"type": "object", "description": "Configuration attributes passed into the constructor", "guessedname": "config", "guessedtype": "property"}, "dragElId": {"guessedname": "dragElId", "type": "String", "description": "The id of the element that will be dragged.  By default this is same \nas the linked element , but could be changed to another element. Ex: \nYAHOO.util.DDProxy", "private": "", "guessedtype": "property"}, "available": {"type": "boolean", "description": "The availabe property is false until the linked dom element is accessible.", "guessedname": "available", "guessedtype": "property"}, "invalidHandleClasses": {"type": "string[]", "description": "An indexted array of css class names for elements that will be ignored\nif clicked.", "guessedname": "invalidHandleClasses", "guessedtype": "property"}, "isTarget": {"type": "boolean", "description": "By default, all instances can be a drop target.  This can be disabled by\nsetting isTarget to false.", "guessedname": "isTarget", "guessedtype": "property"}, "invalidHandleTypes": {"type": "{string: string}", "description": "An associative array of HTML tags that will be ignored if clicked.", "guessedname": "invalidHandleTypes", "guessedtype": "property"}, "startPageX": {"guessedname": "startPageX", "type": "int", "description": "The linked element's absolute X position at the time the drag was \nstarted", "private": "", "guessedtype": "property"}, "cursorIsOver": {"type": "boolean", "description": "Property that is assigned to a drag and drop object when testing to\nsee if it is being targeted by another dd object.  This property\ncan be used in intersect mode to help determine the focus of\nthe mouse interaction.  DDM.getBestMatch uses this property first to\ndetermine the closest match in INTERSECT mode when multiple targets\nare part of the same interaction.", "guessedname": "cursorIsOver", "guessedtype": "property"}, "constrainY": {"guessedname": "constrainY", "type": "boolean", "description": "Set to true when vertical contraints are applied", "private": "", "guessedtype": "property"}, "constrainX": {"guessedname": "constrainX", "type": "boolean", "description": "Set to true when horizontal contraints are applied", "private": "", "guessedtype": "property"}, "padding": {"type": "int[]", "description": "The padding configured for this drag and drop object for calculating\nthe drop zone intersection with this object.", "guessedname": "padding", "guessedtype": "property"}, "dragOnly": {"type": "Boolean", "description": "If this flag is true, do not fire drop events. The element is a drag only element (for movement not dropping)", "guessedname": "dragOnly", "guessedtype": "property"}, "groups": {"type": "{string: string}", "description": "The group defines a logical collection of DragDrop objects that are \nrelated.  Instances only get events when interacting with other \nDragDrop object in the same group.  This lets us define multiple \ngroups using a single DragDrop subclass if we want.", "guessedname": "groups", "guessedtype": "property"}, "maintainOffset": {"type": "boolean", "description": "Maintain offsets when we resetconstraints.  Set to true when you want\nthe position of the element relative to its parent to stay the same\nwhen the page changes", "guessedname": "maintainOffset", "guessedtype": "property"}, "handleElId": {"guessedname": "handleElId", "type": "String", "description": "the id of the element that initiates the drag operation.  By default \nthis is the linked element, but could be changed to be a child of this\nelement.  This lets us do things like only starting the drag when the \nheader element within the linked html element is clicked.", "private": "", "guessedtype": "property"}, "xTicks": {"type": "int[]", "description": "Array of pixel locations the element will snap to if we specified a \nhorizontal graduation/interval.  This array is generated automatically\nwhen you define a tick interval.", "guessedname": "xTicks", "guessedtype": "property"}, "locked": {"guessedname": "locked", "type": "boolean", "description": "Individual drag/drop instances can be locked.  This will prevent \nonmousedown start drag.", "private": "", "guessedtype": "property"}, "useShim": {"type": "Boolean", "description": "If this flag is true, a shim will be placed over the screen/viewable area to track mouse events. Should help with dragging elements over iframes and other controls.", "guessedname": "useShim", "guessedtype": "property"}, "events": {"type": "object", "description": "An Object Literal containing the events that we will be using: mouseDown, b4MouseDown, mouseUp, b4StartDrag, startDrag, b4EndDrag, endDrag, mouseUp, drag, b4Drag, invalidDrop, b4DragOut, dragOut, dragEnter, b4DragOver, dragOver, b4DragDrop, dragDrop\nBy setting any of these to false, then event will not be fired.", "guessedname": "events", "guessedtype": "property"}, "primaryButtonOnly": {"type": "boolean", "description": "By default the drag and drop instance will only respond to the primary\nbutton click (left button for a right-handed mouse).  Set to true to\nallow drag and drop to start with any mouse click that is propogated\nby the browser", "guessedname": "primaryButtonOnly", "guessedtype": "property"}}, "description": "Defines the interface and base operation of items that that can be \ndragged or can be drop targets.  It was designed to be extended, overriding\nthe event handlers for startDrag, onDrag, onDragOver, onDragOut.\nUp to three html elements can be associated with a DragDrop instance:\n<ul>\n<li>linked element: the element that is passed into the constructor.\nThis is the element which defines the boundaries for interaction with \nother DragDrop objects.</li>\n<li>handle element(s): The drag operation only occurs if the element that \nwas clicked matches a handle element.  By default this is the linked \nelement, but there are times that you will want only a portion of the \nlinked element to initiate the drag operation, and the setHandleElId() \nmethod provides a way to define this.</li>\n<li>drag element: this represents an the element that would be moved along\nwith the cursor during a drag operation.  By default, this is the linked\nelement itself as in {@link YAHOO.util.DD}.  setDragElId() lets you define\na separate element that would be moved, as in {@link YAHOO.util.DDProxy}\n</li>\n</ul>\nThis class should not be instantiated until the onload event to ensure that\nthe associated elements are available.\nThe following would define a DragDrop obj that would interact with any \nother DragDrop obj in the \"group1\" group:\n<pre>\ndd = new YAHOO.util.DragDrop(\"div1\", \"group1\");\n</pre>\nSince none of the event handlers have been implemented, nothing would \nactually happen if you were to run the code above.  Normally you would \noverride this class or one of the default implementations, but you can \nalso override the methods you want on an instance of the class...\n<pre>\ndd.onDragDrop = function(e, id) {\n  alert(\"dd was dropped on \" + id);\n}\n</pre>"}, "YAHOO.widget.ColumnSet": {"name": "YAHOO.widget.ColumnSet", "constructors": [{"params": [{"type": "Object[]", "name": "aDefinitions", "description": "  Array of object literals that define cells in\nthe THEAD."}], "description": "The ColumnSet class defines and manages a DataTable's Columns,\nincluding nested hierarchies and access to individual Column instances."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "ColumnSet", "methods": {"getColumn": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "params": [{"type": "String | Number", "name": "column", "description": "  Column key or ColumnSet key index."}], "description": "Returns Column instance with given key or ColumnSet key index.", "guessedname": "getColumn", "guessedtype": "function"}, "getDefinitions": {"return": {"type": "Object[]", "description": "Array of object literal Column definitions."}, "description": "Public accessor to the definitions array.", "guessedname": "getDefinitions", "guessedtype": "function"}, "_init": {"guessedname": "_init", "params": [{"type": "Object[]", "name": "aDefinitions", "description": "  Array of object literals that define cells in\nthe THEAD ."}], "description": "Initializes ColumnSet instance with data from Column definitions.", "private": "", "guessedtype": "function"}, "getId": {"return": {"type": "String", "description": "Unique name of the ColumnSet instance."}, "description": "Returns unique name of the ColumnSet instance.", "guessedname": "getId", "guessedtype": "function"}, "getColumnById": {"return": {"type": "YAHOO.widget.Column", "description": "Column instance."}, "params": [{"type": "String", "name": "column", "description": "  Column ID."}], "description": "Returns Column instance with given ID.", "guessedname": "getColumnById", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the ColumnSet instance."}, "description": "ColumnSet instance name, for logging.", "guessedname": "toString", "guessedtype": "function"}, "getDescendants": {"parem": "{YAHOO.widget.Column} Column instance.", "return": {"type": "Array", "description": "Array including the Column itself and all descendants (if any)."}, "description": "Public accessor returns array of given Column's desendants (if any), including itself.", "guessedname": "getDescendants", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "ColumnSet.js", "guessedtype": "function", "shortname": "ColumnSet", "properties": {"flat": {"default": "[]", "type": "YAHOO.widget.Column[]", "description": "Flattened representation of all Columns.", "guessedname": "flat", "guessedtype": "property"}, "_aDefinitions": {"guessedname": "_aDefinitions", "type": "Object[]", "description": "Array of object literal Column definitions passed to the constructor.", "private": "", "guessedtype": "property"}, "keys": {"default": "[]", "type": "YAHOO.widget.Column[]", "description": "Array of Columns that map one-to-one to a table column.", "guessedname": "keys", "guessedtype": "property"}, "_sId": {"guessedname": "_sId", "type": "String", "description": "Unique instance name.", "private": "", "guessedtype": "property"}, "tree": {"type": "YAHOO.widget.Column[]", "description": "Top-down tree representation of Column hierarchy.", "guessedname": "tree", "guessedtype": "property"}, "ColumnSet._nCount": {"description": "Internal class variable to index multiple ColumnSet instances.", "private": "", "static": "", "guessedname": "_nCount", "guessedtype": "property", "type": "Number"}, "headers": {"default": "[]", "type": "String[]", "description": "ID index of nested parent hierarchies for HEADERS accessibility attribute.", "guessedname": "headers", "guessedtype": "property"}}, "description": "The ColumnSet class defines and manages a DataTable's Columns,\nincluding nested hierarchies and access to individual Column instances."}, "YAHOO.util.SWFStore": {"name": "YAHOO.util.SWFStore", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "Boolean", "name": "shareData", "description": "  Whether or not data should be shared across browsers"}, {"type": "Boolean", "name": "useCompression", "description": "  Container element for the Flash Player instance."}], "description": "Class for the YUI SWFStore util."}], "namespace": "YAHOO.util", "module": "swfstore", "guessedname": "SWFStore", "methods": {"setUseCompression": {"params": [{"type": "Boolean", "name": "Whether", "description": " or to compress stored data"}], "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "setUseCompression", "guessedtype": "function"}, "on": {"params": [{"type": "String", "name": "type", "description": "  The tyep of event to listen for"}, {"type": "String", "name": "listener", "description": "  The function to call"}], "description": "Method to attach listeners to events", "guessedname": "on", "guessedtype": "function"}, "addListener": {"params": [{"type": "String", "name": "type", "description": "  The tyep of event to listen for"}, {"type": "String", "name": "listener", "description": "  The function to call"}], "description": "Method to attach listeners to events", "guessedname": "addListener", "guessedtype": "function"}, "getTypeAt": {"return": {"type": "String", "description": "The type"}, "params": [{"type": "Number", "name": "location", "description": "  The index of the \"cookie\" or store"}], "description": "Returns the data type of of the storage.\n<p>May be one of the following types:\n<ul>\n<li>boolean</li>\n<li>function</li>\n<li>number</li>\n<li>object</li>\n<li>string</li>\n<li>number</li>\n<li>xml</li>\n</ul>\n</p>", "guessedname": "getTypeAt", "guessedtype": "function"}, "calculateCurrentSize": {"return": {"type": "Number", "description": "The size of the store in KB"}, "description": "Gets the current size, in KB, of the amount of space taken by the current store.\nNote that this is calculated, and may take time depending on the number of items stored", "guessedname": "calculateCurrentSize", "guessedtype": "function"}, "getValueAt": {"return": {"type": "Object", "description": "The value of the store at that index"}, "params": [{"type": "Number", "name": "index", "description": "  The index of the stored item"}], "description": "Returns the value of the store at the specified index, if any.", "guessedname": "getValueAt", "guessedtype": "function"}, "displaySettings": {"description": "Displays the settings dialog to allow the user to configure\nstorage settings manually. If the SWF height and width are smaller than\nwhat is allowable to display the local settings panel,\nan openExternalDialog message will be sent to JavaScript.", "guessedname": "displaySettings", "guessedtype": "function"}, "hasAdequateDimensions": {"return": {"type": "Boolean", "description": "Whether or not to share among browsers"}, "description": "Determines if SWF's visible area is large enough to fit the settings panel", "guessedname": "hasAdequateDimensions", "guessedtype": "function"}, "getLength": {"return": {"type": "Number", "description": "The number of items"}, "description": "Returns the number of items in storage, if any.", "guessedname": "getLength", "guessedtype": "function"}, "clear": {"description": "Removes all data in local storage for this domain.\n<p>Be careful when using this method, as it may \nremove stored information that is used by other applications\nin this domain </p>", "guessedname": "clear", "guessedtype": "function"}, "setShareData": {"params": [{"type": "Boolean", "name": "Whether", "description": " or not to share among browsers"}], "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "setShareData", "guessedtype": "function"}, "getTypeOf": {"return": {"type": "String", "description": "The type"}, "params": [{"type": "String", "name": "location", "description": "  The name of the \"cookie\" or store"}], "description": "Returns the data type of of the storage.\n<p>May be one of the following types:\n<ul>\n<li>boolean</li>\n<li>function</li>\n<li>number</li>\n<li>object</li>\n<li>string</li>\n<li>number</li>\n<li>xml</li>\n</ul>\n</p>", "guessedname": "getTypeOf", "guessedtype": "function"}, "getValueOf": {"return": {"type": "Object", "description": "The data"}, "params": [{"type": "String", "name": "location", "description": "  The name of the \"cookie\" or store"}], "description": "Returns the value of the item in storage, if any.", "guessedname": "getValueOf", "guessedtype": "function"}, "getItems": {"public": "", "return": {"type": "Object", "description": "The data."}, "description": "Returns the items in storage as an array.", "guessedname": "getItems", "guessedtype": "function"}, "setItem": {"return": {"type": "Boolean", "description": "Whether or not the save was successful"}, "description": "Saves data to local storage. It returns a String that can\nbe one of three values: \"true\" if the storage succeeded; \"false\" if the user\nhas denied storage on their machine or storage space allotted is not sufficient.\n<p>The size limit for the passed parameters is ~40Kb.</p>", "param": "index {Number} The index of the \"cookie\" or store", "params": [{"type": "Object", "name": "data", "description": "  The data to store"}, {"type": "String", "name": "location", "description": "  The name of the \"cookie\" or store"}], "guessedname": "setItem", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the SWFStore instance."}, "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "toString", "guessedtype": "function"}, "setSize": {"return": {"type": "String", "description": ""}, "params": [{"type": "Number", "name": "value", "description": "  The size, in KB"}], "description": "This method requests more storage (if the amount is above 100KB or the current setting).\nThe request dialog has to be displayed within the Flash player itself\nso the SWF it is called from must be visible and at least 215px x 138px (w x h) in size.", "guessedname": "setSize", "guessedtype": "function"}, "removeItem": {"param": "index {Number} The index of the \"cookie\" or store", "params": [{"type": "String", "name": "location", "description": "  The name of the \"cookie\" or store"}], "description": "Removes the item in storage, if any.", "guessedname": "removeItem", "guessedtype": "function"}, "getShareData": {"return": {"type": "Boolean", "description": "Whether or not data is being shared among browsers"}, "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "getShareData", "guessedtype": "function"}, "getUseCompression": {"return": {"type": "Boolean", "description": "Whether or compression is being used"}, "description": "Public accessor to the unique name of the SWFStore instance.", "guessedname": "getUseCompression", "guessedtype": "function"}, "getModificationDate": {"return": {"type": "Date", "description": "A Date object"}, "description": "Gets the timestamp of the last store. This value is automatically set when \ndata is stored.", "guessedname": "getModificationDate", "guessedtype": "function"}}, "uses": ["YAHOO.util.AttributeProvider"], "file": "swfstore.js", "guessedtype": "function", "shortname": "SWFStore", "events": {"inadequateDimensions": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when a settings dialog is not able to be displayed due to \nthe SWF not being large enough to show it. In this case, the developer\nneeds to resize the SWF to width of 215px and height of 138px or above, \nor display an external settings page."}, "quotaExceededError": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.message", "description": "  The data"}], "description": "Fires when there is not enough space available to store the data"}, "clear": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when a store is successfully cleared"}, "securityError": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.message", "description": "  The data"}], "description": "Fires when the url matching for the security whitelist is invalid.\nIf no whitelist is used, fires when page's url does not match the embedded swf's url"}, "error": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.message", "description": "  The data"}], "description": "Fires when an error occurs", "param": "event.type {String} The event type"}, "save": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when a store is saved successfully"}, "openingDialog": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires as the settings dialog displays"}}, "description": "Class for the YUI SWFStore util."}, "YAHOO.widget.Carousel": {"name": "YAHOO.widget.Carousel", "configs": {"numPages": {"type": "Number", "description": "The number of pages in the carousel."}, "isCircular": {"default": "false", "type": "Boolean", "description": "Set this to true to wrap scrolling of the contents\nin the Carousel."}, "navigation": {"default": "<br>\n{ prev: null, // the previous navigation element<br>\nnext: null } // the next navigation element", "type": "Object", "description": "The set of navigation controls for Carousel"}, "autoPlay": {"deprecated": "Use autoPlayInterval instead.", "type": "Number", "description": "Set this to time in milli-seconds to have the\nCarousel automatically scroll the contents."}, "autoPlayInterval": {"type": "Number", "description": "The delay in milli-seconds for scrolling the\nCarousel during auto-play.\nNote: The startAutoPlay() method needs to be invoked to trigger\nautomatic scrolling of Carousel."}, "numVisible": {"default": "3", "type": "Number", "description": "The number of visible items in the Carousel's\nviewport."}, "selectedItem": {"type": "Number", "description": "The index of the selected item."}, "firstVisible": {"default": "0", "type": "Number", "description": "The index to start the Carousel from (indexes begin\nfrom zero)"}, "selectOnScroll": {"default": "true", "type": "Boolean", "description": "Set this to true to automatically set focus to\nfollow scrolling in the Carousel."}, "animation": {"default": "<br>\n{ speed: 0, // the animation speed (in seconds)<br>\neffect: null } // the animation effect (like\nYAHOO.util.Easing.easeOut)", "type": "Object", "description": "The optional animation attributes for the Carousel."}, "numItems": {"type": "Number", "description": "The number of items in the Carousel."}, "carouselItemEl": {"default": "LI", "type": "Boolean", "description": "The type of the list of items within the Carousel."}, "scrollIncrement": {"default": "1", "type": "Number", "description": "The number of items to scroll by for arrow keys."}, "currentPage": {"type": "Number", "description": "The current page number (read-only.)"}, "carouselEl": {"default": "OL", "type": "Boolean", "description": "The type of the Carousel element."}, "isVertical": {"default": "false", "type": "Boolean", "description": "True if the orientation of the Carousel is vertical"}, "lastVisible": {"type": "Number", "description": "The last item visible in the carousel."}, "revealAmount": {"default": "0", "type": "Number", "description": "The percentage of the item to be revealed on each\nside of the Carousel (before and after the first and last item\nin the Carousel's viewport.)"}}, "constructors": [{"params": [{"type": "HTMLElement | String", "name": "el", "description": "  The HTML element that represents the\nthe container that houses the Carousel."}, {"type": "Object", "name": "cfg", "description": "  (optional) The configuration values"}], "description": "The Carousel widget."}], "namespace": "YAHOO.widget", "module": "carousel", "events": {"selectedItemChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "selectedItemChange", "description": "Fires when the value for the configuration attribute 'selectedItem' changes."}, "itemReplaced": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item has been replaced in the Carousel.\nPasses back the content of the item that was replaced, the content\nof the new item, the index where the replacement occurred, and the event\nitself.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "itemReplacedEvent", "guessedtype": "property"}, "beforeIsCircularChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeIsCircularChange", "description": "Fires before the value for the configuration attribute 'isCircular' changes. Return false to cancel the attribute change."}, "autoPlayIntervalChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "autoPlayIntervalChange", "description": "Fires when the value for the configuration attribute 'autoPlayInterval' changes."}, "show": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is shown.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "showEvent", "guessedtype": "property"}, "loadItems": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel needs more items to be loaded for\ndisplaying them.  Passes back the first and last visible items in the\nCarousel, and the number of items needed to be loaded.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "loadItemsEvent", "guessedtype": "property"}, "focus": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel gains focus.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "focusEvent", "guessedtype": "property"}, "itemAdded": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item has been added to the Carousel.  Passes\nback the content of the item that would be added, the index at which the\nitem would be added, and the event itself.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "itemAddedEvent", "guessedtype": "property"}, "numItemsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "numItemsChange", "description": "Fires when the value for the configuration attribute 'numItems' changes."}, "beforeNumPagesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNumPagesChange", "description": "Fires before the value for the configuration attribute 'numPages' changes. Return false to cancel the attribute change."}, "beforeLastVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLastVisibleChange", "description": "Fires before the value for the configuration attribute 'lastVisible' changes. Return false to cancel the attribute change."}, "currentPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "currentPageChange", "description": "Fires when the value for the configuration attribute 'currentPage' changes."}, "beforeNumVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNumVisibleChange", "description": "Fires before the value for the configuration attribute 'numVisible' changes. Return false to cancel the attribute change."}, "itemRemoved": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item has been removed from the Carousel.\nPasses back the content of the item that would be removed, the index\nfrom which the item would be removed, and the event itself.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "itemRemovedEvent", "guessedtype": "property"}, "carouselElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "carouselElChange", "description": "Fires when the value for the configuration attribute 'carouselEl' changes."}, "autoPlayChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "autoPlayChange", "description": "Fires when the value for the configuration attribute 'autoPlay' changes."}, "beforeHide": {"type": "YAHOO.util.CustomEvent", "description": "Fires before the Carousel is hidden.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "beforeHideEvent", "guessedtype": "property"}, "hide": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is hidden.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "hideEvent", "guessedtype": "property"}, "beforeFirstVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFirstVisibleChange", "description": "Fires before the value for the configuration attribute 'firstVisible' changes. Return false to cancel the attribute change."}, "scrollIncrementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "scrollIncrementChange", "description": "Fires when the value for the configuration attribute 'scrollIncrement' changes."}, "beforeAnimationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimationChange", "description": "Fires before the value for the configuration attribute 'animation' changes. Return false to cancel the attribute change."}, "firstVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "firstVisibleChange", "description": "Fires when the value for the configuration attribute 'firstVisible' changes."}, "selectOnScrollChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "selectOnScrollChange", "description": "Fires when the value for the configuration attribute 'selectOnScroll' changes."}, "navigationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "navigationChange", "description": "Fires when the value for the configuration attribute 'navigation' changes."}, "numPagesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "numPagesChange", "description": "Fires when the value for the configuration attribute 'numPages' changes."}, "beforeAutoPlayIntervalChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAutoPlayIntervalChange", "description": "Fires before the value for the configuration attribute 'autoPlayInterval' changes. Return false to cancel the attribute change."}, "blur": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel loses focus.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "blurEvent", "guessedtype": "property"}, "afterScroll": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel has scrolled to the previous or\nnext page.  Passes back the index of the first and last visible items in\nthe Carousel.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "afterScrollEvent", "guessedtype": "property"}, "beforeSelectOnScrollChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSelectOnScrollChange", "description": "Fires before the value for the configuration attribute 'selectOnScroll' changes. Return false to cancel the attribute change."}, "beforeRevealAmountChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRevealAmountChange", "description": "Fires before the value for the configuration attribute 'revealAmount' changes. Return false to cancel the attribute change."}, "pageChange": {"type": "YAHOO.util.CustomEvent", "description": "Fires after the Carousel has scrolled to the previous or\nnext page.  Passes back the page number of the current page.  Note\nthat the first page number is zero.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "pageChangeEvent", "guessedtype": "property"}, "numVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "numVisibleChange", "description": "Fires when the value for the configuration attribute 'numVisible' changes."}, "itemSelected": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item has been selected in the Carousel.\nPasses back the index of the selected item in the Carousel.  Note, that\nthe index begins from zero.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "itemSelectedEvent", "guessedtype": "property"}, "animationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animationChange", "description": "Fires when the value for the configuration attribute 'animation' changes."}, "beforeNumItemsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNumItemsChange", "description": "Fires before the value for the configuration attribute 'numItems' changes. Return false to cancel the attribute change."}, "beforeScroll": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is about to scroll to the previous\nor next page.  Passes back the index of the first and last visible items\nin the Carousel and the direction (backward/forward) of the scroll.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "beforeScrollEvent", "guessedtype": "property"}, "beforeCurrentPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCurrentPageChange", "description": "Fires before the value for the configuration attribute 'currentPage' changes. Return false to cancel the attribute change."}, "beforeShow": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is about to be shown.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "beforeShowEvent", "guessedtype": "property"}, "revealAmountChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "revealAmountChange", "description": "Fires when the value for the configuration attribute 'revealAmount' changes."}, "beforeSelectedItemChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSelectedItemChange", "description": "Fires before the value for the configuration attribute 'selectedItem' changes. Return false to cancel the attribute change."}, "beforeScrollIncrementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeScrollIncrementChange", "description": "Fires before the value for the configuration attribute 'scrollIncrement' changes. Return false to cancel the attribute change."}, "beforeAutoPlayChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAutoPlayChange", "description": "Fires before the value for the configuration attribute 'autoPlay' changes. Return false to cancel the attribute change."}, "beforeNavigationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNavigationChange", "description": "Fires before the value for the configuration attribute 'navigation' changes. Return false to cancel the attribute change."}, "stopAutoPlay": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the auto play has been stopped in the Carousel.\nSee\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "stopAutoPlayEvent", "guessedtype": "property"}, "beforeCarouselItemElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCarouselItemElChange", "description": "Fires before the value for the configuration attribute 'carouselItemEl' changes. Return false to cancel the attribute change."}, "beforePageChange": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the Carousel is about to scroll to the previous\nor next page.  Passes back the page number of the current page.  Note\nthat the first page number is zero.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "beforePageChangeEvent", "guessedtype": "property"}, "isCircularChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "isCircularChange", "description": "Fires when the value for the configuration attribute 'isCircular' changes."}, "carouselItemElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "carouselItemElChange", "description": "Fires when the value for the configuration attribute 'carouselItemEl' changes."}, "beforeIsVerticalChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeIsVerticalChange", "description": "Fires before the value for the configuration attribute 'isVertical' changes. Return false to cancel the attribute change."}, "beforeCarouselElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCarouselElChange", "description": "Fires before the value for the configuration attribute 'carouselEl' changes. Return false to cancel the attribute change."}, "isVerticalChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "isVerticalChange", "description": "Fires when the value for the configuration attribute 'isVertical' changes."}, "lastVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "lastVisibleChange", "description": "Fires when the value for the configuration attribute 'lastVisible' changes."}, "navigationStateChange": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the state of either one of the navigation\nbuttons are changed from enabled to disabled or vice versa.  Passes back\nthe state (true/false) of the previous and next buttons.  The value true\nsignifies the button is enabled, false signifies disabled.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "navigationStateChangeEvent", "guessedtype": "property"}, "startAutoPlay": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the auto play has started in the Carousel.  See\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "startAutoPlayEvent", "guessedtype": "property"}, "allItemsRemovedEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when all items have been removed from the Carousel.\nSee\n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a>\nfor more information on listening for this event.", "guessedname": "allItemsRemovedEvent", "guessedtype": "property"}}, "guessedname": "Carousel", "methods": {"registerPagination": {"public": "", "params": [{"type": "String", "name": "template", "description": "  Pagination template as passed to lang.substitute"}], "description": "Register carousels pagination template, append to interface, and populate.", "guessedname": "registerPagination", "guessedtype": "function"}, "getVisibleItems": {"public": "", "return": {"type": "Array", "description": "The array of visible items"}, "description": "Return all visible items as an array.", "guessedname": "getVisibleItems", "guessedtype": "function"}, "focus": {"description": "Set focus on the Carousel.", "public": "", "guessedname": "focus", "guessedtype": "function"}, "_setupCarouselNavigation": {"protected": "", "description": "Setup/Create the Carousel navigation element (if needed).", "guessedname": "_setupCarouselNavigation", "guessedtype": "function"}, "initAttributes": {"public": "", "params": [{"type": "Object", "name": "attrs", "description": "  The set of configuration attributes for\ncreating the Carousel."}], "description": "Initialize the configuration attributes used to create the Carousel.", "guessedname": "initAttributes", "guessedtype": "function"}, "_setRevealAmount": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the value for the reveal amount percentage in the Carousel.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for revealAmount"}], "guessedname": "_setRevealAmount", "guessedtype": "function"}, "scrollPageBackward": {"description": "Scroll the Carousel by a page backward.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}, {"type": "Object", "name": "obj", "description": " The context object"}], "guessedname": "scrollPageBackward", "guessedtype": "function", "public": ""}, "_validateScrollIncrement": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the scrollIncrement value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The scrollIncrement value"}], "guessedname": "_validateScrollIncrement", "guessedtype": "function"}, "syncPagerUi": {"description": "Synchronize and redraw the Pager UI if necessary.", "private": ""}, "show": {"description": "Display the Carousel.", "public": "", "guessedname": "show", "guessedtype": "function"}, "_updateNavButtons": {"protected": "", "params": [{"type": "Object", "name": "el", "description": "  The target button"}, {"type": "Boolean", "name": "setFocus", "description": "  True to set focus ring, false otherwise."}], "description": "Set the correct class for the navigation buttons.", "guessedname": "_updateNavButtons", "guessedtype": "function"}, "init": {"public": "", "params": [{"type": "HTMLElement | String", "name": "el", "description": "  The html element that represents\nthe Carousel container."}, {"type": "Object", "name": "attrs", "description": "  The set of configuration attributes for\ncreating the Carousel."}], "description": "Initialize the Carousel.", "guessedname": "init", "guessedtype": "function"}, "getById": {"public": "", "static": "", "description": "Return the appropriate Carousel object based on the id associated with\nthe Carousel element or false if none match.", "guessedname": "getById", "guessedtype": "function"}, "_validateNavigation": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate and navigation parameters.", "protected": "", "params": [{"type": "Object", "name": "cfg", "description": "  The navigation configuration"}], "guessedname": "_validateNavigation", "guessedtype": "function"}, "syncUi": {"params": [{"type": "Object", "name": "o", "description": " The item that needs to be added or removed"}], "description": "Handle UI update.\nCall the appropriate methods on events fired when an item is added, or\nremoved for synchronizing the DOM.", "private": ""}, "parseCarouselItems": {"protected": "", "description": "Find the items within the Carousel and add them to the items table.\nA Carousel item is identified by elements that matches the carousel\nitem element tag.", "guessedname": "_parseCarouselItems", "guessedtype": "function"}, "_syncUiForItemReplace": {"protected": "", "description": "Synchronize and redraw the UI after an item is replaced.", "guessedname": "_syncUiForItemReplace", "guessedtype": "function"}, "getDimensions": {"params": [{"type": "Object", "name": "el", "description": " The element to get the dimensions of"}, {"type": "String", "name": "which", "description": " Get the height or width of an element"}], "description": "Get full dimensions of an element.", "private": ""}, "_pagerClickHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}], "description": "The \"click\" handler for anchor pagination.", "guessedname": "_pagerClickHandler", "guessedtype": "function"}, "removeItem": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Remove an item at index from the Carousel.", "params": [{"type": "Number", "name": "index", "description": "  The position to where in the list (starts from\nzero)."}], "guessedname": "removeItem", "guessedtype": "function", "public": ""}, "_validateRevealAmount": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the revealAmount value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The revealAmount value"}], "guessedname": "_validateRevealAmount", "guessedtype": "function"}, "stopAutoPlay": {"description": "Stop auto-playing the Carousel.", "public": "", "guessedname": "stopAutoPlay", "guessedtype": "function"}, "isAutoPlayOn": {"public": "", "return": {"type": "Boolean", "description": "Return true if autoPlay is \"on\", or false\notherwise."}, "description": "Return true if the auto-scrolling of Carousel is \"on\", or false\notherwise.", "guessedname": "isAutoPlayOn", "guessedtype": "function"}, "_refreshUi": {"protected": "", "description": "Refresh the widget UI if it is not already rendered, on first item\naddition.", "guessedname": "_refreshUi", "guessedtype": "function"}, "getPageForItem": {"return": {"type": "Number", "description": "Page item is on"}, "description": "Get the page an item is on within carousel.", "params": [{"type": "Number", "name": "index", "description": "  Index of item"}], "guessedname": "getPageForItem", "guessedtype": "function", "public": ""}, "_validateNumVisible": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the numVisible value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The numVisible value"}], "guessedname": "_validateNumVisible", "guessedtype": "function"}, "getElementForItems": {"public": "", "return": {"type": "Array", "description": "Return all the items"}, "description": "Return the carouselItemEl for all items in the Carousel.", "guessedname": "getElementForItems", "guessedtype": "function"}, "_animationCompleteHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": " The event."}, {"type": "Array", "name": "p", "description": " The event parameters."}, {"type": "Object", "name": "o", "description": " The object that has the state of the Carousel"}], "description": "Handle the animation complete event.", "guessedname": "_animationCompleteHandler", "guessedtype": "function"}, "_pagerChangeHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}], "description": "The \"onchange\" handler for select box pagination.", "guessedname": "_pagerChangeHandler", "guessedtype": "function"}, "_autoScroll": {"protected": "", "description": "Automatically scroll the contents of the Carousel.", "guessedname": "_autoScroll", "guessedtype": "function"}, "hide": {"description": "Hide the Carousel.", "public": "", "guessedname": "hide", "guessedtype": "function"}, "scrollForward": {"description": "Scroll the Carousel by an item forward.", "public": "", "guessedname": "scrollForward", "guessedtype": "function"}, "getCarouselItemPosition": {"params": [{"type": "Number", "name": "position", "description": "  The position of the Carousel item."}], "description": "Compute and return the position of a Carousel item based on its\nposition.", "private": ""}, "_setSelectedItem": {"protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for \"selected\" item"}], "description": "Set the value for the selected item.", "guessedname": "_setSelectedItem", "guessedtype": "function"}, "_numVisibleSetter": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the value for the number of visible items in the Carousel.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for numVisible"}], "guessedname": "_numVisibleSetter", "guessedtype": "function"}, "_setCarouselOffset": {"protected": "", "description": "Set the Carousel offset to the passed offset.", "guessedname": "_setCarouselOffset", "guessedtype": "function"}, "toString": {"public": "", "return": {"type": "String", "description": ""}, "description": "Return the string representation of the Carousel.", "guessedname": "toString", "guessedtype": "function"}, "replaceItem": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Replace an item at index witin Carousel.", "params": [{"type": "String | Object | HTMLElement", "name": "item", "description": "  The item to be appended\nto the Carousel. If the parameter is a string, it is assumed to be\nthe content of the newly created item. If the parameter is an\nobject, it is assumed to supply the content and an optional class\nand an optional id of the newly created item."}, {"type": "Number", "name": "index", "description": "  The position to where in the list (starts from\nzero)."}], "guessedname": "replaceItem", "guessedtype": "function", "public": ""}, "blur": {"description": "Remove focus from the Carousel.", "public": "", "guessedname": "blur", "guessedtype": "function"}, "getFirstVisibleOnpage": {"return": {"type": "Number", "description": "First item's index"}, "description": "Get the first visible item's index on any given page.", "params": [{"type": "Number", "name": "page", "description": "  Page"}], "guessedname": "getFirstVisibleOnPage", "guessedtype": "function", "public": ""}, "_updatePagerButtons": {"protected": "", "description": "Update the UI for the pager buttons based on the current page and\nthe number of pages.", "guessedname": "_updatePagerButtons", "guessedtype": "function"}, "_syncUiItems": {"protected": "", "description": "Redraw the UI for item positioning.", "guessedname": "_syncUiItems", "guessedtype": "function"}, "addItem": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Insert or append an item to the Carousel.\nE.g. if Object: ({content:\"Your Content\", id:\"\", className:\"\"}, index)", "params": [{"type": "String | Object | HTMLElement", "name": "item", "description": "  The item to be appended\nto the Carousel. If the parameter is a string, it is assumed to be\nthe content of the newly created item. If the parameter is an\nobject, it is assumed to supply the content and an optional class\nand an optional id of the newly created item."}, {"type": "Number", "name": "index", "description": "  optional The position to where in the list\n(starts from zero)."}], "guessedname": "addItem", "guessedtype": "function", "public": ""}, "_setContainerSize": {"protected": "", "params": [{"type": "HTMLElement", "name": "clip", "description": "  The clip container element."}, {"type": "String", "name": "attr", "description": "  Either set the height or width."}], "description": "Set the container size.", "guessedname": "_setContainerSize", "guessedtype": "function"}, "_setNumItems": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the number of items in the Carousel.\nWarning: Setting this to a lower number than the current removes\nitems from the end.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for numItems"}], "guessedname": "_setNumItems", "guessedtype": "function"}, "getLoadingItems": {"public": "", "return": {"type": "Array", "description": "Return all items that are loading in the Carousel."}, "description": "Return all loading items as an array.", "guessedname": "getLoadingItems", "guessedtype": "function"}, "scrollBackward": {"description": "Scroll the Carousel by an item backward.", "public": "", "guessedname": "scrollBackward", "guessedtype": "function"}, "selectNextItem": {"description": "Select the next item in the Carousel.", "public": "", "guessedname": "selectNextItem", "guessedtype": "function"}, "_animateAndSetCarouselOffset": {"protected": "", "params": [{"type": "Integer", "name": "offset", "description": " The offset to which the Carousel has to be\nscrolled to."}, {"type": "Integer", "name": "item", "description": " The index to which the Carousel will scroll."}, {"type": "Integer", "name": "sentinel", "description": " The last element in the view port."}], "description": "Set the Carousel offset to the passed offset after animating.", "guessedname": "_animateAndSetCarouselOffset", "guessedtype": "function"}, "_selectedItemSetter": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the value for selectedItem.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for selectedItem"}], "guessedname": "_selectedItemSetter", "guessedtype": "function"}, "_validateFirstVisible": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the firstVisible value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The first visible value"}], "guessedname": "_validateFirstVisible", "guessedtype": "function"}, "updatePagination": {"description": "Update interface's pagination data within a registered template.", "public": "", "guessedname": "updatePagination", "guessedtype": "function"}, "syncNavigation": {"description": "Fire custom events for enabling/disabling navigation elements.", "private": ""}, "getFirstVisibleForPosition": {"params": [{"type": "Number", "name": "pos", "description": "  The position of the item to be displayed"}], "description": "Return the index of the first item in the view port for displaying item\nin \"pos\".", "private": ""}, "render": {"return": {"type": "Boolean", "description": "Status of the operation"}, "description": "Render the Carousel.", "params": [{"type": "HTMLElement | String", "name": "appendTo", "description": "  The element to which the\nCarousel should be appended prior to rendering."}], "guessedname": "render", "guessedtype": "function", "public": ""}, "replaceItems": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Replace multiple items at specified indexes.\nNOTE: item at index must already exist.", "params": [{"type": "Array} An array containing an array of replacement items each linked to the\nindex where the substitution should take place.\nE.g. [[{content:'<img/>'}, index1], [{content:'<img/>'", "name": "items", "description": " , index2]]"}], "guessedname": "replaceItems", "guessedtype": "function", "public": ""}, "getElementForItem": {"return": {"type": "Element", "description": "Return the item at index or null if not found"}, "description": "Return the carouselItemEl at index or null if the index is not\nfound.", "params": [{"type": "Number", "name": "index", "description": "  The index of the item to be returned"}], "guessedname": "getElementForItem", "guessedtype": "function", "public": ""}, "_setNumVisible": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Clip the container size every time numVisible is set.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for numVisible"}], "guessedname": "_setNumVisible", "guessedtype": "function"}, "_keyboardEventHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": "  The event that is being handled."}], "description": "The keyboard event handler for Carousel.", "guessedname": "_keyboardEventHandler", "guessedtype": "function"}, "addItems": {"return": {"type": "Boolean", "description": "Return true on success, false otherwise"}, "description": "Insert or append multiple items to the Carousel.", "params": [{"type": "Array} An array containing an array of new items each linked to the\nindex where the insertion should take place.\nE.g. [[{content:'<img/>'}, index1], [{content:'<img/>'", "name": "items", "description": " , index2]]\nNOTE: An item at index must already exist."}], "guessedname": "addItems", "guessedtype": "function", "public": ""}, "scrollPageForward": {"description": "Scroll the Carousel by a page forward.", "private": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}, {"type": "Object", "name": "obj", "description": " The context object"}], "guessedname": "scrollPageForward", "guessedtype": "function", "public": ""}, "initEvents": {"description": "Initialize and bind the event handlers.", "public": "", "guessedname": "initEvents", "guessedtype": "function"}, "_getSelectedItem": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Get the value for the selected item.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for \"selected\" item"}], "guessedname": "_getSelectedItem", "guessedtype": "function"}, "_syncUiForLazyLoading": {"protected": "", "description": "Synchronize and redraw the UI for lazy loading.", "guessedname": "_syncUiForLazyLoading", "guessedtype": "function"}, "createCarouselClip": {"protected": "", "description": "Create the Carousel clip container.", "guessedname": "_createCarouselClip", "guessedtype": "function"}, "_updatePagerMenu": {"protected": "", "description": "Update the UI for the pager menu based on the current page and\nthe number of pages.  If the number of pages is greater than\nMAX_PAGER_BUTTONS, then the selection of pages is provided by a drop\ndown menu instead of a set of buttons.", "guessedname": "_updatePagerMenu", "guessedtype": "function"}, "parseCarousel": {"return": {"type": "Boolean", "description": "True if Carousel is found, false otherwise"}, "description": "Find the Carousel within a container. The Carousel is identified by\nthe first element that matches the carousel element tag or the\nelement that has the Carousel class.", "protected": "", "params": [{"type": "HTMLElement", "name": "parent", "description": "  The parent element to look under"}], "guessedname": "_parseCarousel", "guessedtype": "function"}, "getScrollOffset": {"params": [{"type": "Number", "name": "delta", "description": "  The delta number of elements to scroll by."}], "description": "Return the scrolling offset size given the number of elements to\nscroll.", "private": ""}, "_getValidIndex": {"return": {"type": "Object", "description": "Return a valid item index"}, "description": "Return a valid item for a possibly out of bounds index considering\nthe isCircular property.", "protected": "", "params": [{"type": "Number", "name": "index", "description": "  The index of the item to be returned"}], "guessedname": "_getValidIndex", "guessedtype": "function"}, "createElement": {"params": [{"type": "String", "name": "el", "description": "  The element to be created"}, {"type": "Object", "name": "attrs", "description": "  Configuration of parent, class and id attributes.\nIf the content is specified, it is inserted after creation of the\nelement. The content can also be an HTML element in which case it would\nbe appended as a child node of the created element."}], "description": "Create an element, set its class name and optionally install the element\nto its parent.", "private": ""}, "setItemSelection": {"params": [{"type": "Number", "name": "newpos", "description": " The index of the new position"}, {"type": "Number", "name": "oldpos", "description": " The index of the previous position"}], "description": "Set the selected item.", "private": ""}, "_syncUiForItemAdd": {"protected": "", "description": "Synchronize and redraw the UI after an item is added.", "guessedname": "_syncUiForItemAdd", "guessedtype": "function"}, "createCarouselItem": {"protected": "", "params": [{"type": "Object", "name": "obj", "description": "  The attributes of the element to be created"}], "description": "Create the Carousel item.", "guessedname": "_createCarouselItem", "guessedtype": "function"}, "_setFirstVisible": {"return": {"type": "Number", "description": "The new value that would be set"}, "description": "Set the value for the Carousel's first visible item.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The new value for firstVisible"}], "guessedname": "_setFirstVisible", "guessedtype": "function"}, "_validateNumItems": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate the numItems value.", "protected": "", "params": [{"type": "Number", "name": "val", "description": "  The numItems value"}], "guessedname": "_validateNumItems", "guessedtype": "function"}, "getItemPositionById": {"public": "", "params": [{"type": "Number", "name": "index", "description": "  The index of the item to be returned"}], "description": "Return the position of the Carousel item that has the id \"id\", or -1\nif the id is not found.", "guessedname": "getItemPositionById", "guessedtype": "function"}, "scrollTo": {"public": "", "params": [{"type": "", "name": "item", "description": " Number The index of the element to position at."}, {"type": "", "name": "dontSelect", "description": " Boolean True if select should be avoided"}], "description": "Scroll the Carousel to make the item the first visible item.", "guessedname": "scrollTo", "guessedtype": "function"}, "_getNumPages": {"protected": "", "description": "Get the total number of pages.", "guessedname": "_getNumPages", "guessedtype": "function"}, "selectPreviousItem": {"description": "Select the previous item in the Carousel.", "public": "", "guessedname": "selectPreviousItem", "guessedtype": "function"}, "getRevealSize": {"description": "Return the size of a part of the item (reveal).", "private": ""}, "updateStateAfterScroll": {"params": [{"type": "Integer", "name": "item", "description": " The index to which the Carousel has scrolled to."}, {"type": "Integer", "name": "sentinel", "description": " The last element in the view port."}], "description": "Update the state variables after scrolling the Carousel view port.", "private": ""}, "_updateTabIndex": {"protected": "", "params": [{"type": "Object", "name": "el", "description": "  The element to be focussed"}], "description": "Set the correct tab index for the Carousel items.", "guessedname": "_updateTabIndex", "guessedtype": "function"}, "clearItems": {"description": "Clears the items from Carousel.", "public": "", "guessedname": "clearItems", "guessedtype": "function"}, "_validateAnimation": {"return": {"type": "Boolean", "description": "The status of the validation"}, "description": "Validate animation parameters.", "protected": "", "params": [{"type": "Object", "name": "cfg", "description": "  The animation configuration"}], "guessedname": "_validateAnimation", "guessedtype": "function"}, "_getLastVisible": {"protected": "", "description": "Get the index of the last visible item", "guessedname": "_getLastVisible", "guessedtype": "function"}, "setStyles": {"params": [{"type": "HTMLElement", "name": "el", "description": "  The element to set styles on"}, {"type": "Object", "name": "style", "description": "  top:\"10px\", left:\"0px\", etc."}], "description": "Set multiple styles on one element.", "private": ""}, "_setNavigation": {"return": {"type": "Object", "description": "The new value that would be set"}, "description": "Set the value for the Carousel's navigation.", "protected": "", "params": [{"type": "Object", "name": "cfg", "description": "  The navigation configuration"}], "guessedname": "_setNavigation", "guessedtype": "function"}, "isAnimating": {"public": "", "return": {"type": "Boolean", "description": "Return true if animation is still in progress, or\nfalse otherwise."}, "description": "Return true if the Carousel is still animating, or false otherwise.", "guessedname": "isAnimating", "guessedtype": "function"}, "_setOrientation": {"return": {"type": "Boolean", "description": "The new value that would be set"}, "description": "Set the orientation of the Carousel.", "protected": "", "params": [{"type": "Boolean", "name": "val", "description": "  The new value for isVertical"}], "guessedname": "_setOrientation", "guessedtype": "function"}, "_itemClickHandler": {"protected": "", "params": [{"type": "Event", "name": "ev", "description": " The event object"}], "description": "The \"click\" handler for the item.", "guessedname": "_itemClickHandler", "guessedtype": "function"}, "getItems": {"public": "", "return": {"type": "Array", "description": "Return all items in the Carousel"}, "description": "Return all items as an array.", "guessedname": "getItems", "guessedtype": "function"}, "getStyle": {"params": [{"type": "HTMLElement", "name": "el", "description": "  The element for which the style needs to be\nreturned."}, {"type": "String", "name": "style", "description": "  The style attribute"}, {"type": "String", "name": "type", "description": "  \"int\", \"float\", etc. (defaults to int)"}], "description": "Get the computed style of an element.", "private": ""}, "createCarousel": {"protected": "", "params": [{"type": "String", "name": "elId", "description": "  The id of the element to be created"}], "description": "Create the Carousel.", "guessedname": "_createCarousel", "guessedtype": "function"}, "getItem": {"return": {"type": "Object", "description": "Return the item at index or null if not found"}, "description": "Return the item at index or null if the index is not found.", "params": [{"type": "Number", "name": "index", "description": "  The index of the item to be returned"}], "guessedname": "getItem", "guessedtype": "function", "public": ""}, "_loadItems": {"protected": "", "description": "The load the required set of items that are needed for display.", "guessedname": "_loadItems", "guessedtype": "function"}, "parseCarouselNavigation": {"return": {"type": "Boolean", "description": "True if at least one is found, false otherwise"}, "description": "Find the Carousel navigation within a container. The navigation\nelements need to match the carousel navigation class names.", "protected": "", "params": [{"type": "HTMLElement", "name": "parent", "description": "  The parent element to look under"}], "guessedname": "_parseCarouselNavigation", "guessedtype": "function"}, "getCarouselItemSize": {"params": [{"type": "String", "name": "which", "description": "  \"height\" or \"width\" to be returned.  If this is\npassed explicitly, the calculated size is not cached."}], "description": "Compute and return the height or width of a single Carousel item\ndepending upon the orientation.", "private": ""}, "_setClipContainerSize": {"protected": "", "params": [{"type": "HTMLElement", "name": "clip", "description": "  The clip container element."}, {"type": "Number", "name": "num", "description": "  optional The number of items per page."}], "description": "Set the clip container size (based on the new numVisible value).", "guessedname": "_setClipContainerSize", "guessedtype": "function"}, "startAutoPlay": {"description": "Start auto-playing the Carousel.", "public": "", "guessedname": "startAutoPlay", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "Carousel.js", "guessedtype": "function", "shortname": "Carousel", "properties": {"NEXT_PAGE": {"default": "\"yui-carousel-next\"", "description": "The class name of the next navigation link. This variable is\nnot only used for styling, but also for identifying the link\nwithin the Carousel container.", "guessedname": "NEXT_PAGE", "guessedtype": "property"}, "_rows": {"private": "", "description": "Number of rows for a multirow carousel.", "guessedname": "_rows", "guessedtype": "property"}, "_hasFocus": {"private": "", "description": "Does the Carousel element have focus?", "guessedname": "_hasFocus", "guessedtype": "property"}, "_animObj": {"private": "", "description": "The Animation object.", "guessedname": "_animObj", "guessedtype": "property"}, "_itemsTable": {"private": "", "description": "The table of items in the Carousel.\nThe numItems is the number of items in the Carousel, items being the\narray of items in the Carousel.  The size is the size of a single\nitem in the Carousel.  It is cached here for efficiency (to avoid\ncomputing the size multiple times).", "guessedname": "_itemsTable", "guessedtype": "property"}, "VERT_MIN_WIDTH": {"default": "155", "description": "The minimum width of the vertical Carousel container to support\nthe navigation buttons.", "guessedname": "VERT_MIN_WIDTH", "guessedtype": "property"}, "instances": {"guessedname": "instances", "static": "", "description": "The internal table of Carousel instances.", "private": "", "guessedtype": "property"}, "MULTI_ROW": {"default": "\"yui-carousel-multi-row\"", "description": "The class name of a multirow Carousel.", "guessedname": "MULTI_ROW", "guessedtype": "property"}, "_isAutoPlayInProgress": {"private": "", "description": "Is the auto-scrolling of Carousel in progress?", "guessedname": "_isAutoPlayInProgress", "guessedtype": "property"}, "MIN_WIDTH": {"default": "\"yui-carousel-min-width\"", "description": "The class name that will be set if the Carousel adjusts itself\nfor a minimum width.", "guessedname": "MIN_WIDTH", "guessedtype": "property"}, "HORIZONTAL": {"default": "\"yui-carousel-horizontal\"", "description": "The class name of a horizontally oriented Carousel.", "guessedname": "HORIZONTAL", "guessedtype": "property"}, "_isAnimationInProgress": {"private": "", "description": "Is the animation still in progress?", "guessedname": "_isAnimationInProgress", "guessedtype": "property"}, "_prevEnabled": {"private": "", "description": "Status of the previous navigation item.", "guessedname": "_prevEnabled", "guessedtype": "property"}, "NEXT_BUTTON_TEXT": {"default": "\"Next Page\"", "description": "The next navigation button name/text.", "guessedname": "NEXT_BUTTON_TEXT", "guessedtype": "property"}, "_hasRendered": {"private": "", "description": "Is the Carousel rendered already?", "guessedname": "_hasRendered", "guessedtype": "property"}, "VERTICAL_CONTAINER": {"default": "\"yui-carousel-vertical-container\"", "description": "The class name of a vertical Carousel's container element.", "guessedname": "VERTICAL_CONTAINER", "guessedtype": "property"}, "PREVIOUS_BUTTON_TEXT": {"default": "\"Previous Page\"", "description": "The previous navigation button name/text.", "guessedname": "PREVIOUS_BUTTON_TEXT", "guessedtype": "property"}, "PREV_PAGE": {"default": "\"yui-carousel-prev\"", "description": "The class name of the previous navigation link. This variable\nis not only used for styling, but also for identifying the link\nwithin the Carousel container.", "guessedname": "PREV_PAGE", "guessedtype": "property"}, "_pagination": {"private": "", "description": "The Carousel pagination structure.", "guessedname": "_pagination", "guessedtype": "property"}, "FIRST_NAV_DISABLED": {"default": "\"yui-carousel-first-button-disabled\"", "description": "The class name of a first disabled navigation button.", "guessedname": "FIRST_NAV_DISABLED", "guessedtype": "property"}, "FIRST_PAGE": {"default": "\"yui-carousel-nav-first-page\"", "description": "The class name of a first page element.", "guessedname": "FIRST_PAGE", "guessedtype": "property"}, "_navBtns": {"private": "", "description": "The Carousel navigation buttons.", "guessedname": "_navBtns", "guessedtype": "property"}, "CAROUSEL": {"default": "\"yui-carousel\"", "description": "The class name of the Carousel element.", "guessedname": "CAROUSEL", "guessedtype": "property"}, "_nextEnabled": {"private": "", "description": "Status of the next navigation item.", "guessedname": "_nextEnabled", "guessedtype": "property"}, "CAROUSEL_EL": {"default": "\"yui-carousel-element\"", "description": "The class name of the container of the items in the Carousel.", "guessedname": "CAROUSEL_EL", "guessedtype": "property"}, "_pages": {"private": "", "description": "The Carousel pages structure.\nThis is an object of the total number of pages and the current page.", "guessedname": "_pages", "guessedtype": "property"}, "NAVIGATION": {"default": "\"yui-carousel-nav\"", "description": "The navigation element container class name.", "guessedname": "NAVIGATION", "guessedtype": "property"}, "_carouselEl": {"private": "", "description": "The Carousel element.", "guessedname": "_carouselEl", "guessedtype": "property"}, "ROW": {"default": "\"yui-carousel-new-row\"", "description": "The class name of a row in a multirow Carousel.", "guessedname": "ROW", "guessedtype": "property"}, "NUM_VISIBLE": {"default": "3", "description": "The number of visible items in the Carousel.", "guessedname": "NUM_VISIBLE", "guessedtype": "property"}, "PAGER_ITEM": {"default": "\"yui-carousel-pager-item\"", "description": "The class name for an item in the pager UL or dropdown menu.", "guessedname": "PAGER_ITEM", "guessedtype": "property"}, "CONTAINER": {"default": "\"yui-carousel-container\"", "description": "The class name of the Carousel's container element.", "guessedname": "CONTAINER", "guessedtype": "property"}, "VERTICAL": {"default": "\"yui-carousel-vertical\"", "description": "The class name of a vertically oriented Carousel.", "guessedname": "VERTICAL", "guessedtype": "property"}, "WidgetName": {"guessedname": "WidgetName", "static": "", "description": "The widget name.", "private": "", "guessedtype": "property"}, "ITEM_LOADING": {"default": "The progress indicator (spinner) image CSS class", "description": "The element to be used as the progress indicator when the item\nis still being loaded.", "guessedname": "ITEM_LOADING", "guessedtype": "property"}, "VISIBLE": {"default": "\"yui-carousel-visible\"", "description": "The class name of a visible Carousel.", "guessedname": "VISIBLE", "guessedtype": "property"}, "_navEl": {"private": "", "description": "The Carousel navigation.", "guessedname": "_navEl", "guessedtype": "property"}, "_cols": {"private": "", "description": "Number of cols for a multirow carousel.", "guessedname": "_cols", "guessedtype": "property"}, "CONTENT": {"default": "\"yui-carousel-content\"", "description": "The class name of the Carousel's container element.", "guessedname": "CONTENT", "guessedtype": "property"}, "SELECTED_NAV": {"default": "\"yui-carousel-nav-page-selected\"", "description": "The class name of the selected paging navigation.", "guessedname": "SELECTED_NAV", "guessedtype": "property"}, "MAX_PAGER_BUTTONS": {"default": "5", "description": "The maximum number of pager buttons allowed beyond which the UI\nof the pager would be a drop-down of pages instead of buttons.", "guessedname": "MAX_PAGER_BUTTONS", "guessedtype": "property"}, "DISABLED": {"default": "\"yui-carousel-button-disabled\"", "description": "The class name of a disabled navigation button.", "guessedname": "DISABLED", "guessedtype": "property"}, "SELECTED_ITEM": {"default": "\"yui-carousel-item-selected\"", "description": "The class name of the selected item.", "guessedname": "SELECTED_ITEM", "guessedtype": "property"}, "ITEM_LOADING_CONTENT": {"default": "\"Loading\"", "description": "The content to be used as the progress indicator when the item\nis still being loaded.", "guessedname": "ITEM_LOADING_CONTENT", "guessedtype": "property"}, "FIRST_VISIBLE": {"default": "0", "description": "The offset of the first visible item in the Carousel.", "guessedname": "FIRST_VISIBLE", "guessedtype": "property"}, "_itemAttrCache": {"private": "", "description": "Cache the Carousel item attributes.", "guessedname": "_itemAttrCache", "guessedtype": "property"}, "PAGINATION": {"default": "\"yui-carousel-pagination\"", "description": "The class name for the pagination container", "guessedname": "PAGINATION", "guessedtype": "property"}, "PAGER_PREFIX_TEXT": {"default": "\"Go to page \"", "description": "The prefix text for the pager in case the UI is a drop-down.", "guessedname": "PAGER_PREFIX_TEXT", "guessedtype": "property"}, "PAGE_FOCUS": {"default": "\"yui-carousel-nav-page-focus\"", "description": "The class name of the focussed page navigation.  This class is\nspecifically used for the ugly focus handling in Opera.", "guessedname": "PAGE_FOCUS", "guessedtype": "property"}, "_clipEl": {"private": "", "description": "The Carousel clipping container element.", "guessedname": "_clipEl", "guessedtype": "property"}, "BUTTON": {"default": "\"yui-carousel-button\"", "description": "The class name of the Carousel navigation buttons.", "guessedname": "BUTTON", "guessedtype": "property"}, "_firstItem": {"private": "", "description": "The current first index of the Carousel.", "guessedname": "_firstItem", "guessedtype": "property"}, "_recomputeSize": {"private": "", "description": "Whether the Carousel size needs to be recomputed or not?", "guessedname": "_recomputeSize", "guessedtype": "property"}, "FIRST_NAV": {"default": "\" yui-carousel-first-button\"", "description": "The class name of the first Carousel navigation button.", "guessedname": "FIRST_NAV", "guessedtype": "property"}, "NAV_CONTAINER": {"default": "\"yui-carousel-buttons\"", "description": "The class name for the navigation container for prev/next.", "guessedname": "NAV_CONTAINER", "guessedtype": "property"}, "FOCUSSED_BUTTON": {"default": "\"yui-carousel-button-focus\"", "description": "The class name of the Carousel navigation button that has focus.", "guessedname": "FOCUSSED_BUTTON", "guessedtype": "property"}, "NEXT_NAV": {"default": "\" yui-carousel-next-button\"", "description": "The class name of the next Carousel navigation button.", "guessedname": "NEXT_NAV", "guessedtype": "property"}, "HORZ_MIN_WIDTH": {"default": "180", "description": "The minimum width of the horizontal Carousel container to support\nthe navigation buttons.", "guessedname": "HORZ_MIN_WIDTH", "guessedtype": "property"}}, "description": "The Carousel widget."}, "YAHOO.widget.TreeView": {"name": "YAHOO.widget.TreeView", "constructors": [{"params": [{"type": "string|HTMLElement", "name": "id", "description": " The id of the element, or the element itself that the tree will be inserted into.  \nExisting markup in this element, if valid, will be used to build the tree"}, {"type": "Array|Object|String", "name": "oConfig", "description": " (optional)  If present, it will be used to build the tree via method <a href=\"#method_buildTreeFromObject\">buildTreeFromObject</a>"}], "description": "Contains the tree view state data and the root node."}], "namespace": "YAHOO.widget", "module": "treeview", "events": {"enterKeyPressed": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that has the focus"}], "description": "Fires when the Enter key is pressed on a node that has the focus"}, "labelClick": {"deprecated": "use clickEvent or dblClickEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node clicked"}], "description": "Custom event that is fired when the text node label is clicked. \nThe node clicked is  provided as an argument", "type": "CustomEvent"}, "editorSaveEvent": {"type": "CustomEvent", "params": [{"type": "mixed", "name": "oArgs.newValue", "description": "  the new value just entered"}, {"type": "mixed", "name": "oArgs.oldValue", "description": "  the value originally in the tree"}, {"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": "  the node that has the focus"}], "description": "Fires when the user clicks on the ok button of a node editor"}, "collapse": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that is collapsing"}], "description": "Fires when a node is going to be collapsed.  Return false to stop\nthe collapse."}, "highlightEvent": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": "  the node that started the change in highlighting state"}], "description": "Custom event fired when the highlight of a node changes.\nThe node that triggered the change is provided as an argument:\nThe status of the highlight can be checked in \n<a href=\"YAHOO.widget.Node.html#property_highlightState\">nodeRef.highlightState</a>.\nDepending on <a href=\"YAHOO.widget.Node.html#property_propagateHighlight\">nodeRef.propagateHighlight</a>, other nodes might have changed"}, "dblClickEvent": {"type": "CustomEvent", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "   The event object"}, {"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": "  node the node that was clicked"}], "description": "Fires when the label in a TextNode or MenuNode or content in an HTMLNode receives a double Click", "guessedname": "self", "guessedtype": "property"}, "focusChanged": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "oArgs.oldNode", "description": "   Node that had the focus or null if none"}, {"type": "YAHOO.widget.Node", "name": "oArgs.newNode", "description": "  Node that receives the focus or null if none"}], "description": "Fires when the focus receives the focus, when it changes from a Node \nto another Node or when it is completely lost (blurred)"}, "collapseComplete": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that was collapsed"}], "description": "Fires after a node is successfully collapsed.  This event will not fire\nif the \"collapse\" event was cancelled."}, "editorCancelEvent": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that has the focus"}], "description": "Fires when the user clicks on the cancel button of a node editor"}, "animComplete": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": " the node that is expanding/collapsing"}, {"type": "String", "name": "oArgs.type", "description": " the type of animation (\"expand\" or \"collapse\")"}], "description": "When animation is enabled, this event fires when the animation\ncompletes"}, "expandComplete": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that was expanded"}], "description": "Fires after a node is successfully expanded.  This event will not fire\nif the \"expand\" event was cancelled."}, "animStart": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": " the node that is expanding/collapsing"}, {"type": "String", "name": "oArgs.type", "description": " the type of animation (\"expand\" or \"collapse\")"}], "description": "When animation is enabled, this event fires when the animation\nstarts"}, "clickEvent": {"type": "CustomEvent", "params": [{"type": "HTMLEvent", "name": "oArgs.event", "description": "   The event object"}, {"type": "YAHOO.widget.Node", "name": "oArgs.node", "description": "  node the node that was clicked"}], "description": "Fires when the label in a TextNode or MenuNode or content in an HTMLNode receives a Click.\nThe listener may return false to cancel toggling and focusing on the node."}, "expand": {"type": "CustomEvent", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": " the node that is expanding"}], "description": "Fires when a node is going to be expanded.  Return false to stop\nthe collapse."}}, "guessedname": "TreeView", "methods": {"animateExpand": {"return": {"type": "boolean", "description": "true if animation could be invoked, false otherwise"}, "params": [{"type": "HTMLElement", "name": "el", "description": "  the element to animate"}, {"type": "YAHOO.util.Node", "name": "node", "description": "  the node that was expanded"}], "description": "Perform the expand animation if configured, or just show the\nelement if not configured or too many animations are in progress", "guessedname": "animateExpand", "guessedtype": "function"}, "setDynamicLoad": {"params": [{"type": "function", "name": "fnDataLoader", "description": " the function that will be called to get the data"}, {"type": "int", "name": "iconMode", "description": "  configures the icon that is displayed when a dynamic\nload node is expanded the first time without children.  By default, the \n\"collapse\" icon will be used.  If set to 1, the leaf node icon will be\ndisplayed."}], "description": "Configures this tree to dynamically load all child data", "guessedname": "setDynamicLoad", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the tree"}, "description": "TreeView instance toString", "guessedname": "toString", "guessedtype": "function"}, "render": {"description": "Renders the tree boilerplate and visible nodes", "guessedname": "render", "guessedtype": "function"}, "getNodeByIndex": {"return": {"type": "Node", "description": "the node with index=nodeIndex, null if no match"}, "params": [{"type": "int", "name": "nodeIndex", "description": " the index of the node wanted"}], "description": "Returns a node in the tree that has the specified index (this index\nis created internally, so this function probably will only be used\nin html generated for a given node.)", "guessedname": "getNodeByIndex", "guessedtype": "function"}, "_onMouseOverEvent": {"private": "", "description": "Event listener for mouse over events", "guessedname": "_onMouseOverEvent", "guessedtype": "function"}, "collapseComplete": {"description": "Function executed when the collapse animation completes", "guessedname": "collapseComplete", "guessedtype": "function"}, "setNodesProperty": {"params": [{"type": "string", "name": "name", "description": "  Name of the property to be set"}, {"type": "any", "name": "value", "description": "  value to be set"}, {"type": "boolean", "name": "refresh", "description": "  if present and true, it does a refresh"}], "description": "Sets the value of a property for all loaded nodes in the tree.", "guessedname": "setNodesProperty", "guessedtype": "function"}, "_onDblClickEvent": {"private": "", "description": "Event listener for double-click events", "guessedname": "_onDblClickEvent", "guessedtype": "function"}, "regNode": {"guessedname": "regNode", "params": [{"type": "Node", "name": "node", "description": "  the node to register"}], "description": "Nodes register themselves with the tree instance when they are created.", "private": "", "guessedtype": "function"}, "onEventToggleHighlight": {"return": {"type": "false", "description": "Always cancels the default action for the event"}, "params": [{"type": "any", "name": "oArgs", "description": "  it takes the arguments of any of the events mentioned above"}], "description": "Event listener to toggle node highlight.\nCan be assigned as listener to clickEvent, dblClickEvent and enterKeyPressed.\nIt returns false to prevent the default action.", "guessedname": "onEventToggleHighlight", "guessedtype": "function"}, "onExpand": {"deprecated": "use treeobj.subscribe(\"expand\") instead", "params": [{"type": "Node", "name": "node", "description": "  the node that was expanded"}], "description": "Abstract method that is executed when a node is expanded", "guessedname": "onExpand", "guessedtype": "function"}, "_initEditor": {"guessedname": "_initEditor", "description": "Entry point for initializing the editing plug-in.  \nTreeView will call this method on initializing if it exists", "private": "", "guessedtype": "function"}, "setExpandAnim": {"params": [{"type": "string", "name": "type", "description": " the type of animation (acceptable values defined \nin YAHOO.widget.TVAnim)"}], "description": "Sets up the animation for expanding children", "guessedname": "setExpandAnim", "guessedtype": "function"}, "YAHOO.widget.TreeView.getTree": {"return": {"type": "TreeView", "description": "the tree instance requested, null if not found."}, "description": "Global method for getting a tree by its id.  Used in the generated\ntree html.", "static": "", "guessedname": "getTree", "guessedtype": "function", "params": [{"type": "String", "name": "treeId", "description": "  the id of the tree instance"}]}, "_onMouseOutEvent": {"private": "", "description": "Event listener for mouse out events", "guessedname": "_onMouseOutEvent", "guessedtype": "function"}, "removeNode": {"return": {"type": "boolean", "description": "False is there was a problem, true otherwise."}, "params": [{"type": "Node", "name": "node", "description": " to remove"}, {"type": "boolean", "name": "autoRefresh", "description": " automatically refreshes branch if true"}], "description": "Removes the node and its children, and optionally refreshes the \nbranch of the tree that was affected.", "guessedname": "removeNode", "guessedtype": "function"}, "_getEventTargetTdEl": {"private": "", "description": "Returns the TD element where the event has occurred", "guessedname": "_getEventTargetTdEl", "guessedtype": "function"}, "popNode": {"params": [{"type": "Node", "name": "node", "description": " to remove"}], "description": "Removes the node from the tree, preserving the child collection \nto make it possible to insert the branch into another part of the \ntree, or another tree.", "guessedname": "popNode", "guessedtype": "function"}, "onCollapse": {"deprecated": "use treeobj.subscribe(\"collapse\") instead", "params": [{"type": "Node", "name": "node", "description": "  the node that was collapsed."}], "description": "Abstract method that is executed when a node is collapsed.", "guessedname": "onCollapse", "guessedtype": "function"}, "init": {"guessedname": "init", "parm": "{string|HTMLElement} id the id of the element that will hold the tree", "description": "Initializes the tree", "private": "", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": "the host element"}, "description": "Returns the tree's host element", "guessedname": "getEl", "guessedtype": "function"}, "removeChildren": {"params": [{"type": "Node", "name": "node", "description": " the node to purge"}], "description": "Deletes this nodes child collection, recursively.  Also collapses\nthe node, and resets the dynamic load flag.  The primary use for\nthis method is to purge a node and allow it to fetch its data\ndynamically again.", "guessedname": "removeChildren", "guessedtype": "function"}, "_onKeyDownEvent": {"private": "", "description": "Event listener for key down events", "guessedname": "_onKeyDownEvent", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire TreeView instance and related objects, removes attached\nevent listeners, and clears out DOM elements inside the container. After\ncalling this method, the instance reference should be expliclitly nulled by\nimplementer, as in myDataTable = null. Use with caution!", "guessedname": "destroy", "guessedtype": "function"}, "animateCollapse": {"return": {"type": "boolean", "description": "true if animation could be invoked, false otherwise"}, "params": [{"type": "HTMLElement", "name": "el", "description": "  the element to animate"}, {"type": "YAHOO.util.Node", "name": "node", "description": "  the node that was expanded"}], "description": "Perform the collapse animation if configured, or just show the\nelement if not configured or too many animations are in progress", "guessedname": "animateCollapse", "guessedtype": "function"}, "getHighlightedNode": {"return": {"type": "YAHOO.widget.Node", "description": "a node reference or null"}, "description": "When in singleNodeHighlight it returns the node highlighted\nor null if none.  Returns null if singleNodeHighlight is false.", "guessedname": "getHighlightedNode", "guessedtype": "function"}, "expandAll": {"description": "Expands all child nodes.  Note: this conflicts with the \"multiExpand\"\nnode property.  If expand all is called in a tree with nodes that\ndo not allow multiple siblings to be displayed, only the last sibling\nwill be expanded.", "guessedname": "expandAll", "guessedtype": "function"}, "getNodeCount": {"return": {"type": "int", "description": "number of nodes in the tree"}, "description": "Count of nodes in tree", "guessedname": "getNodeCount", "guessedtype": "function"}, "draw": {"deprecated": "Use render instead", "description": "Renders the tree boilerplate and visible nodes.\nAlias for render", "guessedname": "draw", "guessedtype": "property"}, "getTreeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if any node is defined as dynamic"}, "description": "Returns an object which could be used to rebuild the tree.\nIt can be passed to the tree constructor to reproduce the same tree.\nIt will return false if any node loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getTreeDefinition", "guessedtype": "function"}, "YAHOO.widget.TreeView.getNode": {"return": {"type": "Node", "description": "the node instance requested, null if not found"}, "description": "Global method for getting a node by its id.  Used in the generated\ntree html.", "static": "", "guessedname": "getNode", "guessedtype": "function", "params": [{"type": "String", "name": "treeId", "description": "  the id of the tree instance"}, {"type": "String", "name": "nodeIndex", "description": "  the index of the node to return"}]}, "getNodeByProperty": {"return": {"type": "Node", "description": "the matching node, null if no match"}, "params": [{"type": "object", "name": "property", "description": " the property to search (usually a string)"}, {"type": "object", "name": "value", "description": " the value we want to find (usuall an int or string)"}], "description": "Returns a node that has a matching property and value in the data\nobject that was passed into its constructor.", "guessedname": "getNodeByProperty", "guessedtype": "function"}, "getNodesBy": {"return": {"type": "Array", "description": "the matching collection of nodes, null if no match"}, "params": [{"type": "function", "name": "a", "description": " boolean function that receives a Node instance and returns true to add the node to the results list"}], "description": "Returns a collection of nodes that have passed the test function\npassed as its only argument.  \nThe function will receive a reference to each node to be tested.", "guessedname": "getNodesBy", "guessedtype": "function"}, "_removeChildren_animComplete": {"guessedname": "_removeChildren_animComplete", "params": [{"type": "", "name": "o", "description": " the custom event payload"}], "description": "wait until the animation is complete before deleting \nto avoid javascript errors", "private": "", "guessedtype": "function"}, "_closeEditor": {"guessedname": "_closeEditor", "params": [{"type": "Boolean", "name": "save", "description": "  true if the edited value is to be saved, false if discarded"}], "description": "Method to be called when the inline editing is finished and the editor is to be closed", "private": "", "guessedtype": "function"}, "getNodesByProperty": {"return": {"type": "Array", "description": "the matching collection of nodes, null if no match"}, "params": [{"type": "object", "name": "property", "description": " the property to search (usually a string)"}, {"type": "object", "name": "value", "description": " the value we want to find (usuall an int or string)"}], "description": "Returns a collection of nodes that have a matching property \nand value in the data object that was passed into its constructor.", "guessedname": "getNodesByProperty", "guessedtype": "function"}, "onEventEditNode": {"params": [{"type": "object", "name": "oArgs", "description": "  Object passed as arguments to TreeView event listeners"}], "description": "Method to be associated with an event (clickEvent, dblClickEvent or enterKeyPressed) to pop up the contents editor\nIt calls the corresponding node editNode method.", "guessedname": "onEventEditNode", "guessedtype": "function"}, "_deleteNode": {"private": "", "description": "Deletes the node and recurses children", "guessedname": "_deleteNode", "guessedtype": "function"}, "getRoot": {"return": {"type": "Node", "description": "the root node"}, "description": "Returns the root node of this tree", "guessedname": "getRoot", "guessedtype": "function"}, "_onClickEvent": {"private": "", "description": "Event listener for click events", "guessedname": "_onClickEvent", "guessedtype": "function"}, "getNodeByElement": {"return": {"type": "YAHOO.widget.Node", "description": "a node reference or null"}, "params": [{"type": "HTMLElement", "name": "el", "description": "  the element to test"}], "description": "Returns the treeview node reference for an ancestor element\nof the node, or null if it is not contained within any node\nin this tree.", "guessedname": "getNodeByElement", "guessedtype": "function"}, "setCollapseAnim": {"params": [{"type": "string", "name": "type", "description": " of animation (acceptable values defined in \nYAHOO.widget.TVAnim)"}], "description": "Sets up the animation for collapsing children", "guessedname": "setCollapseAnim", "guessedtype": "function"}, "buildTreeFromObject": {"params": [{"type": "Array|Object|String", "name": "oConfig", "description": "   array containing a full description of the tree.\nAn object or a string will be turned into an array with the given object or string as its only element."}], "description": "Builds the TreeView from an object.  \nThis is the method called by the constructor to build the tree when it has a second argument.\nA tree can be described by an array of objects, each object corresponding to a node.\nNode descriptions may contain values for any property of a node plus the following extra properties: <ul>\n<li>type:  can be one of the following:<ul>\n<li> A shortname for a node type (<code>'text','menu','html'</code>) </li>\n<li>The name of a Node class under YAHOO.widget (<code>'TextNode', 'MenuNode', 'DateNode'</code>, etc) </li>\n<li>a reference to an actual class: <code>YAHOO.widget.DateNode</code></li>\n</ul></li>\n<li>children: an array containing further node definitions</li></ul>\nA string instead of an object will produce a node of type 'text' with the given string as its label.", "guessedname": "buildTreeFromObject", "guessedtype": "function"}, "buildTreeFromMarkup": {"params": [{"type": "string|HTMLElement", "name": "id", "description": "  The id of the element that contains the markup or a reference to it."}], "description": "Builds the TreeView from existing markup.   Markup should consist of <UL> or <OL> elements containing <LI> elements.  \nEach <LI> can have one element used as label and a second optional element which is to be a <UL> or <OL>\ncontaining nested nodes.\nDepending on what the first element of the <LI> element is, the following Nodes will be created: <ul>\n<li>plain text:  a regular TextNode</li>\n<li>anchor <A>: a TextNode with its <code>href</code> and <code>target</code> taken from the anchor</li>\n<li>anything else: an HTMLNode</li></ul>\nOnly the first  outermost (un-)ordered list in the markup and its children will be parsed.\nNodes will be collapsed unless  an  <LI>  tag has a className called 'expanded'.\nAll other className attributes will be copied over to the Node className property.\nIf the <LI> element contains an attribute called <code>yuiConfig</code>, its contents should be a JSON-encoded object\nas the one used in method <a href=\"#method_buildTreeFromObject\">buildTreeFromObject</a>.", "guessedname": "buildTreeFromMarkup", "guessedtype": "function"}, "_nodeEditing": {"return": {"type": "Boolean", "description": "true to indicate that the node is editable and prevent any further bubbling of the click."}, "description": "Entry point of the editing plug-in.  \nTreeView will call this method if it exists when a node label is clicked", "private": "", "params": [{"type": "YAHOO.widget.Node", "name": "node", "description": "  the node to be edited"}], "guessedname": "_nodeEditing", "guessedtype": "function"}, "expandComplete": {"description": "Function executed when the expand animation completes", "guessedname": "expandComplete", "guessedtype": "function"}, "collapseAll": {"description": "Collapses all expanded child nodes in the entire tree.", "guessedname": "collapseAll", "guessedtype": "function"}, "_destroyEditor": {"guessedname": "_destroyEditor", "description": "Entry point for TreeView's destroy method to destroy whatever the editing plug-in has created", "private": "", "guessedtype": "function"}}, "uses": ["YAHOO.util.EventProvider"], "file": "TreeView.js", "guessedtype": "function", "shortname": "TreeView", "properties": {"_dblClickTimer": {"guessedname": "_dblClickTimer", "type": "window.timer object", "description": "Stores the timer used to check for double clicks", "private": "", "guessedtype": "property"}, "_currentlyHighlighted": {"description": "A reference to the Node that is currently highlighted.\nIt is only meaningful if singleNodeHighlight is enabled", "default": "null", "private": "", "guessedname": "_currentlyHighlighted", "guessedtype": "property", "type": "YAHOO.widget.Node"}, "locked": {"type": "boolean", "description": "We lock the tree control while waiting for the dynamic loader to return", "guessedname": "locked", "guessedtype": "property"}, "YAHOO.widget.TreeView.nodeCount": {"type": "int", "static": "", "description": "Running count of all nodes created in all trees.  This is \nused to provide unique identifies for all nodes.  Deleting\nnodes does not change the nodeCount.", "guessedname": "nodeCount", "guessedtype": "property"}, "_expandAnim": {"guessedname": "_expandAnim", "type": "string", "description": "The animation to use for expanding children, if any", "private": "", "guessedtype": "property"}, "_collapseAnim": {"guessedname": "_collapseAnim", "type": "string", "description": "The animation to use for collapsing children, if any", "private": "", "guessedtype": "property"}, "editorData": {"static": "", "description": "An object to store information used for in-line editing\nfor all Nodes of all TreeViews. It contains:\n<ul>\n<li>active {boolean}, whether there is an active cell editor </li>\n<li>whoHasIt {YAHOO.widget.TreeView} TreeView instance that is currently using the editor</li>\n<li>nodeType {string} value of static Node._type property, allows reuse of input element if node is of the same type.</li>\n<li>editorPanel {HTMLelement (<div>)} element holding the in-line editor</li>\n<li>inputContainer {HTMLelement (<div>)} element which will hold the type-specific input element(s) to be filled by the fillEditorContainer method</li>\n<li>buttonsContainer {HTMLelement (<div>)} element which holds the <button> elements for Ok/Cancel.  If you don't want any of the buttons, hide it via CSS styles, don't destroy it</li>\n<li>node {YAHOO.widget.Node} reference to the Node being edited</li>\n<li>saveOnEnter {boolean}, whether the Enter key should be accepted as a Save command (Esc. is always taken as Cancel), disable for multi-line input elements </li>\n<li>oldValue {any}  value before editing</li>\n</ul>\nEditors are free to use this object to store additional data.", "guessedname": "editorData", "guessedtype": "property"}, "_el": {"guessedname": "_el", "type": "HTMLelement", "description": "The host element for this tree", "private": "", "guessedtype": "property"}, "currentFocus": {"type": "YAHOO.widget.Node", "description": "A reference to the Node currently having the focus or null if none.", "guessedname": "currentFocus", "guessedtype": "property"}, "YAHOO.widget.TreeView.trees": {"description": "Global cache of tree instances", "private": "", "static": "", "guessedname": "trees", "guessedtype": "property", "type": "Array"}, "_nodes": {"guessedname": "_nodes", "type": "Node[]", "description": "Flat collection of all nodes in this tree.  This is a sparse\narray, so the length property can't be relied upon for a\nnode count for the tree.", "private": "", "guessedtype": "property"}, "_animCount": {"guessedname": "_animCount", "type": "int", "description": "The current number of animations that are executing", "private": "", "guessedtype": "property"}, "validator": {"default": "null", "type": "function", "description": "Validator function for edited data, called from the TreeView instance scope, \nreceives the arguments (newValue, oldValue, nodeInstance) \nand returns either the validated (or type-converted) value or undefined. \nAn undefined return will prevent the editor from closing", "guessedname": "validator", "guessedtype": "property"}, "_hasDblClickSubscriber": {"guessedname": "_hasDblClickSubscriber", "type": "boolean", "description": "Whether there is any subscriber to dblClickEvent", "private": "", "guessedtype": "property"}, "maxAnim": {"type": "int", "description": "The maximum number of animations to run at one time.", "guessedname": "maxAnim", "guessedtype": "property"}, "singleNodeHighlight": {"default": "false", "type": "boolean", "description": "If true, only one Node can be highlighted at a time", "guessedname": "singleNodeHighlight", "guessedtype": "property"}, "id": {"type": "String", "description": "The id of tree container element", "guessedname": "id", "guessedtype": "property"}, "TreeView.FOCUS_CLASS_NAME": {"description": "Class name assigned to elements that have the focus", "default": "\"ygtvfocus\"", "static": "", "guessedname": "FOCUS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Contains the tree view state data and the root node."}, "YAHOO.util.ScriptNodeDataSource": {"name": "YAHOO.util.ScriptNodeDataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "ScriptNodeDataSource class for accessing remote data via the YUI Get Utility."}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "ScriptNodeDataSource", "methods": {"doBeforeGetScriptNode": {"return": {"type": "String", "description": "URI to the script"}, "params": [{"type": "String", "name": "URI", "description": " to the script"}], "description": "Overridable method gives implementers access to modify the URI before the dynamic\nscript node gets inserted. Implementers should take care not to return an\ninvalid URI.", "guessedname": "doBeforeGetScriptNode", "guessedtype": "function"}, "makeConnection": {"return": {"type": "Number", "description": "Transaction ID."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Overriding method passes query to Get Utility. The returned\nresponse is then forwarded to the handleResponse function.", "guessedname": "makeConnection", "guessedtype": "function"}, "generateRequestCallback": {"return": {"type": "String", "description": "String fragment that gets appended to script URI that \nspecifies the callback function"}, "description": "Creates a request callback that gets appended to the script URI. Implementers\ncan customize this string to match their server's query syntax.", "guessedname": "generateRequestCallback", "guessedtype": "function"}}, "extends": "YAHOO.util.DataSourceBase", "superclass": "YAHOO.util.DataSourceBase", "file": "DataSource.js", "guessedtype": "function", "shortname": "ScriptNodeDataSource", "properties": {"_nPending": {"description": "Counter for pending requests. When this is 0, it is safe to purge callbacks\narray.", "private": "", "static": "", "guessedname": "_nPending", "guessedtype": "property", "type": "Number"}, "scriptCallbackParam": {"default": "\"callback\"", "type": "String", "description": "Callback string parameter name sent to the remote script. By default,\nrequests are sent to\n<URI>?<scriptCallbackParam>=callback", "guessedname": "scriptCallbackParam", "guessedtype": "property"}, "getUtility": {"default": "YAHOO.util.Get", "type": "Object", "description": "Alias to YUI Get Utility, to allow implementers to use a custom class.", "guessedname": "getUtility", "guessedtype": "property"}, "_nId": {"description": "Unique ID to track requests.", "private": "", "static": "", "guessedname": "_nId", "guessedtype": "property", "type": "Number"}, "callbacks": {"type": "Function[]", "static": "", "description": "Global array of callback functions, one for each request sent.", "guessedname": "callbacks", "guessedtype": "property"}, "asyncMode": {"default": "\"allowAll\"", "type": "String", "description": "Defines request/response management in the following manner:\n<dl>\n<!--<dt>queueRequests</dt>\n<dd>If a request is already in progress, wait until response is returned before sending the next request.</dd>\n<dt>cancelStaleRequests</dt>\n<dd>If a request is already in progress, cancel it before sending the next request.</dd>-->\n<dt>ignoreStaleResponses</dt>\n<dd>Send all requests, but handle only the response for the most recently sent request.</dd>\n<dt>allowAll</dt>\n<dd>Send all requests and handle all responses.</dd>\n</dl>", "guessedname": "asyncMode", "guessedtype": "property"}}, "description": "ScriptNodeDataSource class for accessing remote data via the YUI Get Utility."}, "YAHOO.util.Anim": {"name": "YAHOO.util.Anim", "constructors": [{"params": [{"type": "String | HTMLElement", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.  \nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.  \nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").  \nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Base animation class that provides the interface for building animated effects.\n<p>Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);</p>"}], "namespace": "YAHOO.util", "module": "animation", "events": {"onComplete": {"description": "Custom event that fires when animation ends\nListen via subscribe method (e.g. myAnim.onComplete.subscribe(someFunction)", "guessedname": "onComplete", "guessedtype": "property"}, "onStart": {"description": "Custom event that fires when animation begins\nListen via subscribe method (e.g. myAnim.onStart.subscribe(someFunction)", "guessedname": "onStart", "guessedtype": "property"}, "onTween": {"description": "Custom event that fires between each frame\nListen via subscribe method (e.g. myAnim.onTween.subscribe(someFunction)", "guessedname": "onTween", "guessedtype": "property"}}, "guessedname": "Anim", "methods": {"isAnimated": {"return": {"type": "Boolean", "description": "current value of isAnimated."}, "description": "Checks whether the element is currently animated.", "guessedname": "isAnimated", "guessedtype": "function"}, "setEl": {"description": "Changes the animated element", "guessedname": "setEl", "guessedtype": "function"}, "getAttribute": {"return": {"type": "Number", "description": "val The current value of the attribute."}, "params": [{"type": "String", "name": "attr", "description": " The name of the attribute."}], "description": "Returns current value of the attribute.", "guessedname": "getAttribute", "guessedtype": "function"}, "setAttribute": {"params": [{"type": "String", "name": "attr", "description": " The name of the attribute."}, {"type": "Number", "name": "val", "description": " The value to be applied to the attribute."}, {"type": "String", "name": "unit", "description": " The unit ('px', '%', etc.) of the value."}], "description": "Applies a value to an attribute.", "guessedname": "setAttribute", "guessedtype": "function"}, "onTween": {"private": "", "description": "Feeds the starting and ending values for each animated attribute to doMethod once per frame, then applies the resulting value to the attribute(s).", "guessedname": "onTween", "guessedtype": "function"}, "doMethod": {"return": {"type": "Number", "description": "The Value to be applied to the attribute."}, "params": [{"type": "String", "name": "attr", "description": " The name of the attribute."}, {"type": "Number", "name": "start", "description": " The value this attribute should start from for this animation."}, {"type": "Number", "name": "end", "description": "  The value this attribute should end at for this animation."}], "description": "Returns the value computed by the animation's \"method\".", "guessedname": "doMethod", "guessedtype": "function"}, "getEl": {"return": {"type": "HTMLElement", "description": ""}, "description": "Returns a reference to the animated element.", "guessedname": "getEl", "guessedtype": "function"}, "setRuntimeAttribute": {"guessedname": "setRuntimeAttribute", "params": [{"type": "Object", "name": "attr", "description": " The attribute object"}], "description": "Sets the actual values to be used during the animation.  Should only be needed for subclass use.", "private": "", "guessedtype": "function"}, "stop": {"params": [{"type": "Boolean", "name": "finish", "description": " (optional) If true, animation will jump to final frame."}], "description": "Stops the animation.  Normally called by AnimMgr when animation completes.", "guessedname": "stop", "guessedtype": "function"}, "init": {"params": [{"type": "String | HTMLElement", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.  \nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.  \nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").  \nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Constructor for Anim instance.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Provides a readable name for the Anim instance.", "guessedname": "toString", "guessedtype": "function"}, "getDefaultUnit": {"return": {"type": "String", "description": "The default unit to be used."}, "params": [{"type": "attr", "name": "attr", "description": " The name of the attribute."}], "description": "Returns the unit to use when none is supplied.", "guessedname": "getDefaultUnit", "guessedtype": "function"}, "animate": {"description": "Starts the animation by registering it with the animation manager.", "guessedname": "animate", "guessedtype": "function"}, "getStartTime": {"return": {"type": "Date", "description": "current value of startTime."}, "description": "Returns the animation start time.", "guessedname": "getStartTime", "guessedtype": "function"}}, "file": "Anim.js", "guessedtype": "function", "shortname": "Anim", "requires": "YAHOO.util.AnimMgr", "properties": {"isAnimated": {"guessedname": "isAnimated", "type": "Boolean", "description": "Whether or not the animation is running.", "private": "", "guessedtype": "property"}, "_onTween": {"private": "", "description": "Custom event that fires after onTween", "guessedname": "_onTween", "guessedtype": "property"}, "el": {"guessedname": "el", "type": "HTMLElement", "description": "The element to be animated.", "private": "", "guessedtype": "property"}, "actualFrames": {"guessedname": "actualFrames", "type": "Int", "description": "The number of frames this animation was able to execute.", "private": "", "guessedtype": "property"}, "useSeconds": {"type": "Boolean", "description": "Whether or not the duration should be treated as seconds.\nDefaults to true.", "guessedname": "useSeconds", "guessedtype": "property"}, "totalFrames": {"type": "Int", "description": "The total number of frames to be executed.\nIn time-based animations, this is used by AnimMgr to ensure the animation finishes on time.", "guessedname": "totalFrames", "guessedtype": "property"}, "_onStart": {"private": "", "description": "Custom event that fires after onStart, useful in subclassing", "guessedname": "_onStart", "guessedtype": "property"}, "_onComplete": {"private": "", "description": "Custom event that fires after onComplete", "guessedname": "_onComplete", "guessedtype": "property"}, "startTime": {"guessedname": "startTime", "type": "Date", "description": "A Date object that is created when the animation begins.", "private": "", "guessedtype": "property"}, "duration": {"type": "Number", "description": "The length of the animation.  Defaults to \"1\" (second).", "guessedname": "duration", "guessedtype": "property"}, "attributes": {"type": "Object", "description": "The collection of attributes to be animated.  \nEach attribute must have at least a \"to\" or \"by\" defined in order to animate.  \nIf \"to\" is supplied, the animation will end with the attribute at that value.  \nIf \"by\" is supplied, the animation will end at that value plus its starting value. \nIf both are supplied, \"to\" is used, and \"by\" is ignored. \nOptional additional member include \"from\" (the value the attribute should start animating from, defaults to current value), and \"unit\" (the units to apply to the values).", "guessedname": "attributes", "guessedtype": "property"}, "method": {"type": "Function", "description": "The method that will provide values to the attribute(s) during the animation. \nDefaults to \"YAHOO.util.Easing.easeNone\".", "guessedname": "method", "guessedtype": "property"}, "currentFrame": {"type": "Int", "description": "The location of the current animation on the timeline.\nIn time-based animations, this is used by AnimMgr to ensure the animation finishes on time.", "guessedname": "currentFrame", "guessedtype": "property"}}, "description": "Base animation class that provides the interface for building animated effects.\n<p>Usage: var myAnim = new YAHOO.util.Anim(el, { width: { from: 10, to: 100 } }, 1, YAHOO.util.Easing.easeOut);</p>"}, "YAHOO.util.Sort": {"name": "YAHOO.util.Sort", "namespace": "YAHOO.util", "module": "datatable", "guessedname": "Sort", "methods": {"compare": {"params": [{"type": "Object", "name": "a", "description": "  First sort argument."}, {"type": "Object", "name": "b", "description": "  Second sort argument."}, {"type": "Boolean", "name": "desc", "description": "  True if sort direction is descending, false if\nsort direction is ascending."}], "description": "Comparator function for simple case-insensitive string sorting.", "guessedname": "compare", "guessedtype": "function"}}, "static": "", "file": "ColumnSet.js", "guessedtype": "property", "shortname": "Sort", "description": "Sort static utility to support Column sorting."}, "YAHOO.util.UserAction": {"name": "YAHOO.util.UserAction", "namespace": "YAHOO.util", "module": "event-simulate", "guessedname": "UserAction", "methods": {"fireKeyEvent": {"description": "Fires an event that normally would be fired by the keyboard (keyup,\nkeydown, keypress). Make sure to specify either keyCode or charCode as\nan option.", "private": "", "static": "", "guessedname": "fireKeyEvent", "guessedtype": "function", "params": [{"type": "String", "name": "type", "description": " The type of event (\"keyup\", \"keydown\" or \"keypress\")."}, {"type": "HTMLElement", "name": "target", "description": " The target of the event."}, {"type": "Object", "name": "options", "description": " Options for the event. Either keyCode or charCode\nare required."}]}, "mouseEvent": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to click on."}, {"type": "String", "name": "type", "description": " The type of event to fire. This can be any one of\nthe following: click, dblclick, mousedown, mouseup, mouseout,\nmouseover, and mousemove."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mouse event on a particular element.", "guessedname": "fireMouseEvent", "guessedtype": "function"}, "keypress": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a keypress on a particular element.", "guessedname": "keypress", "guessedtype": "function"}, "keyup": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a keyup event on a particular element.", "guessedname": "keyup", "guessedtype": "function"}, "mouseup": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mouseup on a particular element.", "guessedname": "mouseup", "guessedtype": "function"}, "keydown": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a keydown event on a particular element.", "guessedname": "keydown", "guessedtype": "function"}, "mousemove": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mousemove on a particular element.", "guessedname": "mousemove", "guessedtype": "function"}, "simulateMouseEvent": {"description": "Simulates a mouse event using the given event information to populate\nthe generated event object. This method does browser-equalizing\ncalculations to account for differences in the DOM and IE event models\nas well as different browser quirks.", "private": "", "static": "", "guessedname": "simulateMouseEvent", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "target", "description": " The target of the given event."}, {"type": "String", "name": "type", "description": " The type of event to fire. This can be any one of\nthe following: click, dblclick, mousedown, mouseup, mouseout,\nmouseover, and mousemove."}, {"type": "Boolean", "name": "bubbles", "description": " (Optional) Indicates if the event can be\nbubbled up. DOM Level 2 specifies that all mouse events bubble by\ndefault. The default is true."}, {"type": "Boolean", "name": "cancelable", "description": " (Optional) Indicates if the event can be\ncanceled using preventDefault(). DOM Level 2 specifies that all\nmouse events except mousemove can be cancelled. The default \nis true for all events except mousemove, for which the default \nis false."}, {"type": "Window", "name": "view", "description": " (Optional) The view containing the target. This is\ntypically the window object. The default is window."}, {"type": "int", "name": "detail", "description": " (Optional) The number of times the mouse button has\nbeen used. The default value is 1."}, {"type": "int", "name": "screenX", "description": " (Optional) The x-coordinate on the screen at which\npoint the event occured. The default is 0."}, {"type": "int", "name": "screenY", "description": " (Optional) The y-coordinate on the screen at which\npoint the event occured. The default is 0."}, {"type": "int", "name": "clientX", "description": " (Optional) The x-coordinate on the client at which\npoint the event occured. The default is 0."}, {"type": "int", "name": "clientY", "description": " (Optional) The y-coordinate on the client at which\npoint the event occured. The default is 0."}, {"type": "Boolean", "name": "ctrlKey", "description": " (Optional) Indicates if one of the CTRL keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "altKey", "description": " (Optional) Indicates if one of the ALT keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "shiftKey", "description": " (Optional) Indicates if one of the SHIFT keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "metaKey", "description": " (Optional) Indicates if one of the META keys\nis pressed while the event is firing. The default is false."}, {"type": "int", "name": "button", "description": " (Optional) The button being pressed while the event\nis executing. The value should be 0 for the primary mouse button\n(typically the left button), 1 for the terciary mouse button\n(typically the middle button), and 2 for the secondary mouse button\n(typically the right button). The default is 0."}, {"type": "HTMLElement", "name": "relatedTarget", "description": " (Optional) For mouseout events,\nthis is the element that the mouse has moved to. For mouseover\nevents, this is the element that the mouse has moved from. This\nargument is ignored for all other events. The default is null."}]}, "mousedown": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mousedown on a particular element.", "guessedname": "mousedown", "guessedtype": "function"}, "mouseout": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mouseout event on a particular element. Use \"relatedTarget\"\non the options object to specify where the mouse moved to.\nQuirks: Firefox less than 2.0 doesn't set relatedTarget properly, so\ntoElement is assigned in its place. IE doesn't allow toElement to be\nbe assigned, so relatedTarget is assigned in its place. Both of these\nconcessions allow YAHOO.util.Event.getRelatedTarget() to work correctly\nin both browsers.", "guessedname": "mouseout", "guessedtype": "function"}, "simulateKeyEvent": {"description": "Simulates a key event using the given event information to populate\nthe generated event object. This method does browser-equalizing\ncalculations to account for differences in the DOM and IE event models\nas well as different browser quirks. Note: keydown causes Safari 2.x to\ncrash.", "private": "", "static": "", "guessedname": "simulateKeyEvent", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "target", "description": " The target of the given event."}, {"type": "String", "name": "type", "description": " The type of event to fire. This can be any one of\nthe following: keyup, keydown, and keypress."}, {"type": "Boolean", "name": "bubbles", "description": " (Optional) Indicates if the event can be\nbubbled up. DOM Level 3 specifies that all key events bubble by\ndefault. The default is true."}, {"type": "Boolean", "name": "cancelable", "description": " (Optional) Indicates if the event can be\ncanceled using preventDefault(). DOM Level 3 specifies that all\nkey events can be cancelled. The default \nis true."}, {"type": "Window", "name": "view", "description": " (Optional) The view containing the target. This is\ntypically the window object. The default is window."}, {"type": "Boolean", "name": "ctrlKey", "description": " (Optional) Indicates if one of the CTRL keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "altKey", "description": " (Optional) Indicates if one of the ALT keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "shiftKey", "description": " (Optional) Indicates if one of the SHIFT keys\nis pressed while the event is firing. The default is false."}, {"type": "Boolean", "name": "metaKey", "description": " (Optional) Indicates if one of the META keys\nis pressed while the event is firing. The default is false."}, {"type": "int", "name": "keyCode", "description": " (Optional) The code for the key that is in use. \nThe default is 0."}, {"type": "int", "name": "charCode", "description": " (Optional) The Unicode code for the character\nassociated with the key being used. The default is 0."}]}, "mouseover": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to act on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a mouseover event on a particular element. Use \"relatedTarget\"\non the options object to specify where the mouse moved from.\nQuirks: Firefox less than 2.0 doesn't set relatedTarget properly, so\nfromElement is assigned in its place. IE doesn't allow fromElement to be\nbe assigned, so relatedTarget is assigned in its place. Both of these\nconcessions allow YAHOO.util.Event.getRelatedTarget() to work correctly\nin both browsers.", "guessedname": "mouseover", "guessedtype": "function"}, "click": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to click on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a click on a particular element.", "guessedname": "click", "guessedtype": "function"}, "dblclick": {"static": "", "params": [{"type": "HTMLElement", "name": "target", "description": " The element to double click on."}, {"type": "Object", "name": "options", "description": " Additional event options (use DOM standard names)."}], "description": "Simulates a double click on a particular element.", "guessedname": "dblclick", "guessedtype": "function"}}, "static": "", "file": "UserAction.js", "guessedtype": "property", "shortname": "UserAction", "description": "The UserAction object provides functions that simulate events occurring in\nthe browser. Since these are simulated events, they do not behave exactly\nas regular, user-initiated events do, but can be used to test simple\nuser interactions safely."}, "YAHOO.widget.Tab": {"name": "YAHOO.widget.Tab", "configs": {"disabled": {"type": "Boolean", "description": "Whether or not the tab is disabled."}, "dataTimeout": {"default": "null", "type": "Number", "description": "Number if milliseconds before aborting and calling failure handler."}, "contentEl": {"type": "HTMLElement", "description": "The HTMLElement that contains the tab's content."}, "postData": {"default": "null", "description": "Arguments to pass when POST method is used"}, "href": {"default": "'#'", "type": "String", "description": "The href of the tab's anchor element."}, "cacheData": {"default": "false", "type": "Boolean", "description": "Whether or not content should be reloaded for every view."}, "dataSrc": {"type": "String", "description": "The tab's data source, used for loading content dynamically."}, "label": {"type": "String", "description": "The tab's label text (or innerHTML)."}, "content": {"type": "String", "description": "The tab's content."}, "loadMethod": {"default": "\"GET\"", "type": "String", "description": "The method to use for the data request."}, "contentVisible": {"default": "false", "type": "Boolean", "description": "The Whether or not the tab's content is visible."}, "activationEvent": {"type": "String", "description": "The event that triggers the tab's activation."}, "active": {"type": "Boolean", "description": "Whether or not the tab is currently active.\nIf a dataSrc is set for the tab, the content will be loaded from\nthe given source."}, "labelEl": {"type": "HTMLElement", "description": "The element that contains the tab's label."}, "dataLoaded": {"type": "Boolean", "description": "Whether or not any data has been loaded from the server."}}, "constructors": [{"params": [{"type": "HTMLElement | String", "name": "element", "description": "  (optional) The html element that \nrepresents the Tab. An element will be created if none provided."}, {"type": "Object", "name": "properties", "description": " A key map of initial properties"}], "description": "A representation of a Tab's label and content."}], "namespace": "YAHOO.widget", "module": "tabview", "events": {"contentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "contentChange", "description": "Fires when the value for the configuration attribute 'content' changes."}, "beforeContentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContentChange", "description": "Fires before the value for the configuration attribute 'content' changes. Return false to cancel the attribute change."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "dataTimeoutChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataTimeoutChange", "description": "Fires when the value for the configuration attribute 'dataTimeout' changes."}, "beforeDataTimeoutChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataTimeoutChange", "description": "Fires before the value for the configuration attribute 'dataTimeout' changes. Return false to cancel the attribute change."}, "beforeHrefChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHrefChange", "description": "Fires before the value for the configuration attribute 'href' changes. Return false to cancel the attribute change."}, "beforeCacheDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCacheDataChange", "description": "Fires before the value for the configuration attribute 'cacheData' changes. Return false to cancel the attribute change."}, "activationEventChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "activationEventChange", "description": "Fires when the value for the configuration attribute 'activationEvent' changes."}, "hrefChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hrefChange", "description": "Fires when the value for the configuration attribute 'href' changes."}, "beforeDataSrcChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataSrcChange", "description": "Fires before the value for the configuration attribute 'dataSrc' changes. Return false to cancel the attribute change."}, "loadMethodChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "loadMethodChange", "description": "Fires when the value for the configuration attribute 'loadMethod' changes."}, "dataSrcChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataSrcChange", "description": "Fires when the value for the configuration attribute 'dataSrc' changes."}, "postDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "postDataChange", "description": "Fires when the value for the configuration attribute 'postData' changes."}, "beforeLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLabelChange", "description": "Fires before the value for the configuration attribute 'label' changes. Return false to cancel the attribute change."}, "beforeContentElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContentElChange", "description": "Fires before the value for the configuration attribute 'contentEl' changes. Return false to cancel the attribute change."}, "labelElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "labelElChange", "description": "Fires when the value for the configuration attribute 'labelEl' changes."}, "beforeActivationEventChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeActivationEventChange", "description": "Fires before the value for the configuration attribute 'activationEvent' changes. Return false to cancel the attribute change."}, "beforePostDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePostDataChange", "description": "Fires before the value for the configuration attribute 'postData' changes. Return false to cancel the attribute change."}, "labelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "labelChange", "description": "Fires when the value for the configuration attribute 'label' changes."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}, "cacheDataChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "cacheDataChange", "description": "Fires when the value for the configuration attribute 'cacheData' changes."}, "contentElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "contentElChange", "description": "Fires when the value for the configuration attribute 'contentEl' changes."}, "beforeContentVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContentVisibleChange", "description": "Fires before the value for the configuration attribute 'contentVisible' changes. Return false to cancel the attribute change."}, "activeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "activeChange", "description": "Fires when the value for the configuration attribute 'active' changes."}, "beforeLabelElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLabelElChange", "description": "Fires before the value for the configuration attribute 'labelEl' changes. Return false to cancel the attribute change."}, "beforeLoadMethodChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLoadMethodChange", "description": "Fires before the value for the configuration attribute 'loadMethod' changes. Return false to cancel the attribute change."}, "beforeActiveChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeActiveChange", "description": "Fires before the value for the configuration attribute 'active' changes. Return false to cancel the attribute change."}, "remove": {"type": "CustomEvent", "params": [{"type": "Event", "name": "An", "description": " event object with fields for \"type\" (\"remove\")\nand \"tabview\" (the tabview instance it was removed from)"}], "description": "Fires when a tab is removed from the tabview", "guessedname": "Tab", "guessedtype": "property"}, "beforeDataLoadedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataLoadedChange", "description": "Fires before the value for the configuration attribute 'dataLoaded' changes. Return false to cancel the attribute change."}, "contentVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "contentVisibleChange", "description": "Fires when the value for the configuration attribute 'contentVisible' changes."}, "dataLoadedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataLoadedChange", "description": "Fires when the value for the configuration attribute 'dataLoaded' changes."}}, "guessedname": "Tab", "methods": {"initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Hash of initial attributes"}], "description": "setAttributeConfigs Tab specific properties.", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "", "description": "String"}, "description": "Provides a readable name for the tab.", "guessedname": "toString", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "Tab.js", "guessedtype": "function", "shortname": "Tab", "properties": {"HIDDEN_CLASSNAME": {"default": "\"yui-hidden\"", "type": "String", "description": "The class name applied to active tabs.", "guessedname": "HIDDEN_CLASSNAME", "guessedtype": "property"}, "ACTIVE_TITLE": {"default": "\"active\"", "type": "String", "description": "The title applied to active tabs.", "guessedname": "ACTIVE_TITLE", "guessedtype": "property"}, "DISABLED_CLASSNAME": {"default": "\"disabled\"", "type": "String", "description": "The class name applied to disabled tabs.", "guessedname": "DISABLED_CLASSNAME", "guessedtype": "property"}, "LOADING_CLASSNAME": {"default": "\"disabled\"", "type": "String", "description": "The class name applied to dynamic tabs while loading.", "guessedname": "LOADING_CLASSNAME", "guessedtype": "property"}, "LABEL_INNER_TAGNAME": {"default": "\"em\"", "type": "String", "description": "The default tag name for a Tab's inner element.", "guessedname": "LABEL_TAGNAME", "guessedtype": "property"}, "dataConnection": {"type": "Object", "description": "Provides a reference to the connection request object when data is\nloaded dynamically.", "guessedname": "dataConnection", "guessedtype": "property"}, "loadHandler": {"type": "object", "description": "Object containing success and failure callbacks for loading data.", "guessedname": "loadHandler", "guessedtype": "property"}, "ACTIVE_CLASSNAME": {"default": "\"selected\"", "type": "String", "description": "The class name applied to active tabs.", "guessedname": "ACTIVE_CLASSNAME", "guessedtype": "property"}}, "description": "A representation of a Tab's label and content."}, "YAHOO.widget.Menu": {"name": "YAHOO.widget.Menu", "configs": {"constraintoviewport": {"default": "true", "type": "Boolean", "description": "Boolean indicating if the menu will try to remain inside \nthe boundaries of the size of viewport.  This property is only applied \nwhen the \"position\" configuration property is set to dynamic and is \nautomatically applied to all submenus."}, "maxheight": {"default": "0", "type": "Number", "description": "Number defining the maximum height (in pixels) for a menu's \nbody element (<code><div class=\"bd\"></code>).  Once a menu's body \nexceeds this height, the contents of the body are scrolled to maintain \nthis value.  This value cannot be set lower than the value of the \n\"minscrollheight\" configuration property."}, "classname": {"default": "null", "type": "String", "description": "String representing the CSS class to be applied to the \nmenu's root <code><div></code> element.  The specified class(es)  \nare appended in addition to the default class as specified by the menu's\nCSS_CLASS_NAME constant. When set this property is automatically \napplied to all submenus."}, "visible": {"default": "false", "type": "Boolean", "description": "Boolean indicating whether or not the menu is visible.  If \nthe menu's \"position\" configuration property is set to \"dynamic\" (the \ndefault), this property toggles the menu's <code><div></code> \nelement's \"visibility\" style property between \"visible\" (true) or \n\"hidden\" (false).  If the menu's \"position\" configuration property is \nset to \"static\" this property toggles the menu's \n<code><div></code> element's \"display\" style property \nbetween \"block\" (true) or \"none\" (false)."}, "xy": {"default": "null", "type": "Number[]", "description": "Array of the absolute x and y positions of the Menu.  This \nproperty is only applied when the \"position\" configuration property is \nset to dynamic."}, "container": {"default": "document.body", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|String", "description": "HTML element reference or string specifying the id \nattribute of the HTML element that the menu's markup should be \nrendered into."}, "scrollincrement": {"default": "1", "type": "Number", "description": "Number used to control the scroll speed of a menu.  Used to \nincrement the \"scrollTop\" property of the menu's body by when a menu's \ncontent is scrolling.  When set this property is automatically applied \nto all submenus."}, "minscrollheight": {"default": "90", "type": "Number", "description": "Number defining the minimum threshold for the \"maxheight\" \nconfiguration property.  When set this property is automatically applied \nto all submenus."}, "fixedcenter": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the Menu should be anchored to the \ncenter of the viewport.  This property is only applied when the \n\"position\" configuration property is set to dynamic."}, "autosubmenudisplay": {"default": "true", "type": "Boolean", "description": "Boolean indicating if submenus are automatically made \nvisible when the user mouses over the menu's items."}, "context": {"default": "null", "type": "Array", "description": "Array of context arguments for context-sensitive positioning.  \nThe format is: [id or element, element corner, context corner]. \nFor example, setting this property to [\"img1\", \"tl\", \"bl\"] would \nalign the Menu's top left corner to the context element's \nbottom left corner.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic."}, "keepopen": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu should remain open when clicked."}, "clicktohide": {"default": "true", "type": "Boolean", "description": "Boolean indicating if the menu will automatically be \nhidden if the user clicks outside of it.  This property is only \napplied when the \"position\" configuration property is set to dynamic \nand is automatically applied to all submenus."}, "submenualignment": {"default": "[\"tl\",\"tr\"]", "type": "Array", "description": "Array defining how submenus should be aligned to their \nparent menu item. The format is: [itemCorner, submenuCorner]. By default\na submenu's top left corner is aligned to its parent menu item's top \nright corner."}, "disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu should be disabled.  \nDisabling a menu disables each of its items.  (Disabled menu items are \ndimmed and will not respond to user input or fire events.)  Disabled\nmenus have a corresponding \"disabled\" CSS class applied to their root\n<code><div></code> element."}, "effect": {"default": "null", "type": "Object", "description": "Object or array of objects representing the ContainerEffect \nclasses that are active for animating the container.  When set this \nproperty is automatically applied to all submenus."}, "showdelay": {"default": "250", "type": "Number", "description": "Number indicating the time (in milliseconds) that should \nexpire before a submenu is made visible when the user mouses over \nthe menu's items.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic and is automatically applied \nto all submenus."}, "preventcontextoverlap": {"default": "true", "type": "Boolean", "description": "Boolean indicating whether or not a submenu should overlap its parent MenuItem \nwhen the \"constraintoviewport\" configuration property is set to \"true\"."}, "x": {"default": "null", "type": "Number", "description": "Number representing the absolute x-coordinate position of \nthe Menu.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic."}, "shadow": {"default": "true", "type": "Boolean", "description": "Boolean indicating if the menu should have a shadow."}, "hidedelay": {"default": "0", "type": "Number", "description": "Number indicating the time (in milliseconds) that should \nexpire before the menu is hidden.  This property is only applied when \nthe \"position\" configuration property is set to dynamic and is \nautomatically applied to all submenus."}, "submenuhidedelay": {"default": "250", "type": "Number", "description": "Number indicating the time (in milliseconds) that should \nexpire before a submenu is hidden when the user mouses out of a menu item \nheading in the direction of a submenu.  The value must be greater than or \nequal to the value specified for the \"showdelay\" configuration property.\nThis property is only applied when the \"position\" configuration property \nis set to dynamic and is automatically applied to all submenus."}, "iframe": {"default": "true for IE6 and below, false for all other browsers.", "type": "Boolean", "description": "Boolean indicating whether or not the Menu should \nhave an IFRAME shim; used to prevent SELECT elements from \npoking through an Overlay instance in IE6.  When set to \"true\", \nthe iframe shim is created when the Menu instance is intially\nmade visible.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic and is automatically applied \nto all submenus."}, "y": {"default": "null", "type": "Number", "description": "Number representing the absolute y-coordinate position of \nthe Menu.  This property is only applied when the \"position\" \nconfiguration property is set to dynamic."}, "position": {"default": "dynamic", "type": "String", "description": "String indicating how a menu should be positioned on the \nscreen.  Possible values are \"static\" and \"dynamic.\"  Static menus are \nvisible by default and reside in the normal flow of the document \n(CSS position: static).  Dynamic menus are hidden by default, reside \nout of the normal flow of the document (CSS position: absolute), and \ncan overlay other elements on the screen."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the menu."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source \nfor the menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><div></code> element of the menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " \nObject specifying the <code><select></code> element to be used as \nthe data source for the menu."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu. See configuration class documentation for \nmore details."}], "description": "The Menu class creates a container that holds a vertical list representing \na set of options or commands.  Menu is the base class for all \nmenu containers."}], "namespace": "YAHOO.widget", "module": "menu", "events": {"mouseOutEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the mouse has left the menu.  Passes back the DOM \nEvent object as an argument."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user releases a mouse button while the mouse is \nover the menu.  Passes back the DOM Event object as an argument."}, "keyUpEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user releases a key when one of the menu's items \nhas focus.  Passes back the DOM Event object as an argument."}, "keyPressEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user presses an alphanumeric key when one of the\nmenu's items has focus.  Passes back the DOM Event object as an argument."}, "itemAddedEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item is added to the menu."}, "mouseOverEvent": {"description": "Fires when the mouse has entered the menu.  Passes back \nthe DOM Event object as an argument."}, "itemRemovedEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when an item is removed to the menu."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user mouses down on the menu.  Passes back the \nDOM Event object as an argument."}, "clickEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user clicks the on the menu.  Passes back the \nDOM Event object as an argument."}, "keyDownEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user presses a key when one of the menu's items \nhas focus.  Passes back the DOM Event object as an argument."}}, "guessedname": "Menu", "methods": {"_onRender": {"guessedname": "_onRender", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"render\" event handler for the menu.", "private": "", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu.", "guessedname": "toString", "guessedtype": "function"}, "configMaxHeight": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The Menu instance fired\nthe event."}], "description": "Event handler for when the \"maxheight\" configuration property of \na Menu changes.", "guessedname": "configMaxHeight", "guessedtype": "function"}, "configDisabled": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The Menu instance fired the event."}], "description": "Event handler for when the \"disabled\" configuration property of \na menu changes.", "guessedname": "configDisabled", "guessedtype": "function"}, "getSubmenus": {"return": {"type": "Array", "description": ""}, "description": "Returns an array of all of the submenus that are immediate \nchildren of the menu.", "guessedname": "getSubmenus", "guessedtype": "function"}, "_onVisibleChange": {"guessedname": "_onVisibleChange", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "Change event handler for the the menu's \"visible\" configuration\nproperty.", "private": "", "guessedtype": "function"}, "positionOffScreen": {"description": "Positions the menu outside of the boundaries of the browser's \nviewport.  Called automatically when a menu is hidden to ensure that \nit doesn't force the browser to render uncessary scrollbars.", "guessedname": "positionOffScreen", "guessedtype": "function"}, "_onMenuItemDestroy": {"guessedname": "_onMenuItemDestroy", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item \nthat fired the event."}], "description": "\"destroy\" event handler for the menu's items.", "private": "", "guessedtype": "function"}, "getItemGroups": {"return": {"type": "Array", "description": ""}, "description": "Multi-dimensional Array representing the menu items as they \nare grouped in the menu.", "guessedname": "getItemGroups", "guessedtype": "function"}, "destroy": {"description": "Removes the menu's <code><div></code> element \n(and accompanying child nodes) from the document.", "guessedname": "destroy", "guessedtype": "function"}, "_onBeforeRender": {"guessedname": "_onBeforeRender", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"beforerender\" event handler for the menu.  Appends all of the \n<code><ul></code>, <code><li></code> and their accompanying \ntitle elements to the body element of the menu.", "private": "", "guessedtype": "function"}, "_cancelShowDelay": {"description": "Cancels the call to the \"showMenu.\"", "private": "", "guessedname": "_cancelShowDelay", "guessedtype": "function"}, "_getItemGroup": {"return": {"type": "Array", "description": ""}, "description": "Returns the menu item group at the specified index.", "private": "", "params": [{"type": "Number", "name": "p_nIndex", "description": " Number indicating the index of the menu item group \nto be retrieved."}], "guessedname": "_getItemGroup", "guessedtype": "function"}, "setInitialSelection": {"description": "Sets the \"selected\" configuration property of the menu's first \nenabled item to \"true.\"", "guessedname": "setInitialSelection", "guessedtype": "function"}, "_onClick": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"click\" event handler for the menu.", "guessedname": "_onClick", "guessedtype": "function"}, "_onInit": {"guessedname": "_onInit", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"init\" event handler for the menu.", "private": "", "guessedtype": "function"}, "_updateItemProperties": {"guessedname": "_updateItemProperties", "params": [{"type": "Number", "name": "p_nGroupIndex", "description": " Number indicating the group of items to update."}], "description": "Updates the \"index,\" \"groupindex,\" and \"className\" properties \nof the menu items in the specified group.", "private": "", "guessedtype": "function"}, "_onItemAdded": {"guessedname": "_onItemAdded", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}], "description": "\"itemadded\" event handler for a Menu instance.", "private": "", "guessedtype": "function"}, "_onHide": {"guessedname": "_onHide", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"hide\" event handler for the menu.", "private": "", "guessedtype": "function"}, "_setScrollHeight": {"guessedname": "_setScrollHeight", "params": [{"type": "String", "name": "p_nScrollHeight", "description": " Number representing the scrolling height of the Menu."}], "description": "", "private": "", "guessedtype": "function"}, "_removeItemFromGroupByValue": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Removes a menu item from a group by reference.  Returns the \nmenu item that was removed.", "private": "", "params": [{"type": "Number", "name": "p_nGroupIndex", "description": " Number indicating the group to which the\nmenu item belongs."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance to be removed."}], "guessedname": "_removeItemFromGroupByValue", "guessedtype": "function"}, "_onMenuItemConfigChange": {"guessedname": "_onMenuItemConfigChange", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item \nthat fired the event."}], "description": "\"configchange\" event handler for the menu's items.", "private": "", "guessedtype": "function"}, "clearActiveItem": {"params": [{"type": "Boolean", "name": "p_bBlur", "description": " Boolean indicating if the menu's active item \nshould be blurred."}], "description": "Sets the \"selected\" configuration property of the menu's active\nitem to \"false\" and hides the item's submenu.", "guessedname": "clearActiveItem", "guessedtype": "function"}, "_onMouseOver": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"mouseover\" event handler for the menu.", "guessedname": "_onMouseOver", "guessedtype": "function"}, "_onParentMenuRender": {"guessedname": "_onParentMenuRender", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oSubmenu", "description": " Object representing the submenu that \nsubscribed to the event."}], "description": "\"render\" event handler for a submenu.  Renders a  \nsubmenu in response to the firing of its parent's \"render\" event.", "private": "", "guessedtype": "function"}, "_enableScrollFooter": {"protected": "", "description": "Enables the footer used for scrolling the body of the menu.", "guessedname": "_enableScrollFooter", "guessedtype": "function"}, "_onBeforeShow": {"guessedname": "_onBeforeShow", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"beforeshow\" event handler for the menu.", "private": "", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the menu."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source \nfor the menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><div></code> element of the menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " \nObject specifying the <code><select></code> element to be used as \nthe data source for the menu."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu. See configuration class documentation for \nmore details."}], "description": "The Menu class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references \nfor pre-existing markup, and creates required markup if it is not \nalready present.", "guessedname": "init", "guessedtype": "function"}, "_addItemToGroup": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Adds a menu item to a group.", "private": "", "params": [{"type": "Number", "name": "p_nGroupIndex", "description": " Number indicating the group to which the \nitem belongs."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance to be added to the menu."}, {"type": "String", "name": "p_oItem", "description": " String specifying the text of the item to be added \nto the menu."}, {"type": "Object", "name": "p_oItem", "description": " Object literal containing a set of menu item \nconfiguration properties."}, {"type": "Number", "name": "p_nItemIndex", "description": " Optional. Number indicating the index at \nwhich the menu item should be added."}], "guessedname": "_addItemToGroup", "guessedtype": "function"}, "_onParentMenuConfigChange": {"guessedname": "_onParentMenuConfigChange", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oSubmenu", "description": " Object representing the submenu that \nsubscribed to the event."}], "description": "\"configchange\" event handler for a submenu.", "private": "", "guessedtype": "function"}, "_cancelHideDelay": {"description": "Cancels the call to \"hideMenu.\"", "private": "", "guessedname": "_cancelHideDelay", "guessedtype": "function"}, "blur": {"description": "Causes the menu to lose focus and fires the \"blur\" event.", "guessedname": "blur", "guessedtype": "function"}, "configHideDelay": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"hidedelay\" configuration property \nof the menu changes.", "guessedname": "configHideDelay", "guessedtype": "function"}, "addItems": {"return": {"type": "Array", "description": ""}, "params": [{"type": "Array", "name": "p_aItems", "description": " Array of items to be added to the menu.  The array \ncan contain strings specifying the text for each item to be created, object\nliterals specifying each of the menu item configuration properties, \nor MenuItem instances."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number specifying the group to \nwhich the items belongs."}], "description": "Adds an array of items to the menu.", "guessedname": "addItems", "guessedtype": "function"}, "_onBeforeHide": {"guessedname": "_onBeforeHide", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"beforehide\" event handler for the menu.", "private": "", "guessedtype": "function"}, "setInitialFocus": {"description": "Sets focus to the menu's first enabled item.", "guessedname": "setInitialFocus", "guessedtype": "function"}, "_getFirstEnabledItem": {"guessedname": "_getFirstEnabledItem", "return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Returns the first enabled item in the menu.", "private": "", "guessedtype": "function"}, "_createItemGroup": {"return": {"type": "Array", "description": ""}, "description": "Creates a new menu item group (array) and its associated \n<code><ul></code> element. Returns an aray of menu item groups.", "private": "", "params": [{"type": "Number", "name": "p_nIndex", "description": " Number indicating the group to create."}], "guessedname": "_createItemGroup", "guessedtype": "function"}, "getItems": {"return": {"type": "Array", "description": ""}, "description": "Returns an array of all of the items in the menu.", "guessedname": "getItems", "guessedtype": "function"}, "focus": {"description": "Causes the menu to receive focus and fires the \"focus\" event.", "guessedname": "focus", "guessedtype": "function"}, "insertItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance to be added to the menu."}, {"type": "String", "name": "p_oItem", "description": " String specifying the text of the item to be added \nto the menu."}, {"type": "Object", "name": "p_oItem", "description": " Object literal containing a set of menu item \nconfiguration properties."}, {"type": "Number", "name": "p_nItemIndex", "description": " Number indicating the ordinal position at which\nthe item should be added."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number indicating the group to which \nthe item belongs."}], "description": "Inserts an item into the menu at the specified index.", "guessedname": "insertItem", "guessedtype": "function"}, "_configureSubmenu": {"guessedname": "_configureSubmenu", "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance with the submenu to be configured."}], "description": "Subscribes the menu item's submenu to its parent menu's events.", "private": "", "guessedtype": "function"}, "addItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance to be added to the menu."}, {"type": "String", "name": "p_oItem", "description": " String specifying the text of the item to be added \nto the menu."}, {"type": "Object", "name": "p_oItem", "description": " Object literal containing a set of menu item \nconfiguration properties."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number indicating the group to\nwhich the item belongs."}], "description": "Appends an item to the menu.", "guessedname": "addItem", "guessedtype": "function"}, "_onScrollTargetMouseOut": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed \nback by the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "\"mouseout\" event handler for the menu's \"header\" and \"footer\" \nelements.  Used to stop scrolling the body of the menu up and down when the \nmenu's \"maxheight\" configuration property is set to a value greater than 0.", "guessedname": "_onScrollTargetMouseOut", "guessedtype": "function"}, "_disableScrollHeader": {"protected": "", "description": "Disables the header used for scrolling the body of the menu.", "guessedname": "_disableScrollHeader", "guessedtype": "function"}, "configVisible": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"visible\" configuration property \nthe menu changes.", "guessedname": "configVisible", "guessedtype": "function"}, "configContainer": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"container\" configuration property \nof the menu changes.", "guessedname": "configContainer", "guessedtype": "function"}, "_clearSetWidthFlag": {"description": "Change event listener for the \"width\" configuration property.  This listener is \nadded when a Menu's \"width\" configuration property is set by the \"_setScrollHeight\" method, and \nis used to set the \"_widthSetForScroll\" property to \"false\" if the \"width\" configuration property \nis changed after it was set by the \"_setScrollHeight\" method.  If the \"_widthSetForScroll\" \nproperty is set to \"false\", and the \"_setScrollHeight\" method is in the process of tearing down \nscrolling functionality, it will maintain the Menu's new width rather than reseting it.", "private": "", "guessedname": "_clearSetWidthFlag", "guessedtype": "function"}, "clearContent": {"description": "Removes all of the content from the menu, including the menu \nitems, group titles, header and footer.", "guessedname": "clearContent", "guessedtype": "function"}, "getItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "Number", "name": "p_nItemIndex", "description": " Number indicating the ordinal position of the \nitem to be retrieved."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number indicating the group to which \nthe item belongs."}], "description": "Returns the item at the specified index.", "guessedname": "getItem", "guessedtype": "function"}, "removeItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oObject", "description": " Object reference for the MenuItem \ninstance to be removed from the menu."}, {"type": "Number", "name": "p_oObject", "description": " Number specifying the index of the item \nto be removed."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number specifying the group to \nwhich the item belongs."}], "description": "Removes the specified item from the menu.", "guessedname": "removeItem", "guessedtype": "function"}, "_enableScrollHeader": {"protected": "", "description": "Enables the header used for scrolling the body of the menu.", "guessedname": "_enableScrollHeader", "guessedtype": "function"}, "_removeItemFromGroupByIndex": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Removes a menu item from a group by index.  Returns the menu \nitem that was removed.", "private": "", "params": [{"type": "Number", "name": "p_nGroupIndex", "description": " Number indicating the group to which the menu \nitem belongs."}, {"type": "Number", "name": "p_nItemIndex", "description": " Number indicating the index of the menu item \nto be removed."}], "guessedname": "_removeItemFromGroupByIndex", "guessedtype": "function"}, "_onShow": {"guessedname": "_onShow", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"show\" event handler for the menu.", "private": "", "guessedtype": "function"}, "_disableScrollFooter": {"protected": "", "description": "Disables the footer used for scrolling the body of the menu.", "guessedname": "_disableScrollFooter", "guessedtype": "function"}, "hasFocus": {"return": {"type": "Boolean", "description": ""}, "description": "Returns a boolean indicating whether or not the menu has focus.", "guessedname": "hasFocus", "guessedtype": "function"}, "setItemGroupTitle": {"params": [{"type": "String", "name": "p_sGroupTitle", "description": " String specifying the title of the group."}, {"type": "Number", "name": "p_nGroupIndex", "description": " Optional. Number specifying the group to which\nthe title belongs."}], "description": "Sets the title of a group of menu items.", "guessedname": "setItemGroupTitle", "guessedtype": "function"}, "_onMouseMove": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed \nback by the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "\"click\" event handler for the menu.", "guessedname": "_onMouseMove", "guessedtype": "function"}, "getRoot": {"description": "Finds the menu's root menu.", "guessedname": "getRoot", "guessedtype": "function"}, "configShadow": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The Menu instance fired the event."}], "description": "Event handler for when the \"shadow\" configuration property of \na menu changes.", "guessedname": "configShadow", "guessedtype": "function"}, "subscribe": {"params": [{"type": "string", "name": "p_type", "description": "        the type, or name of the event"}, {"type": "function", "name": "p_fn", "description": "        the function to exectute when the event fires"}, {"type": "Object", "name": "p_obj", "description": "         An object to be passed along when the event \nfires"}, {"type": "boolean", "name": "p_override", "description": "   If true, the obj passed in becomes the \nexecution scope of the listener"}], "description": "Adds the specified CustomEvent subscriber to the menu and each of \nits submenus.", "guessedname": "subscribe", "guessedtype": "function"}, "_setMaxHeight": {"guessedname": "_setMaxHeight", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}, {"type": "Number", "name": "p_nMaxHeight", "description": " Number representing the value to set for the \n\"maxheight\" configuration property."}], "description": "\"renderEvent\" handler used to defer the setting of the \n\"maxheight\" configuration property until the menu is rendered in lazy \nload scenarios.", "private": "", "guessedtype": "function"}, "_subscribeToItemEvents": {"guessedname": "_subscribeToItemEvents", "params": [{"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object reference for the MenuItem \ninstance whose events should be subscribed to."}], "description": "Subscribes a menu to a menu item's event.", "private": "", "guessedtype": "function"}, "_onYChange": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}], "description": "\"y\" event handler for a Menu instance.", "guessedname": "_onYChange", "guessedtype": "function"}, "_onMouseOut": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"mouseout\" event handler for the menu.", "guessedname": "_onMouseOut", "guessedtype": "function"}, "_initSubTree": {"description": "Iterates the childNodes of the source element to find nodes \nused to instantiate menu and menu items.", "private": "", "guessedname": "_initSubTree", "guessedtype": "function"}, "configIframe": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"iframe\" configuration property of \nthe menu changes.", "guessedname": "configIframe", "guessedtype": "function"}, "_onScrollTargetMouseOver": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed \nback by the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "\"mouseover\" event handler for the menu's \"header\" and \"footer\" \nelements.  Used to scroll the body of the menu up and down when the \nmenu's \"maxheight\" configuration property is set to a value greater than 0.", "guessedname": "_onScrollTargetMouseOver", "guessedtype": "function"}, "configClassName": {"params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The Menu instance fired the event."}], "description": "Event handler for when the \"classname\" configuration property of \na menu changes.", "guessedname": "configClassName", "guessedtype": "function"}, "_onKeyPress": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}], "description": "\"keypress\" event handler for a Menu instance.", "guessedname": "_onKeyPress", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for the menu.", "guessedname": "initEvents", "guessedtype": "function"}, "checkPosition": {"return": {"type": "Boolean", "description": ""}, "params": [{"type": "Object", "name": "p_sPosition", "description": " String specifying the position of the menu."}], "description": "Checks to make sure that the value of the \"position\" property \nis one of the supported strings. Returns true if the position is supported.", "private": ""}, "_execSubmenuHideDelay": {"guessedname": "_execSubmenuHideDelay", "params": [{"type": "YAHOO.widget.Menu", "name": "p_oSubmenu", "description": " Object specifying the submenu that  \nshould be hidden."}, {"type": "Number", "name": "p_nMouseX", "description": " The x coordinate of the mouse when it left \nthe specified submenu's parent menu item."}, {"type": "Number", "name": "p_nHideDelay", "description": " The number of milliseconds that should ellapse\nbefore the submenu is hidden."}], "description": "Hides a submenu after the number of milliseconds specified by \nthe \"submenuhidedelay\" configuration property have ellapsed.", "private": "", "guessedtype": "function"}, "_onKeyDown": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"keydown\" event handler for the menu.", "guessedname": "_onKeyDown", "guessedtype": "function"}, "_onBlur": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " The name of the event that was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Collection of arguments sent when the event \nwas fired."}], "description": "\"blur\" event handler for a Menu instance.", "guessedname": "_onBlur", "guessedtype": "function"}, "configPosition": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object representing the menu that \nfired the event."}], "description": "Event handler for when the \"position\" configuration property \nof the menu changes.", "guessedname": "configPosition", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be\nchanged using the menu's Config object (\"cfg\").", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "_execHideDelay": {"description": "Hides the menu after the number of milliseconds specified by \nthe \"hidedelay\" configuration property.", "private": "", "guessedname": "_execHideDelay", "guessedtype": "function"}}, "extends": "YAHOO.widget.Overlay", "superclass": "YAHOO.widget.Overlay", "file": "menu.js", "guessedtype": "function", "shortname": "Menu", "properties": {"activeItem": {"default": "null", "type": "YAHOO.widget.MenuItem", "description": "Object reference to the item in the menu that has is selected.", "guessedname": "activeItem", "guessedtype": "property"}, "CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \nmenu's <code><div></code> element.", "default": "\"yuimenu\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "lazyLoad": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu's \"lazy load\" feature is \nenabled.  If set to \"true,\" initialization and rendering of the menu's \nitems will be deferred until the first time it is made visible.  This \nproperty should be set via the constructor using the configuration \nobject literal.", "guessedname": "lazyLoad", "guessedtype": "property"}, "parent": {"default": "null", "type": "YAHOO.widget.MenuItem", "description": "Object reference to the menu's parent menu or menu item.  \nThis property can be set via the constructor using the configuration \nobject literal.", "guessedname": "parent", "guessedtype": "property"}, "_bStopMouseEventHandlers": {"description": "Stops \"mouseover,\" \"mouseout,\" and \"mousemove\" event handlers \nfrom executing.", "default": "false", "private": "", "guessedname": "_bStopMouseEventHandlers", "guessedtype": "property", "type": "Boolean"}, "_bHandledMouseOverEvent": {"description": "Boolean indicating the current state of the menu's \n\"mouseover\" event.", "default": "false", "private": "", "guessedname": "_bHandledMouseOverEvent", "guessedtype": "property", "type": "Boolean"}, "srcElement": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-94282980\">HTMLSelectElement</a>|<a \nhref=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.\nhtml#ID-22445964\">HTMLDivElement</a>", "description": "Object reference to the HTML element (either \n<code><select></code> or <code><div></code>) used to \ncreate the menu.", "guessedname": "srcElement", "guessedtype": "property"}, "_bHandledMouseOutEvent": {"description": "Boolean indicating the current state of the menu's\n\"mouseout\" event.", "default": "false", "private": "", "guessedname": "_bHandledMouseOutEvent", "guessedtype": "property", "type": "Boolean"}, "_sClassName": {"description": "The current value of the \"classname\" configuration attribute.", "default": "null", "private": "", "guessedname": "_sClassName", "guessedtype": "property", "type": "String"}, "ITEM_TYPE": {"description": "Object representing the type of menu item to instantiate and \nadd when parsing the child nodes (either <code><li></code> element, \n<code><optgroup></code> element or <code><option></code>) \nof the menu's source HTML element.", "default": "YAHOO.widget.MenuItem", "guessedname": "ITEM_TYPE", "guessedtype": "property", "type": "YAHOO.widget.MenuItem", "final": ""}, "itemData": {"default": "null", "type": "Array", "description": "Array of items to be added to the menu.  The array can contain \nstrings representing the text for each item to be created, object literals \nrepresenting the menu item configuration properties, or MenuItem instances.  \nThis property should be set via the constructor using the configuration \nobject literal.", "guessedname": "itemData", "guessedtype": "property"}, "GROUP_TITLE_TAG_NAME": {"description": "String representing the tagname of the HTML element used to \ntitle the menu's item groups.", "default": "H6", "guessedname": "GROUP_TITLE_TAG_NAME", "guessedtype": "property", "type": "String", "final": ""}, "_aGroupTitleElements": {"description": "Array of HTML element used to title groups of menu items.", "default": "[]", "private": "", "guessedname": "_aGroupTitleElements", "guessedtype": "property", "type": "Array"}, "_aListElements": {"description": "Array of <code><ul></code> elements, each of which is \nthe parent node for each item's <code><li></code> element.", "default": "[]", "private": "", "guessedname": "_aListElements", "guessedtype": "property", "type": "Array"}, "_useHideDelay": {"description": "Boolean indicating if the \"mouseover\" and \"mouseout\" event \nhandlers used for hiding the menu via a call to \"YAHOO.lang.later\" have \nalready been assigned.", "default": "false", "private": "", "guessedname": "_useHideDelay", "guessedtype": "property", "type": "Boolean"}, "_nCurrentMouseX": {"description": "The current x coordinate of the mouse inside the area of \nthe menu.", "default": "0", "private": "", "guessedname": "_nCurrentMouseX", "guessedtype": "property", "type": "Number"}, "_aItemGroups": {"description": "Multi-dimensional Array representing the menu items as they\nare grouped in the menu.", "default": "[]", "private": "", "guessedname": "_aItemGroups", "guessedtype": "property", "type": "Array"}, "OFF_SCREEN_POSITION": {"description": "Array representing the default x and y position that a menu \nshould have when it is positioned outside the viewport by the \n\"poistionOffScreen\" method.", "default": "\"-999em\"", "guessedname": "OFF_SCREEN_POSITION", "guessedtype": "property", "type": "String", "final": ""}}, "description": "The Menu class creates a container that holds a vertical list representing \na set of options or commands.  Menu is the base class for all \nmenu containers."}, "YAHOO.util.Number": {"name": "YAHOO.util.Number", "namespace": "YAHOO.util", "module": "datasource", "guessedname": "Number", "methods": {"format": {"return": {"type": "String", "description": "Formatted number for display. Note, the following values\nreturn as \"\": null, undefined, NaN, \"\"."}, "params": [{"type": "Number", "name": "nData", "description": "  Number."}, {"type": "Object} (Optional) Optional configuration values:\n<dl>\n<dt>prefix {String}</dd>\n<dd>String prepended before each number, like a currency designator \"$\"</dd>\n<dt>decimalPlaces {Number}</dd>\n<dd>Number of decimal places to round.</dd>\n<dt>decimalSeparator {String}</dd>\n<dd>Decimal separator</dd>\n<dt>thousandsSeparator {String}</dd>\n<dd>Thousands separator</dd>\n<dt>suffix {String", "name": "oConfig", "description": " </dd>\n<dd>String appended after each number, like \" items\" (note the space)</dd>\n<dt>negativeFormat</dt>\n<dd>String used as a guide for how to indicate negative numbers.  The first '#' character in the string will be replaced by the number.  Default '-#'.</dd>\n</dl>"}], "description": "Takes a native JavaScript Number and formats to string for display to user.", "guessedname": "format", "guessedtype": "function"}}, "static": "", "file": "Type.js", "guessedtype": "property", "shortname": "Number", "requires": "yahoo", "description": "The static Number class provides helper functions to deal with data of type\nNumber."}, "YAHOO.widget.Calendar2up": {"name": "YAHOO.widget.Calendar2up", "deprecated": "The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.", "namespace": "YAHOO.widget", "module": "calendar", "guessedname": "Calendar2up", "extends": "YAHOO.widget.CalendarGroup", "superclass": "YAHOO.widget.CalendarGroup", "file": "CalendarGroup.js", "guessedtype": "function", "shortname": "Calendar2up", "properties": {"Cal2up": {"deprecated": "The old Calendar2up class is no longer necessary, since CalendarGroup renders in a 2up view by default.", "guessedname": "Cal2up", "guessedtype": "property"}}}, "YAHOO.widget.Slider": {"name": "YAHOO.widget.Slider", "description": "A DragDrop implementation that can be used as a background for a\nslider.  It takes a reference to the thumb instance \nso it can delegate some of the events to it.  The goal is to make the \nthumb jump to the location on the background when the background is \nclicked.", "constructors": [{"params": [{"type": "String", "name": "id", "description": "     The id of the element linked to this instance"}, {"type": "String", "name": "sGroup", "description": " The group of related DragDrop items"}, {"type": "SliderThumb", "name": "oThumb", "description": " The thumb for this slider"}, {"type": "String", "name": "sType", "description": "  The type of slider (horiz, vert, region)"}], "description": "A DragDrop implementation that can be used as a background for a\nslider.  It takes a reference to the thumb instance \nso it can delegate some of the events to it.  The goal is to make the \nthumb jump to the location on the background when the background is \nclicked."}], "namespace": "YAHOO.widget", "module": "slider", "events": {"slideEnd": {"description": "Event that fires at the end of a slider thumb move"}, "change": {"params": [{"type": "int", "name": "newOffset|x", "description": " the new offset for normal sliders, or the new\nx offset for region sliders"}, {"type": "int", "name": "y", "description": " the number of pixels the thumb has moved on the y axis\n(region sliders only)"}], "description": "Event the fires when the value of the control changes.  If \nthe control is animated the event will fire every point\nalong the way."}, "slideStart": {"description": "Event that fires at the beginning of a slider thumb move."}}, "uses": ["YAHOO.util.EventProvider"], "superclass": "YAHOO.util.DragDrop", "file": "Slider.js", "extends": "YAHOO.util.DragDrop", "shortname": "Slider", "properties": {"keyIncrement": {"type": "int", "description": "Specifies the number of pixels the arrow keys will move the slider.\nDefault is 20.", "guessedname": "keyIncrement", "guessedtype": "property"}, "_silent": {"guessedname": "_silent", "type": "boolean", "description": "Indicates whether or not events will be supressed for the current\nslide operation", "private": "", "guessedtype": "property"}, "backgroundEnabled": {"type": "boolean", "description": "Set to false to disable a background click thumb move", "guessedname": "backgroundEnabled", "guessedtype": "property"}, "animationDuration": {"default": "0.2", "type": "int", "description": "If animation is configured, specifies the length of the animation\nin seconds.", "guessedname": "animationDuration", "guessedtype": "property"}, "animate": {"type": "boolean", "description": "Flag that determines if the thumb will animate when moved", "guessedname": "animate", "guessedtype": "property"}, "moveComplete": {"deprecated": "use the slideEnd event instead", "type": "Boolean", "description": "moveComplete is set to true when the slider has moved to its final\ndestination.  For animated slider, this value can be checked in \nthe onChange handler to make it possible to execute logic only\nwhen the move is complete rather than at all points along the way.\nDeprecated because this flag is only useful when the background is\nclicked and the slider is animated.  If the user drags the thumb,\nthe flag is updated when the drag is over ... the final onDrag event\nfires before the mouseup the ends the drag, so the implementer will\nnever see it.", "guessedname": "moveComplete", "guessedtype": "property"}, "thumb": {"type": "YAHOO.widget.SliderThumb", "description": "A YAHOO.widget.SliderThumb instance that we will use to \nreposition the thumb when the background is clicked", "guessedname": "thumb", "guessedtype": "property"}, "SOURCE_SET_VALUE": {"description": "Constant for valueChangeSource, indicating that the value was altered\nby a programmatic call to setValue/setRegionValue.", "default": "2", "deprecated": "use static Slider.SOURCE_SET_VALUE", "guessedname": "SOURCE_SET_VALUE", "guessedtype": "property", "final": ""}, "SOURCE_UI_EVENT": {"description": "Constant for valueChangeSource, indicating that the user clicked or\ndragged the slider to change the value.", "default": "1", "deprecated": "use static Slider.SOURCE_UI_EVENT", "guessedname": "SOURCE_UI_EVENT", "guessedtype": "property", "final": ""}, "_mouseDown": {"description": "Tracks the state of the mouse button to aid in when events are fired.", "default": "false", "private": "", "guessedname": "_mouseDown", "guessedtype": "property", "type": "boolean"}, "Slider.ANIM_AVAIL": {"type": "boolean", "static": "", "description": "By default, animation is available if the animation utility is detected.", "guessedname": "ANIM_AVAIL", "guessedtype": "property"}, "Slider.SOURCE_UI_EVENT": {"description": "Constant for valueChangeSource, indicating that the user clicked or\ndragged the slider to change the value.", "default": "1", "static": "", "guessedname": "SOURCE_UI_EVENT", "guessedtype": "property", "final": ""}, "type": {"type": "string", "description": "The type of the slider (horiz, vert, region)", "guessedname": "type", "guessedtype": "property"}, "enableKeys": {"type": "boolean", "description": "Enables the arrow, home and end keys, defaults to true.", "guessedname": "enableKeys", "guessedtype": "property"}, "isTarget": {"private": "", "description": "Overrides the isTarget property in YAHOO.util.DragDrop", "guessedname": "isTarget", "guessedtype": "property"}, "baselinePos": {"type": "[int, int]", "description": "The basline position of the background element, used\nto determine if the background has moved since the last\noperation.", "guessedname": "baselinePos", "guessedtype": "property"}, "dragOnly": {"default": "true", "type": "boolean", "description": "Override the default setting of dragOnly to true.", "guessedname": "dragOnly", "guessedtype": "property"}, "lastOffset": {"type": "[int, int]", "description": "Saved offset used to protect against NaN problems when slider is\nset to display:none", "guessedname": "lastOffset", "guessedtype": "property"}, "thumbCenterPoint": {"type": "{\"x\": int, \"y\": int}", "description": "The center of the slider element is stored so we can \nplace it in the correct position when the background is clicked.", "guessedname": "thumbCenterPoint", "guessedtype": "property"}, "Slider.SOURCE_SET_VALUE": {"description": "Constant for valueChangeSource, indicating that the value was altered\nby a programmatic call to setValue/setRegionValue.", "default": "2", "static": "", "guessedname": "SOURCE_SET_VALUE", "guessedtype": "property", "final": ""}, "Slider.SOURCE_KEY_EVENT": {"description": "Constant for valueChangeSource, indicating that the value was altered\nby hitting any of the supported keyboard characters.", "default": "2", "static": "", "guessedname": "SOURCE_KEY_EVENT", "guessedtype": "property", "final": ""}, "valueChangeSource": {"since": "2.3.0", "type": "int", "description": "When the slider value changes, this property is set to identify where\nthe update came from.  This will be either 1, meaning the slider was\nclicked or dragged, or 2, meaning that it was set via a setValue() call.\nThis can be used within event handlers to apply some of the logic only\nwhen dealing with one source or another.", "guessedname": "valueChangeSource", "guessedtype": "property"}, "tickPause": {"type": "int", "description": "Adjustment factor for tick animation, the more ticks, the\nfaster the animation (by default)", "guessedname": "tickPause", "guessedtype": "property"}}, "methods": {"YAHOO.widget.Slider.getHorizDualSlider": {"return": {"type": "DualSlider", "description": "a horizontal dual-thumb slider control"}, "description": "Factory method for creating a horizontal dual-thumb slider", "static": "", "guessedname": "getHorizDualSlider", "guessedtype": "property", "params": [{"type": "String", "name": "bg", "description": " the id of the slider's background element"}, {"type": "String", "name": "minthumb", "description": " the id of the min thumb"}, {"type": "String", "name": "maxthumb", "description": " the id of the thumb thumb"}, {"type": "int", "name": "range", "description": " the number of pixels the thumbs can move within"}, {"type": "int", "name": "iTickSize", "description": " (optional) the element should move this many pixels\nat a time"}, {"type": "Array", "name": "initVals", "description": " (optional) [min,max] Initial thumb placement"}]}, "fireEvents": {"guessedname": "fireEvents", "params": [{"type": "boolean", "name": "thumbEvent", "description": " set to true if this event is fired from an event\nthat occurred on the thumb.  If it is, the state of the\nthumb dd object should be correct.  Otherwise, the event\noriginated on the background, so the thumb state needs to\nbe refreshed before proceeding."}], "description": "Fires the change event if the value has been changed.  Ignored if we are in\nthe middle of an animation as the event will fire when the animation is\ncomplete", "private": "", "guessedtype": "function"}, "lock": {"description": "Locks the slider, overrides YAHOO.util.DragDrop", "guessedname": "lock", "guessedtype": "function"}, "YAHOO.widget.Slider.getHorizSlider": {"return": {"type": "Slider", "description": "a horizontal slider control"}, "description": "Factory method for creating a horizontal slider", "static": "", "guessedname": "getHorizSlider", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "focus": {"private": "", "description": "Try to focus the element when clicked so we can add\naccessibility features", "guessedname": "focus", "guessedtype": "function"}, "onMouseDown": {"private": "", "description": "Handles the mousedown event for the slider background", "guessedname": "onMouseDown", "guessedtype": "function"}, "_setValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "description": "Worker function to execute the value set operation.  Accepts type of\nset operation in addition to the usual setValue params.", "protected": "", "params": [{"type": "int", "name": "source", "description": "  what triggered the set (e.g. Slider.SOURCE_SET_VALUE)"}, {"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}, {"type": "boolean", "name": "silent", "description": " when true, do not fire events"}], "guessedname": "_setValue", "guessedtype": "function"}, "handleKeyDown": {"params": [{"type": "Event", "name": "e", "description": " the keydown event"}], "description": "Executed when a keydown event happens with the control focused.\nUpdates the slider value and display when the keypress is an\narrow key, home, or end as long as enableKeys is set to true.", "guessedname": "handleKeyDown", "guessedtype": "function"}, "resetThumbConstraints": {"protected": "", "description": "Resets the X and Y contraints for the thumb.  Used in lieu of the thumb\ninstance's inherited resetConstraints because some logic was not\napplicable.", "guessedname": "resetThumbConstraints", "guessedtype": "function"}, "getXValue": {"return": {"type": "int", "description": "the current horizontal offset"}, "description": "Returns the slider's thumb X offset from the start position", "guessedname": "getXValue", "guessedtype": "function"}, "moveThumb": {"guessedname": "moveThumb", "params": [{"type": "int", "name": "x", "description": " the X coordinate of the click"}, {"type": "int", "name": "y", "description": " the Y coordinate of the click"}, {"type": "boolean", "name": "skipAnim", "description": " don't animate if the move happend onDrag"}, {"type": "boolean", "name": "midMove", "description": " set to true if this is not terminating\nthe slider movement"}], "description": "Move the associated slider moved to a timeout to try to get around the \nmousedown stealing moz does when I move the slider element between the \ncursor and the background during the mouseup event", "private": "", "guessedtype": "function"}, "setRegionValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "params": [{"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (x axis for region)"}, {"type": "int", "name": "newOffset2", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (y axis for region)"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}, {"type": "boolean", "name": "silent", "description": " when true, do not fire events"}], "description": "Provides a way to set the value of the region slider in code.", "guessedname": "setRegionValue", "guessedtype": "function"}, "onSliderEnd": {"deprecated": "use instance.subscribe(\"slideEnd\") instead", "description": "Event that fires at the end of a slider thumb move", "guessedname": "onSlideEnd", "guessedtype": "function"}, "thumbMouseUp": {"private": "", "description": "Handles mouseup event on the thumb", "guessedname": "thumbMouseUp", "guessedtype": "function"}, "YAHOO.widget.Slider.getSliderRegion": {"return": {"type": "Slider", "description": "a slider region control"}, "description": "Factory method for creating a slider region like the one in the color\npicker example", "static": "", "guessedname": "getSliderRegion", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iLeft", "description": " the number of pixels the element can move left"}, {"type": "int", "name": "iRight", "description": " the number of pixels the element can move right"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "verifyOffset": {"return": {"type": "boolean", "description": "True if the offset is the same as the baseline."}, "description": "Checks the background position element position.  If it has moved from the\nbaseline position, the constraints for the thumb are reset", "guessedname": "verifyOffset", "guessedtype": "function"}, "initThumb": {"params": [{"type": "YAHOO.widget.SliderThumb", "name": "t", "description": " the slider thumb"}], "description": "Initializes the slider's thumb. Executed in the constructor.", "guessedname": "initThumb", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "string representation of the instance"}, "description": "Slider toString", "guessedname": "toString", "guessedtype": "function"}, "moveOneTick": {"guessedname": "moveOneTick", "params": [{"type": "int[]", "name": "the", "description": " destination coordinate"}], "description": "Move the slider one tick mark towards its final coordinate.  Used\nfor the animation when tick marks are defined", "private": "", "guessedtype": "function"}, "onChange": {"deprecated": "use instance.subscribe(\"change\") instead", "params": [{"type": "int", "name": "firstOffset", "description": " the number of pixels the thumb has moved\nfrom its start position. Normal horizontal and vertical sliders will only\nhave the firstOffset.  Regions will have both, the first is the horizontal\noffset, the second the vertical."}, {"type": "int", "name": "secondOffset", "description": " the y offset for region sliders"}], "description": "Event that fires when the value of the slider has changed", "guessedname": "onChange", "guessedtype": "function"}, "initSlider": {"params": [{"type": "string", "name": "sType", "description": " the type of slider (horiz, vert, region)"}], "description": "Initializes the slider.  Executed in the constructor", "guessedname": "initSlider", "guessedtype": "function"}, "setValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "params": [{"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}, {"type": "boolean", "name": "silent", "description": " when true, do not fire events"}], "description": "Provides a way to set the value of the slider in code.", "guessedname": "setValue", "guessedtype": "function"}, "setThumbCenterPoint": {"description": "When the thumb is available, we cache the centerpoint of the element so\nwe can position the element correctly when the background is clicked", "guessedname": "setThumbCenterPoint", "guessedtype": "function"}, "_bindKeyEvents": {"protected": "", "description": "Sets up the listeners for keydown and key press events.", "guessedname": "_bindKeyEvents", "guessedtype": "function"}, "endMove": {"private": "", "description": "Fired when the slider movement ends", "guessedname": "endMove", "guessedtype": "function"}, "_setRegionValue": {"return": {"type": "boolean", "description": "true if the move was performed, false if it failed"}, "description": "Worker function to execute the value set operation.  Accepts type of\nset operation in addition to the usual setValue params.", "protected": "", "params": [{"type": "int", "name": "source", "description": "  what triggered the set (e.g. Slider.SOURCE_SET_VALUE)"}, {"type": "int", "name": "newOffset", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (x axis for region)"}, {"type": "int", "name": "newOffset2", "description": " the number of pixels the thumb should be\npositioned away from the initial start point (y axis for region)"}, {"type": "boolean", "name": "skipAnim", "description": " set to true to disable the animation\nfor this move action (but not others)."}, {"type": "boolean", "name": "force", "description": " ignore the locked setting and set value anyway"}, {"type": "boolean", "name": "silent", "description": " when true, do not fire events"}], "guessedname": "_setRegionValue", "guessedtype": "function"}, "getYValue": {"return": {"type": "int", "description": "the current vertical offset"}, "description": "Returns the slider's thumb Y offset from the start position", "guessedname": "getYValue", "guessedtype": "function"}, "onAvailable": {"description": "Executed when the slider element is available", "guessedname": "onAvailable", "guessedtype": "function"}, "onSlideStart": {"deprecated": "use instance.subscribe(\"slideStart\") instead", "description": "Event that fires when the at the beginning of the slider thumb move", "guessedname": "onSlideStart", "guessedtype": "function"}, "onDrag": {"private": "", "description": "Handles the onDrag event for the slider background", "guessedname": "onDrag", "guessedtype": "function"}, "getThumb": {"return": {"type": "SliderThumb", "description": "this slider's thumb"}, "description": "Returns a reference to this slider's thumb", "guessedname": "getThumb", "guessedtype": "function"}, "YAHOO.widget.Slider.getVertSlider": {"return": {"type": "Slider", "description": "a vertical slider control"}, "description": "Factory method for creating a vertical slider", "static": "", "guessedname": "getVertSlider", "guessedtype": "property", "params": [{"type": "String", "name": "sBGElId", "description": " the id of the slider's background element"}, {"type": "String", "name": "sHandleElId", "description": " the id of the thumb element"}, {"type": "int", "name": "iUp", "description": " the number of pixels the element can move up"}, {"type": "int", "name": "iDown", "description": " the number of pixels the element can move down"}, {"type": "int", "name": "iTickSize", "description": " optional parameter for specifying that the element \nshould move a certain number pixels at a time."}]}, "handleKeyPress": {"params": [{"type": "Event", "name": "e", "description": " the keypress event"}], "description": "Executed when a keypress event happens with the control focused.\nPrevents the default behavior for navigation keys.  The actual\nlogic for moving the slider thumb in response to a key event\nhappens in handleKeyDown.", "guessedname": "handleKeyPress", "guessedtype": "function"}, "setStartSliderState": {"description": "Initialization that sets up the value offsets once the elements are ready", "guessedname": "setStartSliderState", "guessedtype": "function"}, "getValue": {"return": {"type": "int", "description": "the current value"}, "description": "Returns the slider's thumb offset from the start position", "guessedname": "getValue", "guessedtype": "function"}, "b4MouseDown": {"private": "", "description": "Resets the constraints before moving the thumb.", "guessedname": "b4MouseDown", "guessedtype": "function"}, "unlock": {"description": "Unlocks the slider, overrides YAHOO.util.DragDrop", "guessedname": "unlock", "guessedtype": "function"}, "YAHOO.widget.Slider.getVertDualSlider": {"return": {"type": "DualSlider", "description": "a vertical dual-thumb slider control"}, "description": "Factory method for creating a vertical dual-thumb slider.", "static": "", "guessedname": "getVertDualSlider", "guessedtype": "property", "params": [{"type": "String", "name": "bg", "description": " the id of the slider's background element"}, {"type": "String", "name": "minthumb", "description": " the id of the min thumb"}, {"type": "String", "name": "maxthumb", "description": " the id of the thumb thumb"}, {"type": "int", "name": "range", "description": " the number of pixels the thumbs can move within"}, {"type": "int", "name": "iTickSize", "description": " (optional) the element should move this many pixels\nat a time"}, {"type": "Array", "name": "initVals", "description": " (optional) [min,max] Initial thumb placement"}]}, "_getNextY": {"private": "", "description": "Returns the next Y tick value based on the current coord and the target coord.", "guessedname": "_getNextY", "guessedtype": "function"}, "_getNextX": {"private": "", "description": "Returns the next X tick value based on the current coord and the target coord.", "guessedname": "_getNextX", "guessedtype": "function"}}}, "YAHOO.util.ImageLoader.bgImgObj": {"name": "YAHOO.util.ImageLoader.bgImgObj", "constructors": [{"params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}], "description": "Background image object. A background image is one whose URL is specified by \"background-image\" in the element's style"}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "bgImgObj", "methods": {"_applyUrl": {"guessedname": "_applyUrl", "params": [{"type": "Object", "name": "el", "description": "\tHTML DOM element"}], "description": "Inserts the image URL into the DOM so that the image is displayed.\nSets style.backgroundImage", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.ImageLoader.imgObj", "superclass": "YAHOO.util.ImageLoader.imgObj", "file": "ImageLoader.js", "guessedtype": "function", "shortname": "bgImgObj", "description": "Background image object. A background image is one whose URL is specified by \"background-image\" in the element's style"}, "YAHOO.widget.LayoutUnit": {"name": "YAHOO.widget.LayoutUnit", "configs": {"dataTimeout": {"default": "null", "type": "Number", "description": "Number if milliseconds before aborting and calling failure handler."}, "grids": {"type": "Boolean", "description": "Set this option to true if you want the LayoutUnit to fix the first layer of YUI CSS Grids (margins)"}, "height": {"type": "Number", "description": "The height of the Unit"}, "header": {"description": "The text to use as the Header of the Unit"}, "wrap": {"type": "HTMLElement", "description": "A reference to the wrap element", "private": ""}, "close": {"description": "Adds a close icon to the unit"}, "animate": {"type": "Boolean", "description": "Use animation to collapse/expand the unit"}, "collapseSize": {"type": "Number", "description": "The pixel size of the Clip that we will collapse to"}, "top": {"type": "Number", "description": "The current top positioning of the Unit", "private": ""}, "minWidth": {"type": "Number", "description": "The minWidth parameter passed to the Resize Utility"}, "width": {"type": "Number", "description": "The width of the Unit"}, "maxWidth": {"type": "Number", "description": "The maxWidth parameter passed to the Resize Utility"}, "body": {"description": "The content for the body. If we find an element in the page with an id that matches the passed option we will move that element into the body of this unit."}, "hover": {"description": "Config option to pass to the Resize Utility"}, "collapse": {"description": "Adds a collapse icon to the unit"}, "parent": {"type": "{Object} YAHOO.widget.Layout", "description": "The parent Layout that we are assigned to"}, "duration": {"description": "The duration to give the Animation Utility when animating the opening and closing of Units"}, "minHeight": {"type": "Number", "description": "The minHeight parameter passed to the Resize Utility"}, "dataSrc": {"type": "String", "description": "The unit data source, used for loading content dynamically."}, "zIndex": {"type": "{Number}", "description": "The CSS zIndex to give to the unit, so you can have overlapping elements such as menus in a unit."}, "proxy": {"type": "Boolean", "description": "Use the proxy config setting for the Resize Utility"}, "position": {"type": "{String}", "description": "The position (top, right, bottom, left or center) of the Unit in the Layout"}, "dataLoaded": {"type": "Boolean", "description": "Whether or not any data has been loaded from the server."}, "resize": {"description": "Should a Resize instance be added to this unit"}, "gutter": {"type": "String", "description": "The gutter that we should apply to the parent Layout around this Unit. Supports standard CSS markup: (2 4 0 5) or (2) or (2 5)"}, "footer": {"description": "The content for the footer. If we find an element in the page with an id that matches the passed option we will move that element into the footer of this unit."}, "useShim": {"description": "Config option to pass to the Resize Utility"}, "loadMethod": {"default": "\"GET\"", "type": "String", "description": "The method to use for the data request."}, "maxHeight": {"type": "Number", "description": "The maxHeight parameter passed to the Resize Utility"}, "easing": {"description": "The Animation Easing to apply to the Animation instance for this unit."}, "scroll": {"type": "Boolean/Null", "description": "Adds a class to the unit to allow for overflow: auto (yui-layout-scroll), default is overflow: hidden (yui-layout-noscroll). If true scroll bars will be placed on the element when the content exceeds the given area, false will put overflow hidden to hide the content. Passing null will render the content as usual overflow."}, "left": {"type": "Number", "description": "The current left position of the Unit", "private": ""}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to make a unit."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Provides a fixed position unit containing a header, body and footer for use with a YAHOO.widget.Layout instance.</p>"}], "namespace": "YAHOO.widget", "module": "layout", "events": {"load": {"type": "YAHOO.util.CustomEvent", "description": "Fired when data is loaded via the dataSrc config."}, "contentChange": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the content in the header, body or footer is changed via the API"}, "proxyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "proxyChange", "description": "Fires when the value for the configuration attribute 'proxy' changes."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "beforeGutterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGutterChange", "description": "Fires before the value for the configuration attribute 'gutter' changes. Return false to cancel the attribute change."}, "beforeExpand": {"type": "YAHOO.util.CustomEvent", "description": "Fired before the unit is exanded. If you return false, the collapse is cancelled."}, "zIndexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "zIndexChange", "description": "Fires when the value for the configuration attribute 'zIndex' changes."}, "beforeMaxHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxHeightChange", "description": "Fires before the value for the configuration attribute 'maxHeight' changes. Return false to cancel the attribute change."}, "beforeLeftChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLeftChange", "description": "Fires before the value for the configuration attribute 'left' changes. Return false to cancel the attribute change."}, "maxWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxWidthChange", "description": "Fires when the value for the configuration attribute 'maxWidth' changes."}, "close": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the unit is closed"}, "gridsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "gridsChange", "description": "Fires when the value for the configuration attribute 'grids' changes."}, "beforeDataTimeoutChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataTimeoutChange", "description": "Fires before the value for the configuration attribute 'dataTimeout' changes. Return false to cancel the attribute change."}, "beforeParentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeParentChange", "description": "Fires before the value for the configuration attribute 'parent' changes. Return false to cancel the attribute change."}, "resizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "resizeChange", "description": "Fires when the value for the configuration attribute 'resize' changes."}, "beforeTopChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTopChange", "description": "Fires before the value for the configuration attribute 'top' changes. Return false to cancel the attribute change."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "beforeResizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeResizeChange", "description": "Fires before the value for the configuration attribute 'resize' changes. Return false to cancel the attribute change."}, "beforeHeaderChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeaderChange", "description": "Fires before the value for the configuration attribute 'header' changes. Return false to cancel the attribute change."}, "leftChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "leftChange", "description": "Fires when the value for the configuration attribute 'left' changes."}, "easingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "easingChange", "description": "Fires when the value for the configuration attribute 'easing' changes."}, "beforeMinWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinWidthChange", "description": "Fires before the value for the configuration attribute 'minWidth' changes. Return false to cancel the attribute change."}, "scrollChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "scrollChange", "description": "Fires when the value for the configuration attribute 'scroll' changes."}, "beforeDataSrcChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataSrcChange", "description": "Fires before the value for the configuration attribute 'dataSrc' changes. Return false to cancel the attribute change."}, "startResize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the Resize Utility fires it's startResize Event."}, "collapseSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "collapseSizeChange", "description": "Fires when the value for the configuration attribute 'collapseSize' changes."}, "beforeGridsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGridsChange", "description": "Fires before the value for the configuration attribute 'grids' changes. Return false to cancel the attribute change."}, "beforeMinHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinHeightChange", "description": "Fires before the value for the configuration attribute 'minHeight' changes. Return false to cancel the attribute change."}, "maxHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxHeightChange", "description": "Fires when the value for the configuration attribute 'maxHeight' changes."}, "beforeResize": {"type": "YAHOO.util.CustomEvent", "description": "Fired at the beginning of the resize method. If you return false, the resize is cancelled."}, "dataSrcChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataSrcChange", "description": "Fires when the value for the configuration attribute 'dataSrc' changes."}, "beforePositionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePositionChange", "description": "Fires before the value for the configuration attribute 'position' changes. Return false to cancel the attribute change."}, "expand": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the unit is exanded"}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "useShimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "useShimChange", "description": "Fires when the value for the configuration attribute 'useShim' changes."}, "hoverChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hoverChange", "description": "Fires when the value for the configuration attribute 'hover' changes."}, "beforeFooterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFooterChange", "description": "Fires before the value for the configuration attribute 'footer' changes. Return false to cancel the attribute change."}, "beforeCollapseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCollapseChange", "description": "Fires before the value for the configuration attribute 'collapse' changes. Return false to cancel the attribute change."}, "minWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minWidthChange", "description": "Fires when the value for the configuration attribute 'minWidth' changes."}, "beforeScrollChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeScrollChange", "description": "Fires before the value for the configuration attribute 'scroll' changes. Return false to cancel the attribute change."}, "beforeCollapseSizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCollapseSizeChange", "description": "Fires before the value for the configuration attribute 'collapseSize' changes. Return false to cancel the attribute change."}, "bodyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "bodyChange", "description": "Fires when the value for the configuration attribute 'body' changes."}, "gutterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "gutterChange", "description": "Fires when the value for the configuration attribute 'gutter' changes."}, "durationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "durationChange", "description": "Fires when the value for the configuration attribute 'duration' changes."}, "beforeZIndexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeZIndexChange", "description": "Fires before the value for the configuration attribute 'zIndex' changes. Return false to cancel the attribute change."}, "animateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animateChange", "description": "Fires when the value for the configuration attribute 'animate' changes."}, "beforeDurationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDurationChange", "description": "Fires before the value for the configuration attribute 'duration' changes. Return false to cancel the attribute change."}, "beforeProxyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeProxyChange", "description": "Fires before the value for the configuration attribute 'proxy' changes. Return false to cancel the attribute change."}, "footerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "footerChange", "description": "Fires when the value for the configuration attribute 'footer' changes."}, "headerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "headerChange", "description": "Fires when the value for the configuration attribute 'header' changes."}, "beforeHoverChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHoverChange", "description": "Fires before the value for the configuration attribute 'hover' changes. Return false to cancel the attribute change."}, "beforeWrapChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWrapChange", "description": "Fires before the value for the configuration attribute 'wrap' changes. Return false to cancel the attribute change."}, "loadMethodChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "loadMethodChange", "description": "Fires when the value for the configuration attribute 'loadMethod' changes."}, "beforeCloseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCloseChange", "description": "Fires before the value for the configuration attribute 'close' changes. Return false to cancel the attribute change."}, "beforeDataLoadedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataLoadedChange", "description": "Fires before the value for the configuration attribute 'dataLoaded' changes. Return false to cancel the attribute change."}, "resize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when this.resize is called"}, "endResize": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the Resize Utility fires it's endResize Event."}, "positionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "positionChange", "description": "Fires when the value for the configuration attribute 'position' changes."}, "beforeAnimateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimateChange", "description": "Fires before the value for the configuration attribute 'animate' changes. Return false to cancel the attribute change."}, "minHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minHeightChange", "description": "Fires when the value for the configuration attribute 'minHeight' changes."}, "loadError": {"type": "YAHOO.util.CustomEvent", "description": "Fired when an error occurs loading data via the dataSrc config. Error message is passed as argument to this event."}, "dataLoadedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataLoadedChange", "description": "Fires when the value for the configuration attribute 'dataLoaded' changes."}, "beforeEasingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeEasingChange", "description": "Fires before the value for the configuration attribute 'easing' changes. Return false to cancel the attribute change."}, "beforeMaxWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxWidthChange", "description": "Fires before the value for the configuration attribute 'maxWidth' changes. Return false to cancel the attribute change."}, "topChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "topChange", "description": "Fires when the value for the configuration attribute 'top' changes."}, "collapse": {"type": "YAHOO.util.CustomEvent", "description": "Fired when the unit is collapsed"}, "beforeBodyChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBodyChange", "description": "Fires before the value for the configuration attribute 'body' changes. Return false to cancel the attribute change."}, "beforeLoadMethodChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLoadMethodChange", "description": "Fires before the value for the configuration attribute 'loadMethod' changes. Return false to cancel the attribute change."}, "beforeUseShimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUseShimChange", "description": "Fires before the value for the configuration attribute 'useShim' changes. Return false to cancel the attribute change."}, "parentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "parentChange", "description": "Fires when the value for the configuration attribute 'parent' changes."}, "beforeCollapse": {"type": "YAHOO.util.CustomEvent", "description": "Fired before the unit is collapsed. If you return false, the collapse is cancelled."}, "wrapChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "wrapChange", "description": "Fires when the value for the configuration attribute 'wrap' changes."}, "closeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "closeChange", "description": "Fires when the value for the configuration attribute 'close' changes."}, "dataTimeoutChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataTimeoutChange", "description": "Fires when the value for the configuration attribute 'dataTimeout' changes."}, "collapseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "collapseChange", "description": "Fires when the value for the configuration attribute 'collapse' changes."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "LayoutUnit", "methods": {"_getBoxSize": {"return": {"type": "Array", "description": "An array of height and width"}, "description": "Get's the elements clientHeight and clientWidth plus the size of the borders", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The HTMLElement to get the size of"}], "guessedname": "_getBoxSize", "guessedtype": "function"}, "toggle": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "description": "Toggles the Unit, replacing it with a clipped version.", "guessedname": "toggle", "guessedtype": "function"}, "init": {"description": "The initalization method inherited from Element.", "private": "", "guessedname": "init", "guessedtype": "function"}, "_getBorderSizes": {"return": {"type": "Array", "description": "An array of the top, right, bottom, left borders."}, "description": "Get the CSS border size of the element passed.", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to get the border size of"}], "guessedname": "_getBorderSizes", "guessedtype": "function"}, "_setHeight": {"return": {"type": "Number", "description": "The new height, fixed for borders and IE QuirksMode"}, "description": "Sets the height of the element based on the border size of the element.", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The HTMLElement to have it's height set"}, {"type": "Number", "name": "h", "description": " The height that you want it the element set to"}], "guessedname": "_setHeight", "guessedtype": "function"}, "_setWidth": {"return": {"type": "Number", "description": "The new width, fixed for borders and IE QuirksMode"}, "description": "Sets the width of the element based on the border size of the element.", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The HTMLElement to have it's width set"}, {"type": "Number", "name": "w", "description": " The width that you want it the element set to"}], "guessedname": "_setWidth", "guessedtype": "function"}, "_toggleClip": {"description": "Toggle th current state of the Clip element and set it's height, width and position", "private": "", "guessedname": "_toggleClip", "guessedtype": "function"}, "getLayoutUnitById": {"static": "", "return": {"type": "Object", "description": "The Layout Object"}, "description": "Get's a layout unit object by the HTML id of the element associated with the Layout Unit object.", "guessedname": "getLayoutUnitById", "guessedtype": "function"}, "_fixQuirks": {"return": {"type": "Number", "description": "The fixed dimension"}, "description": "Fixes the box calculations for IE in QuirksMode", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The HTMLElement to set the dimension on"}, {"type": "Number", "name": "dim", "description": " The number of the dimension to fix"}, {"type": "String", "name": "side", "description": " The dimension (h or w) to fix. Defaults to h"}], "guessedname": "_fixQuirks", "guessedtype": "function"}, "loadContent": {"return": {"type": "object", "description": "YUI Connection Manager handler"}, "description": "Loading the content of the unit using the connection manager", "guessedname": "loadContent", "guessedtype": "function"}, "_createClip": {"description": "Create the clip element used when the Unit is collapsed", "private": "", "guessedname": "_createClip", "guessedtype": "function"}, "initAttributes": {"description": "Processes the config", "private": "", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the LayoutUnit.", "guessedname": "toString", "guessedtype": "function"}, "getSizes": {"return": {"type": "Object", "description": "An object of the sizes used for calculations"}, "description": "Get a reference to the internal sizes object for this unit", "guessedname": "getSizes", "guessedtype": "function"}, "_cleanGrids": {"description": "This method attempts to clean up the first level of the YUI CSS Grids, YAHOO.util.Selector is required for this operation.", "private": "", "guessedname": "_cleanGrids", "guessedtype": "function"}, "destroy": {"return": {"type": "<a href=\"YAHOO.widget.Layout.html\">YAHOO.widget.Layout</a>", "description": "The parent Layout instance"}, "params": [{"type": "Boolean", "name": "force", "description": " Don't report to the parent, because we are being called from the parent."}], "description": "Removes this unit from the parent and cleans up after itself.", "guessedname": "destroy", "guessedtype": "function"}, "expand": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "description": "Expand the Unit if it is collapsed.", "guessedname": "expand", "guessedtype": "function"}, "close": {"return": {"type": "<a href=\"YAHOO.widget.Layout.html\">YAHOO.widget.Layout</a>", "description": "The parent Layout instance"}, "description": "Close the unit, removing it from the parent Layout.", "guessedname": "close", "guessedtype": "function"}, "_createHeader": {"guessedname": "_createHeader", "return": {"type": "HTMLElement", "description": "The new HTMLElement"}, "description": "Creates the HTMLElement for the header", "private": "", "guessedtype": "function"}, "resize": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "params": [{"type": "Boolean", "name": "force", "description": " This will force full calculations even when the unit is collapsed"}], "description": "Resize either the unit or it's clipped state, also updating the box inside", "guessedname": "resize", "guessedtype": "function"}, "collapse": {"return": {"type": "<a href=\"YAHOO.widget.LayoutUnit.html\">YAHOO.widget.LayoutUnit</a>", "description": "The LayoutUnit instance"}, "description": "Collapse the Unit if it is not collapsed.", "guessedname": "collapse", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "layoutunit.js", "guessedtype": "function", "shortname": "LayoutUnit", "properties": {"_lastWidth": {"guessedname": "_lastWidth", "type": "Number", "description": "A holder for the last known width of the unit", "private": "", "guessedtype": "property"}, "LOADING_CLASSNAME": {"default": "\"disabled\"", "type": "String", "description": "The class name applied to dynamic tabs while loading.", "guessedname": "LOADING_CLASSNAME", "guessedtype": "property"}, "header": {"type": "HTMLELement", "description": "A reference to the HTML element used for the Header", "guessedname": "header", "guessedtype": "property"}, "_anim": {"guessedname": "_anim", "type": "YAHOO.util.Anim", "description": "A reference to the Animation instance used by this LayouUnit", "private": "", "guessedtype": "property"}, "STR_COLLAPSE": {"type": "{String}", "description": "String used for collapse button title", "guessedname": "STR_COLLAPSE", "guessedtype": "property"}, "_collapsed": {"guessedname": "_collapsed", "type": "Boolean", "description": "Flag to determine if the unit is collapsed or not.", "private": "", "guessedtype": "property"}, "_lastScroll": {"guessedname": "_lastScroll", "type": "Boolean", "description": "A holder for the last known scroll state of the unit", "private": "", "guessedtype": "property"}, "_lastLeft": {"guessedname": "_lastLeft", "type": "Number", "description": "A holder for the last known left of the unit", "private": "", "guessedtype": "property"}, "_instances": {"description": "Internal hash table for all layout unit instances", "private": "", "static": "", "guessedname": "_instances", "guessedtype": "property", "type": "Object"}, "_lastHeight": {"guessedname": "_lastHeight", "type": "Number", "description": "A holder for the last known height of the unit", "private": "", "guessedtype": "property"}, "_loading": {"guessedname": "_loading", "type": "Number", "description": "During the loading process this variable will be true", "private": "", "guessedtype": "property"}, "body": {"type": "HTMLElement", "description": "A reference to the HTML element used for the body", "guessedname": "body", "guessedtype": "property"}, "_lastCenetrScroll": {"guessedname": "_lastCenterScroll", "type": "Boolean", "description": "A holder for the last known scroll state of the center unit", "private": "", "guessedtype": "property"}, "_resize": {"guessedname": "_resize", "type": "YAHOO.util.Resize", "description": "A reference to the Resize instance used by this LayoutUnit", "private": "", "guessedtype": "property"}, "_sizes": {"guessedname": "_sizes", "type": "Object", "description": "A collection of the current sizes of the contents of this Layout Unit", "private": "", "guessedtype": "property"}, "STR_CLOSE": {"type": "{String}", "description": "String used for close button title", "guessedname": "STR_CLOSE", "guessedtype": "property"}, "_lastTop": {"guessedname": "_lastTop", "type": "Number", "description": "A holder for the last known top of the unit", "private": "", "guessedtype": "property"}, "loadHandler": {"type": "Object", "description": "Callback method for the YUI Connection Manager used for load the body using AJAX", "guessedname": "loadHandler", "guessedtype": "property"}, "_collapsing": {"guessedname": "_collapsing", "type": "Boolean", "description": "A flag set while the unit is being collapsed, used so we don't fire events while animating the size", "private": "", "guessedtype": "property"}, "footer": {"type": "HTMLElement", "description": "A reference to the HTML element used for the footer", "guessedname": "footer", "guessedtype": "property"}, "_gutter": {"guessedname": "_gutter", "type": "Object", "description": "A simple hash table used to store the gutter to apply to the Unit", "private": "", "guessedtype": "property"}, "_lastScrollTop": {"guessedname": "_lastScrollTop", "type": "Number", "description": "A holder for the last known scrollTop state of the unit", "private": "", "guessedtype": "property"}, "STR_EXPAND": {"type": "{String}", "description": "String used for expand button title", "guessedname": "STR_EXPAND", "guessedtype": "property"}, "_clip": {"guessedname": "_clip", "type": "HTMLElement", "description": "A reference to the clip element used when collapsing the unit", "private": "", "guessedtype": "property"}, "dataConnection": {"type": "Object", "description": "YUI Connection Manager handler", "guessedname": "dataConnection", "guessedtype": "property"}, "browser": {"type": "Object", "description": "A modified version of the YAHOO.env.ua object", "guessedname": "browser", "guessedtype": "property"}}, "description": "<p>Provides a fixed position unit containing a header, body and footer for use with a YAHOO.widget.Layout instance.</p>"}, "YAHOO.widget.NumericAxis": {"name": "YAHOO.widget.NumericAxis", "constructors": [{"description": "A type of axis whose units are measured in numeric values."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "NumericAxis", "extends": "YAHOO.widget.Axis", "superclass": "YAHOO.widget.Axis", "file": "NumericAxis.js", "guessedtype": "function", "shortname": "NumericAxis", "properties": {"scale": {"type": "String", "description": "The scaling algorithm to use on this axis. May be \"linear\" or \"logarithmic\".", "guessedname": "scale", "guessedtype": "property"}, "stackingEnabled": {"type": "Boolean", "description": "Series that are stackable will only stack when this value is set to true.", "guessedname": "stackingEnabled", "guessedtype": "property"}, "calculateByLabelSize": {"type": "Boolean", "description": "Indicates whether to factor in the size of the labels when calculating a major unit.", "guessedname": "calculateByLabelSize", "guessedtype": "property"}, "maximum": {"type": "Number", "description": "The maximum value drawn by the axis. If not set explicitly, the axis maximum\nwill be calculated automatically.", "guessedname": "maximum", "guessedtype": "property"}, "adjustMaximumByMajorUnit": {"type": "Boolean", "description": "Indicates whether to extend maximum beyond data's maximum to the nearest \nmajorUnit.", "guessedname": "adjustMaximumByMajorUnit", "guessedtype": "property"}, "minorUnit": {"type": "Number", "description": "The spacing between minor intervals on this axis.", "guessedname": "minorUnit", "guessedtype": "property"}, "minimum": {"type": "Number", "description": "The minimum value drawn by the axis. If not set explicitly, the axis minimum\nwill be calculated automatically.", "guessedname": "minimum", "guessedtype": "property"}, "majorUnit": {"type": "Number", "description": "The spacing between major intervals on this axis.", "guessedname": "majorUnit", "guessedtype": "property"}, "adjustMinimumByMajorUnit": {"type": "Boolean", "description": "Indicates whether to extend the minimum beyond data's minimum to the nearest\nmajorUnit.", "guessedname": "adjustMinimumByMajorUnit", "guessedtype": "property"}, "snapToUnits": {"type": "Boolean", "description": "If true, the labels, ticks, gridlines, and other objects will snap to\nthe nearest major or minor unit. If false, their position will be based\non the minimum value.", "guessedname": "snapToUnits", "guessedtype": "property"}, "position": {"type": "String", "description": "Indicates the position of the axis relative to the chart", "guessedname": "position", "guessedtype": "property"}, "roundMajorUnit": {"type": "Boolean", "description": "Indicates whether to round the major unit.", "guessedname": "roundMajorUnit", "guessedtype": "property"}, "alwaysShowZero": {"type": "Boolean", "description": "If true, and the bounds are calculated automatically, either the minimum or\nmaximum will be set to zero.", "guessedname": "alwaysShowZero", "guessedtype": "property"}}, "description": "A type of axis whose units are measured in numeric values."}, "YAHOO.widget.Uploader": {"name": "YAHOO.widget.Uploader", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "String", "name": "buttonSkin", "description": "  [optional]. If defined, the uploader is \nrendered as a button. This parameter must provide the URL of a button\nskin sprite image. Acceptable types are: jpg, gif, png and swf. The \nsprite is divided evenly into four sections along its height (e.g., if\nthe sprite is 200 px tall, it's divided into four sections 50px each).\nEach section is used as a skin for a specific state of the button: top\nsection is \"up\", second section is \"over\", third section is \"down\", and\nfourth section is \"disabled\". \nIf the parameter is not supplied, the uploader is rendered transparent,\nand it's the developer's responsibility to create a visible UI below it."}, {"type": "Boolean", "name": "forceTransparent", "description": "  This parameter, if true, forces the Flash\nUI to be rendered with wmode set to \"transparent\". This behavior is useful \nin conjunction with non-rectangular button skins with PNG transparency. \nThe parameter is false by default, and ignored if no buttonSkin is defined."}], "description": "Uploader class for the YUI Uploader component."}], "namespace": "YAHOO.widget", "module": "uploader", "properties": {"Chart.SWFURL": {"description": "Location of the Uploader SWF", "default": "\"assets/uploader.swf\"", "private": "", "static": "", "guessedname": "SWFURL", "guessedtype": "property", "final": ""}}, "guessedname": "Uploader", "methods": {"uploadAll": {"params": [{"type": "String", "name": "uploadScriptPath", "description": "  The URL of the upload location."}, {"type": "String", "name": "method", "description": "  Either \"GET\" or \"POST\", specifying how the variables accompanying the file upload POST request should be submitted. \"GET\" by default."}, {"type": "Object", "name": "vars", "description": "  The object containing variables to be sent in the same request as the file upload."}, {"type": "String", "name": "fieldName", "description": "  The name of the variable in the POST request containing the file data. \"Filedata\" by default.\n</code>"}], "description": "Starts uploading all files in the queue. If this function is called, the upload queue is automatically managed.", "guessedname": "uploadAll", "guessedtype": "function"}, "enable": {"description": "Enables the mouse events on the Uploader.\nIf the uploader is being rendered as a button,\nthen the button's skin is set to \"up\"\n(first section of the button skin sprite).", "guessedname": "enable", "guessedtype": "function"}, "setAllowLogging": {"params": [{"type": "Boolean", "name": "allowLogging", "description": "  If true, logs are output; otherwise, no logs are produced."}], "description": "Turns the logging functionality on.\nUses Flash internal trace logging, as well as YUI Logger, if available.", "guessedname": "setAllowLogging", "guessedtype": "function"}, "clearFileList": {"description": "Clears the list of files queued for upload.", "guessedname": "clearFileList", "guessedtype": "function"}, "upload": {"params": [{"type": "String", "name": "fileID", "description": "  The id of the file to start uploading."}, {"type": "String", "name": "uploadScriptPath", "description": "  The URL of the upload location."}, {"type": "String", "name": "method", "description": "  Either \"GET\" or \"POST\", specifying how the variables accompanying the file upload POST request should be submitted. \"GET\" by default."}, {"type": "Object", "name": "vars", "description": "  The object containing variables to be sent in the same request as the file upload."}, {"type": "String", "name": "fieldName", "description": "  The name of the variable in the POST request containing the file data. \"Filedata\" by default.\n</code>"}], "description": "Starts the upload of the file specified by fileID to the location specified by uploadScriptPath.", "guessedname": "upload", "guessedtype": "function"}, "removeFile": {"params": [{"type": "String", "name": "fileID", "description": "  The id of the file to remove from the upload queue."}], "description": "Removes the specified file from the upload queue.", "guessedname": "removeFile", "guessedtype": "function"}, "setSimUploadLimit": {"params": [{"type": "int", "name": "simUploadLimit", "description": "  Number of simultaneous uploads, between 1 and 5."}], "description": "Sets the number of simultaneous uploads when using uploadAll()\nThe minimum value is 1, and maximum value is 5. The default value is 2.", "guessedname": "setSimUploadLimit", "guessedtype": "function"}, "disable": {"description": "Disables the mouse events on the Uploader.\nIf the uploader is being rendered as a button,\nthen the button's skin is set to \"disabled\"\n(fourth section of the button skin sprite).", "guessedname": "disable", "guessedtype": "function"}, "setAllowMultipleFiles": {"params": [{"type": "Boolean", "name": "allowMultipleFiles", "description": "  If true, multiple files can be selected. False by default."}], "description": "Sets the flag allowing users to select multiple files for the upload.", "guessedname": "setAllowMultipleFiles", "guessedtype": "function"}, "uploadThese": {"params": [{"type": "Array", "name": "fileIDs", "description": "  The ids of the files to start uploading."}, {"type": "String", "name": "uploadScriptPath", "description": "  The URL of the upload location."}, {"type": "String", "name": "method", "description": "  Either \"GET\" or \"POST\", specifying how the variables accompanying the file upload POST request should be submitted. \"GET\" by default."}, {"type": "Object", "name": "vars", "description": "  The object containing variables to be sent in the same request as the file upload."}, {"type": "String", "name": "fieldName", "description": "  The name of the variable in the POST request containing the file data. \"Filedata\" by default.\n</code>"}], "description": "Starts the upload of the files specified by fileIDs, or adds them to a currently running queue. The upload queue is automatically managed.", "guessedname": "uploadThese", "guessedtype": "function"}, "cancel": {"params": [{"type": "String", "name": "fileID", "description": "  The ID of the file whose upload should be cancelled."}], "description": "Cancels the upload of a specified file. If no file id is specified, all ongoing uploads are cancelled.", "guessedname": "cancel", "guessedtype": "function"}, "setFileFilters": {"params": [{"type": "extensions: extensionString, description: descriptionString, [optional]macType: macTypeString", "name": "newFilterArray", "description": " An array of sets of key-value pairs of the form\n\nThe extensions string is a semicolon-delimited list of elements of the form \"*.xxx\", \ne.g. \"*.jpg;*.gif;*.png\"."}], "description": "Sets the file filters for the \"Browse\" dialog.", "guessedname": "setFileFilters", "guessedtype": "function"}}, "uses": ["YAHOO.widget.FlashAdapter"], "file": "Uploader.js", "guessedtype": "function", "shortname": "Uploader", "events": {"uploadProgress": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file with which the upload progress data is associated"}, {"type": "Number", "name": "bytesLoaded", "description": "  The number of bytes of the file uploaded so far"}, {"type": "Number", "name": "bytesTotal", "description": "  The total size of the file"}], "description": "Fires when new information about the upload progress for a specific file is available."}, "uploadCompleteData": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file for which the upload has been completed."}, {"type": "String", "name": "event.data", "description": "  The raw data returned by the server in response to the upload."}], "description": "Fires when the server sends data in response to a completed upload."}, "uploadStart": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file that's started to upload"}], "description": "Fires when an upload of a specific file has started."}, "uploadComplete": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file for which the upload has been completed."}], "description": "Fires when an upload for a specific file is complete."}, "mouseUp": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the mouse is released over the Uploader.\nOnly fires when the Uploader UI is enabled and\nthe render type is 'transparent'."}, "fileSelect": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.fileList", "description": "  A dictionary of objects with file information"}, {"type": "Number", "name": "event.fileList[].size", "description": "  File size in bytes for a specific file in fileList"}, {"type": "Date", "name": "event.fileList[].cDate", "description": "  Creation date for a specific file in fileList"}, {"type": "Date", "name": "event.fileList[].mDate", "description": "  Modification date for a specific file in fileList"}, {"type": "String", "name": "event.fileList[].name", "description": "  File name for a specific file in fileList"}, {"type": "String", "name": "event.fileList[].id", "description": "  Unique file id of a specific file in fileList"}], "description": "Fires when the user has finished selecting files in the \"Open File\" dialog."}, "mouseDown": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the mouse is pressed over the Uploader.\nOnly fires when the Uploader UI is enabled and\nthe render type is 'transparent'."}, "rollOut": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the mouse rolls out of the Uploader."}, "uploadCancel": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file with which the upload has been cancelled."}], "description": "Fires when an upload for a specific file is cancelled."}, "rollOver": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the mouse rolls over the Uploader."}, "uploadError": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "String", "name": "event.id", "description": "  The id of the file that was being uploaded when the error has occurred."}, {"type": "String", "name": "event.status", "description": "  The status message associated with the error."}], "description": "Fires when an upload error occurs."}, "click": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}], "description": "Fires when the uploader is clicked."}}, "description": "Uploader class for the YUI Uploader component."}, "YAHOO.util.ShouldError": {"name": "YAHOO.util.ShouldError", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}], "description": "ShouldError is subclass of AssertionError that is thrown whenever\na test is expected to throw an error but doesn't."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ShouldError", "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "ShouldError", "properties": {"name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "ShouldError is subclass of AssertionError that is thrown whenever\na test is expected to throw an error but doesn't."}, "YAHOO.util.ComparisonFailure": {"name": "YAHOO.util.ComparisonFailure", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}, {"type": "Object", "name": "expected", "description": " The expected value."}, {"type": "Object", "name": "actual", "description": " The actual value that caused the assertion to fail."}], "description": "ComparisonFailure is subclass of AssertionError that is thrown whenever\na comparison between two values fails. It provides mechanisms to retrieve\nboth the expected and actual value."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ComparisonFailure", "methods": {"toString": {"return": {"type": "String", "description": "A string describing the error."}, "description": "Returns a fully formatted error for an assertion failure. This message\nprovides information about the expected and actual values.", "guessedname": "getMessage", "guessedtype": "function"}}, "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "ComparisonFailure", "properties": {"expected": {"type": "Object", "description": "The expected value."}, "actual": {"type": "Object", "description": "The actual value."}, "name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "ComparisonFailure is subclass of AssertionError that is thrown whenever\na comparison between two values fails. It provides mechanisms to retrieve\nboth the expected and actual value."}, "YAHOO.widget.ContextMenu": {"name": "YAHOO.widget.ContextMenu", "configs": {"trigger": {"default": "null", "type": "String|<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|Array", "description": "The HTML element(s) whose \"contextmenu\" event (\"mousedown\" \nfor Opera) trigger the display of the context menu.  Can be a string \nrepresenting the id attribute of the HTML element, an object reference \nfor the HTML element, or an array of strings or HTML element references."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the context menu."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source for the \ncontext menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object specifying the \n<code><div></code> element of the context menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " Object specifying \nthe <code><select></code> element to be used as the data source for \nthe context menu."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the context menu. See configuration class documentation \nfor more details."}], "description": "Creates a list of options or commands which are made visible in response to \nan HTML element's \"contextmenu\" event (\"mousedown\" for Opera)."}], "namespace": "YAHOO.widget", "module": "menu", "events": {"triggerContextMenuEvent": {"description": "Custom Event wrapper for the \"contextmenu\" DOM event \n(\"mousedown\" for Opera) fired by the element(s) that trigger the display of \nthe context menu.", "guessedname": "triggerContextMenuEvent", "guessedtype": "property"}}, "guessedname": "ContextMenu", "methods": {"initEvents": {"description": "Initializes the custom events for the context menu.", "guessedname": "initEvents", "guessedtype": "function"}, "_onTriggerClick": {"guessedname": "_onTriggerClick", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed back \nby the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.ContextMenu", "name": "p_oMenu", "description": " Object representing the context \nmenu that is handling the event."}], "description": "\"click\" event handler for the HTML element(s) identified as the \n\"trigger\" for the context menu.  Used to cancel default behaviors in Opera.", "private": "", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the context menu."}, {"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><select></code> element to be used as the data source for \nthe context menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object specifying the \n<code><div></code> element of the context menu."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-94282980\">HTMLSelectElement</a>", "name": "p_oElement", "description": " Object specifying \nthe <code><select></code> element to be used as the data source for \nthe context menu."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the context menu. See configuration class documentation \nfor more details."}], "description": "The ContextMenu class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references for \npre-existing markup, and creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the context menu.", "guessedname": "toString", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be \nchanged using the context menu's Config object (\"cfg\").", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "destroy": {"description": "Removes the context menu's <code><div></code> element \n(and accompanying child nodes) from the document.", "guessedname": "destroy", "guessedtype": "function"}, "cancel": {"description": "Cancels the display of the context menu.", "guessedname": "cancel", "guessedtype": "function"}, "position": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "Array", "name": "p_aPos", "description": " Array representing the xy position for the context menu."}], "description": "\"beforeShow\" event handler used to position the contextmenu.", "private": ""}, "_onTriggerContextMenu": {"guessedname": "_onTriggerContextMenu", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed back \nby the event utility (YAHOO.util.Event)."}, {"type": "YAHOO.widget.ContextMenu", "name": "p_oMenu", "description": " Object representing the context \nmenu that is handling the event."}], "description": "\"contextmenu\" event handler (\"mousedown\" for Opera) for the HTML \nelement(s) that trigger the display of the context menu.", "private": "", "guessedtype": "function"}, "_removeEventHandlers": {"description": "Removes all of the DOM event handlers from the HTML element(s) \nwhose \"context menu\" event (\"click\" for Opera) trigger the display of \nthe context menu.", "private": "", "guessedname": "_removeEventHandlers", "guessedtype": "function"}, "configTrigger": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.ContextMenu", "name": "p_oMenu", "description": " Object representing the context \nmenu that fired the event."}], "description": "Event handler for when the value of the \"trigger\" configuration \nproperty changes.", "guessedname": "configTrigger", "guessedtype": "function"}}, "extends": "YAHOO.widget.Menu", "superclass": "YAHOO.widget.Menu", "file": "contextmenu.js", "guessedtype": "function", "shortname": "ContextMenu", "properties": {"_oTrigger": {"description": "Object reference to the current value of the \"trigger\" \nconfiguration property.", "default": "null", "private": "", "guessedname": "_oTrigger", "guessedtype": "property", "type": "String|<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/leve\nl-one-html.html#ID-58190037\">HTMLElement</a>|Array"}, "contextEventTarget": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-\nhtml.html#ID-58190037\">HTMLElement</a>", "description": "Object reference for the HTML element that was the target of the\n\"contextmenu\" DOM event (\"mousedown\" for Opera) that triggered the display of \nthe context menu.", "guessedname": "contextEventTarget", "guessedtype": "property"}, "EVENT_TYPES": {"description": "Constant representing the name of the ContextMenu's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "DEFAULT_CONFIG": {"description": "Constant representing the ContextMenu's configuration properties", "private": "", "guessedname": "TRIGGER_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "_bCancelled": {"description": "Boolean indicating if the display of the context menu should \nbe cancelled.", "default": "false", "private": "", "guessedname": "_bCancelled", "guessedtype": "property", "type": "Boolean"}}, "description": "Creates a list of options or commands which are made visible in response to \nan HTML element's \"contextmenu\" event (\"mousedown\" for Opera)."}, "YAHOO.widget.TVAnim": {"name": "YAHOO.widget.TVAnim", "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "TVAnim", "methods": {"isValid": {"return": {"type": "boolean", "description": "true if valid, false if not"}, "description": "Returns true if the specified animation class is available", "static": "", "guessedname": "isValid", "guessedtype": "function", "params": [{"type": "string", "name": "type", "description": "  the type of animation"}]}, "getAnim": {"return": {"type": "YAHOO.util.Animation", "description": "the animation instance"}, "description": "Returns a ygAnim instance of the given type", "static": "", "guessedname": "getAnim", "guessedtype": "function", "params": [{"type": "string", "name": "type", "description": "  the type of animation"}, {"type": "HTMLElement", "name": "el", "description": "  the element to element (probably the children div)"}, {"type": "function", "name": "callback", "description": "  function to invoke when the animation is done."}]}}, "static": "", "file": "TVAnim.js", "guessedtype": "function", "shortname": "TVAnim", "properties": {"FADE_OUT": {"type": "string", "static": "", "description": "Constant for the fade out animation", "guessedname": "FADE_OUT", "guessedtype": "property"}, "FADE_IN": {"type": "string", "static": "", "description": "Constant for the fade in animation", "guessedname": "FADE_IN", "guessedtype": "property"}}, "description": "A static factory class for tree view expand/collapse animations"}, "YAHOO.util.Easing": {"name": "YAHOO.util.Easing", "namespace": "YAHOO.util", "module": "animation", "guessedname": "Easing", "methods": {"easeIn": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins slowly and accelerates towards end.", "guessedname": "easeIn", "guessedtype": "function"}, "easeInStrong": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins slowly and accelerates towards end.", "guessedname": "easeInStrong", "guessedtype": "function"}, "bounceBoth": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Bounces off start and end.", "guessedname": "bounceBoth", "guessedtype": "function"}, "backOut": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "s", "description": " Overshoot (optional)"}], "description": "Overshoots end, then reverses and comes back to end.", "guessedname": "backOut", "guessedtype": "function"}, "elasticBoth": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "a", "description": " Amplitude (optional)"}, {"type": "Number", "name": "p", "description": " Period (optional)"}], "description": "Snap both elastic effect.", "guessedname": "elasticBoth", "guessedtype": "function"}, "elasticOut": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "a", "description": " Amplitude (optional)"}, {"type": "Number", "name": "p", "description": " Period (optional)"}], "description": "Snap out elastic effect.", "guessedname": "elasticOut", "guessedtype": "function"}, "bounceOut": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Bounces off end.", "guessedname": "bounceOut", "guessedtype": "function"}, "backBoth": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "s", "description": " Overshoot (optional)"}], "description": "Backtracks slightly, then reverses direction, overshoots end, \nthen reverses and comes back to end.", "guessedname": "backBoth", "guessedtype": "function"}, "easeBoth": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins slowly and decelerates towards end.", "guessedname": "easeBoth", "guessedtype": "function"}, "bounceIn": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Bounce off of start.", "guessedname": "bounceIn", "guessedtype": "function"}, "easeOutStrong": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins quickly and decelerates towards end.", "guessedname": "easeOutStrong", "guessedtype": "function"}, "easeNone": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Uniform speed between points.", "guessedname": "easeNone", "guessedtype": "function"}, "elasticIn": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "a", "description": " Amplitude (optional)"}, {"type": "Number", "name": "p", "description": " Period (optional)"}], "description": "Snap in elastic effect.", "guessedname": "elasticIn", "guessedtype": "function"}, "easeBothStrong": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins slowly and decelerates towards end.", "guessedname": "easeBothStrong", "guessedtype": "function"}, "easeOut": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}], "description": "Begins quickly and decelerates towards end.", "guessedname": "easeOut", "guessedtype": "function"}, "backIn": {"return": {"type": "Number", "description": "The computed value for the current animation frame"}, "params": [{"type": "Number", "name": "t", "description": " Time value used to compute current value"}, {"type": "Number", "name": "b", "description": " Starting value"}, {"type": "Number", "name": "c", "description": " Delta between start and end values"}, {"type": "Number", "name": "d", "description": " Total length of animation"}, {"type": "Number", "name": "s", "description": " Overshoot (optional)"}], "description": "Backtracks slightly, then reverses direction and moves to end.", "guessedname": "backIn", "guessedtype": "function"}}, "file": "Easing.js", "guessedtype": "property", "shortname": "Easing", "description": "Singleton that determines how an animation proceeds from start to end."}, "YAHOO.util.DragDropMgr": {"name": "YAHOO.util.DragDropMgr", "namespace": "YAHOO.util", "module": "dragdrop", "guessedname": "DragDropMgr", "methods": {"removeDDFromGroup": {"guessedname": "removeDDFromGroup", "static": "", "description": "Removes the supplied dd instance from the supplied group. Executed\nby DragDrop.removeFromGroup, so don't call this function directly.", "private": "", "guessedtype": "function"}, "startDrag": {"static": "", "params": [{"type": "int", "name": "x", "description": "  the X position of the original mousedown"}, {"type": "int", "name": "y", "description": "  the Y position of the original mousedown"}], "description": "Fired when either the drag pixel threshold or the mousedown hold \ntime threshold has been met.", "guessedname": "startDrag", "guessedtype": "function"}, "getDDById": {"return": {"type": "DragDrop", "description": "the drag drop object, null if it is not found"}, "description": "Returns the DragDrop instance for a given id", "static": "", "guessedname": "getDDById", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the id of the DragDrop object"}]}, "unregAll": {"guessedname": "unregAll", "static": "", "description": "Cleans up the drag and drop events and objects.", "private": "", "guessedtype": "function"}, "getScrollTop": {"static": "", "return": {"type": "int", "description": "the document's scrollTop"}, "description": "Gets the scrollTop", "guessedname": "getScrollTop", "guessedtype": "function"}, "lock": {"static": "", "description": "Lock all drag and drop functionality", "guessedname": "lock", "guessedtype": "function"}, "getPosX": {"return": {"type": "int", "description": "the X coordinate"}, "description": "Returns the X position of an html element", "deprecated": "use YAHOO.util.Dom.getX instead", "static": "", "guessedname": "getPosX", "guessedtype": "function", "params": [{"type": "", "name": "el", "description": " the element for which to get the position"}]}, "getClientWidth": {"return": {"type": "int", "description": "client width in px"}, "description": "Gets the client width", "deprecated": "use YAHOO.util.Dom.getViewportWidth instead", "static": "", "guessedname": "getClientWidth", "guessedtype": "function"}, "unlock": {"static": "", "description": "Unlock all drag and drop functionality", "guessedname": "unlock", "guessedtype": "function"}, "stopDrag": {"static": "", "params": [{"type": "Event", "name": "e", "description": " the mouseup event, another event (or a fake event) \nwith pageX and pageY defined, or nothing if the \nsilent parameter is true"}, {"type": "boolean", "name": "silent", "description": " skips the enddrag and mouseup events if true"}], "description": "Ends the current drag, cleans up the state, and fires the endDrag\nand mouseUp events.  Called internally when a mouseup is detected\nduring the drag.  Can be fired manually during the drag by passing\neither another event (such as the mousemove event received in onDrag)\nor a fake event with pageX and pageY defined (so that endDrag and\nonMouseUp have usable position data.).  Alternatively, pass true\nfor the silent parameter so that the endDrag and onMouseUp events\nare skipped (so no event data is needed.)", "guessedname": "stopDrag", "guessedtype": "function"}, "_deactivateShim": {"guessedname": "_deactivateShim", "static": "", "description": "This method will hide the shim element and set the _shimActive property to false", "private": "", "guessedtype": "function"}, "_onResize": {"guessedname": "_onResize", "static": "", "description": "Reset constraints on all drag and drop objs", "private": "", "guessedtype": "function"}, "_onLoad": {"guessedname": "_onLoad", "static": "", "description": "Drag and drop initialization.  Sets up the global event handlers", "private": "", "guessedtype": "function"}, "fireEvents": {"description": "Iterates over all of the DragDrop elements to find ones we are \nhovering over or dropping on", "private": "", "static": "", "guessedname": "fireEvents", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event"}, {"type": "boolean", "name": "isDrop", "description": " is this a drop op or a mouseover op?"}]}, "handleMouseDown": {"description": "Fired after a registered DragDrop object gets the mousedown event.\nSets up the events required to track the object being dragged", "private": "", "static": "", "guessedname": "handleMouseDown", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event"}, {"type": "", "name": "oDD", "description": " the DragDrop object being dragged"}]}, "regDragDrop": {"static": "", "params": [{"type": "DragDrop", "name": "oDD", "description": " the DragDrop object to register"}, {"type": "String", "name": "sGroup", "description": " the name of the group this element belongs to"}], "description": "Each DragDrop instance must be registered with the DragDropMgr.  \nThis is executed in DragDrop.init()", "guessedname": "regDragDrop", "guessedtype": "function"}, "handleMouseMove": {"description": "Internal function to handle the mousemove event.  Will be invoked \nfrom the context of the html element.", "private": "", "static": "", "guessedname": "handleMouseMove", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event"}], "todo": "figure out what we can do about mouse events lost when the \nuser drags objects beyond the window boundary.  Currently we can \ndetect this in internet explorer by verifying that the mouse is \ndown during the mousemove event.  Firefox doesn't give us the \nbutton state on the mousemove event."}, "getElement": {"return": {"type": "Object", "description": "The element"}, "description": "Returns the actual DOM element", "deprecated": "use YAHOO.util.Dom.get instead", "static": "", "guessedname": "getElement", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the id of the elment to get"}]}, "init": {"guessedname": "init", "static": "", "description": "Called the first time an element is registered.", "private": "", "guessedtype": "function"}, "_execOnAll": {"guessedname": "_execOnAll", "static": "", "description": "Runs method on all drag and drop objects", "private": "", "guessedtype": "function"}, "getCss": {"return": {"type": "Object", "description": "The style property of the element"}, "description": "Returns the style property for the DOM element (i.e., \ndocument.getElById(id).style)", "deprecated": "use YAHOO.util.Dom instead", "static": "", "guessedname": "getCss", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the id of the elment to get"}]}, "_remove": {"guessedname": "_remove", "static": "", "description": "Unregisters a drag and drop item.  This is executed in \nDragDrop.unreg, use that method instead of calling this directly.", "private": "", "guessedtype": "function"}, "isTypeOfDD": {"return": {"type": "boolean", "description": "true if typeof oDD = DragDrop"}, "description": "My goal is to be able to transparently determine if an object is\ntypeof DragDrop, and the exact subclass of DragDrop.  typeof \nreturns \"object\", oDD.constructor.toString() always returns\n\"DragDrop\" and not the name of the subclass.  So for now it just\nevaluates a well-known variable in DragDrop.", "static": "", "guessedname": "isTypeOfDD", "guessedtype": "function", "params": [{"type": "Object", "name": "the", "description": " object to evaluate"}]}, "isLocked": {"static": "", "return": {"type": "boolean", "description": "True if drag and drop is locked, false otherwise."}, "description": "Is drag and drop locked?", "guessedname": "isLocked", "guessedtype": "function"}, "getClientHeight": {"return": {"type": "int", "description": "client height in px"}, "description": "Gets the client height", "deprecated": "use YAHOO.util.Dom.getViewportHeight instead", "static": "", "guessedname": "getClientHeight", "guessedtype": "function"}, "getBestMatch": {"return": {"type": "DragDrop", "description": "The best single match"}, "description": "Helper function for getting the best match from the list of drag \nand drop objects returned by the drag and drop events when we are \nin INTERSECT mode.  It returns either the first object that the \ncursor is over, or the object that has the greatest overlap with \nthe dragged element.", "static": "", "guessedname": "getBestMatch", "guessedtype": "function", "params": [{"type": "DragDrop[]", "name": "dds", "description": " The array of drag and drop objects \ntargeted"}]}, "_activateShim": {"guessedname": "_activateShim", "static": "", "description": "This method will create the shim element if needed, then show the shim element, size the element and set the _shimActive property to true", "private": "", "guessedtype": "function"}, "stopEvent": {"static": "", "params": [{"type": "Event", "name": "e", "description": " the event as returned by this.getEvent()"}], "description": "Utility to stop event propagation and event default, if these \nfeatures are turned on.", "guessedname": "stopEvent", "guessedtype": "function"}, "numericSort": {"static": "", "description": "Numeric array sort function", "guessedname": "numericSort", "guessedtype": "function"}, "isOverTarget": {"return": {"type": "boolean", "description": "true if the mouse is over the target"}, "description": "Checks the cursor location to see if it over the target", "private": "", "static": "", "guessedname": "isOverTarget", "guessedtype": "function", "params": [{"type": "YAHOO.util.Point", "name": "pt", "description": " The point to evaluate"}, {"type": "DragDrop", "name": "oTarget", "description": " the DragDrop object we are inspecting"}, {"type": "boolean", "name": "intersect", "description": " true if we are in intersect mode"}, {"type": "YAHOO.util.Region", "name": "pre-cached", "description": " location of the dragged element"}]}, "_sizeShim": {"guessedname": "_createShim", "static": "", "description": "This method will create a shim element (giving it the id of yui-ddm-shim), it also attaches the mousemove and mouseup listeners to it and attaches a scroll listener on the window", "private": "", "guessedtype": "function"}, "isDragDrop": {"return": {"type": "boolean", "description": "true if this element is a DragDrop item, \nfalse otherwise"}, "description": "Utility function to determine if a given element has been \nregistered as a drag drop item.", "static": "", "guessedname": "isDragDrop", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the element id to check"}]}, "_onUnload": {"guessedname": "_onUnload", "static": "", "description": "unload event handler", "private": "", "guessedtype": "function"}, "getLocation": {"return": {"type": "YAHOO.util.Region", "description": "a Region object representing the total area\nthe element occupies, including any padding\nthe instance is configured for."}, "description": "Returns a Region object containing the drag and drop element's position\nand size, including the padding configured for it", "static": "", "guessedname": "getLocation", "guessedtype": "function", "params": [{"type": "DragDrop", "name": "oDD", "description": " the drag and drop object to get the \nlocation for"}]}, "regHandle": {"static": "", "params": [{"type": "String", "name": "sDDId", "description": " the DragDrop id this element is a handle for"}, {"type": "String", "name": "sHandleId", "description": " the id of the element that is the drag \nhandle"}], "description": "Each DragDrop handle element must be registered.  This is done\nautomatically when executing DragDrop.setHandleElId()", "guessedname": "regHandle", "guessedtype": "function"}, "getRelated": {"return": {"type": "DragDrop[]", "description": "the related instances"}, "description": "Returns the drag and drop instances that are in all groups the\npassed in instance belongs to.", "static": "", "guessedname": "getRelated", "guessedtype": "function", "params": [{"type": "DragDrop", "name": "p_oDD", "description": " the obj to get related data for"}, {"type": "boolean", "name": "bTargetsOnly", "description": " if true, only return targetable objs"}]}, "handleWasClicked": {"static": "", "params": [{"type": "", "name": "node", "description": " the html element to inspect"}], "description": "Recursively searches the immediate parent and all child nodes for \nthe handle element in order to determine wheter or not it was \nclicked.", "guessedname": "handleWasClicked", "guessedtype": "function"}, "swapNode": {"static": "", "params": [{"type": "", "name": "n1", "description": " the first node to swap"}, {"type": "", "name": "n2", "description": " the other node to swap"}], "description": "Swap two nodes.  In IE, we use the native method, for others we \nemulate the IE behavior", "guessedname": "swapNode", "guessedtype": "function"}, "getScrollLeft": {"static": "", "return": {"type": "int", "description": "the document's scrollTop"}, "description": "Gets the scrollLeft", "guessedname": "getScrollLeft", "guessedtype": "function"}, "getElWrapper": {"return": {"type": "YAHOO.util.DDM.ElementWrapper", "description": "the wrapped element"}, "description": "Get the wrapper for the DOM element specified", "deprecated": "This wrapper isn't that useful", "private": "", "static": "", "guessedname": "getElWrapper", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the id of the element to get"}]}, "_addListeners": {"guessedname": "_addListeners", "static": "", "description": "Trying to make the load order less important.  Without this we get\nan error if this file is loaded before the Event Utility.", "private": "", "guessedtype": "function"}, "getStyle": {"return": {"type": "string", "description": "The value of the style property"}, "description": "Returns the specified element style property", "deprecated": "use YAHOO.util.Dom.getStyle", "static": "", "guessedname": "getStyle", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": "          the element"}, {"type": "string", "name": "styleProp", "description": "   the style property"}]}, "getPosY": {"return": {"type": "int", "description": "the Y coordinate"}, "description": "Returns the Y position of an html element", "deprecated": "use YAHOO.util.Dom.getY instead", "static": "", "guessedname": "getPosY", "guessedtype": "function", "params": [{"type": "", "name": "el", "description": " the element for which to get the position"}]}, "isLegalTarget": {"return": {"type": "boolean", "description": "true if the target is a legal target for the \ndd obj"}, "description": "Returns true if the specified dd target is a legal target for \nthe specifice drag obj", "static": "", "guessedname": "isLegalTarget", "guessedtype": "function", "params": [{"type": "DragDrop", "name": "the", "description": " drag obj"}, {"type": "DragDrop", "name": "the", "description": " target"}]}, "refreshCache": {"description": "Refreshes the cache of the top-left and bottom-right points of the \ndrag and drop objects in the specified group(s).  This is in the\nformat that is stored in the drag and drop instance, so typical \nusage is:\n<code>\nYAHOO.util.DragDropMgr.refreshCache(ddinstance.groups);\n</code>\nAlternatively:\n<code>\nYAHOO.util.DragDropMgr.refreshCache({group1:true, group2:true});\n</code>", "static": "", "guessedname": "refreshCache", "guessedtype": "function", "params": [{"type": "Object", "name": "groups", "description": " an associative array of groups to refresh"}], "todo": "this really should be an indexed array.  Alternatively this\nmethod could accept both."}, "isHandle": {"return": {"type": "boolean", "description": "true if this element is a DragDrop handle, false \notherwise"}, "description": "Utility function to determine if a given element has been \nregistered as a drag drop handle for the given Drag Drop object.", "static": "", "guessedname": "isHandle", "guessedtype": "function", "params": [{"type": "String", "name": "id", "description": " the element id to check"}]}, "handleMouseUp": {"description": "Internal function to handle the mouseup event.  Will be invoked \nfrom the context of the document.", "private": "", "static": "", "guessedname": "handleMouseUp", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event"}]}, "verifyEl": {"return": {"type": "boolean", "description": "true if the element looks usable"}, "description": "This checks to make sure an element exists and is in the DOM.  The\nmain purpose is to handle cases where innerHTML is used to remove\ndrag and drop objects from the DOM.  IE provides an 'unspecified\nerror' when trying to access the offsetParent of such an element", "static": "", "guessedname": "verifyEl", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": " the element to check"}]}, "getScroll": {"guessedname": "getScroll", "static": "", "description": "Returns the current scroll position", "private": "", "guessedtype": "function"}, "moveToEl": {"static": "", "params": [{"type": "HTMLElement", "name": "moveEl", "description": "      The element to move"}, {"type": "HTMLElement", "name": "targetEl", "description": "    The position reference element"}], "description": "Sets the x/y position of an element to the location of the\ntarget element.", "guessedname": "moveToEl", "guessedtype": "function"}}, "static": "", "file": "DragDropMgr.js", "guessedtype": "function", "shortname": "DragDropMgr", "properties": {"dragThreshMet": {"description": "Flag that indicates that either the drag pixel threshold or the \nmousdown time threshold has been met", "private": "", "static": "", "guessedname": "dragThreshMet", "guessedtype": "property", "type": "boolean"}, "clickPixelThresh": {"type": "int", "static": "", "description": "The number of pixels that the mouse needs to move after the \nmousedown before the drag is initiated.  Default=3;", "guessedname": "clickPixelThresh", "guessedtype": "property"}, "_timeoutCount": {"guessedname": "_timeoutCount", "static": "", "description": "Internal counter", "private": "", "guessedtype": "property"}, "initialized": {"guessedname": "initialized", "static": "", "description": "Internal flag that is set to true when drag and drop has been\ninitialized", "private": "", "guessedtype": "property"}, "elementCache": {"description": "A cache of DOM elements", "deprecated": "elements are not cached now", "private": "", "static": "", "guessedname": "elementCache", "guessedtype": "property"}, "stopPropagation": {"type": "boolean", "static": "", "description": "Flag to determine if we should stop the propagation of the events \nwe generate. This is true by default but you may want to set it to\nfalse if the html element contains other features that require the\nmouse click.", "guessedname": "stopPropagation", "guessedtype": "property"}, "clickTimeout": {"description": "Timeout used for the click time threshold", "private": "", "static": "", "guessedname": "clickTimeout", "guessedtype": "property", "type": "Object"}, "handleIds": {"description": "Array of element ids defined as drag handles.  Used to determine \nif the element that generated the mousedown event is actually the \nhandle and not the html element itself.", "private": "", "static": "", "guessedname": "handleIds", "guessedtype": "property", "type": "{string: string}"}, "POINT": {"description": "In point mode, drag and drop interaction is defined by the \nlocation of the cursor during the drag/drop", "static": "", "guessedname": "POINT", "guessedtype": "property", "type": "int", "final": ""}, "deltaX": {"description": "the X distance between the cursor and the object being dragged", "private": "", "static": "", "guessedname": "deltaX", "guessedtype": "property", "type": "int"}, "deltaY": {"description": "the Y distance between the cursor and the object being dragged", "private": "", "static": "", "guessedname": "deltaY", "guessedtype": "property", "type": "int"}, "dragOvers": {"description": "the DragDrop object(s) that are being hovered over", "private": "", "static": "", "guessedname": "dragOvers", "guessedtype": "property", "type": "Array"}, "useCache": {"type": "boolean", "static": "", "description": "Set useCache to false if you want to force object the lookup of each\ndrag and drop linked element constantly during a drag.", "guessedname": "useCache", "guessedtype": "property"}, "fromTimeout": {"description": "Flag to determine if the drag event was fired from the click timeout and\nnot the mouse move threshold.", "private": "", "static": "", "guessedname": "fromTimeout", "guessedtype": "property", "type": "boolean"}, "clickTimeThresh": {"type": "int", "static": "", "description": "The number of milliseconds after the mousedown event to initiate the\ndrag if we don't get a mouseup event. Default=1000", "guessedname": "clickTimeThresh", "guessedtype": "property"}, "mode": {"type": "int", "static": "", "description": "The current drag and drop mode.  Default: POINT", "guessedname": "mode", "guessedtype": "property"}, "startX": {"description": "The X position of the mousedown event stored for later use when a \ndrag threshold is met.", "private": "", "static": "", "guessedname": "startX", "guessedtype": "property", "type": "int"}, "startY": {"description": "The Y position of the mousedown event stored for later use when a \ndrag threshold is met.", "private": "", "static": "", "guessedname": "startY", "guessedtype": "property", "type": "int"}, "_shim": {"description": "The HTML element created to use as a shim over the document to track mouse movements", "private": "", "static": "", "guessedname": "_shim", "guessedtype": "property", "type": "HTMLElement"}, "_debugShim": {"description": "This property is used when useShim is set to true, it will set the opacity on the shim to .5 for debugging. Use: (YAHOO.util.DDM._debugShim = true;)", "private": "", "static": "", "guessedname": "_debugShim", "guessedtype": "property", "type": "Boolean"}, "STRICT_INTERSECT": {"description": "In intersect mode, drag and drop interaction is defined only by the \noverlap of two or more drag and drop objects.", "static": "", "guessedname": "STRICT_INTERSECT", "guessedtype": "property", "type": "int", "final": ""}, "interactionInfo": {"type": "object", "static": "", "description": "Provides additional information about the the current set of\ninteractions.  Can be accessed from the event handlers. It\ncontains the following properties:\nout:       onDragOut interactions\nenter:     onDragEnter interactions\nover:      onDragOver interactions\ndrop:      onDragDrop interactions\npoint:     The location of the cursor\ndraggedRegion: The location of dragged element at the time\nof the interaction\nsourceRegion: The location of the source elemtn at the time\nof the interaction\nvalidDrop: boolean", "guessedname": "interactionInfo", "guessedtype": "property"}, "locationCache": {"guessedname": "locationCache", "static": "", "description": "Location cache that is set for all drag drop objects when a drag is\ninitiated, cleared when the drag is finished.", "private": "", "guessedtype": "property"}, "INTERSECT": {"description": "In intersect mode, drag and drop interaction is defined by the \ncursor position or the amount of overlap of two or more drag and \ndrop objects.", "static": "", "guessedname": "INTERSECT", "guessedtype": "property", "type": "int", "final": ""}, "_shimState": {"description": "This property is used when useShim is set on a DragDrop object to store the current state of DDM.useShim so it can be reset when a drag operation is done.", "private": "", "static": "", "guessedname": "_shimState", "guessedtype": "property", "type": "Boolean"}, "locked": {"guessedname": "locked", "static": "", "description": "All drag and drop can be disabled.", "private": "", "guessedtype": "property"}, "useShim": {"type": "Boolean", "static": "", "description": "This property is used to turn on global use of the shim element on all DragDrop instances, defaults to false for backcompat. (Use: YAHOO.util.DDM.useShim = true)", "guessedname": "useShim", "guessedtype": "property"}, "dragCurrent": {"description": "the DragDrop object that is currently being dragged", "private": "", "static": "", "guessedname": "dragCurrent", "guessedtype": "property", "type": "DragDrop"}, "preventDefault": {"type": "boolean", "static": "", "description": "Flag to determine if we should prevent the default behavior of the\nevents we define. By default this is true, but this can be set to \nfalse if you need the default behavior (not recommended)", "guessedname": "preventDefault", "guessedtype": "property"}, "ids": {"description": "Two dimensional Array of registered DragDrop objects.  The first \ndimension is the DragDrop item group, the second the DragDrop \nobject.", "private": "", "static": "", "guessedname": "ids", "guessedtype": "property", "type": "{string: string}"}, "_shimActive": {"description": "This property is used to determine if the shim is active over the screen, default false.", "private": "", "static": "", "guessedname": "_shimActive", "guessedtype": "property", "type": "Boolean"}}, "description": "DragDropMgr is a singleton that tracks the element interaction for \nall DragDrop items in the window.  Generally, you will not call \nthis class directly, but it does have helper methods that could \nbe useful in your DragDrop implementations."}, "YAHOO.util.Chain": {"name": "YAHOO.util.Chain", "constructors": [{"params": [{"type": "Function|Object", "name": "callback*", "description": "  Any number of callbacks to initialize the queue"}], "description": "Mechanism to execute a series of callbacks in a non-blocking queue.  Each callback is executed via setTimout unless configured with a negative timeout, in which case it is run in blocking mode in the same execution thread as the previous callback.  Callbacks can be function references or object literals with the following keys:\n<ul>\n<li><code>method</code> - {Function} REQUIRED the callback function.</li>\n<li><code>scope</code> - {Object} the scope from which to execute the callback.  Default is the global window scope.</li>\n<li><code>argument</code> - {Array} parameters to be passed to method as individual arguments.</li>\n<li><code>timeout</code> - {number} millisecond delay to wait after previous callback completion before executing this callback.  Negative values cause immediate blocking execution.  Default 0.</li>\n<li><code>until</code> - {Function} boolean function executed before each iteration.  Return true to indicate completion and proceed to the next callback.</li>\n<li><code>iterations</code> - {Number} number of times to execute the callback before proceeding to the next callback in the chain. Incompatible with <code>until</code>.</li>\n</ul>"}], "namespace": "YAHOO.util", "module": "datatable", "events": {"end": {"description": "Event fired when the callback queue is emptied via execution (not via\na call to chain.stop()."}}, "guessedname": "Chain", "methods": {"stop": {"return": {"type": "Chain", "description": "the Chain instance"}, "description": "Stop and clear the Chain's queue after the current execution of the\ncurrent callback completes.", "guessedname": "stop", "guessedtype": "function"}, "add": {"return": {"type": "Chain", "description": "the Chain instance"}, "params": [{"type": "Function|Object", "name": "c", "description": "  the callback function ref or object literal"}], "description": "Add a callback to the end of the queue", "guessedname": "add", "guessedtype": "function"}, "pause": {"return": {"type": "Chain", "description": "the Chain instance"}, "description": "Pause the execution of the Chain after the current execution of the\ncurrent callback completes.  If called interstitially, clears the\ntimeout for the pending callback. Paused Chains can be restarted with\nchain.run()", "guessedname": "pause", "guessedtype": "function"}, "run": {"return": {"type": "Chain", "description": "the Chain instance"}, "description": "Begin executing the chain, or resume execution from the last paused position.", "guessedname": "run", "guessedtype": "function"}}, "file": "Chain.js", "guessedtype": "function", "shortname": "Chain", "properties": {"q": {"guessedname": "q", "type": "{Array}", "description": "The callback queue", "private": "", "guessedtype": "property"}, "id": {"guessedname": "id", "type": "{number}", "description": "Timeout id used to pause or stop execution and indicate the execution state of the Chain.  0 indicates paused or stopped, -1 indicates blocking execution, and any positive number indicates non-blocking execution.", "private": "", "guessedtype": "property"}}, "description": "Mechanism to execute a series of callbacks in a non-blocking queue.  Each callback is executed via setTimout unless configured with a negative timeout, in which case it is run in blocking mode in the same execution thread as the previous callback.  Callbacks can be function references or object literals with the following keys:\n<ul>\n<li><code>method</code> - {Function} REQUIRED the callback function.</li>\n<li><code>scope</code> - {Object} the scope from which to execute the callback.  Default is the global window scope.</li>\n<li><code>argument</code> - {Array} parameters to be passed to method as individual arguments.</li>\n<li><code>timeout</code> - {number} millisecond delay to wait after previous callback completion before executing this callback.  Negative values cause immediate blocking execution.  Default 0.</li>\n<li><code>until</code> - {Function} boolean function executed before each iteration.  Return true to indicate completion and proceed to the next callback.</li>\n<li><code>iterations</code> - {Number} number of times to execute the callback before proceeding to the next callback in the chain. Incompatible with <code>until</code>.</li>\n</ul>"}, "YAHOO.widget.ProgressBar": {"name": "YAHOO.widget.ProgressBar", "configs": {"direction": {"default": "'ltr'", "type": "String (any of \"ltr\", \"rtl\", \"ttb\" or \"btt\")", "description": "Direction of movement of the bar.  \nIt can be any of 'ltr' (left to right), 'rtl' (the reverse) , 'ttb' (top to bottom) or 'btt'.\nCan only be set once and only before rendering."}, "anim": {"default": "null", "type": "{boolean} or {instance of YAHOO.util.Anim}", "description": "it accepts either a boolean (recommended) or an instance of <a href=\"YAHOO.util.Anim.html\">YAHOO.util.Anim</a>.\nIf a boolean, it will enable/disable animation creating its own instance of the animation utility.  \nIf given an instance of <a href=\"YAHOO.util.Anim.html\">YAHOO.util.Anim</a> it will use that instance.\nThe <a href=\"YAHOO.util.Anim.html\">animation</a> utility needs to be loaded.\nWhen read, it returns the instance of the animation utility in use or null if none.  \nIt can be used to set the animation parameters such as easing methods or duration."}, "ariaTextTemplate": {"default": "\"{value}\"", "type": "String", "description": "Text to be voiced by screen readers.\nThe text is processed by <a href=\"YAHOO.lang.html#method_substitute\">YAHOO.lang.substitute</a>.  \nIt can use the placeholders {value}, {minValue} and {maxValue}"}, "maxValue": {"default": "100", "type": "Number", "description": "Represents the top value for the bar. \nThe bar will be fully extended when reaching this value.  \nValues higher than this will be ignored."}, "value": {"default": "0", "type": "Number", "description": "The value for the bar.  \nValid values are in between the minValue and maxValue attributes."}, "minValue": {"default": "0", "type": "Number", "description": "Represents the lowest value for the bar. \nThe bar will be totally collapsed when reaching this value.  \nValues lower than this will be ignored."}, "width": {"default": "\"200px\"", "type": "Number or String", "description": "Width of the ProgressBar.\nIf a number, it will be assumed to be in pixels.  \nIf a string it should be a valid setting for the CSS width attribute.  \nIt will always be returned as a string including units."}, "barEl": {"readonly": "", "type": "HTMLElement (div)", "description": "Reference to the HTML object that makes the moving bar (read-only)"}, "height": {"default": "\"20px\"", "type": "Number or String", "description": "Height of the ProgressBar.\nIf a number, it will be assumed to be in pixels.  \nIf a string it should be a valid setting for the CSS height attribute.  \nIt will always be returned as a string including units."}, "maskEl": {"readonly": "", "type": "HTMLElement (table)", "description": "Reference to the HTML object that overlays the bar providing the mask. (read-only)"}}, "constructors": [{"params": [{"type": "object", "name": "oConfigs", "description": "  An object containing any configuration attributes to be set"}], "description": "The ProgressBar widget provides an easy way to draw a bar depicting progress of an operation,\na level meter, rating or any such simple linear measure.\nIt allows for highly customized styles including animation, vertical or horizontal and forward or reverse."}], "namespace": "YAHOO.widget", "module": "progressbar", "events": {"beforeAriaTextTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAriaTextTemplateChange", "description": "Fires before the value for the configuration attribute 'ariaTextTemplate' changes. Return false to cancel the attribute change."}, "ariaTextTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "ariaTextTemplateChange", "description": "Fires when the value for the configuration attribute 'ariaTextTemplate' changes."}, "heightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "heightChange", "description": "Fires when the value for the configuration attribute 'height' changes."}, "minValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "minValueChange", "description": "Fires when the value for the configuration attribute 'minValue' changes."}, "barElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "barElChange", "description": "Fires when the value for the configuration attribute 'barEl' changes."}, "beforeHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHeightChange", "description": "Fires before the value for the configuration attribute 'height' changes. Return false to cancel the attribute change."}, "beforeAnimChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAnimChange", "description": "Fires before the value for the configuration attribute 'anim' changes. Return false to cancel the attribute change."}, "beforeMaxValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxValueChange", "description": "Fires before the value for the configuration attribute 'maxValue' changes. Return false to cancel the attribute change."}, "start": {"type": "CustomEvent", "params": [{"type": "Number", "name": "value", "description": "  the current (initial) value"}], "description": "Fires when the value is about to change.  It reports the starting value"}, "beforeWidthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWidthChange", "description": "Fires before the value for the configuration attribute 'width' changes. Return false to cancel the attribute change."}, "progress": {"type": "CustomEvent", "params": [{"type": "Number", "name": "value", "description": " the current, changing value"}], "description": "If animation is active, it will trigger several times during the animation providing intermediate values\nIf animation is not active, it will fire only once providing the end value"}, "beforeMaskElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaskElChange", "description": "Fires before the value for the configuration attribute 'maskEl' changes. Return false to cancel the attribute change."}, "complete": {"type": "CustomEvent", "params": [{"type": "Number", "name": "value", "description": "  the current (final)  value"}], "description": "Fires at the end of the animation or immediately upon changing values if animation is not loaded"}, "maskElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maskElChange", "description": "Fires when the value for the configuration attribute 'maskEl' changes."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "animChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "animChange", "description": "Fires when the value for the configuration attribute 'anim' changes."}, "beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "beforeBarElChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBarElChange", "description": "Fires before the value for the configuration attribute 'barEl' changes. Return false to cancel the attribute change."}, "maxValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxValueChange", "description": "Fires when the value for the configuration attribute 'maxValue' changes."}, "beforeDirectionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDirectionChange", "description": "Fires before the value for the configuration attribute 'direction' changes. Return false to cancel the attribute change."}, "directionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "directionChange", "description": "Fires when the value for the configuration attribute 'direction' changes."}, "beforeMinValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMinValueChange", "description": "Fires before the value for the configuration attribute 'minValue' changes. Return false to cancel the attribute change."}, "widthChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "widthChange", "description": "Fires when the value for the configuration attribute 'width' changes."}}, "guessedname": "Prog", "methods": {"render": {"return": {"type": "YAHOO.widget.ProgressBar", "description": ""}, "description": "Renders the ProgressBar into the given container.  \nIf the container has other content, the ProgressBar will be appended to it.\nIf the second argument is provided, the ProgressBar will be inserted before the given child.\nThe method is chainable since it returns a reference to this instance.", "chainable": "", "params": [{"type": "HTML Element", "name": "el", "description": "   HTML element that will contain the ProgressBar"}, {"type": "HTML Element", "name": "before", "description": "   (optional) If present, the ProgressBar will be inserted before this element."}], "guessedname": "render", "guessedtype": "function"}, "_init": {"protected": "", "params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal definition of configuration values."}], "description": "Initialization code for the widget, separate from the constructor to allow for overriding/patching.\nIt is called after <a href=\"#method_initAttributes\">initAttributes</a>", "guessedname": "_init", "guessedtype": "function"}, "_valueChange": {"guessedname": "_valueChange", "return": {"type": "", "description": "void"}, "description": "Called in response to a change in the <a href=\"#config_value\">value</a> attribute.\nMoves the bar to reflect the new value", "private": "", "guessedtype": "function"}, "_fixEdges": {"guessedname": "_fixEdges", "return": {"type": "", "description": "void"}, "description": "Due to rounding differences, some browsers fail to cover the whole area \nwith the mask quadrants when the width or height is odd.  This method\nstretches the lower and/or right quadrants to make the difference.", "private": "", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal definition of configuration values."}], "description": "Implementation of Element's abstract method. Sets up config values.", "private": "", "guessedtype": "function"}, "_heightChange": {"return": {"type": "", "description": "void"}, "description": "Method called when the height attribute is changed", "private": "", "params": [{"type": "int or string", "name": "value", "description": " New height, in pixels if int or string including units"}], "guessedname": "_heightChange", "guessedtype": "function"}, "_setAriaText": {"guessedname": "_setAriaText", "return": {"type": "", "description": "void"}, "description": "Utility method to set the ARIA value attributes", "private": "", "guessedtype": "function"}, "destroy": {"return": {"type": "", "description": "void"}, "description": "Destroys the ProgressBar, related objects and unsubscribes from all events", "guessedname": "destroy", "guessedtype": "function"}, "_animSetter": {"guessedname": "_animSetter", "return": {"type": "", "description": "void"}, "description": "Called in response to a change in the <a href=\"#config_anim\">anim</a> attribute.\nIt creates and sets up or destroys the instance of the animation utility that will move the bar", "private": "", "guessedtype": "function"}, "redraw": {"return": {"type": "", "description": "void"}, "description": "Recalculates the bar size and position and redraws it", "guessedname": "redraw", "guessedtype": "function"}, "_widthChange": {"return": {"type": "", "description": "void"}, "description": "Method called when the height attribute is changed", "private": "", "params": [{"type": "int or string", "name": "value", "description": " New width, in pixels if int or string including units"}], "guessedname": "_widthChange", "guessedtype": "function"}, "_recalculateConstants": {"guessedname": "_recalculateConstants", "return": {"type": "", "description": "void"}, "description": "Calculates some auxiliary values to make the rendering faster", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "ProgressBar.js", "guessedtype": "function", "shortname": "ProgressBar", "properties": {"ProgressBar.MARKUP": {"description": "String containing the HTML string which is the basis for the Progress Bar.", "default": "(too long)", "static": "", "guessedname": "MARKUP", "guessedtype": "property", "type": "String", "final": ""}, "_previousValue": {"description": "The previous value setting for the bar.  Used mostly as information to event listeners", "default": "0", "private": "", "guessedname": "_previousValue", "guessedtype": "property", "type": "Number"}, "_barSizeFunction": {"description": "Function to be used to calculate bar size.  \nIt is picked from <a href=\"#property_barSizeFunctions\">_barSizeFunctions</a>\ndepending on direction and whether animation is active.", "default": "null", "private": "", "guessedname": "_barSizeFunction", "guessedtype": "property", "type": "{function}"}, "_rendered": {"description": "A flag to signal that rendering has already happened", "default": "false", "private": "", "guessedname": "_rendered", "guessedtype": "property", "type": "boolean"}, "_barSpace": {"description": "The actual space (in pixels) available for the bar within the mask (excludes margins)", "default": "100", "private": "", "guessedname": "_barSpace", "guessedtype": "property", "type": "Number"}, "_barSizeFunctions": {"guessedname": "b", "type": "{collection of functions}", "description": "Collection of functions used by to calculate the size of the bar.\nOne of this will be used depending on direction and whether animation is active.", "private": "", "guessedtype": "property"}}, "description": "The ProgressBar widget provides an easy way to draw a bar depicting progress of an operation,\na level meter, rating or any such simple linear measure.\nIt allows for highly customized styles including animation, vertical or horizontal and forward or reverse."}, "YAHOO.widget.MenuItem": {"name": "YAHOO.widget.MenuItem", "configs": {"submenu": {"default": "null", "type": "Menu|String|Object|<a href=\"http://www.w3.org/TR/2000/\nWD-DOM-Level-1-20000929/level-one-html.html#ID-58190037\">\nHTMLElement</a>", "description": "Object specifying the submenu to be appended to the \nmenu item.  The value can be one of the following: <ul><li>Object \nspecifying a Menu instance.</li><li>Object literal specifying the\nmenu to be created.  Format: <code>{ id: [menu id], itemdata: \n[<a href=\"YAHOO.widget.Menu.html#itemData\">array of values for \nitems</a>] }</code>.</li><li>String specifying the id attribute \nof the <code><div></code> element of the menu.</li><li>\nObject specifying the <code><div></code> element of the \nmenu.</li></ul>"}, "classname": {"default": "null", "type": "String", "description": "CSS class to be applied to the menu item's root \n<code><li></code> element.  The specified class(es) are \nappended in addition to the default class as specified by the menu \nitem's CSS_CLASS_NAME constant."}, "checked": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu item should be rendered \nwith a checkmark."}, "target": {"default": "null", "type": "String", "description": "String specifying the value for the \"target\" attribute \nof the menu item's anchor element. <strong>Specifying a target will \nrequire the user to click directly on the menu item's anchor node in\norder to cause the browser to navigate to the specified URL.</strong> \nWhen building a menu from existing HTML the value of this property \nwill be interpreted from the menu's markup."}, "url": {"default": "\"#\"", "type": "String", "description": "String specifying the URL for the menu item's anchor's \n\"href\" attribute.  When building a menu from existing HTML the value \nof this property will be interpreted from the menu's markup."}, "text": {"default": "\"\"", "type": "String", "description": "String specifying the text label for the menu item.  \nWhen building a menu from existing HTML the value of this property\nwill be interpreted from the menu's markup."}, "selected": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu item should \nbe highlighted."}, "strongemphasis": {"default": "false", "deprecated": "Use the \"text\" configuration property to add strong emphasis.  \nFor example: <code>oMenuItem.cfg.setProperty(\"text\", \"<strong> \nSome Text</strong>\");</code>", "type": "Boolean", "description": "Boolean indicating if the text of the menu item will be \nrendered with strong emphasis."}, "disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the menu item should be disabled.  \n(Disabled menu items are  dimmed and will not respond to user input \nor fire events.)"}, "emphasis": {"default": "false", "deprecated": "Use the \"text\" configuration property to add emphasis.  \nFor example: <code>oMenuItem.cfg.setProperty(\"text\", \"<em>Some \nText</em>\");</code>", "type": "Boolean", "description": "Boolean indicating if the text of the menu item will be \nrendered with emphasis."}, "helptext": {"default": "null", "deprecated": "Use \"text\" configuration property to add help text markup.  \nFor example: <code>oMenuItem.cfg.setProperty(\"text\", \"Copy <em \nclass=\\\"helptext\\\">Ctrl + C</em>\");</code>", "type": "String|<a href=\"http://www.w3.org/TR/\n2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-58190037\">\nHTMLElement</a>", "description": "String specifying additional instructional text to \naccompany the text for the menu item."}, "onclick": {"default": "null", "type": "Object", "description": "Object literal representing the code to be executed when \nthe item is clicked.  Format:<br> <code> {<br> \n<strong>fn:</strong> Function,   // The handler to call when \nthe event fires.<br> <strong>obj:</strong> Object, // An \nobject to  pass back to the handler.<br> <strong>scope:</strong> \nObject // The object to use for the scope of the handler.\n<br> } </code>"}, "keylistener": {"default": "null", "type": "Object", "description": "Object literal representing the key(s) that can be used \nto trigger the MenuItem's \"click\" event.  Possible attributes are \nshift (boolean), alt (boolean), ctrl (boolean) and keys (either an int \nor an array of ints representing keycodes)."}}, "constructors": [{"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><li></code> element of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><option></code> element of the menu item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu item. See configuration class documentation \nfor more details."}], "description": "Creates an item for a menu."}], "namespace": "YAHOO.widget", "module": "menu", "events": {"mouseOutEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the mouse has left the menu item.  Passes back \nthe DOM Event object as an argument."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user releases a mouse button while the mouse \nis over the menu item.  Passes back the DOM Event object as an argument."}, "keyUpEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user releases a key when the menu item has \nfocus.  Passes back the DOM Event object as an argument."}, "focusEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item receives focus."}, "keyPressEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user presses an alphanumeric key when the \nmenu item has focus.  Passes back the DOM Event object as an argument."}, "mouseOverEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the mouse has entered the menu item.  Passes \nback the DOM Event object as an argument."}, "blurEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item loses the input focus."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user mouses down on the menu item.  Passes \nback the DOM Event object as an argument."}, "clickEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user clicks the on the menu item.  Passes \nback the DOM Event object as an argument."}, "destroyEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item's <code><li></code> \nelement is removed from its parent <code><ul></code> element."}, "keyDownEvent": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user presses a key when the menu item has \nfocus.  Passes back the DOM Event object as an argument."}}, "guessedname": "MenuItem", "methods": {"_createRootNodeStructure": {"description": "Creates the core DOM structure for the menu item.", "private": "", "guessedname": "_createRootNodeStructure", "guessedtype": "function"}, "hasFocus": {"return": {"type": "Boolean", "description": ""}, "description": "Returns a boolean indicating whether or not the menu item\nhas focus.", "guessedname": "hasFocus", "guessedtype": "function"}, "configURL": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"url\" configuration property of \nthe menu item changes.", "guessedname": "configURL", "guessedtype": "function"}, "focus": {"description": "Causes the menu item to receive the focus and fires the \nfocus event.", "guessedname": "focus", "guessedtype": "function"}, "configEmphasis": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"emphasis\" configuration property\nof the menu item changes.", "guessedname": "configEmphasis", "guessedtype": "function"}, "_dispatchClickEvent": {"description": "Dispatches a DOM \"click\" event to the anchor element of a \nMenuItem instance.", "private": "", "guessedname": "_dispatchClickEvent", "guessedtype": "function"}, "configTarget": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"target\" configuration property \nof the menu item changes.", "guessedname": "configTarget", "guessedtype": "function"}, "addClassNameForState": {"guessedname": "addClassNameForState", "params": [{"type": "String", "name": "state", "description": " String representing a state - \"disabled,\" \"checked,\" etc."}], "description": "Applies a class name to a MenuItem instance's <LI> and <A> elements\nthat represents a MenuItem's state - \"disabled,\" \"checked,\" etc.", "private": "", "guessedtype": "function"}, "getClassNameForState": {"guessedname": "getClassNameForState", "params": [{"type": "String", "name": "prefix", "description": " String representing the prefix for the class name"}, {"type": "String", "name": "state", "description": " String representing a state - \"disabled,\" \"checked,\" etc."}], "description": "Returns a class name for the specified prefix and state.  If the class name does not \nyet exist, it is created and stored in the CLASS_NAMES object to increase performance.", "private": "", "guessedtype": "function"}, "configStrongEmphasis": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"strongemphasis\" configuration \nproperty of the menu item changes.", "guessedname": "configStrongEmphasis", "guessedtype": "function"}, "_createKeyListener": {"guessedname": "_createKeyListener", "params": [{"type": "String", "name": "type", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "args", "description": " Array of arguments sent when the event was fired."}, {"type": "Array", "name": "keyData", "description": " Array of arguments sent when the event was fired."}], "description": "\"show\" event handler for a Menu instance - responsible for \nsetting up the KeyListener instance for a MenuItem.", "private": "", "guessedtype": "function"}, "configSubmenu": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"submenu\" configuration property \nof the menu item changes.", "guessedname": "configSubmenu", "guessedtype": "function"}, "getNextSibling": {"return": {"type": "", "description": "YAHOO.widget.MenuItem"}, "description": "Finds the menu item's next sibling.", "guessedname": "getNextSibling", "guessedtype": "function"}, "configOnClick": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"onclick\" configuration property \nof the menu item changes.", "guessedname": "configOnClick", "guessedtype": "function"}, "getPreviousEnabledSibling": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Finds the menu item's previous enabled sibling.", "guessedname": "getPreviousEnabledSibling", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oObject", "description": " String specifying the text of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "name": "p_oObject", "description": " Object specifying \nthe <code><li></code> element of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-38450247\">HTMLOptGroupElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><optgroup></code> element of the menu item."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-70901257\">HTMLOptionElement</a>", "name": "p_oObject", "description": " Object \nspecifying the <code><option></code> element of the menu item."}, {"type": "Object", "name": "p_oConfig", "description": " Optional. Object literal specifying the \nconfiguration for the menu item. See configuration class documentation \nfor more details."}], "description": "The MenuItem class's initialization method. This method is \nautomatically called by the constructor, and sets up all DOM references \nfor pre-existing markup, and creates required markup if it is not \nalready present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu item.", "guessedname": "toString", "guessedtype": "function"}, "removeClassNameForState": {"guessedname": "removeClassNameForState", "params": [{"type": "String", "name": "state", "description": " String representing a state - \"disabled,\" \"checked,\" etc."}], "description": "Removes a class name from a MenuItem instance's <LI> and <A> elements\nthat represents a MenuItem's state - \"disabled,\" \"checked,\" etc.", "private": "", "guessedtype": "function"}, "_onSubmenuBeforeHide": {"guessedname": "_onSubmenuBeforeHide", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "\"beforehide\" Custom Event handler for a submenu.", "private": "", "guessedtype": "function"}, "blur": {"description": "Causes the menu item to lose focus and fires the \nblur event.", "guessedname": "blur", "guessedtype": "function"}, "configHelpText": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"helptext\" configuration property \nof the menu item changes.", "guessedname": "configHelpText", "guessedtype": "function"}, "destroy": {"description": "Removes the menu item's <code><li></code> element \nfrom its parent <code><ul></code> element.", "guessedname": "destroy", "guessedtype": "function"}, "getNextEnabledSibling": {"return": {"type": "", "description": "YAHOO.widget.MenuItem"}, "description": "Finds the menu item's next enabled sibling.", "guessedname": "getNextEnabledSibling", "guessedtype": "function"}, "configChecked": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"checked\" configuration property \nof the menu item changes.", "guessedname": "configChecked", "guessedtype": "function"}, "configKeyListener": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}], "description": "Event handler for when the \"keylistener\" configuration \nproperty of a menu item changes.", "guessedname": "configKeyListener", "guessedtype": "function"}, "configDisabled": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"disabled\" configuration property \nof the menu item changes.", "guessedname": "configDisabled", "guessedtype": "function"}, "configSelected": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"selected\" configuration property \nof the menu item changes.", "guessedname": "configSelected", "guessedtype": "function"}, "getPreviousSibling": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Finds the menu item's previous sibling.", "guessedname": "getPreviousSibling", "guessedtype": "function"}, "_initSubTree": {"description": "Iterates the source element's childNodes collection and uses \nthe child nodes to instantiate other menus.", "private": "", "guessedname": "_initSubTree", "guessedtype": "function"}, "configClassName": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"classname\" configuration \nproperty of a menu item changes.", "guessedname": "configClassName", "guessedtype": "function"}, "configText": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event that \nwas fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event was fired."}, {"type": "YAHOO.widget.MenuItem", "name": "p_oItem", "description": " Object representing the menu item\nthat fired the event."}], "description": "Event handler for when the \"text\" configuration property of \nthe menu item changes.", "guessedname": "configText", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes an item's configurable properties.", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "file": "menuitem.js", "guessedtype": "function", "shortname": "MenuItem", "properties": {"_oSubmenu": {"description": "Object reference to the menu item's submenu.", "default": "null", "private": "", "guessedname": "_oSubmenu", "guessedtype": "property", "type": "YAHOO.widget.Menu"}, "index": {"default": "null", "type": "Number", "description": "Number indicating the ordinal position of the menu item in \nits group.", "guessedname": "index", "guessedtype": "property"}, "CSS_LABEL_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \nmenu item's <code><a></code> element.", "default": "\"yuimenuitemlabel\"", "guessedname": "CSS_LABEL_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to the \n<code><li></code> element of the menu item.", "default": "\"yuimenuitem\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "parent": {"default": "null", "type": "YAHOO.widget.Menu", "description": "Object reference to the menu item's parent menu.", "guessedname": "parent", "guessedtype": "property"}, "SUBMENU_TYPE": {"final": "", "type": "YAHOO.widget.Menu", "description": "Object representing the type of menu to instantiate and \nadd when parsing the child nodes of the menu item's source HTML element.", "guessedname": "SUBMENU_TYPE", "guessedtype": "property"}, "srcElement": {"default": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-74680021\">HTMLLIElement</a>|<a href=\"http://www.\nw3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247\"\n>HTMLOptGroupElement</a>|<a href=\"http://www.w3.org/TR/2000/WD-DOM-\nLevel-1-20000929/level-one-html.html#ID-70901257\">HTMLOptionElement</a>", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>|<a href=\"http://www.w3.\norg/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-38450247\">\nHTMLOptGroupElement</a>|<a href=\"http://www.w3.org/TR/2000/WD-DOM-\nLevel-1-20000929/level-one-html.html#ID-70901257\">HTMLOptionElement</a>", "description": "Object reference to the HTML element (either \n<code><li></code>, <code><optgroup></code> or \n<code><option></code>) used create the menu item.", "guessedname": "srcElement", "guessedtype": "property"}, "value": {"default": "null", "type": "Object", "description": "Object reference to the menu item's value.", "guessedname": "value", "guessedtype": "property"}, "element": {"default": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level\n-one-html.html#ID-74680021\">HTMLLIElement</a>", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-74680021\">HTMLLIElement</a>", "description": "Object reference to the menu item's \n<code><li></code> element.", "guessedname": "element", "guessedtype": "property"}, "_sClassName": {"description": "The current value of the \"classname\" configuration attribute.", "default": "null", "private": "", "guessedname": "_sClassName", "guessedtype": "property", "type": "String"}, "_oAnchor": {"description": "Object reference to the menu item's \n<code><a></code> element.", "default": "null", "private": "", "guessedname": "_oAnchor", "guessedtype": "property", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-48250443\">HTMLAnchorElement</a>"}, "constructor": {"default": "YAHOO.widget.MenuItem", "type": "YAHOO.widget.MenuItem", "description": "Object reference to the menu item's constructor function.", "guessedname": "constructor", "guessedtype": "property"}, "groupIndex": {"default": "null", "type": "Number", "description": "Number indicating the index of the group to which the menu \nitem belongs.", "guessedname": "groupIndex", "guessedtype": "property"}, "browser": {"deprecated": "Use YAHOO.env.ua", "type": "String", "description": "String representing the browser.", "guessedname": "browser", "guessedtype": "property"}, "_oHelpTextEM": {"description": "Object reference to the menu item's help text \n<code><em></code> element.", "default": "null", "private": "", "guessedname": "_oHelpTextEM", "guessedtype": "property", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-58190037\">HTMLElement</a>"}, "id": {"default": "null", "type": "String", "description": "Id of the menu item's root <code><li></code> \nelement.  This property should be set via the constructor using the \nconfiguration object literal.  If an id is not specified, then one will \nbe created using the \"generateId\" method of the Dom utility.", "guessedname": "id", "guessedtype": "property"}, "_oOnclickAttributeValue": {"description": "Object reference to the menu item's current value for the \n\"onclick\" configuration attribute.", "default": "null", "private": "", "guessedname": "_oOnclickAttributeValue", "guessedtype": "property", "type": "Object"}}, "description": "Creates an item for a menu."}, "YAHOO.widget.CartesianSeries": {"name": "YAHOO.widget.CartesianSeries", "constructors": [{"description": "Functionality common to most series appearing in cartesian charts.\nGenerally, a <code>CartesianSeries</code> object shouldn't be\ninstantiated directly. Instead, a subclass with a concrete implementation\nshould be used."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "CartesianSeries", "uses": ["YAHOO.widget.Series"], "file": "Series.js", "guessedtype": "function", "shortname": "CartesianSeries", "properties": {"yField": {"type": "String", "description": "The field used to access the y-axis value from the items from the data source.", "guessedname": "yField", "guessedtype": "property"}, "xField": {"type": "String", "description": "The field used to access the x-axis value from the items from the data source.", "guessedname": "xField", "guessedtype": "property"}, "showInLegend": {"type": "Boolean", "description": "When a Legend is present, indicates whether the series will show in the legend.", "guessedname": "showInLegend", "guessedtype": "property"}, "axis": {"type": "String", "description": "Indicates which axis the series will bind to", "guessedname": "axis", "guessedtype": "property"}}, "description": "Functionality common to most series appearing in cartesian charts.\nGenerally, a <code>CartesianSeries</code> object shouldn't be\ninstantiated directly. Instead, a subclass with a concrete implementation\nshould be used."}, "YAHOO.util.Scroll": {"name": "YAHOO.util.Scroll", "constructors": [{"params": [{"type": "String or HTMLElement", "name": "el", "description": " Reference to the element that will be animated"}, {"type": "Object", "name": "attributes", "description": " The attribute(s) to be animated.  \nEach attribute is an object with at minimum a \"to\" or \"by\" member defined.  \nAdditional optional members are \"from\" (defaults to current value), \"units\" (defaults to \"px\").  \nAll attribute names use camelCase."}, {"type": "Number", "name": "duration", "description": " (optional, defaults to 1 second) Length of animation (frames or seconds), defaults to time-based"}, {"type": "Function", "name": "method", "description": " (optional, defaults to YAHOO.util.Easing.easeNone) Computes the values that are applied to the attributes per frame (generally a YAHOO.util.Easing method)"}], "description": "Anim subclass for scrolling elements to a position defined by the \"scroll\"\nmember of \"attributes\".  All \"scroll\" members are arrays with x, y scroll positions.\n<p>Usage: <code>var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>"}], "namespace": "YAHOO.util", "module": "animation", "guessedname": "Scroll", "extends": "YAHOO.util.ColorAnim", "superclass": "YAHOO.util.ColorAnim", "file": "Scroll.js", "guessedtype": "function", "shortname": "Scroll", "requires": "YAHOO.util.Anim", "description": "Anim subclass for scrolling elements to a position defined by the \"scroll\"\nmember of \"attributes\".  All \"scroll\" members are arrays with x, y scroll positions.\n<p>Usage: <code>var myAnim = new YAHOO.util.Scroll(el, { scroll: { to: [0, 800] } }, 1, YAHOO.util.Easing.easeOut);</code></p>"}, "YAHOO.widget.Dialog": {"name": "YAHOO.widget.Dialog", "configs": {"buttons": {"default": "\"none\"", "type": "{Array|String}", "description": "Array of object literals, each containing a set of properties \ndefining a button to be appended into the Dialog's footer.\n<p>Each button object in the buttons array can have three properties:</p>\n<dl>\n<dt>text:</dt>\n<dd>\nThe text that will display on the face of the button. The text can \ninclude HTML, as long as it is compliant with HTML Button specifications.\n</dd>\n<dt>handler:</dt>\n<dd>Can be either:\n<ol>\n<li>A reference to a function that should fire when the \nbutton is clicked.  (In this case scope of this function is \nalways its Dialog instance.)</li>\n<li>An object literal representing the code to be \nexecuted when the button is clicked.\n<p>Format:</p>\n<p>\n<code>{\n<br>\n<strong>fn:</strong> Function, //\nThe handler to call when  the event fires.\n<br>\n<strong>obj:</strong> Object, // \nAn  object to pass back to the handler.\n<br>\n<strong>scope:</strong> Object // \nThe object to use for the scope of the handler.\n<br>\n}</code>\n</p>\n</li>\n</ol>\n</dd>\n<dt>isDefault:</dt>\n<dd>\nAn optional boolean value that specifies that a button \nshould be highlighted and focused by default.\n</dd>\n</dl>\n<em>NOTE:</em>If the YUI Button Widget is included on the page, \nthe buttons created will be instances of YAHOO.widget.Button. \nOtherwise, HTML Buttons (<code><BUTTON></code>) will be \ncreated."}, "hideaftersubmit": {"default": "true", "type": "Boolean", "description": "This property is used to configure whether or not the \ndialog should be automatically hidden after submit."}, "postdata": {"default": "null", "type": "String", "description": "Any additional post data which needs to be sent when using the \n<a href=\"#config_postmethod\">async</a> postmethod for dialog POST submissions.\nThe format for the post data string is defined by Connection Manager's \n<a href=\"YAHOO.util.Connect.html#method_asyncRequest\">asyncRequest</a> \nmethod."}, "postmethod": {"default": "async", "type": "String", "description": "The method to use for posting the Dialog's form. Possible values \nare \"async\", \"form\", and \"manual\"."}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Dialog <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Dialog"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this Dialog. See configuration \ndocumentation for more details."}], "description": "<p>\nDialog is an implementation of Panel that can be used to submit form \ndata.\n</p>\n<p>\nBuilt-in functionality for buttons with event handlers is included. \nIf the optional YUI Button dependancy is included on the page, the buttons\ncreated will be instances of YAHOO.widget.Button, otherwise regular HTML buttons\nwill be created.\n</p>\n<p>\nForms can be processed in 3 ways -- via an asynchronous Connection utility call, \na simple form POST or GET, or manually. The YUI Connection utility should be\nincluded if you're using the default \"async\" postmethod, but is not required if\nyou're using any of the other postmethod values.\n</p>"}], "namespace": "YAHOO.widget", "module": "container", "events": {"beforeSubmitEvent": {"description": "CustomEvent fired prior to submission", "guessedname": "beforeSubmitEvent", "guessedtype": "property"}, "asyncSubmitEvent": {"params": [{"type": "Object", "name": "conn", "description": " The connection object, returned by YAHOO.util.Connect.asyncRequest"}], "description": "CustomEvent fired after asynchronous submission, before the generic submit event is fired", "guessedname": "asyncSubmitEvent", "guessedtype": "property"}, "submitEvent": {"description": "CustomEvent fired after submission", "guessedname": "submitEvent", "guessedtype": "property"}, "manualSubmitEvent": {"description": "CustomEvent fired for manual submission, before the generic submit event is fired", "guessedname": "manualSubmitEvent", "guessedtype": "property"}, "formSubmitEvent": {"description": "CustomEvent fired after form-based submission, before the generic submit event is fired", "guessedname": "formSubmitEvent", "guessedtype": "property"}, "cancelEvent": {"description": "CustomEvent fired after cancel", "guessedname": "cancelEvent", "guessedtype": "property"}}, "guessedname": "Dialog", "methods": {"configButtons": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler for the \"buttons\" configuration property", "guessedname": "configButtons", "guessedtype": "function"}, "getButtons": {"return": {"type": "Array", "description": ""}, "description": "Returns an array containing each of the Dialog's \nbuttons, by default an array of HTML <code><BUTTON></code> \nelements.  If the Dialog's buttons were created using the \nYAHOO.widget.Button class (via the inclusion of the optional Button \ndependancy on the page), an array of YAHOO.widget.Button instances \nis returned.", "guessedname": "getButtons", "guessedtype": "function"}, "doSubmit": {"description": "Submits the Dialog's form depending on the value of the \n\"postmethod\" configuration property.  <strong>Please note:\n</strong> As of version 2.3 this method will automatically handle \nasyncronous file uploads should the Dialog instance's form contain \n<code><input type=\"file\"></code> elements.  If a Dialog \ninstance will be handling asyncronous file uploads, its \n<code>callback</code> property will need to be setup with a \n<code>upload</code> handler rather than the standard \n<code>success</code> and, or <code>failure</code> handlers.  For more \ninformation, see the <a href=\"http://developer.yahoo.com/yui/\nconnection/#file\">Connection Manager documenation on file uploads</a>.", "guessedname": "doSubmit", "guessedtype": "function"}, "configClose": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For \nconfiguration handlers, args[0] will equal the newly applied value \nfor the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"close\" property is \nchanged. The method controls the appending or hiding of the close\nicon at the top right of the Dialog.", "guessedname": "configClose", "guessedtype": "function"}, "_submitHandler": {"protected": "", "params": [{"type": "DOMEvent", "name": "e", "description": " The DOM Event object"}], "description": "Internal handler for the form submit event", "guessedname": "_submitHandler", "guessedtype": "function"}, "_doClose": {"protected": "", "params": [{"type": "DOMEvent", "name": "e", "description": ""}], "description": "Event handler for the close icon", "guessedname": "_doClose", "guessedtype": "function"}, "cancel": {"description": "Executes the cancel of the Dialog followed by a hide.", "guessedname": "cancel", "guessedtype": "function"}, "configPostMethod": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For \nconfiguration handlers, args[0] will equal the newly applied value \nfor the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler for the \"postmethod\" configuration property", "guessedname": "configPostMethod", "guessedtype": "function"}, "focusFirstButton": {"description": "Sets the focus to the first button created via the \"buttons\"\nconfiguration property.", "guessedname": "focusFirstButton", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Dialog which are fired \nautomatically at appropriate times by the Dialog class.", "guessedname": "initEvents", "guessedtype": "function"}, "focusFirst": {"description": "<p>\nSets focus to the first focusable element in the Dialog's form if found, \nelse, the default button if found, else the first button defined via the \n\"buttons\" configuration property.\n</p>\n<p>\nThis method is invoked when the Dialog is made visible.\n</p>", "guessedname": "focusFirst", "guessedtype": "function"}, "submit": {"description": "Executes a submit of the Dialog if validation \nis successful. By default the Dialog is hidden\nafter submission, but you can set the \"hideaftersubmit\"\nconfiguration property to false, to prevent the Dialog\nfrom being hidden.", "guessedname": "submit", "guessedtype": "function"}, "focusLastButton": {"description": "Sets the focus to the last button created via the \"buttons\" \nconfiguration property.", "guessedname": "focusLastButton", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Dialog <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Dialog"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this Dialog. \nSee configuration documentation for more details."}], "description": "The Dialog initialization method, which is executed for Dialog and \nall of its subclasses. This method is automatically called by the \nconstructor, and  sets up all DOM references for pre-existing markup, \nand creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Dialog"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "focusDefaultButton": {"description": "Sets the focus to the button that is designated as the default via \nthe \"buttons\" configuration property. By default, this method is \ncalled when the Dialog is made visible.", "guessedname": "focusDefaultButton", "guessedtype": "function"}, "getData": {"return": {"type": "Object", "description": "A JSON object reprsenting the data of the \ncurrent form."}, "description": "Returns a JSON-compatible data structure representing the data \ncurrently contained in the form.", "guessedname": "getData", "guessedtype": "function"}, "blurButtons": {"description": "Blurs all the buttons defined via the \"buttons\" \nconfiguration property.", "guessedname": "blurButtons", "guessedtype": "function"}, "focusLast": {"description": "Sets focus to the last element in the Dialog's form or the last \nbutton defined via the \"buttons\" configuration property.", "guessedname": "focusLast", "guessedtype": "function"}, "destroy": {"description": "Removes the Panel element from the DOM and sets all child elements \nto null.", "guessedname": "destroy", "guessedtype": "function"}, "validate": {"description": "Built-in function hook for writing a validation function that will \nbe checked for a \"true\" value prior to a submit. This function, as \nimplemented by default, always returns true, so it should be \noverridden if validation is necessary.", "guessedname": "validate", "guessedtype": "function"}, "registerForm": {"description": "Prepares the Dialog's internal FORM object, creating one if one is\nnot currently present.", "guessedname": "registerForm", "guessedtype": "function"}, "setFirstLastFocusable": {"description": "Configures instance properties, pointing to the \nfirst and last focusable elements in the Dialog's form.", "guessedname": "setFirstLastFocusable", "guessedtype": "function"}, "_getFormAttributes": {"return": {"type": "Object", "description": "Object literal, with method and action String properties."}, "description": "Retrieves important attributes (currently method and action) from\nthe form element, accounting for any elements which may have the same name \nas the attributes. Defaults to \"POST\" and \"\" for method and action respectively\nif the attribute cannot be retrieved.", "protected": "", "params": [{"type": "HTMLFormElement", "name": "oForm", "description": " The HTML Form element from which to retrieve the attributes"}], "guessedname": "_getFormAttributes", "guessedtype": "function"}, "setTabLoop": {"params": [{"type": "HTMLElement", "name": "firstElement", "description": ""}, {"type": "HTMLElement", "name": "lastElement", "description": ""}], "description": "Sets up a tab, shift-tab loop between the first and last elements\nprovided. NOTE: Sets up the preventBackTab and preventTabOut KeyListener\ninstance properties, which are reset everytime this method is invoked.", "guessedname": "setTabLoop", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be changed \nusing the Dialog's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}, "_getButton": {"return": {"type": "YAHOO.widget.Button|HTMLElement", "description": ""}, "description": "Helper method to normalize button references. It either returns the \nYUI Button instance for the given element if found,\nor the passes back the HTMLElement reference if a corresponding YUI Button\nreference is not found or YAHOO.widget.Button does not exist on the page.", "private": "", "params": [{"type": "HTMLElement", "name": "button", "description": ""}], "guessedname": "_getButton", "guessedtype": "function"}}, "extends": "YAHOO.widget.Panel", "superclass": "YAHOO.widget.Panel", "file": "Dialog.js", "guessedtype": "function", "shortname": "Dialog", "properties": {"YAHOO.widget.Dialog.CSS_DIALOG": {"description": "Constant representing the default CSS class used for a Dialog", "static": "", "guessedname": "CSS_DIALOG", "guessedtype": "property", "type": "String", "final": ""}, "form": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-40002357\">HTMLFormElement</a>", "description": "Object reference to the Dialog's \n<code><form></code> element.", "guessedname": "form", "guessedtype": "property"}, "callback.success": {"type": "Function", "description": "The function to execute upon success of the \nConnection submission (when the form does not\ncontain a file input element).", "guessedname": "success", "guessedtype": "property"}, "callback.failure": {"type": "Function", "description": "The function to execute upon failure of the \nConnection submission", "guessedname": "failure", "guessedtype": "property"}, "callback": {"type": "Object", "description": "The internally maintained callback object for use with the \nConnection utility. The format of the callback object is \nsimilar to Connection Manager's callback object and is \nsimply passed through to Connection Manager when the async \nrequest is made.", "guessedname": "callback", "guessedtype": "property"}, "EVENT_TYPES": {"description": "Constant representing the name of the Dialog's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "callback.upload": {"type": "Function", "description": "<p>\nThe function to execute upon success of the \nConnection submission, when the form contains\na file input element.\n</p>\n<p>\n<em>NOTE:</em> Connection manager will not\ninvoke the success or failure handlers for the file\nupload use case. This will be the only callback\nhandler invoked.\n</p>\n<p>\nFor more information, see the <a href=\"http://developer.yahoo.com/yui/connection/#file\">\nConnection Manager documenation on file uploads</a>.\n</p>"}, "DEFAULT_CONFIG": {"description": "Constant representing the Dialog's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "callback.argument": {"type": "Object", "description": "The arbitraty argument or arguments to pass to the Connection \ncallback functions", "guessedname": "argument", "guessedtype": "property"}}, "description": "<p>\nDialog is an implementation of Panel that can be used to submit form \ndata.\n</p>\n<p>\nBuilt-in functionality for buttons with event handlers is included. \nIf the optional YUI Button dependancy is included on the page, the buttons\ncreated will be instances of YAHOO.widget.Button, otherwise regular HTML buttons\nwill be created.\n</p>\n<p>\nForms can be processed in 3 ways -- via an asynchronous Connection utility call, \na simple form POST or GET, or manually. The YUI Connection utility should be\nincluded if you're using the default \"async\" postmethod, but is not required if\nyou're using any of the other postmethod values.\n</p>"}, "YAHOO.util.Color": {"description": "Provides color conversion and validation utils", "namespace": "YAHOO.util", "module": "colorpicker", "guessedname": "Color", "methods": {"hsv2rgb": {"return": {"type": "[int, int, int]", "description": "the red, green, blue values in\ndecimal."}, "params": [{"type": "int|[int, float, float]", "name": "h", "description": "  the hue, or an\narray containing all three parameters"}, {"type": "float", "name": "s", "description": "  the saturation"}, {"type": "float", "name": "v", "description": "  the value/brightness"}], "description": "Converts HSV (h[0-360], s[0-1]), v[0-1] to RGB [255,255,255]", "guessedname": "hsv2rgb", "guessedtype": "function"}, "websafe": {"return": {"type": "[int, int, int]", "description": "an array containing the closes\nwebsafe rgb colors."}, "params": [{"type": "int|[int, int, int]", "name": "r", "description": "  the red value, or an\narray containing all three parameters"}, {"type": "int", "name": "g", "description": "  the green value"}, {"type": "int", "name": "b", "description": "  the blue value"}], "description": "Returns the closest websafe color to the supplied rgb value.", "guessedname": "websafe", "guessedtype": "function"}, "rgb2hsv": {"return": {"type": "[int, float, float]", "description": "the value converted to hsv"}, "params": [{"type": "int|[int, int, int]", "name": "r", "description": "  the red value, or an\narray containing all three parameters"}, {"type": "int", "name": "g", "description": "  the green value"}, {"type": "int", "name": "b", "description": "  the blue value"}], "description": "Converts to RGB [255,255,255] to HSV (h[0-360], s[0-1]), v[0-1]", "guessedname": "rgb2hsv", "guessedtype": "function"}, "hex2dec": {"return": {"type": "int", "description": "the decimal"}, "params": [{"type": "string", "name": "str", "description": "  the hex pair to convert"}], "description": "Converts a hex pair 00...FF to an int 0...255", "guessedname": "hex2dec", "guessedtype": "function"}, "rgb2hex": {"return": {"type": "string", "description": "the hex string"}, "params": [{"type": "int|[int, int, int]", "name": "r", "description": "  the red value, or an\narray containing all three parameters"}, {"type": "int", "name": "g", "description": "  the green value"}, {"type": "int", "name": "b", "description": "  the blue value"}], "description": "Converts decimal rgb values into a hex string\n255,255,255 -> FFFFFF", "guessedname": "rgb2hex", "guessedtype": "function"}, "real2dec": {"return": {"type": "int", "description": "a number 0-255"}, "params": [{"type": "float", "name": "n", "description": "  the number to convert"}], "description": "Converts 0-1 to 0-255", "guessedname": "real2dec", "guessedtype": "function"}, "dec2hex": {"return": {"type": "string", "description": "the hex equivalent"}, "params": [{"type": "int", "name": "n", "description": "  the number to convert"}], "description": "Converts an int 0...255 to hex pair 00...FF", "guessedname": "dec2hex", "guessedtype": "function"}, "hex2rgb": {"return": {"type": "[int, int, int]", "description": "an array containing the rgb values"}, "params": [{"type": "string", "name": "str", "description": "  the hex string"}], "description": "Converts a hex string to rgb", "guessedname": "hex2rgb", "guessedtype": "function"}}, "file": "Color.js", "guessedtype": "function", "shortname": "Color", "name": "YAHOO.util.Color"}, "YAHOO.widget.SimpleDialog": {"name": "YAHOO.widget.SimpleDialog", "configs": {"text": {"default": "\"\"", "type": "String", "description": "Sets the text for the SimpleDialog"}, "icon": {"default": "\"none\"", "type": "String", "description": "Sets the informational icon for the SimpleDialog"}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the SimpleDialog \n<em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the SimpleDialog"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this SimpleDialog. See \nconfiguration documentation for more details."}], "description": "SimpleDialog is a simple implementation of Dialog that can be used to \nsubmit a single value. Forms can be processed in 3 ways -- via an \nasynchronous Connection utility call, a simple form POST or GET, \nor manually."}], "namespace": "YAHOO.widget", "module": "container", "guessedname": "SimpleDialog", "methods": {"configIcon": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "Fired when the \"icon\" property is set.", "guessedname": "configIcon", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the SimpleDialog \n<em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the SimpleDialog"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this \nSimpleDialog. See configuration documentation for more details."}], "description": "The SimpleDialog initialization method, which is executed for \nSimpleDialog and all of its subclasses. This method is automatically \ncalled by the constructor, and  sets up all DOM references for \npre-existing markup, and creates required markup if it is not \nalready present.", "guessedname": "init", "guessedtype": "function"}, "setBody": {"params": [{"type": "String", "name": "bodyContent", "description": " The HTML used to set the body. \nAs a convenience, non HTMLElement objects can also be passed into \nthe method, and will be treated as strings, with the body innerHTML\nset to their default toString implementations.\n<em>OR</em>"}, {"type": "HTMLElement", "name": "bodyContent", "description": " The HTMLElement to add as the first and only child of the body element.\n<em>OR</em>"}, {"type": "DocumentFragment", "name": "bodyContent", "description": " The document fragment \ncontaining elements which are to be added to the body"}], "description": "<p>\nSets the SimpleDialog's body content to the HTML specified. \nIf no body is present, one will be automatically created. \nAn empty string can be passed to the method to clear the contents of the body.\n</p>\n<p><strong>NOTE:</strong> SimpleDialog provides the <a href=\"#config_text\">text</a>\nand <a href=\"#config_icon\">icon</a> configuration properties to set the contents\nof it's body element in accordance with the UI design for a SimpleDialog (an \nicon and message text). Calling setBody on the SimpleDialog will not enforce this \nUI design constraint and will replace the entire contents of the SimpleDialog body. \nIt should only be used if you wish the replace the default icon/text body structure \nof a SimpleDialog with your own custom markup.</p>"}, "toString": {"return": {"type": "String", "description": "The string representation of the SimpleDialog"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "configText": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "Fired when the \"text\" property is set.", "guessedname": "configText", "guessedtype": "function"}, "registerForm": {"description": "Prepares the SimpleDialog's internal FORM object, creating one if one \nis not currently present, and adding the value hidden field.", "guessedname": "registerForm", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be changed \nusing the SimpleDialog's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Dialog", "superclass": "YAHOO.widget.Dialog", "file": "SimpleDialog.js", "guessedtype": "function", "shortname": "SimpleDialog", "properties": {"YAHOO.widget.SimpleDialog.CSS_SIMPLEDIALOG": {"description": "Constant representing the default CSS class used for a SimpleDialog", "static": "", "guessedname": "CSS_SIMPLEDIALOG", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_INFO": {"description": "Constant for the standard network icon for info", "static": "", "guessedname": "ICON_INFO", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_CSS_CLASSNAME": {"description": "Constant representing the name of the CSS class applied to the element \ncreated by the \"icon\" configuration property.", "static": "", "guessedname": "ICON_CSS_CLASSNAME", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_BLOCK": {"description": "Constant for the standard network icon for a blocking action", "static": "", "guessedname": "ICON_BLOCK", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_WARN": {"description": "Constant for the standard network icon for warn", "static": "", "guessedname": "ICON_WARN", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_ALARM": {"description": "Constant for the standard network icon for alarm", "static": "", "guessedname": "ICON_ALARM", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_TIP": {"description": "Constant for the standard network icon for a tip", "static": "", "guessedname": "ICON_TIP", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.SimpleDialog.ICON_HELP": {"description": "Constant for the standard network icon for help", "static": "", "guessedname": "ICON_HELP", "guessedtype": "property", "type": "String", "final": ""}, "DEFAULT_CONFIG": {"description": "Constant representing the SimpleDialog's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}}, "description": "SimpleDialog is a simple implementation of Dialog that can be used to \nsubmit a single value. Forms can be processed in 3 ways -- via an \nasynchronous Connection utility call, a simple form POST or GET, \nor manually."}, "YAHOO.util.Connect": {"name": "YAHOO.util.Connect", "namespace": "YAHOO.util", "module": "connection", "guessedname": "Connect", "methods": {"asyncRequest": {"return": {"type": "object", "description": "Returns the connection object"}, "description": "Method for initiating an asynchronous request via the XHR object.", "static": "", "guessedname": "asyncRequest", "guessedtype": "function", "params": [{"type": "string", "name": "method", "description": " HTTP transaction method"}, {"type": "string", "name": "uri", "description": " Fully qualified path of resource"}, {"type": "callback", "name": "callback", "description": " User-defined callback function or object"}, {"type": "string", "name": "postData", "description": " POST body"}], "public": ""}, "isCallInProgress": {"return": {"type": "boolean", "description": ""}, "description": "Determines if the transaction is still being processed.", "static": "", "guessedname": "isCallInProgress", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object returned by asyncRequest"}], "public": ""}, "createResponseObject": {"return": {"type": "object", "description": ""}, "description": "This method evaluates the server response, creates and returns the results via\nits properties.  Success and failure cases will differ in the response\nobject's property values.", "private": "", "static": "", "guessedname": "createResponseObject", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}, {"type": "callbackArg", "name": "callbackArg", "description": " The user-defined argument or arguments to be passed to the callback"}]}, "_xdrStart": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "object", "name": "The", "description": " transaction object."}, {"type": "string", "name": "The", "description": " transaction's callback object."}], "description": "This method fires the global and transaction start\nevents.", "private": ""}, "abort": {"return": {"type": "boolean", "description": ""}, "description": "Method to terminate a transaction, if it has not reached readyState 4.", "static": "", "guessedname": "abort", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object returned by asyncRequest."}, {"type": "object", "name": "callback", "description": "  User-defined callback object."}, {"type": "string", "name": "isTimeout", "description": " boolean to indicate if abort resulted from a callback timeout."}], "public": ""}, "transport": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "string", "name": "URI", "description": " to connection.swf."}], "description": "This method instantiates the Flash transport and\nestablishes a static reference to it, used for all XDR requests.", "public": ""}, "setDefaultXhrHeader": {"return": {"type": "", "description": "void"}, "description": "Member to override the default transaction header..", "static": "", "guessedname": "setDefaultXhrHeader", "guessedtype": "function", "params": [{"type": "boolean", "name": "b", "description": " Set and use default header - true or false ."}], "public": ""}, "setForm": {"return": {"type": "string", "description": "string of the HTML form field name and value pairs.."}, "static": "", "params": [{"type": "string || object", "name": "form", "description": " id or name attribute, or form object."}, {"type": "boolean", "name": "optional", "description": " enable file upload."}, {"type": "boolean", "name": "optional", "description": " enable file upload over SSL in IE only."}], "description": "This method assembles the form label and value pairs and\nconstructs an encoded string.\nasyncRequest() will automatically initialize the transaction with a\na HTTP header Content-Type of application/x-www-form-urlencoded.", "public": ""}, "uploadFile": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "int", "name": "id", "description": " The transaction id."}, {"type": "object", "name": "callback", "description": " User-defined callback object."}, {"type": "string", "name": "uri", "description": " Fully qualified path of resource."}, {"type": "string", "name": "postData", "description": " POST data to be submitted in addition to HTML form."}], "description": "Uploads HTML form, inclusive of files/attachments, using the\niframe created in createFrame to facilitate the transaction.", "private": ""}, "resetFormState": {"static": "", "return": {"type": "void", "description": ""}, "description": "Resets HTML form properties when an HTML form or HTML form\nwith file upload transaction is sent.", "private": ""}, "getConnectionObject": {"return": {"type": "object", "description": ""}, "description": "This method is called by asyncRequest to create a\nvalid connection object for the transaction.  It also passes a\ntransaction id and increments the transaction id counter.", "private": "", "static": "", "guessedname": "getConnectionObject", "guessedtype": "function"}, "createExceptionObject": {"return": {"type": "object", "description": ""}, "description": "If a transaction cannot be completed due to dropped or closed connections,\nthere may be not be enough information to build a full response object.\nThe failure callback will be fired and this specific condition can be identified\nby a status property value of 0.\nIf an abort was successful, the status property will report a value of -1.", "private": "", "static": "", "guessedname": "createExceptionObject", "guessedtype": "function", "params": [{"type": "int", "name": "tId", "description": " The Transaction Id"}, {"type": "callbackArg", "name": "callbackArg", "description": " The user-defined argument or arguments to be passed to the callback"}, {"type": "boolean", "name": "isAbort", "description": " Determines if the exception case is caused by a transaction abort"}]}, "handleXdrResponse": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "object", "name": "The", "description": " response object sent from the Flash transport."}], "description": "This method is the initial response handler\nfor XDR transactions.  The Flash transport calls this\nfunction and sends the response payload.", "private": ""}, "resetDefaultHeaders": {"return": {"type": "void", "description": ""}, "description": "Resets the default HTTP headers object", "static": "", "guessedname": "resetDefaultHeaders", "guessedtype": "function", "public": ""}, "xdr": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "object", "name": "The", "description": " transaction object."}, {"type": "string", "name": "HTTP", "description": " request method."}, {"type": "string", "name": "URI", "description": " for the transaction."}, {"type": "object", "name": "The", "description": " transaction's callback object."}, {"type": "object", "name": "The", "description": " JSON object used as HTTP POST data."}], "description": "This method calls the public method on the\nFlash transport to start the XDR transaction.  It is analogous\nto Connection Manager's asyncRequest method.", "private": ""}, "appendPostData": {"return": {"type": "array", "description": "formElements Collection of hidden fields."}, "static": "", "params": [{"type": "string", "name": "postData", "description": " The HTTP POST data"}], "description": "Parses the POST data and creates hidden form elements\nfor each key-value, and appends them to the HTML form object.", "private": ""}, "releaseObject": {"return": {"type": "void", "description": ""}, "description": "Dereference the XHR instance and the connection object after the transaction is completed.", "private": "", "static": "", "guessedname": "releaseObject", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}]}, "createXhrObject": {"return": {"type": "", "description": "object"}, "description": "Instantiates a XMLHttpRequest object and returns an object with two properties:\nthe XMLHttpRequest instance and the transaction id.", "private": "", "static": "", "guessedname": "createXhrObject", "guessedtype": "function", "params": [{"type": "int", "name": "transactionId", "description": " Property containing the transaction id for this transaction."}]}, "handleTransactionResponse": {"return": {"type": "void", "description": ""}, "description": "This method attempts to interpret the server response and\ndetermine whether the transaction was successful, or if an error or\nexception was encountered.", "private": "", "static": "", "guessedname": "handleTransactionResponse", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}, {"type": "object", "name": "callback", "description": " The user-defined callback object"}, {"type": "boolean", "name": "isAbort", "description": " Determines if the transaction was terminated via abort()."}]}, "createFrame": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "string", "name": "optional", "description": " qualified path of iframe resource for SSL in IE."}], "description": "Creates an iframe to be used for form file uploads.  It is remove from the\ndocument upon completion of the upload transaction.", "private": ""}, "initCustomEvents": {"return": {"type": "void", "description": ""}, "description": "This method creates and subscribes custom events,\nspecific to each transaction", "private": "", "static": "", "guessedname": "initCustomEvents", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}, {"type": "callback", "name": "callback", "description": " The user-defined callback object"}]}, "handleReadyState": {"return": {"type": "void", "description": ""}, "description": "This method serves as a timer that polls the XHR object's readyState\nproperty during a transaction, instead of binding a callback to the\nonreadystatechange event.  Upon readyState 4, handleTransactionResponse\nwill process the response, and the timer will be cleared.", "private": "", "static": "", "guessedname": "handleReadyState", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object"}, {"type": "callback", "name": "callback", "description": " The user-defined callback object"}]}, "setDefaultPostHeader": {"return": {"type": "", "description": "void"}, "description": "Member to override the default POST header.", "static": "", "guessedname": "setDefaultPostHeader", "guessedtype": "function", "params": [{"type": "boolean", "name": "b", "description": " Set and use default header - true or false ."}], "public": ""}, "initHeader": {"return": {"type": "void", "description": ""}, "description": "Method that initializes the custom HTTP headers for the each transaction.", "static": "", "guessedname": "initHeader", "guessedtype": "function", "params": [{"type": "string", "name": "label", "description": " The HTTP header label"}, {"type": "string", "name": "value", "description": " The HTTP header value"}, {"type": "string", "name": "isDefault", "description": " Determines if the specific header is a default header\nautomatically sent with each transaction."}], "public": ""}, "setProgId": {"return": {"type": "", "description": "void"}, "description": "Member to add an ActiveX id to the existing xml_progid array.\nIn the event(unlikely) a new ActiveX id is introduced, it can be added\nwithout internal code modifications.", "static": "", "guessedname": "setProgId", "guessedtype": "function", "params": [{"type": "string", "name": "id", "description": " The ActiveX id to be added to initialize the XHR object."}], "public": ""}, "setPollingInterval": {"return": {"type": "", "description": "void"}, "description": "Member to modify the default polling interval.", "static": "", "guessedname": "setPollingInterval", "guessedtype": "function", "params": [{"type": "int", "name": "i", "description": " The polling interval in milliseconds."}], "public": ""}, "setHeader": {"return": {"type": "void", "description": ""}, "description": "Accessor that sets the HTTP headers for each transaction.", "private": "", "static": "", "guessedname": "setHeader", "guessedtype": "function", "params": [{"type": "object", "name": "o", "description": " The connection object for the transaction."}]}, "_swf": {"return": {"type": "void", "description": ""}, "static": "", "params": [{"type": "string", "name": "URI", "description": " to connection.swf."}], "description": "This method creates and instantiates the Flash transport.", "private": ""}}, "file": "connection_core.js", "guessedtype": "property", "shortname": "Connect", "properties": {"successEvent": {"description": "Custom event that fires when handleTransactionResponse() determines a\nresponse in the HTTP 2xx range.", "private": "", "static": "", "guessedname": "successEvent", "guessedtype": "property", "type": "CustomEvent"}, "_default_xhr_header": {"description": "The default header value for the label\n\"X-Requested-With\".  This is sent with each\ntransaction, by default, to identify the\nrequest as being made by YUI Connection Manager.", "private": "", "static": "", "guessedname": "_default_xhr_header", "guessedtype": "property", "type": "boolean"}, "completeEvent": {"description": "Custom event that fires when a transaction response has completed.", "private": "", "static": "", "guessedname": "completeEvent", "guessedtype": "property", "type": "CustomEvent"}, "_polling_interval": {"description": "The polling frequency, in milliseconds, for HandleReadyState.\nwhen attempting to determine a transaction's XHR readyState.\nThe default is 50 milliseconds.", "private": "", "static": "", "guessedname": "_polling_interval", "guessedtype": "property", "type": "int"}, "_formNode": {"description": "Property modified by setForm() to set a reference to the HTML\nform node if the desired action is file upload.", "private": "", "static": "", "guessedname": "_formNode", "guessedtype": "property", "type": "object"}, "_msxml_progid": {"description": "Array of MSFT ActiveX ids for XMLHttpRequest.", "private": "", "static": "", "guessedname": "_msxml_progid", "guessedtype": "property", "type": "array"}, "_http_header": {"description": "Object literal of HTTP header(s)", "private": "", "static": "", "guessedname": "_http_headers", "guessedtype": "property", "type": "object"}, "failureEvent": {"description": "Custom event that fires when handleTransactionResponse() determines a\nresponse in the HTTP 4xx/5xx range.", "private": "", "static": "", "guessedname": "failureEvent", "guessedtype": "property", "type": "CustomEvent"}, "_default_post_header": {"description": "The default header used for POST transactions.", "private": "", "static": "", "guessedname": "_default_post_header", "guessedtype": "property", "type": "boolean"}, "_isFormSubmit": {"description": "Property modified by setForm() to determine if the data\nshould be submitted as an HTML form.", "private": "", "static": "", "guessedname": "_isFormSubmit", "guessedtype": "property", "type": "boolean"}, "_has_default_header": {"description": "Determines if custom, default headers\nare set for each transaction.", "private": "", "static": "", "guessedname": "_has_default_headers", "guessedtype": "property", "type": "boolean"}, "_hasSubmitListener": {"guessedname": "_hasSubmitListener", "static": "", "description": "Determines whether YAHOO.util.Event is available and returns true or false.\nIf true, an event listener is bound at the document level to trap click events that\nresolve to a target type of \"Submit\".  This listener will enable setForm() to determine\nthe clicked \"Submit\" value in a multi-Submit button, HTML form.", "private": "", "guessedtype": "function"}, "_default_form_header": {"description": "The default header used for transactions involving the\nuse of HTML forms.", "private": "", "static": "", "guessedname": "_default_form_header", "guessedtype": "property", "type": "boolean"}, "_use_default_xhr_header": {"description": "Determines if a default header of\n'X-Requested-With: XMLHttpRequest'\nwill be added to each transaction.", "private": "", "static": "", "guessedname": "_use_default_xhr_header", "guessedtype": "property", "type": "boolean"}, "_poll": {"description": "Collection of polling references to the polling mechanism in handleReadyState.", "private": "", "static": "", "guessedname": "_poll", "guessedtype": "property", "type": "object"}, "_timeOut": {"description": "Queue of timeout values for each transaction callback with a defined timeout value.", "private": "", "static": "", "guessedname": "_timeOut", "guessedtype": "property", "type": "object"}, "abortEvent": {"description": "Custom event that fires when a transaction is successfully aborted.", "private": "", "static": "", "guessedname": "abortEvent", "guessedtype": "property", "type": "CustomEvent"}, "_transaction_id": {"description": "A transaction counter that increments the transaction id for each transaction.", "private": "", "static": "", "guessedname": "_transaction_id", "guessedtype": "property", "type": "int"}, "_sFormData": {"description": "Property modified by setForm() to set the HTML form data\nfor each transaction.", "private": "", "static": "", "guessedname": "_sFormData", "guessedtype": "property", "type": "string"}, "_use_default_post_header": {"description": "Determines if a default header of\nContent-Type of 'application/x-www-form-urlencoded'\nwill be added to any client HTTP headers sent for POST\ntransactions.", "private": "", "static": "", "guessedname": "_use_default_post_header", "guessedtype": "property", "type": "boolean"}, "_customEvents": {"description": "A reference table that maps callback custom events members to its specific\nevent name.", "private": "", "static": "", "guessedname": "_customEvents", "guessedtype": "property", "type": "object"}, "startEvent": {"description": "Custom event that fires at the start of a transaction", "private": "", "static": "", "guessedname": "startEvent", "guessedtype": "property", "type": "CustomEvent"}, "_isFileUpload": {"description": "Property modified by setForm() to determine if a file(s)\nupload is expected.", "private": "", "static": "", "guessedname": "_isFileUpload", "guessedtype": "property", "type": "boolean"}, "_has_http_headers": {"description": "Determines if HTTP headers are set.", "private": "", "static": "", "guessedname": "_has_http_headers", "guessedtype": "property", "type": "boolean"}, "_submitElementValue": {"description": "Tracks the name-value pair of the \"clicked\" submit button if multiple submit\nbuttons are present in an HTML form; and, if YAHOO.util.Event is available.", "private": "", "static": "", "guessedname": "_submitElementValue", "guessedtype": "property", "type": "string"}}, "description": "The Connection Manager singleton provides methods for creating and managing\nasynchronous transactions."}, "YAHOO.widget.LineChart": {"name": "YAHOO.widget.LineChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "LineChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "LineChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "LineChart", "description": "LineChart class for the YUI Charts widget."}, "YAHOO.widget.FlashAdapter": {"name": "YAHOO.widget.FlashAdapter", "configs": {"altText": {"type": "String", "description": "The alternative text to provide for screen readers and other assistive technology."}, "version": {"type": "String", "description": "Minimum required version for the SWF file. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "swfURL": {"type": "String", "description": "Absolute or relative URL to the SWF displayed by the FlashAdapter. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "expressInstall": {"type": "String", "description": "URL pointing to a SWF file that handles Flash Player's express\ninstall feature. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "wmode": {"type": "String", "description": "Sets the window mode of the Flash Player control. May be\n\"window\", \"opaque\", or \"transparent\". Only available in the constructor\nbecause it may not be set after Flash Player has been embedded in the page."}, "backgroundColor": {"type": "String", "description": "The background color of the SWF. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}}, "namespace": "YAHOO.widget", "module": "uploader", "properties": {"_swfURL": {"guessedname": "_swfURL", "type": "String", "description": "The URL of the SWF file.", "private": "", "guessedtype": "property"}, "_initialized": {"guessedname": "_initialized", "type": "Boolean", "description": "Indicates whether the SWF has been initialized and is ready\nto communicate with JavaScript", "private": "", "guessedtype": "property"}, "_attributes": {"guessedname": "_attributes", "type": "Object", "description": "The initializing attributes are stored here until the SWF is ready.", "private": "", "guessedtype": "property"}, "_containerID": {"guessedname": "_containerID", "type": "String", "description": "The ID of the containing DIV.", "private": "", "guessedtype": "property"}, "_swf": {"private": "", "description": "A reference to the embedded SWF file.", "guessedname": "_swf", "guessedtype": "property"}, "_id": {"guessedname": "_id", "type": "String", "description": "The id of this instance.", "private": "", "guessedtype": "property"}, "proxyFunctionCount": {"guessedname": "proxyFunctionCount", "static": "", "description": "The number of proxy functions that have been created.", "private": "", "guessedtype": "property"}}, "guessedname": "FlashAdapter", "methods": {"_loadHandler": {"private": "", "description": "Called when the SWF has been initialized.", "guessedname": "_loadHandler", "guessedtype": "function"}, "YAHOO.widget.FlashAdapter.createProxyFunction": {"guessedname": "createProxyFunction", "static": "", "description": "Creates a globally accessible function that wraps a function reference.\nReturns the proxy function's name as a string for use by the SWF through\nExternalInterface.", "private": "", "guessedtype": "function"}, "YAHOO.widget.FlashAdapter.removeProxyFunction": {"guessedname": "removeProxyFunction", "static": "", "description": "Removes a function created with createProxyFunction()", "private": "", "guessedtype": "function"}, "_initAttributes": {"private": "", "description": "Initializes the attributes.", "guessedname": "_initAttributes", "guessedtype": "function"}, "_getAltText": {"private": "", "description": "Getter for altText attribute.", "guessedname": "_getAltText", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the FlashAdapter instance."}, "description": "Public accessor to the unique name of the FlashAdapter instance.", "guessedname": "toString", "guessedtype": "function"}, "YAHOO.widget.FlashAdapter.eventHandler": {"guessedname": "eventHandler", "static": "", "description": "Receives event messages from SWF and passes them to the correct instance\nof FlashAdapter.", "private": "", "guessedtype": "function"}, "_eventHandler": {"private": "", "description": "Handles or re-dispatches events received from the SWF.", "guessedname": "_eventHandler", "guessedtype": "function"}, "_embedSWF": {"private": "", "description": "Embeds the SWF in the page and associates it with this instance.", "guessedname": "_embedSWF", "guessedtype": "function"}, "_getSWFURL": {"private": "", "description": "Getter for swfURL attribute.", "guessedname": "_getSWFURL", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire FlashAdapter instance and related objects and removes attached\nevent listeners and clears out DOM elements inside the container. After calling\nthis method, the instance reference should be expliclitly nulled by implementer,\nas in myChart = null. Use with caution!", "guessedname": "destroy", "guessedtype": "function"}, "_setAltText": {"private": "", "description": "Setter for altText attribute.", "guessedname": "_setAltText", "guessedtype": "function"}}, "uses": ["YAHOO.util.AttributeProvider"], "file": "FlashAdapter.js", "guessedtype": "function", "shortname": "FlashAdapter", "events": {"contentReady": {"description": "Fires when the SWF is initialized and communication is possible."}, "backgroundColorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "backgroundColorChange", "description": "Fires when the value for the configuration attribute 'backgroundColor' changes."}, "altTextChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "altTextChange", "description": "Fires when the value for the configuration attribute 'altText' changes."}, "swfURLChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "swfURLChange", "description": "Fires when the value for the configuration attribute 'swfURL' changes."}, "beforeBackgroundColorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBackgroundColorChange", "description": "Fires before the value for the configuration attribute 'backgroundColor' changes. Return false to cancel the attribute change."}, "beforeWmodeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWmodeChange", "description": "Fires before the value for the configuration attribute 'wmode' changes. Return false to cancel the attribute change."}, "beforeExpressInstallChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeExpressInstallChange", "description": "Fires before the value for the configuration attribute 'expressInstall' changes. Return false to cancel the attribute change."}, "beforeAltTextChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAltTextChange", "description": "Fires before the value for the configuration attribute 'altText' changes. Return false to cancel the attribute change."}, "versionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "versionChange", "description": "Fires when the value for the configuration attribute 'version' changes."}, "wmodeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "wmodeChange", "description": "Fires when the value for the configuration attribute 'wmode' changes."}, "beforeVersionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeVersionChange", "description": "Fires before the value for the configuration attribute 'version' changes. Return false to cancel the attribute change."}, "expressInstallChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "expressInstallChange", "description": "Fires when the value for the configuration attribute 'expressInstall' changes."}, "beforeSwfURLChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSwfURLChange", "description": "Fires before the value for the configuration attribute 'swfURL' changes. Return false to cancel the attribute change."}}, "description": "Wraps Flash embedding functionality and allows communication with SWF through\nattributes."}, "YAHOO.util.Date": {"name": "YAHOO.util.Date", "namespace": "YAHOO.util", "module": "datasource", "guessedname": "Dt", "methods": {"format": {"return": {"type": "String", "description": "Formatted date for display."}, "description": "Takes a native JavaScript Date and formats to string for display to user.", "params": [{"type": "Date", "name": "oDate", "description": "  Date."}, {"type": "Object", "name": "oConfig", "description": "  (Optional) Object literal of configuration values:\n<dl>\n<dt>format <String></dt>\n<dd>\n<p>\nAny strftime string is supported, such as \"%I:%M:%S %p\". strftime has several format specifiers defined by the Open group at \n<a href=\"http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html\">http://www.opengroup.org/onlinepubs/007908799/xsh/strftime.html</a>\n</p>\n<p>   \nPHP added a few of its own, defined at <a href=\"http://www.php.net/strftime\">http://www.php.net/strftime</a>\n</p>\n<p>\nThis javascript implementation supports all the PHP specifiers and a few more.  The full list is below:\n</p>\n<dl>\n<dt>%a</dt> <dd>abbreviated weekday name according to the current locale</dd>\n<dt>%A</dt> <dd>full weekday name according to the current locale</dd>\n<dt>%b</dt> <dd>abbreviated month name according to the current locale</dd>\n<dt>%B</dt> <dd>full month name according to the current locale</dd>\n<dt>%c</dt> <dd>preferred date and time representation for the current locale</dd>\n<dt>%C</dt> <dd>century number (the year divided by 100 and truncated to an integer, range 00 to 99)</dd>\n<dt>%d</dt> <dd>day of the month as a decimal number (range 01 to 31)</dd>\n<dt>%D</dt> <dd>same as %m/%d/%y</dd>\n<dt>%e</dt> <dd>day of the month as a decimal number, a single digit is preceded by a space (range ' 1' to '31')</dd>\n<dt>%F</dt> <dd>same as %Y-%m-%d (ISO 8601 date format)</dd>\n<dt>%g</dt> <dd>like %G, but without the century</dd>\n<dt>%G</dt> <dd>The 4-digit year corresponding to the ISO week number</dd>\n<dt>%h</dt> <dd>same as %b</dd>\n<dt>%H</dt> <dd>hour as a decimal number using a 24-hour clock (range 00 to 23)</dd>\n<dt>%I</dt> <dd>hour as a decimal number using a 12-hour clock (range 01 to 12)</dd>\n<dt>%j</dt> <dd>day of the year as a decimal number (range 001 to 366)</dd>\n<dt>%k</dt> <dd>hour as a decimal number using a 24-hour clock (range 0 to 23); single digits are preceded by a blank. (See also %H.)</dd>\n<dt>%l</dt> <dd>hour as a decimal number using a 12-hour clock (range 1 to 12); single digits are preceded by a blank. (See also %I.) </dd>\n<dt>%m</dt> <dd>month as a decimal number (range 01 to 12)</dd>\n<dt>%M</dt> <dd>minute as a decimal number</dd>\n<dt>%n</dt> <dd>newline character</dd>\n<dt>%p</dt> <dd>either `AM' or `PM' according to the given time value, or the corresponding strings for the current locale</dd>\n<dt>%P</dt> <dd>like %p, but lower case</dd>\n<dt>%r</dt> <dd>time in a.m. and p.m. notation equal to %I:%M:%S %p</dd>\n<dt>%R</dt> <dd>time in 24 hour notation equal to %H:%M</dd>\n<dt>%s</dt> <dd>number of seconds since the Epoch, ie, since 1970-01-01 00:00:00 UTC</dd>\n<dt>%S</dt> <dd>second as a decimal number</dd>\n<dt>%t</dt> <dd>tab character</dd>\n<dt>%T</dt> <dd>current time, equal to %H:%M:%S</dd>\n<dt>%u</dt> <dd>weekday as a decimal number [1,7], with 1 representing Monday</dd>\n<dt>%U</dt> <dd>week number of the current year as a decimal number, starting with the\nfirst Sunday as the first day of the first week</dd>\n<dt>%V</dt> <dd>The ISO 8601:1988 week number of the current year as a decimal number,\nrange 01 to 53, where week 1 is the first week that has at least 4 days\nin the current year, and with Monday as the first day of the week.</dd>\n<dt>%w</dt> <dd>day of the week as a decimal, Sunday being 0</dd>\n<dt>%W</dt> <dd>week number of the current year as a decimal number, starting with the\nfirst Monday as the first day of the first week</dd>\n<dt>%x</dt> <dd>preferred date representation for the current locale without the time</dd>\n<dt>%X</dt> <dd>preferred time representation for the current locale without the date</dd>\n<dt>%y</dt> <dd>year as a decimal number without a century (range 00 to 99)</dd>\n<dt>%Y</dt> <dd>year as a decimal number including the century</dd>\n<dt>%z</dt> <dd>numerical time zone representation</dd>\n<dt>%Z</dt> <dd>time zone name or abbreviation</dd>\n<dt>%%</dt> <dd>a literal `%' character</dd>\n</dl>\n</dd>\n</dl>"}, {"type": "String", "name": "sLocale", "description": "  (Optional) The locale to use when displaying days of week,\nmonths of the year, and other locale specific strings.  The following locales are\nbuilt in:\n<dl>\n<dt>en</dt>\n<dd>English</dd>\n<dt>en-US</dt>\n<dd>US English</dd>\n<dt>en-GB</dt>\n<dd>British English</dd>\n<dt>en-AU</dt>\n<dd>Australian English (identical to British English)</dd>\n</dl>\nMore locales may be added by subclassing of YAHOO.util.DateLocale.\nSee YAHOO.util.DateLocale for more information."}], "guessedname": "format", "guessedtype": "function", "sa": "YAHOO.util.DateLocale"}}, "static": "", "file": "Type.js", "guessedtype": "property", "shortname": "Date", "requires": "yahoo", "description": "The static Date class provides helper functions to deal with data of type Date."}, "YAHOO.widget.StackedColumnSeries": {"name": "YAHOO.widget.StackedColumnSeries", "constructors": [{"description": "StackedColumnSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "StackedColumnSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "StackedColumnSeries", "description": "StackedColumnSeries class for the YUI Charts widget."}, "YAHOO.util.SWFDetect": {"name": "YAHOO.util.SWFDetect", "namespace": "YAHOO.util", "module": "swfdetect", "static": "", "file": "swfdetect.js", "shortname": "SWFDetect", "description": "Flafh detection utility."}, "LogWriter": {"name": "LogWriter", "constructors": [{"params": [{"type": "String", "name": "sSource", "description": "  Source of LogWriter instance."}], "description": "The LogWriter class provides a mechanism to log messages through\nYAHOO.widget.Logger from a named source."}], "namespace": "", "module": "logger", "guessedname": "LogWriter", "methods": {"getSource": {"return": {"type": "String", "description": "The LogWriter source."}, "description": "Public accessor to get the source name.", "guessedname": "getSource", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the LogWriter instance."}, "description": "Public accessor to the unique name of the LogWriter instance.", "guessedname": "toString", "guessedtype": "function"}, "log": {"params": [{"type": "String", "name": "sMsg", "description": "  The log message."}, {"type": "String", "name": "sCategory", "description": "  Category name."}], "description": "Logs a message attached to the source of the LogWriter.", "guessedname": "log", "guessedtype": "function"}, "setSource": {"params": [{"type": "String", "name": "sSource", "description": "  Source of LogWriter instance."}], "description": "Public accessor to set the source name.", "guessedname": "setSource", "guessedtype": "function"}}, "file": "LogWriter.js", "guessedtype": "function", "shortname": "LogWriter", "properties": {"_source": {"guessedname": "_source", "type": "String", "description": "Source of the LogWriter instance.", "private": "", "guessedtype": "property"}}, "description": "The LogWriter class provides a mechanism to log messages through\nYAHOO.widget.Logger from a named source."}, "YAHOO.widget.ColorPicker": {"name": "YAHOO.widget.ColorPicker", "configs": {"blue": {"type": "int", "description": "The current blue value 0-255"}, "hue": {"type": "int", "description": "The current hue value 0-360"}, "saturation": {"type": "int", "description": "The current saturation value 0-100"}, "pickersize": {"default": "180", "type": "int", "description": "The size of the picker. Trying to change this is not recommended."}, "container": {"type": "YAHOO.widget.Panel", "description": "If the color picker will live inside of a container object,\nset, provide a reference to it so the control can use the\ncontainer's events."}, "showrgbcontrols": {"default": "true", "type": "boolean", "description": "Hide/show the rgb controls"}, "showhsvcontrols": {"default": "false", "type": "boolean", "description": "Hide/show the hsv controls"}, "hex": {"readonly": "", "type": "string", "description": "The current hex value #000000-#FFFFFF, without the #"}, "ids": {"type": "{referenceid: realid}", "description": "A list of element ids and/or element references used by the \ncontrol.  The default is the this.ID list, and can be customized\nby passing a list in the contructor", "writeonce": ""}, "value": {"type": "int", "description": "The current value/brightness value 0-100"}, "showwebsafe": {"default": "true", "type": "boolean", "description": "Hide/show the websafe swatch"}, "showhexsummary": {"default": "true", "type": "boolean", "description": "Hide/show the hex summary"}, "elements": {"readonly": "", "type": "{id: HTMLElement}", "description": "The element refs used by this control.  Set at initialization"}, "green": {"type": "int", "description": "The current green value 0-255"}, "websafe": {"type": "int", "description": "The closest current websafe value"}, "images": {"type": "{key: image}", "description": "The img src default list\nis this.IMAGES", "writeonce": ""}, "txt": {"type": "{key: txt}", "description": "A list of txt strings for internationalization.  Default\nis this.TXT", "writeonce": ""}, "showcontrols": {"default": "true", "type": "boolean", "description": "Hide/show the entire set of controls"}, "red": {"type": "int", "description": "The current red value 0-255"}, "showhexcontrols": {"default": "true", "type": "boolean", "description": "Hide/show the hex controls"}}, "constructors": [{"params": [{"type": "HTMLElement | String | Object", "name": "el(optional)", "description": " The html \nelement that represents the colorpicker, or the attribute object to use. \nAn element will be created if none provided."}, {"type": "Object", "name": "attr", "description": " (optional) A key map of the colorpicker's \ninitial attributes.  Ignored if first arg is attributes object."}], "description": "A widget to select colors"}], "namespace": "YAHOO.widget", "module": "colorpicker", "events": {"websafeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "websafeChange", "description": "Fires when the value for the configuration attribute 'websafe' changes."}, "beforeShowcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowcontrolsChange", "description": "Fires before the value for the configuration attribute 'showcontrols' changes. Return false to cancel the attribute change."}, "beforeShowhsvcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowhsvcontrolsChange", "description": "Fires before the value for the configuration attribute 'showhsvcontrols' changes. Return false to cancel the attribute change."}, "saturationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "saturationChange", "description": "Fires when the value for the configuration attribute 'saturation' changes."}, "showhexsummaryChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showhexsummaryChange", "description": "Fires when the value for the configuration attribute 'showhexsummary' changes."}, "beforeSaturationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSaturationChange", "description": "Fires before the value for the configuration attribute 'saturation' changes. Return false to cancel the attribute change."}, "beforeShowwebsafeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowwebsafeChange", "description": "Fires before the value for the configuration attribute 'showwebsafe' changes. Return false to cancel the attribute change."}, "showhexcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showhexcontrolsChange", "description": "Fires when the value for the configuration attribute 'showhexcontrols' changes."}, "containerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containerChange", "description": "Fires when the value for the configuration attribute 'container' changes."}, "beforeImagesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeImagesChange", "description": "Fires before the value for the configuration attribute 'images' changes. Return false to cancel the attribute change."}, "imagesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "imagesChange", "description": "Fires when the value for the configuration attribute 'images' changes."}, "showrgbcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showrgbcontrolsChange", "description": "Fires when the value for the configuration attribute 'showrgbcontrols' changes."}, "redChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "redChange", "description": "Fires when the value for the configuration attribute 'red' changes."}, "beforeBlueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBlueChange", "description": "Fires before the value for the configuration attribute 'blue' changes. Return false to cancel the attribute change."}, "idsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "idsChange", "description": "Fires when the value for the configuration attribute 'ids' changes."}, "beforeRedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRedChange", "description": "Fires before the value for the configuration attribute 'red' changes. Return false to cancel the attribute change."}, "beforeIdsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeIdsChange", "description": "Fires before the value for the configuration attribute 'ids' changes. Return false to cancel the attribute change."}, "beforeGreenChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeGreenChange", "description": "Fires before the value for the configuration attribute 'green' changes. Return false to cancel the attribute change."}, "showcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showcontrolsChange", "description": "Fires when the value for the configuration attribute 'showcontrols' changes."}, "beforeShowhexcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowhexcontrolsChange", "description": "Fires before the value for the configuration attribute 'showhexcontrols' changes. Return false to cancel the attribute change."}, "beforeHueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHueChange", "description": "Fires before the value for the configuration attribute 'hue' changes. Return false to cancel the attribute change."}, "beforeTxtChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTxtChange", "description": "Fires before the value for the configuration attribute 'txt' changes. Return false to cancel the attribute change."}, "beforePickersizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePickersizeChange", "description": "Fires before the value for the configuration attribute 'pickersize' changes. Return false to cancel the attribute change."}, "beforeShowhexsummaryChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowhexsummaryChange", "description": "Fires before the value for the configuration attribute 'showhexsummary' changes. Return false to cancel the attribute change."}, "hexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hexChange", "description": "Fires when the value for the configuration attribute 'hex' changes."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "beforeHexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHexChange", "description": "Fires before the value for the configuration attribute 'hex' changes. Return false to cancel the attribute change."}, "pickersizeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pickersizeChange", "description": "Fires when the value for the configuration attribute 'pickersize' changes."}, "txtChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "txtChange", "description": "Fires when the value for the configuration attribute 'txt' changes."}, "hueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hueChange", "description": "Fires when the value for the configuration attribute 'hue' changes."}, "beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "greenChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "greenChange", "description": "Fires when the value for the configuration attribute 'green' changes."}, "beforeElementsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeElementsChange", "description": "Fires before the value for the configuration attribute 'elements' changes. Return false to cancel the attribute change."}, "beforeWebsafeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWebsafeChange", "description": "Fires before the value for the configuration attribute 'websafe' changes. Return false to cancel the attribute change."}, "blueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "blueChange", "description": "Fires when the value for the configuration attribute 'blue' changes."}, "showhsvcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showhsvcontrolsChange", "description": "Fires when the value for the configuration attribute 'showhsvcontrols' changes."}, "beforeContainerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainerChange", "description": "Fires before the value for the configuration attribute 'container' changes. Return false to cancel the attribute change."}, "elementsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "elementsChange", "description": "Fires when the value for the configuration attribute 'elements' changes."}, "showwebsafeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showwebsafeChange", "description": "Fires when the value for the configuration attribute 'showwebsafe' changes."}, "beforeShowrgbcontrolsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowrgbcontrolsChange", "description": "Fires before the value for the configuration attribute 'showrgbcontrols' changes. Return false to cancel the attribute change."}}, "methods": {"_hexFieldKeypress": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the keypress event"}, {"type": "HTMLElement", "name": "el", "description": "  the field"}, {"type": "string", "name": "prop", "description": "  the key to the linked property"}], "description": "Handle keydown on the hex field", "guessedname": "_hexFieldKeypress", "guessedtype": "function"}, "_updateRGBFromHSV": {"protected": "", "description": "Updates the RGB values from the current state of the HSV\nvalues.  Executed when the one of the HSV form fields are\nupdated\n_updateRGBFromHSV", "guessedname": "_updateRGBFromHSV", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "", "name": "attr", "description": " An object containing default attribute values"}], "description": "Sets up the config attributes and the change listeners for this\nproperties", "guessedname": "initAttributes", "guessedtype": "function"}, "_initSliders": {"protected": "", "description": "Creates the Hue and Value/Saturation Sliders.", "guessedname": "_initSliders", "guessedtype": "function"}, "_onHueSliderChange": {"protected": "", "params": [{"type": "int", "name": "newOffset", "description": "  pixels from the start position"}], "description": "Event handler for the hue slider.", "guessedname": "_onHueSliderChange", "guessedtype": "function"}, "initPicker": {"description": "Sets the initial state of the sliders", "guessedname": "initPicker", "guessedtype": "function"}, "_updateRGB": {"protected": "", "description": "Updates the rgb attribute with the current state of the r,g,b\nfields.  This is invoked from change listeners on these\nattributes to facilitate updating these values from the\nindividual form fields", "guessedname": "_updateRGB", "guessedtype": "function"}, "_useFieldValue": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  an event"}, {"type": "HTMLElement", "name": "el", "description": "  the field"}, {"type": "string", "name": "prop", "description": "  the key to the linked property"}], "description": "Use the value of the text field to update the control", "guessedname": "_useFieldValue", "guessedtype": "function"}, "getElement": {"return": {"type": "HTMLElement", "description": "a reference to the element"}, "params": [{"type": "string", "name": "id", "description": "  the element id, or key"}], "description": "Returns the element reference that is saved.  The id can be either\nthe element id, or the key for this id in the \"id\" config attribute.\nFor instance, the host element id can be obtained by passing its\nid (default: \"yui_picker\") or by its key \"YUI_PICKER\".", "guessedname": "getElement", "guessedtype": "function"}, "_bindUI": {"protected": "", "description": "Adds event listeners to Sliders and UI elements.  Wires everything\nup.", "guessedname": "_bindUI", "guessedtype": "function"}, "_updateSwatch": {"protected": "", "description": "Updates the background of the swatch with the current rbg value.\nAlso updates the websafe swatch to the closest websafe color", "guessedname": "_updateSwatch", "guessedtype": "function"}, "_initElements": {"protected": "", "description": "Creates any missing DOM structure.", "guessedname": "_initElements", "guessedtype": "function"}, "_updateSliders": {"protected": "", "description": "Moves the sliders into the position dictated by the current state\nof the control", "guessedname": "_updateSliders", "guessedtype": "function"}, "_updateHex": {"protected": "", "description": "Parses the hex string to normalize shorthand values, converts\nthe hex value to rgb and updates the rgb attribute (which\nupdates the state for all of the other values)\nmethod _updateHex", "guessedname": "_updateHex", "guessedtype": "function"}, "_onPickerSliderChange": {"protected": "", "params": [{"type": "{x: int, y: int}", "name": "newOffset", "description": "  x/y pixels from the start position"}], "description": "Event handler for the picker slider, which controls the\nsaturation and value/brightness.", "guessedname": "_onPickerSliderChange", "guessedtype": "function"}, "_getCommand": {"return": {"type": "int", "description": "a command code\n<ul>\n<li>0 = not a number, letter in range, or special key</li>\n<li>1 = number</li>\n<li>2 = a-fA-F</li>\n<li>3 = increment (up arrow)</li>\n<li>4 = decrement (down arrow)</li>\n<li>5 = special key (tab, delete, return, escape, left, right)</li> \n<li>6 = return</li>\n</ul>"}, "description": "Key map to well-known commands for txt field input", "protected": "", "params": [{"type": "Event", "name": "e", "description": "  the keypress or keydown event"}], "guessedname": "_getCommand", "guessedtype": "function"}, "setValue": {"params": [{"type": "[int, int, int]", "name": "rgb", "description": "  the rgb value"}, {"type": "boolean", "name": "silent", "description": "  whether or not to fire the change event"}], "description": "Sets the control to the specified rgb value and\nmoves the sliders to the proper positions", "guessedname": "setValue", "guessedtype": "function"}, "_createHostElement": {"protected": "", "description": "Creates the host element if it doesn't exist", "guessedname": "_createHostElement", "guessedtype": "function"}, "_updateFormFields": {"protected": "", "description": "Updates the form field controls with the state data contained\nin the control.", "guessedname": "_updateFormFields", "guessedtype": "function"}, "_hexOnly": {"return": {"type": "boolean", "description": "false if we are canceling the event"}, "description": "Allows numbers and special chars, and by default allows a-f.  \nUsed for the hex field keypress handler.", "protected": "", "params": [{"type": "Event", "name": "e", "description": "  the event"}, {"type": "", "name": "numbersOnly", "description": " omits a-f if set to true"}], "guessedname": "_hexOnly", "guessedtype": "function"}, "_updatePickerSlider": {"protected": "", "description": "Moves the picker slider into the position dictated by the current state\nof the control", "guessedname": "_updatePickerSlider", "guessedtype": "function"}, "_hideShowEl": {"protected": "", "params": [{"type": "string|HTMLElement", "name": "id", "description": "  the element key, id, or ref"}, {"type": "boolean", "name": "on", "description": "  hide or show.  If true, show"}], "description": "Returns the cached element reference.  If the id is not a string, it\nis assumed that it is an element and this is returned.", "guessedname": "_hideShowEl", "guessedtype": "function"}, "_updateHueSlider": {"protected": "", "description": "Moves the hue slider into the position dictated by the current state\nof the control", "guessedname": "_updateHueSlider", "guessedtype": "function"}, "_numbersOnly": {"return": {"type": "boolean", "description": "false if we are canceling the event"}, "description": "Allows numbers and special chars only.  Used for the\nrgb and hsv fields keypress handler.", "protected": "", "params": [{"type": "Event", "name": "e", "description": "  the event"}], "guessedname": "_numbersOnly", "guessedtype": "function"}, "syncUI": {"params": [{"type": "Boolean", "name": "skipAnim", "description": "  Omit Slider animation for this action"}], "description": "Wrapper for _updateRGB, but allows setting", "guessedname": "syncUI", "guessedtype": "function"}, "_getS": {"protected": "", "return": {"type": "int", "description": "the saturation from 0 to 1"}, "description": "Translates the slider value into saturation, int[0,1], left to right", "guessedname": "_getS", "guessedtype": "function"}, "_getValuesFromSliders": {"protected": "", "description": "Reads the sliders and converts the values to RGB, updating the\ninternal state for all the individual form fields", "guessedname": "_getValuesFromSliders", "guessedtype": "function"}, "_getV": {"protected": "", "return": {"type": "int", "description": "the value from 0 to 1"}, "description": "Translates the slider value into value/brightness, int[0,1], top\nto bottom", "guessedname": "_getV", "guessedtype": "function"}, "_getH": {"protected": "", "return": {"type": "int", "description": "the hue from 0 to 359"}, "description": "Translates the slider value into hue, int[0,359]", "guessedname": "_getH", "guessedtype": "function"}, "_rgbFieldKeypress": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the keypress event"}, {"type": "HTMLElement", "name": "el", "description": "  the field"}, {"type": "string", "name": "prop", "description": "  the key to the linked property"}], "description": "Handle keypress on one of the rgb or hsv fields.", "guessedname": "_rgbFieldKeypress", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "ColorPicker.js", "shortname": "ColorPicker", "properties": {"DEFAULT": {"final": "", "description": "Constants for the control's default default values", "guessedname": "DEFAULT", "guessedtype": "property"}, "pickerSlider": {"type": "YAHOO.widget.Slider", "description": "The picker region", "guessedname": "pickerSlider", "guessedtype": "property"}, "ID.PICKER_BG": {"description": "The id for the picker region slider", "default": "yui-picker-bg", "guessedname": "PICKER_BG", "guessedtype": "property", "type": "String", "final": ""}, "skipAnim": {"default": "true", "type": "Boolean", "description": "Flag to allow individual UI updates to forego animation if available.\nTrue during construction for initial thumb placement.  Set to false\nafter that.", "guessedname": "skipAnim", "guessedtype": "property"}, "ID.G": {"description": "The id for the \"green\" form field", "default": "yui-picker-g", "guessedname": "G", "guessedtype": "property", "type": "String", "final": ""}, "ID.G_HEX": {"description": "The id for the \"green\" hex pair output", "default": "yui-picker-ghex", "guessedname": "G_HEX", "guessedtype": "property", "type": "String", "final": ""}, "ID.HSV_CONTROLS": {"default": "yui-picker-hsv-controls", "final": "", "description": "The id for the hsv controls", "guessedname": "HSV_CONTROLS", "guessedtype": "property"}, "ID.SWATCH": {"description": "The id for the color swatch", "default": "yui-picker-swatch", "guessedname": "SWATCH", "guessedtype": "property", "type": "String", "final": ""}, "ID.HEX_CONTROLS": {"default": "yui-picker-hex-controls", "final": "", "description": "The id for the hsv controls", "guessedname": "HEX_CONTROLS", "guessedtype": "property"}, "IMAGE": {"final": "", "description": "Constants for the default image locations for img tags that are\ngenerated by the control.  They can be modified by passing the\ncomplete list to the contructor for the \"images\" attribute", "guessedname": "IMAGE", "guessedtype": "property"}, "ID.B_HEX": {"description": "The id for the \"blue\" hex pair output", "default": "yui-picker-bhex", "guessedname": "B_HEX", "guessedtype": "property", "type": "String", "final": ""}, "TXT": {"final": "", "description": "Constants for any script-generated messages.  The values here\nare the default messages.  They can be updated by providing\nthe complete list to the constructor for the \"txt\" attribute.", "guessedname": "TXT", "guessedtype": "property"}, "ID.HEX": {"description": "The id for the hex value form field", "default": "yui-picker-hex", "guessedname": "HEX", "guessedtype": "property", "type": "String", "final": ""}, "ID.HUE_BG": {"description": "The id for the hue slider", "default": "yui-picker-hue-bg", "guessedname": "HUE_BG", "guessedtype": "property", "type": "String", "final": ""}, "ID.CONTROLS": {"default": "yui-picker-controls", "final": "", "description": "The id for the control details", "guessedname": "CONTROLS", "guessedtype": "property"}, "ID.V": {"description": "The id for the \"value\" form field", "default": "yui-picker-v", "guessedname": "V", "guessedtype": "property", "type": "String", "final": ""}, "ID.S": {"description": "The id for the \"saturation\" form field", "default": "yui-picker-s", "guessedname": "S", "guessedtype": "property", "type": "String", "final": ""}, "ID.R": {"description": "The id for the \"red\" form field", "default": "yui-picker-r", "guessedname": "R", "guessedtype": "property", "type": "String", "final": ""}, "ID.H": {"description": "The id for the \"hue\" form field", "default": "yui-picker-h", "guessedname": "H", "guessedtype": "property", "type": "String", "final": ""}, "ID.WEBSAFE_SWATCH": {"description": "The id for the websafe color swatch", "default": "yui-picker-websafe-swatch", "guessedname": "WEBSAFE_SWATCH", "guessedtype": "property", "type": "String", "final": ""}, "ID": {"final": "", "description": "The element ids used by this control", "guessedname": "ID", "guessedtype": "property"}, "ID.B": {"description": "The id for the \"blue\" form field", "default": "yui-picker-b", "guessedname": "B", "guessedtype": "property", "type": "String", "final": ""}, "OPT": {"final": "", "description": "Constants for the control's configuration attributes", "guessedname": "OPT", "guessedtype": "property"}, "ID.HUE_THUMB": {"description": "The id for the hue thumb", "default": "yui-picker-hue-thumb", "guessedname": "HUE_THUMB", "guessedtype": "property", "type": "String", "final": ""}, "ID.R_HEX": {"description": "The id for the \"red\" hex pair output", "default": "yui-picker-rhex", "guessedname": "R_HEX", "guessedtype": "property", "type": "String", "final": ""}, "ID.RGB_CONTROLS": {"default": "yui-picker-rgb-controls", "final": "", "description": "The id for the rgb controls", "guessedname": "RGB_CONTROLS", "guessedtype": "property"}, "ID.PICKER_THUMB": {"description": "The id for the picker region thumb", "default": "yui-picker-thumb", "guessedname": "PICKER_THUMB", "guessedtype": "property", "type": "String", "final": ""}, "hueSlider": {"type": "YAHOO.widget.Slider", "description": "The hue slider", "guessedname": "hueSlider", "guessedtype": "property"}, "ID.HEX_SUMMARY": {"default": "yui-picker-hex-summary", "final": "", "description": "The id for the hex summary", "guessedname": "HEX_SUMMARY", "guessedtype": "property"}, "ID.CONTROLS_LABEL": {"default": "yui-picker-controls-label", "final": "", "description": "The id for the controls section header", "guessedname": "CONTROLS_LABEL", "guessedtype": "property"}}, "description": "A widget to select colors"}, "YAHOO.widget.ToolbarButton": {"name": "YAHOO.widget.ToolbarButton", "configs": {"container": {"type": "String", "description": "The container that the button is rendered to, handled by Toolbar"}, "title": {"type": "String", "description": "The title of the button"}, "menu": {"type": "Object", "description": "The menu attribute, see YAHOO.widget.Button"}, "value": {"type": "String", "description": "The value of the button"}, "label": {"type": "String", "description": "The text label for the button"}, "disabled": {"type": "String", "description": "Set the button into a disabled state"}, "type": {"type": "String", "description": "The type of button to create: push, menu, color, select, spin"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to turn into a button."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Creates a basic custom Toolbar Button. Primarily used with the Rich Text Editor's Toolbar</p><p>Provides a toolbar button based on the button and menu widgets, <select> elements are used in place of menu's.</p>"}], "namespace": "YAHOO.widget", "module": "editor", "events": {"beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "beforeMenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenuChange", "description": "Fires before the value for the configuration attribute 'menu' changes. Return false to cancel the attribute change."}, "titleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "titleChange", "description": "Fires when the value for the configuration attribute 'title' changes."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "labelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "labelChange", "description": "Fires when the value for the configuration attribute 'label' changes."}, "beforeTitleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTitleChange", "description": "Fires before the value for the configuration attribute 'title' changes. Return false to cancel the attribute change."}, "typeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "typeChange", "description": "Fires when the value for the configuration attribute 'type' changes."}, "menuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menuChange", "description": "Fires when the value for the configuration attribute 'menu' changes."}, "beforeLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLabelChange", "description": "Fires before the value for the configuration attribute 'label' changes. Return false to cancel the attribute change."}, "beforeTypeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTypeChange", "description": "Fires before the value for the configuration attribute 'type' changes. Return false to cancel the attribute change."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}}, "guessedname": "ToolbarButton", "methods": {"_handleSelect": {"guessedname": "_handleSelect", "params": [{"type": "Event", "name": "ev", "description": " The change event."}], "description": "The event fired when a change event gets fired on a select element", "private": "", "guessedtype": "function"}, "getMenu": {"description": "A stub function to mimic YAHOO.widget.Button's getMenu method", "guessedname": "getMenu", "guessedtype": "function"}, "_handleMouseOut": {"description": "Removes classes from the button elements on mouseout (hover)", "private": "", "guessedname": "_handleMouseOut", "guessedtype": "function"}, "init": {"description": "The ToolbarButton class's initialization method", "guessedname": "init", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the toolbar."}], "description": "Initializes all of the configuration attributes used to create \nthe toolbar.", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the toolbar.", "guessedname": "toString", "guessedtype": "function"}, "checkValue": {"params": [{"type": "String", "name": "value", "description": " The value of the option that we want to mark as selected"}], "description": "Select an option by value", "guessedname": "checkValue", "guessedtype": "function"}, "destroy": {"description": "Destroy the button", "guessedname": "destroy", "guessedtype": "function"}, "_handleMouseOver": {"description": "Adds classes to the button elements on mouseover (hover)", "private": "", "guessedname": "_handleMouseOver", "guessedtype": "function"}, "fireEvent": {"description": "Overridden fireEvent method to prevent DOM events from firing if the button is disabled.", "guessedname": "fireEvent", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "toolbar-button.js", "guessedtype": "function", "shortname": "ToolbarButton", "requires": "yahoo, dom, element, event", "properties": {"buttonType": {"private": "", "description": "Tells if the Button is a Rich Button or a Simple Button", "guessedname": "buttonType", "guessedtype": "property"}}, "description": "<p>Creates a basic custom Toolbar Button. Primarily used with the Rich Text Editor's Toolbar</p><p>Provides a toolbar button based on the button and menu widgets, <select> elements are used in place of menu's.</p>"}, "YAHOO.util.Attribute": {"name": "YAHOO.util.Attribute", "constructors": [{"params": [{"type": "Object", "name": "hash", "description": "  The intial Attribute."}, {"type": "YAHOO.util.AttributeProvider", "name": "The", "description": " owner of the Attribute instance."}], "description": "Provides Attribute configurations."}], "namespace": "YAHOO.util", "module": "element", "guessedname": "Attribute", "methods": {"setValue": {"return": {"type": "Boolean", "description": "Whether or not the value was set."}, "params": [{"type": "Any", "name": "value", "description": " The value to apply to the attribute."}, {"type": "Boolean", "name": "silent", "description": " If true the change events will not be fired."}], "description": "Sets the value of the attribute and fires beforeChange and change events.", "guessedname": "setValue", "guessedtype": "function"}, "configure": {"params": [{"type": "Object", "name": "map", "description": " A key-value map of Attribute properties."}, {"type": "Boolean", "name": "init", "description": " Whether or not this should become the initial config."}], "description": "Allows for configuring the Attribute's properties.", "guessedname": "configure", "guessedtype": "function"}, "resetValue": {"return": {"type": "Boolean", "description": "Whether or not the value was set."}, "description": "Resets the value to the initial config value.", "guessedname": "resetValue", "guessedtype": "function"}, "refresh": {"return": {"type": "Boolean", "description": "Whether or not the value was set."}, "description": "Resets the value to the current value.\nUseful when values may have gotten out of sync with actual properties.", "guessedname": "refresh", "guessedtype": "function"}, "getValue": {"return": {"type": "any", "description": "The current value of the attribute."}, "description": "Retrieves the current value of the attribute.", "guessedname": "getValue", "guessedtype": "function"}, "resetConfig": {"description": "Resets the attribute config to the initial config state.", "guessedname": "resetConfig", "guessedtype": "function"}}, "file": "Attribute.js", "guessedtype": "function", "shortname": "Attribute", "properties": {"_written": {"guessedname": "_written", "type": "Boolean", "description": "Whether or not the attribute's value has been set.", "private": "", "guessedtype": "property"}, "name": {"type": "String", "description": "The name of the attribute.", "guessedname": "name", "guessedtype": "property"}, "writeOnce": {"type": "Boolean", "description": "Whether or not the attribute can only be written once.", "guessedname": "writeOnce", "guessedtype": "property"}, "_initialConfig": {"guessedname": "_initialConfig", "type": "Object", "description": "The attribute's initial configuration.", "private": "", "guessedtype": "property"}, "value": {"type": "String", "description": "The value of the attribute.", "guessedname": "value", "guessedtype": "property"}, "validator": {"type": "Function", "return": "Boolean", "description": "The validator to use when setting the attribute's value.", "guessedname": "validator", "guessedtype": "property"}, "readOnly": {"type": "Boolean", "description": "Whether or not the attribute is read only.", "guessedname": "readOnly", "guessedtype": "property"}, "getter": {"type": "Function", "description": "The function to use when getting the attribute's value.\nThe getter receives the new value as the first arg and the attribute name as the 2nd\nThe return value of the getter will be used as the return from get().", "guessedname": "getter", "guessedtype": "property"}, "owner": {"type": "YAHOO.util.AttributeProvider", "description": "The owner of the attribute.", "guessedname": "owner", "guessedtype": "property"}, "method": {"type": "Function", "description": "A function to call when setting the attribute's value.\nThe method receives the new value as the first arg and the attribute name as the 2nd", "guessedname": "method", "guessedtype": "property"}, "setter": {"type": "Function", "description": "The function to use when setting the attribute's value.\nThe setter receives the new value as the first arg and the attribute name as the 2nd\nThe return value of the setter replaces the value passed to set().", "guessedname": "setter", "guessedtype": "property"}}, "description": "Provides Attribute configurations."}, "YAHOO.util.DateAssert": {"name": "YAHOO.util.DateAssert", "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "DateAssert", "methods": {"datesAreEqual": {"static": "", "params": [{"type": "Date", "name": "expected", "description": " The expected date."}, {"type": "Date", "name": "actual", "description": " The actual date to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a date's month, day, and year are equal to another date's.", "guessedname": "datesAreEqual", "guessedtype": "function"}, "timesAreEqual": {"static": "", "params": [{"type": "Date", "name": "expected", "description": " The expected date."}, {"type": "Date", "name": "actual", "description": " The actual date to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a date's hour, minutes, and seconds are equal to another date's.", "guessedname": "timesAreEqual", "guessedtype": "function"}}, "static": "", "file": "DateAssert.js", "guessedtype": "property", "shortname": "DateAssert", "description": "The DateAssert object provides functions to test JavaScript Date objects\nfor a variety of cases."}, "YAHOO.widget.Editor": {"name": "YAHOO.widget.Editor", "configs": {"hiddencss": {"default": "<code><pre>\n.yui-hidden font, .yui-hidden strong, .yui-hidden b, .yui-hidden em, .yui-hidden i, .yui-hidden u,\n.yui-hidden div, .yui-hidden p, .yui-hidden span, .yui-hidden img, .yui-hidden ul, .yui-hidden ol,\n.yui-hidden li, .yui-hidden table {\nborder: 1px dotted #ccc;\n}\n.yui-hidden .yui-non {\nborder: none;\n}\n.yui-hidden img {\npadding: 2px;\n}</pre></code>", "type": "String", "description": "The CSS used to show/hide hidden elements on the page, these rules must be prefixed with the class provided in <code>this.CLASS_HIDDEN</code>"}, "localFileWarning": {"default": "true", "type": "Boolean", "description": "Should we throw the warning if we detect a file that is local to their machine?"}}, "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The textarea element to turn into an editor."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "The Rich Text Editor is a UI control that replaces a standard HTML textarea; it allows for the rich formatting of text content, including common structural treatments like lists, formatting treatments like bold and italic text, and drag-and-drop inclusion and sizing of images. The Rich Text Editor's toolbar is extensible via a plugin architecture so that advanced implementations can achieve a high degree of customization."}], "namespace": "YAHOO.widget", "module": "editor", "events": {"hiddencssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hiddencssChange", "description": "Fires when the value for the configuration attribute 'hiddencss' changes."}, "beforeLocalFileWarningChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLocalFileWarningChange", "description": "Fires before the value for the configuration attribute 'localFileWarning' changes. Return false to cancel the attribute change."}, "afterOpenWindow": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Event fires after an Editor Window is opened. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "windowCreateLinkRender": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}, {"type": "HTMLElement", "name": "body", "description": " The HTML element used as the body of the window.."}], "description": "Event fired when the pre render of the Create Link window has finished."}, "windowInsertImageRender": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}, {"type": "HTMLElement", "name": "body", "description": " The HTML element used as the body of the window.."}, {"type": "Toolbar", "name": "toolbar", "description": " A reference to the toolbar object used inside this window."}], "description": "Event fired when the pre render of the Insert Image window has finished."}, "beforeHiddencssChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHiddencssChange", "description": "Fires before the value for the configuration attribute 'hiddencss' changes. Return false to cancel the attribute change."}, "closeWindow": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}], "description": "Event fires after an Editor Window is closed. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "windowRender": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Event fired when the initial Overlay is rendered. Can be used to manipulate the content of the panel."}, "windowCMDOpen": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Dynamic event fired when an <a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a> is opened.. The dynamic event is based on the name of the window. Example Window: createlink, opening this window would fire the windowcreatelinkOpen event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "beforeOpenWindow": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Event fires before an Editor Window is opened. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "windowCMDClose": {"type": "YAHOO.util.CustomEvent", "params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a>", "name": "win", "description": " The EditorWindow object"}, {"type": "Overlay", "name": "panel", "description": " The Overlay object that is used to create the window."}], "description": "Dynamic event fired when an <a href=\"YAHOO.widget.EditorWindow.html\">EditorWindow</a> is closed.. The dynamic event is based on the name of the window. Example Window: createlink, opening this window would fire the windowcreatelinkClose event. See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event."}, "localFileWarningChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "localFileWarningChange", "description": "Fires when the value for the configuration attribute 'localFileWarning' changes."}}, "guessedname": "Editor", "methods": {"_handleWindowInputs": {"params": [{"type": "Boolean", "name": "disable", "description": " The state to set all inputs in all Editor windows to. Defaults to: false."}], "description": "Disables/Enables all fields inside Editor windows. Used in show/hide events to keep window fields from submitting when the parent form is submitted.", "guessedname": "_handleWindowInputs", "guessedtype": "function"}, "_fixNodes": {"description": "Fix href and imgs as well as remove invalid HTML.", "private": "", "guessedname": "_fixNodes", "guessedtype": "function"}, "cmd_justifyright": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('justifyright') is used.", "guessedname": "cmd_justifyright", "guessedtype": "function"}, "_defaultImageToolbar": {"description": "A reference to the Toolbar Object inside Image Editor Window.", "private": "", "guessedname": "_defaultImageToolbar", "guessedtype": "property"}, "moveWindow": {"params": [{"type": "Boolean", "name": "force", "description": " Boolean to tell it to move but not use any animation (Usually done the first time the window is loaded.)"}], "description": "Realign the window with the currentElement and reposition the knob above the panel.", "guessedname": "moveWindow", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Object literal specifying a set of \nconfiguration attributes used to create the editor."}], "description": "Initializes all of the configuration attributes used to create \nthe editor.", "guessedname": "initAttributes", "guessedtype": "function"}, "openWindow": {"params": [{"type": "<a href=\"YAHOO.widget.EditorWindow.html\">YAHOO.widget.EditorWindow</a>", "name": "win", "description": " A <a href=\"YAHOO.widget.EditorWindow.html\">YAHOO.widget.EditorWindow</a> instance"}], "description": "Opens a new \"window/panel\"", "guessedname": "openWindow", "guessedtype": "function"}, "cmd_superscript": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('superscript') is used.", "guessedname": "cmd_superscript", "guessedtype": "function"}, "_renderCreateLinkWindow": {"description": "Pre renders the CreateLink window so we get faster window opening.", "private": "", "guessedname": "_renderCreateLinkWindow", "guessedtype": "function"}, "_hasUndoLevel": {"guessedname": "_hasUndoLevel", "return": {"type": "", "description": "Boolean"}, "description": "Checks to see if we have an undo level available", "private": "", "guessedtype": "function"}, "_defaultImageToolbarConfig": {"description": "Config to be used for the default Image Editor Window.", "private": "", "guessedname": "_defaultImageToolbarConfig", "guessedtype": "property"}, "cmd_justifycenter": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('justifycenter') is used.", "guessedname": "cmd_justifycenter", "guessedtype": "function"}, "cmd_heading": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('heading') is used.", "guessedname": "cmd_heading", "guessedtype": "function"}, "_renderPanel": {"guessedname": "_renderPanel", "return": {"type": "<a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>", "description": ""}, "description": "Renders the panel used for Editor Windows to the document so we can start using it..", "private": "", "guessedtype": "function"}, "cmd_justifyleft": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('justifyleft') is used.", "guessedname": "cmd_justifyleft", "guessedtype": "function"}, "init": {"description": "The Editor class' initialization method", "guessedname": "init", "guessedtype": "function"}, "closeWindow": {"description": "Close the currently open EditorWindow.", "guessedname": "closeWindow", "guessedtype": "function"}, "cmd_script": {"params": [{"type": "", "name": "action", "description": " action passed from the execCommand method"}, {"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is a combined execCommand override method. It is called from the cmd_superscript and cmd_subscript methods.", "guessedname": "cmd_script", "guessedtype": "function"}, "cmd_justify": {"params": [{"type": "", "name": "dir", "description": " The direction to justify"}], "description": "This is a factory method for the justify family of commands.", "guessedname": "cmd_justify", "guessedtype": "function"}, "_renderInsertImageWindow": {"description": "Pre renders the InsertImage window so we get faster window opening.", "private": "", "guessedname": "_renderInsertImageWindow", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the editor.", "guessedname": "toString", "guessedtype": "function"}, "cmd_hiddenelements": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('hiddenelements') is used.", "guessedname": "cmd_hiddenelements", "guessedtype": "function"}, "_handleCreateLinkWindowClose": {"description": "Handles the closing of the Link Properties Window.", "private": "", "guessedname": "_handleCreateLinkWindowClose", "guessedtype": "function"}, "_handleInsertImageWindowClose": {"description": "Handles the closing of the Image Properties Window.", "private": "", "guessedname": "_handleInsertImageWindowClose", "guessedtype": "function"}, "_storeUndo": {"description": "Method to call when you want to store an undo state. Currently called from nodeChange and _handleKeyUp", "private": "", "guessedname": "_storeUndo", "guessedtype": "function"}, "_checkUndo": {"description": "Prunes the undo cache when it reaches the maxUndo config", "private": "", "guessedname": "_checkUndo", "guessedtype": "function"}, "cmd_subscript": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('subscript') is used.", "guessedname": "cmd_subscript", "guessedtype": "function"}, "_getUndo": {"return": {"type": "String", "description": ""}, "description": "Get's a level from the undo cache.", "private": "", "params": [{"type": "Number", "name": "index", "description": " The index of the undo level we want to get."}], "guessedname": "_getUndo", "guessedtype": "function"}, "_handleInsertImageClick": {"description": "Opens the Image Properties Window when the insert Image button is clicked or an Image is Double Clicked.", "private": "", "guessedname": "_handleInsertImageClick", "guessedtype": "function"}, "_windows": {"description": "A reference to the HTML elements used for the body of Editor Windows.", "private": "", "guessedname": "_windows", "guessedtype": "property"}, "cmd_redo": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "Pulls an item from the Undo stack and updates the Editor", "guessedname": "cmd_redo", "guessedtype": "function"}, "_putUndo": {"guessedname": "_putUndo", "params": [{"type": "String", "name": "str", "description": " The content of the Editor"}], "description": "Puts the content of the Editor into the _undoCache.\n//TODO Convert the hash to a series of TEXTAREAS to store state in.", "private": "", "guessedtype": "function"}, "cmd_indent": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('indent') is used.", "guessedname": "cmd_indent", "guessedtype": "function"}, "cmd_undo": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "Pulls an item from the Undo stack and updates the Editor", "guessedname": "cmd_undo", "guessedtype": "function"}, "_undoNodeChange": {"description": "nodeChange listener for undo processing", "private": "", "guessedname": "_undoNodeChange", "guessedtype": "function"}, "_handleKeyDown": {"guessedname": "_handleKeyDown", "params": [{"type": "Event", "name": "ev", "description": " The event we are working on."}], "description": "Override method that handles some new keydown events inside the iFrame document.", "private": "", "guessedtype": "function"}, "cmd_outdent": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('outdent') is used.", "guessedname": "cmd_outdent", "guessedtype": "function"}, "_closeWindow": {"guessedname": "_closeWindow", "params": [{"type": "Event", "name": "ev", "description": " The keypress Event that we are trapping"}], "description": "Close the currently open EditorWindow with the Escape key.", "private": "", "guessedtype": "function"}, "cmd_removeformat": {"params": [{"type": "", "name": "value", "description": " Value passed from the execCommand method"}], "description": "This is an execCommand override method. It is called from execCommand when the execCommand('removeformat') is used.", "guessedname": "cmd_removeformat", "guessedtype": "function"}}, "extends": "YAHOO.widget.SimpleEditor", "superclass": "YAHOO.widget.SimpleEditor", "file": "editor.js", "guessedtype": "function", "shortname": "Editor", "properties": {"_alwaysDisabled": {"guessedname": "_alwaysDisabled", "type": "Object", "description": "The Toolbar items that should ALWAYS be disabled event if there is a selection present in the editor.", "private": "", "guessedtype": "property"}, "STR_LOCAL_FILE_WARNING": {"type": "String", "description": "The label string for the local file warning.", "guessedname": "STR_LOCAL_FILE_WARNING", "guessedtype": "property"}, "STR_CLOSE_WINDOW_NOTE": {"type": "String", "description": "A note appearing in the Editor Window to tell the user that the Escape key will close the window", "guessedname": "STR_CLOSE_WINDOW_NOTE", "guessedtype": "property"}, "STR_NONE": {"type": "String", "description": "The string for the word none.", "guessedname": "STR_NONE", "guessedtype": "property"}, "CLASS_HIDDEN": {"protected": "", "type": "String", "description": "CSS class applied to the body when the hiddenelements button is pressed.", "guessedname": "CLASS_HIDDEN", "guessedtype": "property"}, "STR_IMAGE_SIZE": {"type": "String", "description": "The label string for Image Size", "guessedname": "STR_IMAGE_SIZE", "guessedtype": "property"}, "STR_IMAGE_COPY": {"type": "String", "description": "The label string for the image copy and paste message for Opera and Safari", "guessedname": "STR_IMAGE_COPY", "guessedtype": "property"}, "STR_LINK_NEW_WINDOW": {"type": "String", "description": "The string for the open in a new window label.", "guessedname": "STR_LINK_NEW_WINDOW", "guessedtype": "property"}, "STR_CLOSE_WINDOW": {"type": "String", "description": "The Title of the close button in the Editor Window", "guessedname": "STR_CLOSE_WINDOW", "guessedtype": "property"}, "_undoCache": {"guessedname": "_undoCache", "type": "Array", "description": "An Array hash of the Undo Levels.", "private": "", "guessedtype": "property"}, "STR_BEFORE_EDITOR": {"type": "String", "description": "The accessibility string for the element before the iFrame", "guessedname": "STR_BEFORE_EDITOR", "guessedtype": "property"}, "_undoLevel": {"guessedname": "_undoLevel", "type": "Number", "description": "The index of the current undo state.", "private": "", "guessedtype": "property"}, "STR_IMAGE_BORDER": {"type": "String", "description": "The label string for the image border.", "guessedname": "STR_IMAGE_BORDER", "guessedtype": "property"}, "STR_IMAGE_TITLE": {"type": "String", "description": "The label string for Image Description", "guessedname": "STR_IMAGE_TITLE", "guessedtype": "property"}, "_alwaysEnabled": {"guessedname": "_alwaysEnabled", "type": "Object", "description": "The Toolbar items that should ALWAYS be enabled event if there isn't a selection present in the editor.", "private": "", "guessedtype": "property"}, "STR_LINK_TITLE": {"type": "String", "description": "The string for the link description.", "guessedname": "STR_LINK_TITLE", "guessedtype": "property"}, "_disabled": {"guessedname": "_disabled", "type": "Array", "description": "The Toolbar items that should be disabled if there is no selection present in the editor.", "private": "", "guessedtype": "property"}, "STR_IMAGE_TEXTFLOW": {"type": "String", "description": "The label string for the image text flow.", "guessedname": "STR_IMAGE_TEXTFLOW", "guessedtype": "property"}, "STR_LINK_PROP_TITLE": {"type": "String", "description": "The label string for the Link Property Editor Window.", "guessedname": "STR_LINK_PROP_TITLE", "guessedtype": "property"}, "STR_IMAGE_BORDER_TYPE": {"type": "String", "description": "The label string for the image border type.", "guessedname": "STR_IMAGE_BORDER_TYPE", "guessedtype": "property"}, "EDITOR_PANEL_ID": {"type": "String", "description": "HTML id to give the properties window in the DOM.", "guessedname": "EDITOR_PANEL_ID", "guessedtype": "property"}, "STR_IMAGE_ORIG_SIZE": {"type": "String", "description": "The label string for Original Image Size", "guessedname": "STR_IMAGE_ORIG_SIZE", "guessedtype": "property"}, "STR_IMAGE_PADDING": {"type": "String", "description": "The label string for the image padding.", "guessedname": "STR_IMAGE_PADDING", "guessedtype": "property"}, "STR_IMAGE_PROP_TITLE": {"type": "String", "description": "The title for the Image Property Editor Window", "guessedname": "STR_IMAGE_PROP_TITLE", "guessedtype": "property"}, "CLASS_LOCAL_FILE": {"protected": "", "type": "String", "description": "CSS class applied to an element when it's found to have a local url.", "guessedname": "CLASS_LOCAL_FILE", "guessedtype": "property"}, "STR_LINK_PROP_REMOVE": {"type": "String", "description": "The label string for the Remove link from text link inside the property editor.", "guessedname": "STR_LINK_PROP_REMOVE", "guessedtype": "property"}, "STR_IMAGE_BORDER_SIZE": {"type": "String", "description": "The label string for the image border size.", "guessedname": "STR_IMAGE_BORDER_SIZE", "guessedtype": "property"}}, "description": "The Rich Text Editor is a UI control that replaces a standard HTML textarea; it allows for the rich formatting of text content, including common structural treatments like lists, formatting treatments like bold and italic text, and drag-and-drop inclusion and sizing of images. The Rich Text Editor's toolbar is extensible via a plugin architecture so that advanced implementations can achieve a high degree of customization."}, "YAHOO.widget.Paginator.ui.RowsPerPageDropdown": {"properties": {"all": {"protected": "", "type": "HTMLElement", "description": "option node for the optional All value", "guessedname": "all", "guessedtype": "property"}, "select": {"guessedname": "select", "type": "HTMLElement", "description": "select node", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.RowsPerPageDropdown", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the rows-per-page dropdown"}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"rowsPerPageDropdownClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "rowsPerPageDropdownClassChange", "description": "Fires when the value for the configuration attribute 'rowsPerPageDropdownClass' changes."}, "rowsPerPageOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "rowsPerPageOptionsChange", "description": "Fires when the value for the configuration attribute 'rowsPerPageOptions' changes."}, "beforeRowsPerPageOptionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRowsPerPageOptionsChange", "description": "Fires before the value for the configuration attribute 'rowsPerPageOptions' changes. Return false to cancel the attribute change."}, "beforeRowsPerPageDropdownClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRowsPerPageDropdownClassChange", "description": "Fires before the value for the configuration attribute 'rowsPerPageDropdownClass' changes. Return false to cancel the attribute change."}}, "guessedname": "RowsPerPageDropdown", "methods": {"render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the select and option nodes and returns the select node.", "guessedname": "render", "guessedtype": "function"}, "rebuild": {"description": "(Re)generate the select options.", "guessedname": "rebuild", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Select the appropriate option if changed.", "guessedname": "update", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the select node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "onChange": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The change event"}], "description": "Listener for the select's onchange event.  Sent to setRowsPerPage method.", "guessedname": "onChange", "guessedtype": "function"}, "_handleTotalRecordsChange": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  attribute change event"}], "description": "Updates the all option value (and Paginator's rowsPerPage attribute if\nnecessary) in response to a change in the Paginator's totalRecords.", "guessedname": "_handleTotalRecordsChange", "guessedtype": "function"}}, "file": "RowsPerPageDropDown.js", "guessedtype": "function", "shortname": "RowsPerPageDropdown", "configs": {"rowsPerPageDropdownClass": {"default": "'yui-pg-rpp-options'", "description": "CSS class assigned to the select node"}, "rowsPerPageOptions": {"default": "[]", "description": "Array of available rows-per-page sizes.  Converted into select options.\nArray values may be positive integers or object literals in the form<br>\n{ value : NUMBER, text : STRING }"}}, "description": "ui Component to generate the rows-per-page dropdown"}, "YAHOO.util.StyleSheet": {"name": "YAHOO.util.StyleSheet", "constructors": [{"params": [{"type": "String|HTMLElement", "name": "seed", "description": "  a style or link node, its id, or a name or\nyuiSSID of a StyleSheet, or a string of css text (see above)"}, {"type": "String", "name": "name", "description": "  OPTIONAL name to register instance for future static\naccess"}], "description": "Create an instance of YAHOO.util.StyleSheet to encapsulate a css stylesheet.\nThe constructor can be called using function or constructor syntax.\n<pre><code>var sheet = YAHOO.util.StyleSheet(..);</pre></code>\nor\n<pre><code>var sheet = new YAHOO.util.StyleSheet(..);</pre></code>\nThe first parameter passed can be any of the following things:\n<ul>\n<li>The desired string name to register a new empty sheet</li>\n<li>The string name of an existing YAHOO.util.StyleSheet instance</li>\n<li>The unique yuiSSID generated for an existing YAHOO.util.StyleSheet instance</li>\n<li>The id of an existing <code><link></code> or <code><style></code> node</li>\n<li>The node reference for an existing <code><link></code> or <code><style></code> node</li>\n<li>A chunk of css text to create a new stylesheet from</li>\n</ul>\n<p>If a string is passed, StyleSheet will first look in its static name\nregistry for an existing sheet, then in the DOM for an element with that id.\nIf neither are found and the string contains the { character, it will be\nused as a the initial cssText for a new StyleSheet.  Otherwise, a new empty\nStyleSheet is created, assigned the string value as a name, and registered\nstatically by that name.</p>\n<p>The optional second parameter is a string name to register the sheet as.\nThis param is largely useful when providing a node id/ref or chunk of css\ntext to create a populated instance.</p>"}], "namespace": "YAHOO.util", "module": "stylesheet", "methods": {"enable": {"chainable": "", "return": {"type": "StyleSheet", "description": "the instance"}, "description": "Enable all the rules in the sheet"}, "StyleSheet.isValidSelector": {"return": {"type": "Boolean", "description": ""}, "description": "<p>Determines if a selector string is safe to use.  Used internally\nin set to prevent IE from locking up when attempting to add a rule for a\n"bad selector".</p>\n<p>Bad selectors are considered to be any string containing unescaped\n`~!@$%^&()+=|{}[];'\"?< or space. Also forbidden are . or # followed by\nanything other than an alphanumeric.  Additionally -abc or .-abc or\n#_abc or '# ' all fail.  There are likely more failure cases, so\nplease file a bug if you encounter one.</p>", "static": "", "guessedname": "isValidSelector", "guessedtype": "function", "params": [{"type": "String", "name": "sel", "description": "  the selector string"}]}, "getCssText": {"return": {"type": "String", "description": ""}, "params": [{"type": "String", "name": "sel", "description": "  Selector string"}], "description": "Get the current cssText for a rule or the entire sheet.  If the\nselector param is supplied, only the cssText for that rule will be\nreturned, if found.  If the selector string targets multiple\nselectors separated by commas, the cssText of the first rule only\nwill be returned.  If no selector string, the stylesheet's full\ncssText will be returned.", "guessedname": "getCssText", "guessedtype": "function"}, "isEnabled": {"return": {"type": "Boolean", "description": "is it enabled?"}, "description": "Returns boolean indicating whether the StyleSheet is enabled", "guessedname": "isEnabled", "guessedtype": "function"}, "disable": {"chainable": "", "return": {"type": "StyleSheet", "description": "the instance"}, "description": "Disable all the rules in the sheet.  Rules may be changed while the\nStyleSheet is disabled.", "guessedname": "disable", "guessedtype": "function"}, "set": {"return": {"type": "StyleSheet", "description": "the StyleSheet instance"}, "description": "<p>Set style properties for a provided selector string.\nIf the selector includes commas, it will be split into individual\nselectors and applied accordingly.  If the selector string does not\nhave a corresponding rule in the sheet, it will be added.</p>\n<p>The second parameter can be either a string of CSS text,\nformatted as CSS (\"font-size: 10px;\"), or an object collection of\nproperties and their new values.  Object properties must be in\nJavaScript format ({ fontSize: \"10px\" }).</p>\n<p>The float style property will be set by any of "float",\n"styleFloat", or "cssFloat" if passed in the\nobject map.  Use \"float: left;\" format when passing a CSS text\nstring.</p>", "chainable": "", "params": [{"type": "String", "name": "sel", "description": "  the selector string to apply the changes to"}, {"type": "Object|String", "name": "css", "description": "  Object literal of style properties and\nnew values, or a string of cssText"}], "guessedname": "set", "guessedtype": "function"}, "getId": {"return": {"type": "Number", "description": "the static id"}, "description": "Get the unique yuiSSID for this StyleSheet instance", "guessedname": "getId", "guessedtype": "function"}, "StyleSheet.register": {"return": {"type": "Boolean", "description": "false if no name or sheet is not a StyleSheet\ninstance. true otherwise."}, "description": "Registers a StyleSheet instance in the static registry by the given name", "static": "", "guessedname": "register", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": "  the name to assign the StyleSheet in the registry"}, {"type": "StyleSheet", "name": "sheet", "description": "  The StyleSheet instance"}]}, "unset": {"return": {"type": "StyleSheet", "description": "the StyleSheet instance"}, "description": "<p>Unset style properties for a provided selector string, removing\ntheir effect from the style cascade.</p>\n<p>If the selector includes commas, it will be split into individual\nselectors and applied accordingly.  If there are no properties\nremaining in the rule after unsetting, the rule is removed.</p>\n<p>The style property or properties in the second parameter must be the\n<p>JavaScript style property names. E.g. fontSize rather than font-size.</p>\n<p>The float style property will be unset by any of "float",\n"styleFloat", or "cssFloat".</p>", "chainable": "", "params": [{"type": "String", "name": "sel", "description": "  the selector string to apply the changes to"}, {"type": "String|Array", "name": "css", "description": "  style property name or Array of names"}], "guessedname": "unset", "guessedtype": "function"}, "StyleSheet.toCssText": {"return": {"type": "String", "description": "the resulting cssText string"}, "description": "<p>Converts an object literal of style properties and values into a string\nof css text.  This can then be assigned to el.style.cssText.</p>\n<p>The optional second parameter is a cssText string representing the\nstarting state of the style prior to alterations.  This is most often\nextracted from the eventual target's current el.style.cssText.</p>", "static": "", "guessedname": "toCssText", "guessedtype": "property", "params": [{"type": "Object", "name": "css", "description": "  object literal of style properties and values"}, {"type": "String", "name": "cssText", "description": "  OPTIONAL starting cssText value"}]}}, "file": "stylesheet.js", "shortname": "StyleSheet", "properties": {"node": {"type": "HTMLElement", "description": "The HTMLElement that this instance encapsulates", "guessedname": "node", "guessedtype": "property"}}, "description": "Create an instance of YAHOO.util.StyleSheet to encapsulate a css stylesheet.\nThe constructor can be called using function or constructor syntax.\n<pre><code>var sheet = YAHOO.util.StyleSheet(..);</pre></code>\nor\n<pre><code>var sheet = new YAHOO.util.StyleSheet(..);</pre></code>\nThe first parameter passed can be any of the following things:\n<ul>\n<li>The desired string name to register a new empty sheet</li>\n<li>The string name of an existing YAHOO.util.StyleSheet instance</li>\n<li>The unique yuiSSID generated for an existing YAHOO.util.StyleSheet instance</li>\n<li>The id of an existing <code><link></code> or <code><style></code> node</li>\n<li>The node reference for an existing <code><link></code> or <code><style></code> node</li>\n<li>A chunk of css text to create a new stylesheet from</li>\n</ul>\n<p>If a string is passed, StyleSheet will first look in its static name\nregistry for an existing sheet, then in the DOM for an element with that id.\nIf neither are found and the string contains the { character, it will be\nused as a the initial cssText for a new StyleSheet.  Otherwise, a new empty\nStyleSheet is created, assigned the string value as a name, and registered\nstatically by that name.</p>\n<p>The optional second parameter is a string name to register the sheet as.\nThis param is largely useful when providing a node id/ref or chunk of css\ntext to create a populated instance.</p>"}, "YAHOO.widget.Calendar": {"name": "YAHOO.widget.Calendar", "configs": {"MY_LABEL_YEAR_POSITION": {"default": "2", "type": "Number", "description": "The position of the year in the month year label string used as the Calendar header", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEKDAYS": {"default": "true", "type": "Boolean", "description": "True if the Calendar should show weekday labels. True by default.", "guessedname": "value", "guessedtype": "property"}, "MDY_DAY_POSITION": {"default": "2", "type": "Number", "description": "The position of the day in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "MY_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "MONTHS_SHORT": {"default": "[\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]", "type": "String[]", "description": "The short month labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MULTI_SELECT": {"default": "false", "type": "Boolean", "description": "True if the Calendar should allow multiple selections. False by default.", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_YEAR_SUFFIX": {"default": "\"\"", "type": "String", "description": "The suffix used after the year when rendering the Calendar header", "guessedname": "value", "guessedtype": "property"}, "DATE_FIELD_DELIMITER": {"default": "\"/\"", "type": "String", "description": "The value used to delimit date fields in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "MY_YEAR_POSITION": {"default": "2", "type": "Number", "description": "The position of the year in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "close": {"default": "false", "type": "Boolean", "description": "Whether or not a close button should be displayed for this Calendar", "guessedname": "value", "guessedtype": "property"}, "MONTHS_LONG": {"default": "[\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"", "type": "String[]", "description": "The long month labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_MEDIUM": {"default": "[\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"]", "type": "String[]", "description": "The medium weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in the month year label string used as the Calendar header", "guessedname": "value", "guessedtype": "property"}, "YEAR_OFFSET": {"default": "0", "type": "Number", "description": "The positive or negative year offset from the Gregorian calendar year (assuming a January 1st rollover) to \nbe used when displaying and parsing dates. NOTE: All JS Date objects returned by methods, or expected as input by\nmethods will always represent the Gregorian year, in order to maintain date/month/week values.", "guessedname": "value", "guessedtype": "property"}, "navigator": {"default": "null", "type": "{Object|Boolean}", "description": "Configuration for the Month/Year CalendarNavigator UI which allows the user to jump directly to a \nspecific Month/Year without having to scroll sequentially through months.\n<p>\nSetting this property to null (default value) or false, will disable the CalendarNavigator UI.\n</p>\n<p>\nSetting this property to true will enable the CalendarNavigatior UI with the default CalendarNavigator configuration values.\n</p>\n<p>\nThis property can also be set to an object literal containing configuration properties for the CalendarNavigator UI.\nThe configuration object expects the the following case-sensitive properties, with the \"strings\" property being a nested object.\nAny properties which are not provided will use the default values (defined in the CalendarNavigator class).\n</p>\n<dl>\n<dt>strings</dt>\n<dd><em>Object</em> :  An object with the properties shown below, defining the string labels to use in the Navigator's UI\n<dl>\n<dt>month</dt><dd><em>String</em> : The string to use for the month label. Defaults to \"Month\".</dd>\n<dt>year</dt><dd><em>String</em> : The string to use for the year label. Defaults to \"Year\".</dd>\n<dt>submit</dt><dd><em>String</em> : The string to use for the submit button label. Defaults to \"Okay\".</dd>\n<dt>cancel</dt><dd><em>String</em> : The string to use for the cancel button label. Defaults to \"Cancel\".</dd>\n<dt>invalidYear</dt><dd><em>String</em> : The string to use for invalid year values. Defaults to \"Year needs to be a number\".</dd>\n</dl>\n</dd>\n<dt>monthFormat</dt><dd><em>String</em> : The month format to use. Either YAHOO.widget.Calendar.LONG, or YAHOO.widget.Calendar.SHORT. Defaults to YAHOO.widget.Calendar.LONG</dd>\n<dt>initialFocus</dt><dd><em>String</em> : Either \"year\" or \"month\" specifying which input control should get initial focus. Defaults to \"year\"</dd>\n</dl>\n<p>E.g.</p>\n<pre>\nvar navConfig = {\nstrings: {\nmonth:\"Calendar Month\",\nyear:\"Calendar Year\",\nsubmit: \"Submit\",\ncancel: \"Cancel\",\ninvalidYear: \"Please enter a valid year\"\n},\nmonthFormat: YAHOO.widget.Calendar.SHORT,\ninitialFocus: \"month\"\n}\n</pre>", "guessedname": "value", "guessedtype": "property"}, "DATE_RANGE_DELIMITER": {"default": "\"-\"", "type": "String", "description": "The value used to delimit date ranges in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEK_HEADER": {"default": "false", "type": "Boolean", "description": "True if the Calendar should show week row headers. False by default.", "guessedname": "value", "guessedtype": "property"}, "title": {"default": "\"\"", "type": "String", "description": "The title to display above the Calendar's month header", "guessedname": "value", "guessedtype": "property"}, "maxdate": {"default": "null", "type": "String | Date", "description": "The maximum selectable date in the current Calendar (mm/dd/yyyy)", "guessedname": "value", "guessedtype": "property"}, "selected": {"default": "[]", "type": "String", "description": "The date or range of dates representing the current Calendar selection", "guessedname": "value", "guessedtype": "property"}, "LOCALE_WEEKDAYS": {"default": "\"short\"", "type": "String", "description": "The setting that determines which length of weekday labels should be used. Possible values are \"1char\", \"short\", \"medium\", and \"long\".", "guessedname": "value", "guessedtype": "property"}, "NAV_ARROW_RIGHT": {"description": "The image that should be used for the right navigation arrow.", "default": "null", "deprecated": "You can customize the image by overriding the default CSS class for the right arrow - \"calnavright\"", "guessedname": "value", "guessedtype": "property", "type": "String"}, "HIDE_BLANK_WEEKS": {"default": "false", "type": "Boolean", "description": "True if the Calendar should suppress weeks that are not a part of the current month. False by default.", "guessedname": "value", "guessedtype": "property"}, "today": {"default": "The client side date (new Date()) when the Calendar is instantiated.", "type": "Date", "description": "The date to use to represent \"Today\".", "guessedname": "value", "guessedtype": "property"}, "mindate": {"default": "null", "type": "String | Date", "description": "The minimum selectable date in the current Calendar (mm/dd/yyyy)", "guessedname": "value", "guessedtype": "property"}, "START_WEEKDAY": {"default": "0", "type": "number", "description": "The weekday the week begins on. Default is 0 (Sunday = 0, Monday = 1 ... Saturday = 6).", "guessedname": "value", "guessedtype": "property"}, "SHOW_WEEK_FOOTER": {"default": "false", "type": "Boolean", "description": "True if the Calendar should show week row footers. False by default.", "guessedname": "value", "guessedtype": "property"}, "MDY_YEAR_POSITION": {"default": "3", "type": "Number", "description": "The position of the year in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_LONG": {"default": "[\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]", "type": "String[]", "description": "The long weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "MDY_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/day/year date string", "guessedname": "value", "guessedtype": "property"}, "pagedate": {"default": "Today's date", "type": "String | Date", "description": "The month/year representing the current visible Calendar date (mm/yyyy)", "guessedname": "value", "guessedtype": "property"}, "MY_LABEL_MONTH_SUFFIX": {"default": "\" \"", "type": "String", "description": "The suffix used after the month when rendering the Calendar header", "guessedname": "value", "guessedtype": "property"}, "MD_DAY_POSITION": {"default": "2", "type": "Number", "description": "The position of the day in a month/year date string", "guessedname": "value", "guessedtype": "property"}, "NAV_ARROW_LEFT": {"description": "The image that should be used for the left navigation arrow.", "default": "null", "deprecated": "You can customize the image by overriding the default CSS class for the left arrow - \"calnavleft\"", "guessedname": "value", "guessedtype": "property", "type": "String"}, "MD_MONTH_POSITION": {"default": "1", "type": "Number", "description": "The position of the month in a month/day date string", "guessedname": "value", "guessedtype": "property"}, "DATE_DELIMITER": {"default": "\",\"", "type": "String", "description": "The value used to delimit individual dates in a date string passed to various Calendar functions.", "guessedname": "value", "guessedtype": "property"}, "LOCALE_MONTHS": {"default": "\"long\"", "type": "String", "description": "The setting that determines which length of month labels should be used. Possible values are \"short\" and \"long\".", "guessedname": "value", "guessedtype": "property"}, "iframe": {"default": "true for IE6 and below, false for all other browsers", "type": "Boolean", "description": "Whether or not an iframe shim should be placed under the Calendar to prevent select boxes from bleeding through in Internet Explorer 6 and below.\nThis property is enabled by default for IE6 and below. It is disabled by default for other browsers for performance reasons, but can be \nenabled if required.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_1CHAR": {"default": "[\"S\", \"M\", \"T\", \"W\", \"T\", \"F\", \"S\"]", "type": "String[]", "description": "The 1-character weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "WEEKDAYS_SHORT": {"default": "[\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"]", "type": "String[]", "description": "The short weekday labels for the current locale.", "guessedname": "value", "guessedtype": "property"}, "strings": {"default": "An object with the properties shown below:\n<dl>\n<dt>previousMonth</dt><dd><em>String</em> : The string to use for the \"Previous Month\" navigation UI. Defaults to \"Previous Month\".</dd>\n<dt>nextMonth</dt><dd><em>String</em> : The string to use for the \"Next Month\" navigation UI. Defaults to \"Next Month\".</dd>\n<dt>close</dt><dd><em>String</em> : The string to use for the close button label. Defaults to \"Close\".</dd>\n</dl>", "type": "{Object}", "description": "The map of UI strings which the Calendar UI uses."}}, "constructors": [{"params": [{"type": "String", "name": "id", "description": " optional The id of the table element that will represent the Calendar widget. As of 2.4.0, this argument is optional."}, {"type": "String | HTMLElement", "name": "container", "description": " The id of the container div element that will wrap the Calendar table, or a reference to a DIV element which exists in the document."}, {"type": "Object", "name": "config", "description": " optional The configuration object containing the initial configuration values for the Calendar."}], "description": "Calendar is the base class for the Calendar widget. In its most basic\nimplementation, it has the ability to render a calendar widget on the page\nthat can be manipulated to select a single date, move back and forth between\nmonths and years.\n<p>To construct the placeholder for the calendar widget, the code is as\nfollows:\n<xmp>\n<div id=\"calContainer\"></div>\n</xmp>\n</p>\n<p>\n<strong>NOTE: As of 2.4.0, the constructor's ID argument is optional.</strong>\nThe Calendar can be constructed by simply providing a container ID string, \nor a reference to a container DIV HTMLElement (the element needs to exist \nin the document).\nE.g.:\n<xmp>\nvar c = new YAHOO.widget.Calendar(\"calContainer\", configOptions);\n</xmp>\nor:\n<xmp>\nvar containerDiv = YAHOO.util.Dom.get(\"calContainer\");\nvar c = new YAHOO.widget.Calendar(containerDiv, configOptions);\n</xmp>\n</p>\n<p>\nIf not provided, the ID will be generated from the container DIV ID by adding an \"_t\" suffix.\nFor example if an ID is not provided, and the container's ID is \"calContainer\", the Calendar's ID will be set to \"calContainer_t\".\n</p>"}], "namespace": "YAHOO.widget", "module": "calendar", "events": {"showNavEvent": {"description": "Fired after the CalendarNavigator is shown", "guessedname": "showNavEvent", "guessedtype": "property"}, "beforeDeselectEvent": {"description": "Fired before a date or set of dates is deselected", "guessedname": "beforeDeselectEvent", "guessedtype": "property"}, "beforeRenderNavEvent": {"description": "Fired just before the CalendarNavigator is to be rendered", "guessedname": "beforeRenderNavEvent", "guessedtype": "property"}, "beforeHideNavEvent": {"description": "Fired just before the CalendarNavigator is to be hidden", "guessedname": "beforeHideNavEvent", "guessedtype": "property"}, "hideEvent": {"description": "Fired after the Calendar is hidden", "guessedname": "hideEvent", "guessedtype": "property"}, "hideNavEvent": {"description": "Fired after the CalendarNavigator is hidden", "guessedname": "hideNavEvent", "guessedtype": "property"}, "renderNavEvent": {"description": "Fired after the CalendarNavigator is rendered", "guessedname": "renderNavEvent", "guessedtype": "property"}, "beforeRenderEvent": {"description": "Fired before the Calendar is rendered", "guessedname": "beforeRenderEvent", "guessedtype": "property"}, "beforeShowEvent": {"description": "Fired just before the Calendar is to be shown", "guessedname": "beforeShowEvent", "guessedtype": "property"}, "beforeSelectEvent": {"description": "Fired before a date selection is made", "guessedname": "beforeSelectEvent", "guessedtype": "property"}, "renderEvent": {"description": "Fired when the Calendar is rendered", "guessedname": "renderEvent", "guessedtype": "property"}, "changePageEvent": {"params": [{"type": "Date", "name": "prevDate", "description": " The date before the page was changed"}, {"type": "Date", "name": "newDate", "description": " The date after the page was changed"}], "description": "Fired when the Calendar page is changed", "guessedname": "changePageEvent", "guessedtype": "property"}, "destroyEvent": {"description": "Fired after the Calendar is destroyed. This event should be used\nfor notification only. When this event is fired, important Calendar instance\nproperties, dom references and event listeners have already been \nremoved/dereferenced, and hence the Calendar instance is not in a usable \nstate.", "guessedname": "destroyEvent", "guessedtype": "property"}, "clearEvent": {"description": "Fired when the Calendar is cleared", "guessedname": "clearEvent", "guessedtype": "property"}, "showEvent": {"description": "Fired after the Calendar is shown", "guessedname": "showEvent", "guessedtype": "property"}, "beforeDestroyEvent": {"description": "Fired just before the Calendar is to be destroyed", "guessedname": "beforeDestroyEvent", "guessedtype": "property"}, "selectEvent": {"params": [{"type": "Array", "name": "Array", "description": " of Date field arrays in the format [YYYY, MM, DD]."}], "description": "Fired when a date selection is made", "guessedname": "selectEvent", "guessedtype": "property"}, "beforeHideEvent": {"description": "Fired just before the Calendar is to be hidden", "guessedname": "beforeHideEvent", "guessedtype": "property"}, "beforeShowNavEvent": {"description": "Fired just before the CalendarNavigator is to be shown", "guessedname": "beforeShowNavEvent", "guessedtype": "property"}, "deselectEvent": {"params": [{"type": "Array", "name": "Array", "description": " of Date field arrays in the format [YYYY, MM, DD]."}], "description": "Fired when a date or set of dates is deselected", "guessedname": "deselectEvent", "guessedtype": "property"}, "resetEvent": {"description": "Fired when the Calendar is reset", "guessedname": "resetEvent", "guessedtype": "property"}}, "methods": {"show": {"description": "Shows the Calendar's outer container.", "guessedname": "show", "guessedtype": "function"}, "nextYear": {"description": "Navigates to the next year in the currently selected month in the calendar widget.", "guessedname": "nextYear", "guessedtype": "function"}, "configLocale": {"description": "The default handler for all configuration locale properties", "guessedname": "configLocale", "guessedtype": "function"}, "subtractYears": {"params": [{"type": "Number", "name": "count", "description": " The number of years to subtract from the current calendar"}], "description": "Subtcats the designated number of years from the current calendar, and sets the current\ncalendar page date to the new month.", "guessedname": "subtractYears", "guessedtype": "function"}, "buildWeekdays": {"return": {"type": "Array", "description": "The current working HTML array"}, "params": [{"type": "Array", "name": "html", "description": " The current working HTML array"}], "description": "Renders the Calendar's weekday headers.", "guessedname": "buildWeekdays", "guessedtype": "function"}, "_parseArgs": {"return": {"type": "Object", "description": "Object with id, container, config properties containing\nthe reconciled argument values."}, "description": "Protected helper used to parse Calendar constructor/init arguments.\nAs of 2.4.0, Calendar supports a simpler constructor \nsignature. This method reconciles arguments\nreceived in the pre 2.4.0 and 2.4.0 formats.", "protected": "", "params": [{"type": "Array", "name": "Function", "description": " \"arguments\" array"}], "guessedname": "_parseArgs", "guessedtype": "function"}, "previousMonth": {"description": "Navigates to the previous month page in the calendar widget.", "guessedname": "previousMonth", "guessedtype": "function"}, "getSelectedDates": {"return": {"type": "Date[]", "description": "An array of currently selected JavaScript Date objects."}, "description": "Gets the list of currently selected dates from the calendar.", "guessedname": "getSelectedDates", "guessedtype": "function"}, "renderOutOfBoundsDate": {"return": {"type": "String", "description": "YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering\nshould not be terminated"}, "params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a cell that falls before the minimum date or after the maximum date.\nwidget class.", "guessedname": "renderOutOfBoundsDate", "guessedtype": "function"}, "previousYear": {"description": "Navigates to the previous year in the currently selected month in the calendar widget.", "guessedname": "previousYear", "guessedtype": "function"}, "addMonths": {"params": [{"type": "Number", "name": "count", "description": " The number of months to add to the current calendar"}], "description": "Adds the designated number of months to the current calendar month, and sets the current\ncalendar page date to the new month.", "guessedname": "addMonths", "guessedtype": "function"}, "renderBody": {"return": {"type": "Array", "description": "The current working HTML array"}, "params": [{"type": "Date", "name": "workingDate", "description": " The current working Date being used for the render process"}, {"type": "Array", "name": "html", "description": " The current working HTML array"}], "description": "Renders the calendar body.", "guessedname": "renderBody", "guessedtype": "function"}, "addMonthRenderer": {"params": [{"type": "Number", "name": "month", "description": "  The month (1-12) to associate with this renderer"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a month to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the month passed to this method.", "guessedname": "addMonthRenderer", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "id", "description": " optional The id of the table element that will represent the Calendar widget. As of 2.4.0, this argument is optional."}, {"type": "String | HTMLElement", "name": "container", "description": " The id of the container div element that will wrap the Calendar table, or a reference to a DIV element which exists in the document."}, {"type": "Object", "name": "config", "description": " optional The configuration object containing the initial configuration values for the Calendar."}], "description": "Initializes the Calendar widget.", "guessedname": "init", "guessedtype": "function"}, "addRenderer": {"params": [{"type": "String", "name": "sDates", "description": "  A date string to associate with the specified renderer. Valid formats\ninclude date (12/24/2005), month/day (12/24), and range (12/1/2004-1/1/2005)"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a renderer to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the conditions specified in the date string for this renderer.", "guessedname": "addRenderer", "guessedtype": "function"}, "applyListeners": {"description": "Applies the Calendar's DOM listeners to applicable elements.", "guessedname": "applyListeners", "guessedtype": "function"}, "clearAllBodyCellStyles": {"params": [{"type": "style", "name": "style", "description": " The CSS class name to remove from all calendar body cells"}], "description": "Removes all styles from all body cells in the current calendar table.", "guessedname": "clearAllBodyCellStyles", "guessedtype": "function"}, "_parsePageDate": {"return": {"type": "Date", "description": "The Date object representing the pagedate"}, "description": "Parses a pagedate configuration property value. The value can either be specified as a string of form \"mm/yyyy\" or a Date object \nand is parsed into a Date object normalized to the first day of the month. If no value is passed in, the month and year from today's date are used to create the Date object", "private": "", "params": [{"type": "Date|String", "name": "date", "description": " Pagedate value which needs to be parsed"}], "guessedname": "_parsePageDate", "guessedtype": "function"}, "getIndexFromId": {"return": {"type": "Number", "description": "The index of the cell, or -1 if id does not contain an index number"}, "params": [{"type": "String", "name": "strId", "description": " The cell id"}], "description": "Given the id used to mark each Calendar cell, this method\nextracts the index number from the id.", "guessedname": "getIndexFromId", "guessedtype": "function"}, "createTitleBar": {"return": {"type": "", "description": "The title bar element"}, "params": [{"type": "String", "name": "strTitle", "description": " The title to display in the title bar"}], "description": "Creates the title bar element and adds it to Calendar container DIV", "guessedname": "createTitleBar", "guessedtype": "function"}, "onBeforeSelect": {"deprecated": "Event handlers for this event should be susbcribed to beforeSelectEvent.", "description": "Event executed before a date is selected in the calendar widget.", "guessedname": "onBeforeSelect", "guessedtype": "function"}, "removeCloseButton": {"description": "Removes the close button HTML element from the DOM", "guessedname": "removeCloseButton", "guessedtype": "function"}, "renderCellStyleHighlight2": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell using the CSS hightlight2 style", "guessedname": "renderCellStyleHighlight2", "guessedtype": "function"}, "renderCellStyleHighlight3": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell using the CSS hightlight3 style", "guessedname": "renderCellStyleHighlight3", "guessedtype": "function"}, "renderCellStyleHighlight1": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell using the CSS hightlight1 style", "guessedname": "renderCellStyleHighlight1", "guessedtype": "function"}, "renderCellStyleHighlight4": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell using the CSS hightlight4 style", "guessedname": "renderCellStyleHighlight4", "guessedtype": "function"}, "renderHeader": {"return": {"type": "Array", "description": "The current working HTML array"}, "params": [{"type": "Array", "name": "html", "description": " The current working HTML array"}], "description": "Renders the calendar header.", "guessedname": "renderHeader", "guessedtype": "function"}, "addYears": {"params": [{"type": "Number", "name": "count", "description": " The number of years to add to the current calendar"}], "description": "Adds the designated number of years to the current calendar, and sets the current\ncalendar page date to the new month.", "guessedname": "addYears", "guessedtype": "function"}, "deselectCell": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "Number", "name": "cellIndex", "description": " The index of the cell to deselect in the current calendar."}], "description": "Deselects a date on the current calendar by referencing the index of the cell that should be deselected.\nThis method is used to easily deselect a single cell (usually with a mouse click) without having to do\na full render. The selected style is removed from the cell directly.\nIf the cell is not marked with the CSS_CELL_SELECTABLE class (as is the case by default for out of month \nor out of bounds cells), the method will not attempt to deselect it and in such a case, beforeDeselect and \ndeselect events will not be fired.", "guessedname": "deselectCell", "guessedtype": "function"}, "removeRenderers": {"description": "Removes all custom renderers added to the Calendar through the addRenderer, addMonthRenderer and \naddWeekdayRenderer methods. Calendar's render method needs to be called after removing renderers \nto re-render the Calendar without custom renderers applied.", "guessedname": "removeRenderers", "guessedtype": "function"}, "configOptions": {"description": "The default handler for all configuration options properties", "guessedname": "configOptions", "guessedtype": "function"}, "deselect": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "String/Date/Date[]", "name": "date", "description": " The date string of dates to deselect in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "description": "Deselects a date or a collection of dates on the current calendar. This method, by default,\ndoes not call the render method explicitly. Once deselection has completed, render must be \ncalled for the changes to be reflected visually.\nThe method will not attempt to deselect any dates which are OOB (out of bounds, and hence not selectable) \nand the array of deselected dates passed to the deselectEvent will not contain any OOB dates.\nIf all dates are OOB, beforeDeselect and deselect events will not be fired.", "guessedname": "deselect", "guessedtype": "function"}, "_indexOfSelectedFieldArray": {"return": {"type": "Number", "description": "The index of the date field array within the collection of selected dates.\n-1 will be returned if the date is not found."}, "description": "Gets the index of a date field array [yyyy,mm,dd] in the current list of selected dates.", "private": "", "params": [{"type": "Number[]", "name": "find", "description": " The date field array to search for"}], "guessedname": "_indexOfSelectedFieldArray", "guessedtype": "function"}, "_parseRange": {"return": {"type": "", "description": "An array of date field arrays"}, "description": "Converts a date range to the full list of included dates", "private": "", "params": [{"type": "Number[]", "name": "startDate", "description": " Date field array representing the first date in the range"}, {"type": "Number[]", "name": "endDate", "description": "  Date field array representing the last date in the range"}], "guessedname": "_parseRange", "guessedtype": "function", "type": "Array[](Number[])"}, "toString": {"return": {"type": "String", "description": "A string representation of the Calendar object."}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "renderCellNotThisMonth": {"return": {"type": "String", "description": "YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering\nshould not be terminated"}, "params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Applies the default style used for rendering dates that are not a part of the current\nmonth (preceding or trailing the cells for the current month)", "guessedname": "renderCellNotThisMonth", "guessedtype": "function"}, "configLocaleValues": {"description": "The default handler for all configuration locale field length properties", "guessedname": "configLocaleValues", "guessedtype": "function"}, "buildMonthLabel": {"return": {"type": "String", "description": "The formatted calendar month label"}, "description": "Builds the date label that will be displayed in the calendar header or\nfooter, depending on configuration.", "guessedname": "buildMonthLabel", "guessedtype": "function"}, "_parseDates": {"return": {"type": "", "description": "An array of date field arrays"}, "description": "Converts a multi or single-date string to an array of date field arrays", "private": "", "params": [{"type": "String", "name": "sDates", "description": "  Date string with one or more comma-delimited dates. Valid formats are mm/dd, mm/dd/yyyy, mm/dd/yyyy-mm/dd/yyyy"}], "guessedname": "_parseDates", "guessedtype": "function", "type": "Array[](Number[])"}, "getDateFieldsByCellId": {"return": {"type": "Array", "description": "The array of Date fields for the specified Calendar cell"}, "params": [{"type": "String", "name": "id", "description": " The id of the cell"}], "description": "Retrieves the Date object for the specified Calendar cell", "guessedname": "getDateFieldsByCellId", "guessedtype": "function"}, "configMaxDate": {"description": "The default handler for the \"maxdate\" property", "guessedname": "configMaxDate", "guessedtype": "function"}, "_addRenderer": {"guessedname": "_addRenderer", "params": [{"type": "String", "name": "type", "description": "  The type string that indicates the type of date renderer being added.\nValues are YAHOO.widget.Calendar.DATE, YAHOO.widget.Calendar.MONTH_DAY, YAHOO.widget.Calendar.WEEKDAY,\nYAHOO.widget.Calendar.RANGE, YAHOO.widget.Calendar.MONTH"}, {"type": "Array", "name": "aDates", "description": "  An array of dates used to construct the renderer. The format varies based\non the renderer type"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "The private method used for adding cell renderers to the local render stack.\nThis method is called by other methods that set the renderer type prior to the method call.", "private": "", "guessedtype": "function"}, "setMonth": {"params": [{"type": "Number", "name": "month", "description": "  The numeric month, from 0 (January) to 11 (December)"}], "description": "Sets the calendar's month explicitly", "guessedname": "setMonth", "guessedtype": "function"}, "_fieldArraysAreEqual": {"return": {"type": "Boolean", "description": "The boolean that represents the equality of the two arrays"}, "description": "Determines if 2 field arrays are equal.", "private": "", "params": [{"type": "Number[]", "name": "array1", "description": " The first date field array to compare"}, {"type": "Number[]", "name": "array2", "description": " The first date field array to compare"}], "guessedname": "_fieldArraysAreEqual", "guessedtype": "function"}, "styleCellDefault": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Styles a selectable cell.", "guessedname": "styleCellDefault", "guessedtype": "function"}, "_parseDate": {"return": {"type": "", "description": "A date field array representing the string passed to the method"}, "description": "Converts a date string to a date field array", "private": "", "params": [{"type": "String", "name": "sDate", "description": "   Date string. Valid formats are mm/dd and mm/dd/yyyy."}], "guessedname": "_parseDate", "guessedtype": "function", "type": "Array[](Number[])"}, "doCellMouseOver": {"params": [{"type": "DOMEvent", "name": "e", "description": " The event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar passed by the Event utility"}], "description": "The event that is executed when the user hovers over a cell", "guessedname": "doCellMouseOver", "guessedtype": "function"}, "doCellMouseOut": {"params": [{"type": "DOMEvent", "name": "e", "description": " The event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar passed by the Event utility"}], "description": "The event that is executed when the user moves the mouse out of a cell", "guessedname": "doCellMouseOut", "guessedtype": "function"}, "onClear": {"deprecated": "Event handlers for this event should be susbcribed to clearEvent.", "description": "Event executed when the calendar widget is completely cleared to the current month with no selections.", "guessedname": "onClear", "guessedtype": "function"}, "onDeselect": {"deprecated": "Event handlers for this event should be susbcribed to deselectEvent.", "params": [{"type": "Array", "name": "selected", "description": " An array of date field arrays representing which date or dates were deselected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]"}], "description": "Event executed when a date is deselected in the calendar widget.", "guessedname": "onDeselect", "guessedtype": "function"}, "configNavigator": {"description": "The default handler for the \"navigator\" property", "guessedname": "configNavigator", "guessedtype": "function"}, "configClose": {"description": "Default handler for the \"close\" property", "guessedname": "configClose", "guessedtype": "function"}, "render": {"description": "Renders the calendar after it has been configured. The render() method has a specific call chain that will execute\nwhen the method is called: renderHeader, renderBody, renderFooter.\nRefer to the documentation for those methods for information on \nindividual render tasks.", "guessedname": "render", "guessedtype": "function"}, "_buildMonthLabel": {"return": {"type": "String", "description": "Formated month, year string"}, "description": "Helper method, to format a Month Year string, given a JavaScript Date, based on the \nCalendar localization settings", "private": "", "params": [{"type": "Date", "name": "date", "description": ""}], "guessedname": "_buildMonthLabel", "guessedtype": "function"}, "initStyles": {"description": "Defines the style constants for the Calendar", "guessedname": "initStyles", "guessedtype": "function"}, "resetRenderers": {"description": "Resets the render stack of the current calendar to its original pre-render value.", "guessedname": "resetRenderers", "guessedtype": "function"}, "select": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "String/Date/Date[]", "name": "date", "description": " The date string of dates to select in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "description": "Selects a date or a collection of dates on the current calendar. This method, by default,\ndoes not call the render method explicitly. Once selection has completed, render must be \ncalled for the changes to be reflected visually.\nAny dates which are OOB (out of bounds, not selectable) will not be selected and the array of \nselected dates passed to the selectEvent will not contain OOB dates.\nIf all dates are OOB, the no state change will occur; beforeSelect and select events will not be fired.", "guessedname": "select", "guessedtype": "function"}, "refreshLocale": {"private": "", "description": "Refreshes the locale values used to build the Calendar.", "guessedname": "refreshLocale", "guessedtype": "function"}, "initEvents": {"description": "Initializes Calendar's built-in CustomEvents", "guessedname": "initEvents", "guessedtype": "function"}, "nextMonth": {"description": "Navigates to the next month page in the calendar widget.", "guessedname": "nextMonth", "guessedtype": "function"}, "onReset": {"deprecated": "Event handlers for this event should be susbcribed to resetEvemt.", "description": "Event executed when the calendar widget is reset to its original state.", "guessedname": "onReset", "guessedtype": "function"}, "addWeekdayRenderer": {"params": [{"type": "Number", "name": "weekday", "description": "  The weekday (Sunday = 1, Monday = 2 ... Saturday = 7) to associate with this renderer"}, {"type": "Function", "name": "fnRender", "description": " The function executed to render cells that match the render rules for this renderer."}], "description": "Adds a weekday to the render stack. The function reference passed to this method will be executed\nwhen a date cell matches the weekday passed to this method.", "guessedname": "addWeekdayRenderer", "guessedtype": "function"}, "isDateOOM": {"return": {"type": "Boolean", "description": "true if the date is OOM"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object for which to check the OOM status"}], "description": "Determines whether a given date is OOM (out of month).", "guessedname": "isDateOOM", "guessedtype": "function"}, "getCellIndex": {"return": {"type": "Number", "description": "The index of the date in Calendars cellDates/cells arrays, or -1 if the date \nis not on the curently rendered Calendar page."}, "params": [{"type": "Date", "name": "date", "description": " JavaScript Date object, for which to find a cell index."}], "description": "Find the Calendar's cell index for a given date.\nIf the date is not found, the method returns -1.\n<p>\nThe returned index can be used to lookup the cell HTMLElement  \nusing the Calendar's cells array or passed to selectCell to select \ncells by index. \n</p>\nSee <a href=\"#cells\">cells</a>, <a href=\"#selectCell\">selectCell</a>.", "guessedname": "getCellIndex", "guessedtype": "function"}, "isDateOOB": {"return": {"type": "Boolean", "description": "true if the date is OOB"}, "params": [{"type": "Date", "name": "date", "description": " The JavaScript Date object for which to check the OOB status"}], "description": "Determines whether a given date is OOB (out of bounds - less than the mindate or more than the maxdate).", "guessedname": "isDateOOB", "guessedtype": "function"}, "doSelectCell": {"params": [{"type": "DOMEvent", "name": "e", "description": " The DOM event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar"}], "description": "The default event handler for date cell selection. Currently attached to \nthe Calendar's bounding box, referenced by it's <a href=\"#property_oDomContainer\">oDomContainer</a> property.", "guessedname": "doSelectCell", "guessedtype": "function"}, "configStrings": {"description": "The default handler for the \"strings\" property", "guessedname": "configStrings", "guessedtype": "function"}, "onRender": {"deprecated": "Event handlers for this event should be susbcribed to renderEvent.", "description": "Event executed when the calendar widget is rendered.", "guessedname": "onRender", "guessedtype": "function"}, "renderRowHeader": {"params": [{"type": "Number", "name": "weekNum", "description": " The week number of the current row"}, {"type": "Array", "name": "cell", "description": " The current working HTML array"}], "description": "Renders the row header for a week.", "guessedname": "renderRowHeader", "guessedtype": "function"}, "renderFooter": {"return": {"type": "Array", "description": "The current working HTML array"}, "params": [{"type": "Array", "name": "html", "description": " The current working HTML array"}], "description": "Renders the calendar footer. In the default implementation, there is\nno footer.", "guessedname": "renderFooter", "guessedtype": "function"}, "configSelected": {"description": "The default handler for the \"selected\" property", "guessedname": "configSelected", "guessedtype": "function"}, "renderRowFooter": {"params": [{"type": "Number", "name": "weekNum", "description": " The week number of the current row"}, {"type": "Array", "name": "cell", "description": " The current working HTML array"}], "description": "Renders the row footer for a week.", "guessedname": "renderRowFooter", "guessedtype": "function"}, "reset": {"description": "Resets the calendar widget to the originally selected month and year, and \nsets the calendar to the initial selection(s).", "guessedname": "reset", "guessedtype": "function"}, "deselectAll": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected.\nAssuming that this function executes properly, the return value should be an empty array.\nHowever, the empty array is returned for the sake of being able to check the selection status\nof the calendar."}, "description": "Deselects all dates on the current calendar.", "guessedname": "deselectAll", "guessedtype": "function"}, "renderBodyCellRestricted": {"return": {"type": "String", "description": "YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering\nshould not be terminated"}, "params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders the current calendar cell as a non-selectable \"black-out\" date using the default\nrestricted style.", "guessedname": "renderBodyCellRestricted", "guessedtype": "function"}, "onBeforeDeselect": {"deprecated": "Event handlers for this event should be susbcribed to beforeDeselectEvent.", "description": "Event executed before a date is deselected in the calendar widget.", "guessedname": "onBeforeDeselect", "guessedtype": "function"}, "onChangePage": {"deprecated": "Event handlers for this event should be susbcribed to changePageEvent.", "description": "Event executed when the user navigates to a different calendar page.", "guessedname": "onChangePage", "guessedtype": "function"}, "_toFieldArray": {"return": {"type": "Array[](Number[])", "description": "Array of date field arrays"}, "description": "Converts a date (either a JavaScript Date object, or a date string) to the internal data structure\nused to represent dates: [[yyyy,mm,dd],[yyyy,mm,dd]].", "private": "", "params": [{"type": "String/Date/Date[]", "name": "date", "description": " The date string of dates to deselect in the current calendar. Valid formats are\nindividual date(s) (12/24/2005,12/26/2005) or date range(s) (12/24/2005-1/1/2006).\nMultiple comma-delimited dates can also be passed to this method (12/24/2005,12/11/2005-12/13/2005).\nThis method can also take a JavaScript Date object or an array of Date objects."}], "guessedname": "_toFieldArray", "guessedtype": "function"}, "renderCellStyleSelected": {"return": {"type": "String", "description": "YAHOO.widget.Calendar.STOP_RENDER if rendering should stop with this style, null or nothing if rendering\nshould not be terminated"}, "params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Applies the default style used for rendering selected dates to the current calendar cell", "guessedname": "renderCellStyleSelected", "guessedtype": "function"}, "configToday": {"description": "The default handler for the \"today\" property", "guessedname": "configToday", "guessedtype": "function"}, "clearElement": {"params": [{"type": "HTMLTableCellElement", "name": "cell", "description": " The cell to clear"}], "description": "Clears the inner HTML, CSS class and style information from the specified cell.", "guessedname": "clearElement", "guessedtype": "function"}, "renderCellDefault": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Renders a single standard calendar cell in the calendar widget table.\nAll logic for determining how a standard default cell will be rendered is \nencapsulated in this method, and must be accounted for when extending the\nwidget class.", "guessedname": "renderCellDefault", "guessedtype": "function"}, "subtractMonths": {"params": [{"type": "Number", "name": "count", "description": " The number of months to subtract from the current calendar"}], "description": "Subtracts the designated number of months from the current calendar month, and sets the current\ncalendar page date to the new month.", "guessedname": "subtractMonths", "guessedtype": "function"}, "buildDayLabel": {"return": {"type": "String", "description": "The formatted day label"}, "params": [{"type": "Date", "name": "workingDate", "description": " The current working date"}], "description": "Builds the date digit that will be displayed in calendar cells", "guessedname": "buildDayLabel", "guessedtype": "function"}, "toDate": {"return": {"type": "Date", "description": "JavaScript Date object representing the date field array."}, "params": [{"type": "Number[]", "name": "dateFieldArray", "description": " The date field array to convert to a JavaScript Date."}], "description": "Converts a date field array [yyyy,mm,dd] to a JavaScript Date object. The date field array\nis the format in which dates are as provided as arguments to selectEvent and deselectEvent listeners.", "guessedname": "toDate", "guessedtype": "function"}, "configPageDate": {"description": "The default handler for the \"pagedate\" property", "guessedname": "configPageDate", "guessedtype": "function"}, "createCloseButton": {"return": {"type": "", "description": "The close HTML element created"}, "description": "Creates the close button HTML element and adds it to Calendar container DIV", "guessedname": "createCloseButton", "guessedtype": "function"}, "destroy": {"description": "Destroys the Calendar instance. The method will remove references\nto HTML elements, remove any event listeners added by the Calendar,\nand destroy the Config and CalendarNavigator instances it has created.", "guessedname": "destroy", "guessedtype": "function"}, "configTitle": {"description": "Default handler for the \"title\" property", "guessedname": "configTitle", "guessedtype": "function"}, "selectCell": {"return": {"type": "Date[]", "description": "Array of JavaScript Date objects representing all individual dates that are currently selected."}, "params": [{"type": "Number", "name": "cellIndex", "description": " The index of the cell to select in the current calendar."}], "description": "Selects a date on the current calendar by referencing the index of the cell that should be selected.\nThis method is used to easily select a single cell (usually with a mouse click) without having to do\na full render. The selected style is applied to the cell directly.\nIf the cell is not marked with the CSS_CELL_SELECTABLE class (as is the case by default for out of month \nor out of bounds cells), it will not be selected and in such a case beforeSelect and select events will not be fired.", "guessedname": "selectCell", "guessedtype": "function"}, "doPreviousMonthNav": {"params": [{"type": "DOMEvent", "name": "e", "description": " The DOM event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar"}], "description": "The default event handler for clicks on the \"Previous Month\" navigation UI", "guessedname": "doPreviousMonthNav", "guessedtype": "function"}, "removeTitleBar": {"description": "Removes the title bar element from the DOM", "guessedname": "removeTitleBar", "guessedtype": "function"}, "configMinDate": {"description": "The default handler for the \"mindate\" property", "guessedname": "configMinDate", "guessedtype": "function"}, "hide": {"description": "Hides the Calendar's outer container from view.", "guessedname": "hide", "guessedtype": "function"}, "validate": {"type": "Boolean", "return": {"type": "", "description": "Should return true if the widget validates, and false if\nit doesn't."}, "description": "Validates the calendar widget. This method has no default implementation\nand must be extended by subclassing the widget.", "guessedname": "validate", "guessedtype": "function"}, "getDateByCellId": {"return": {"type": "Date", "description": "The Date object for the specified Calendar cell"}, "params": [{"type": "String", "name": "id", "description": " The id of the cell"}], "description": "Retrieves the Date object for the specified Calendar cell", "guessedname": "getDateByCellId", "guessedtype": "function"}, "clear": {"description": "Clears the selected dates in the current calendar widget and sets the calendar\nto the current month and year.", "guessedname": "clear", "guessedtype": "function"}, "configIframe": {"description": "Default Config listener for the iframe property. If the iframe config property is set to true, \nrenders the built-in IFRAME shim if the container is relatively or absolutely positioned.", "guessedname": "configIframe", "guessedtype": "function"}, "_toDate": {"return": {"type": "Date", "description": "JavaScript Date object representing the date field array"}, "description": "Converts a date field array [yyyy,mm,dd] to a JavaScript Date object.", "deprecated": "Made public, toDate", "private": "", "params": [{"type": "Number[]", "name": "dateFieldArray", "description": " The date field array to convert to a JavaScript Date."}], "guessedname": "_toDate", "guessedtype": "function"}, "onSelect": {"deprecated": "Event handlers for this event should be susbcribed to selectEvent.", "params": [{"type": "Array", "name": "selected", "description": " An array of date field arrays representing which date or dates were selected. Example: [ [2006,8,6],[2006,8,7],[2006,8,8] ]"}], "description": "Event executed when a date is selected in the calendar widget.", "guessedname": "onSelect", "guessedtype": "function"}, "setYear": {"params": [{"type": "Number", "name": "year", "description": "  The numeric 4-digit year"}], "description": "Sets the calendar's year explicitly.", "guessedname": "setYear", "guessedtype": "function"}, "renderCellStyleToday": {"params": [{"type": "Date", "name": "workingDate", "description": "  The current working Date object being used to generate the calendar"}, {"type": "HTMLTableCellElement", "name": "cell", "description": "   The current working cell in the calendar"}], "description": "Applies the default style used for rendering today's date to the current calendar cell", "guessedname": "renderCellStyleToday", "guessedtype": "function"}, "doNextMonthNav": {"params": [{"type": "DOMEvent", "name": "e", "description": " The DOM event"}, {"type": "Calendar", "name": "cal", "description": " A reference to the calendar"}], "description": "The default event handler for clicks on the \"Next Month\" navigation UI", "guessedname": "doNextMonthNav", "guessedtype": "function"}}, "file": "Calendar.js", "shortname": "Calendar", "properties": {"Style.CSS_HEADER_TEXT": {"guessedname": "CSS_HEADER_TEXT", "guessedtype": "property"}, "Style.CSS_CELL_RIGHT": {"guessedname": "CSS_CELL_RIGHT", "guessedtype": "property"}, "Style.CSS_CELL_BOTTOM": {"guessedname": "CSS_CELL_BOTTOM", "guessedtype": "property"}, "YAHOO.widget.Calendar.WEEKDAY": {"description": "Type constant used for renderers to represent a weekday", "static": "", "guessedname": "WEEKDAY", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Calendar.LONG": {"description": "Constant used to represent long date field string formats (e.g. Monday or February)", "static": "", "guessedname": "LONG", "guessedtype": "property", "type": "String", "final": ""}, "cfg": {"type": "YAHOO.util.Config", "description": "The Config object used to hold the configuration variables for the Calendar", "guessedname": "cfg", "guessedtype": "property"}, "Style.CSS_HEADER": {"guessedname": "CSS_HEADER", "guessedtype": "property"}, "Style.CSS_CELL_HIGHLIGHT4": {"guessedname": "CSS_CELL_HIGHLIGHT4", "guessedtype": "property"}, "Style.CSS_CONTAINER": {"guessedname": "CSS_CONTAINER", "guessedtype": "property"}, "YAHOO.widget.Calendar.MONTH_DAY": {"description": "Type constant used for renderers to represent an individual date across any year (M/D)", "static": "", "guessedname": "MONTH_DAY", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Calendar.IMG_ROOT": {"description": "The path to be used for images loaded for the Calendar", "deprecated": "You can now customize images by overriding the calclose, calnavleft and calnavright default CSS classes for the close icon, left arrow and right arrow respectively", "static": "", "guessedname": "IMG_ROOT", "guessedtype": "property", "type": "String"}, "Style.CSS_NAV_RIGHT": {"guessedname": "CSS_NAV_RIGHT", "guessedtype": "property"}, "Config": {"description": "The configuration object used to set up the calendars various locale and style options.", "deprecated": "Configuration properties should be set by calling Calendar.cfg.setProperty.", "private": "", "guessedname": "Config", "guessedtype": "property", "type": "Object"}, "id": {"type": "String", "description": "The id that uniquely identifies this Calendar.", "guessedname": "id", "guessedtype": "property"}, "_selectedDates": {"guessedname": "_selectedDates", "type": "Array", "description": "The private list of initially selected dates.", "private": "", "guessedtype": "property"}, "index": {"type": "Number", "description": "The index of this item in the parent group", "guessedname": "index", "guessedtype": "property"}, "YAHOO.widget.Calendar.ONE_CHAR": {"description": "Constant used to represent single character date field string formats (e.g. M, T, W)", "static": "", "guessedname": "ONE_CHAR", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Calendar.STOP_RENDER": {"description": "Constant used for halting the execution of the remainder of the render stack", "static": "", "guessedname": "STOP_RENDER", "guessedtype": "property", "type": "String", "final": ""}, "oNavigator": {"type": "CalendarNavigator", "description": "A reference to the CalendarNavigator instance created for this Calendar.\nWill be null if the \"navigator\" configuration property has not been set", "guessedname": "oNavigator", "guessedtype": "property"}, "YAHOO.widget.Calendar.MONTH": {"description": "Type constant used for renderers to represent a month across any year", "static": "", "guessedname": "MONTH", "guessedtype": "property", "type": "String", "final": ""}, "Style.CSS_LINK_CLOSE": {"guessedname": "CSS_LINK_CLOSE", "guessedtype": "property"}, "Style.CSS_CELL": {"guessedname": "CSS_CELL", "guessedtype": "property"}, "renderStack": {"type": "Array[]", "description": "The list of render functions, along with required parameters, used to render cells.", "guessedname": "renderStack", "guessedtype": "property"}, "Style.CSS_CELL_LEFT": {"guessedname": "CSS_CELL_LEFT", "guessedtype": "property"}, "Style.CSS_BODY": {"guessedname": "CSS_BODY", "guessedtype": "property"}, "Style.CSS_CELL_HIGHLIGHT1": {"guessedname": "CSS_CELL_HIGHLIGHT1", "guessedtype": "property"}, "Style.CSS_SINGLE": {"guessedname": "CSS_SINGLE", "guessedtype": "property"}, "_renderStack": {"guessedname": "_renderStack", "type": "Array", "description": "A copy of the initial render functions created before rendering.", "private": "", "guessedtype": "property"}, "Style.CSS_CELL_HIGHLIGHT3": {"guessedname": "CSS_CELL_HIGHLIGHT3", "guessedtype": "property"}, "Style.CSS_FIXED_SIZE": {"guessedname": "CSS_FIXED_SIZE", "guessedtype": "property"}, "today": {"deprecated": "Use the \"today\" configuration property", "type": "Date", "description": "A Date object representing today's date.", "guessedname": "today", "guessedtype": "property"}, "Style.CSS_CELL_HIGHLIGHT2": {"guessedname": "CSS_CELL_HIGHLIGHT2", "guessedtype": "property"}, "Style.CSS_WITH_TITLE": {"guessedname": "CSS_WITH_TITLE", "guessedtype": "property"}, "Style.CSS_WEEKDAY_CELL": {"guessedname": "CSS_WEEKDAY_CELL", "guessedtype": "property"}, "YAHOO.widget.Calendar.STYLES": {"type": "Object An object with name/value pairs for the class name identifier/value.", "static": "", "description": "The set of default style constants for the Calendar", "guessedname": "STYLES", "guessedtype": "property"}, "browser": {"description": "Returns a string representing the current browser.", "deprecated": "As of 2.3.0, environment information is available in YAHOO.env.ua", "see": "YAHOO.env.ua", "guessedname": "browser", "guessedtype": "function", "type": "String"}, "containerId": {"type": "String", "description": "The unique id associated with the Calendar's container", "guessedname": "containerId", "guessedtype": "property"}, "parent": {"type": "CalendarGroup", "description": "The parent CalendarGroup, only to be set explicitly by the parent group", "guessedname": "parent", "guessedtype": "property"}, "Style.CSS_CELL_OOM": {"guessedname": "CSS_CELL_OOM", "guessedtype": "property"}, "Style.CSS_CELL_OOB": {"guessedname": "CSS_CELL_OOB", "guessedtype": "property"}, "YAHOO.widget.Calendar._EVENT_TYPES": {"description": "The set of Custom Event types supported by the Calendar", "private": "", "static": "", "guessedname": "_EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "Style.CSS_CLOSE": {"guessedname": "CSS_CLOSE", "guessedtype": "property"}, "Style.CSS_CALENDAR": {"guessedname": "CSS_CALENDAR", "guessedtype": "property"}, "Style.CSS_CELL_TODAY": {"guessedname": "CSS_CELL_TODAY", "guessedtype": "property"}, "Style.CSS_FOOTER": {"guessedname": "CSS_FOOTER", "guessedtype": "property"}, "YAHOO.widget.Calendar._DEFAULT_CONFIG": {"description": "The set of default Config property keys and values for the Calendar", "deprecated": "Made public. See the public DEFAULT_CONFIG property for details", "private": "", "static": "", "guessedname": "_DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "YAHOO.widget.Calendar.MEDIUM": {"description": "Constant used to represent medium date field string formats (e.g. Mon)", "static": "", "guessedname": "MEDIUM", "guessedtype": "property", "type": "String", "final": ""}, "Style.CSS_CELL_SELECTABLE": {"guessedname": "CSS_CELL_SELECTABLE", "guessedtype": "property"}, "YAHOO.widget.Calendar.RANGE": {"description": "Type constant used for renderers to represent a range of individual dates (M/D/Y-M/D/Y)", "static": "", "guessedname": "RANGE", "guessedtype": "property", "type": "String", "final": ""}, "Style.CSS_CELL_HOVER": {"guessedname": "CSS_CELL_HOVER", "guessedtype": "property"}, "Style.CSS_CELL_SELECTOR": {"guessedname": "CSS_CELL_SELECTOR", "guessedtype": "property"}, "YAHOO.widget.Calendar.DEFAULT_CONFIG": {"type": "Object", "static": "", "description": "The set of default Config property keys and values for the Calendar.\n<p>\nNOTE: This property is made public in order to allow users to change \nthe default values of configuration properties. Users should not \nmodify the key string, unless they are overriding the Calendar implementation\n</p>\n<p>\nThe property is an object with key/value pairs, the key being the \nuppercase configuration property name and the value being an object \nliteral with a key string property, and a value property, specifying the \ndefault value of the property. To override a default value, you can set\nthe value property, for example, <code>YAHOO.widget.Calendar.DEFAULT_CONFIG.MULTI_SELECT.value = true;</code>", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property"}, "Options": {"type": "Object", "description": "The local object which contains the Calendar's options", "guessedname": "Options", "guessedtype": "property"}, "Style.CSS_WEEKDAY_ROW": {"guessedname": "CSS_WEEKDAY_ROW", "guessedtype": "property"}, "Style.CSS_CELL_RESTRICTED": {"guessedname": "CSS_CELL_RESTRICTED", "guessedtype": "property"}, "cellDates": {"type": "Array[](Number[])", "description": "The collection of calendar cell dates that is parallel to the cells collection. The array contains dates field arrays in the format of [YYYY, M, D].", "guessedname": "cellDates", "guessedtype": "property"}, "Style.CSS_ROW_HEADER": {"guessedname": "CSS_ROW_HEADER", "guessedtype": "property"}, "Style.CSS_ROW_FOOTER": {"guessedname": "CSS_ROW_FOOTER", "guessedtype": "property"}, "Style.CSS_CELL_TOP": {"guessedname": "CSS_CELL_TOP", "guessedtype": "property"}, "Locale": {"type": "Object", "description": "The local object which contains the Calendar's locale settings", "guessedname": "Locale", "guessedtype": "property"}, "cells": {"type": "HTMLTableCellElement[]", "description": "The collection of calendar table cells", "guessedname": "cells", "guessedtype": "property"}, "Style.CSS_CELL_SELECTED": {"guessedname": "CSS_CELL_SELECTED", "guessedtype": "property"}, "YAHOO.widget.Calendar.DATE": {"description": "Type constant used for renderers to represent an individual date (M/D/Y)", "static": "", "guessedname": "DATE", "guessedtype": "property", "type": "String", "final": ""}, "domEventMap": {"type": "Object", "description": "A map of DOM event handlers to attach to cells associated with specific CSS class names", "guessedname": "domEventMap", "guessedtype": "property"}, "YAHOO.widget.Calendar.DISPLAY_DAYS": {"description": "Constant that represents the total number of date cells that are displayed in a given month", "static": "", "guessedname": "DISPLAY_DAYS", "guessedtype": "property", "type": "Number", "final": ""}, "oDomContainer": {"type": "HTMLElement", "description": "The DOM element reference that points to this calendar's container element. The calendar will be inserted into this element when the shell is rendered.", "guessedname": "oDomContainer", "guessedtype": "property"}, "YAHOO.widget.Calendar._STYLES": {"description": "The set of default style constants for the Calendar", "deprecated": "Made public. See the public STYLES property for details", "private": "", "static": "", "guessedname": "_STYLES", "guessedtype": "property", "type": "Object", "final": ""}, "Style.CSS_NAV_LEFT": {"guessedname": "CSS_NAV_LEFT", "guessedtype": "property"}, "Style.CSS_NAV": {"guessedname": "CSS_NAV", "guessedtype": "property"}, "YAHOO.widget.Calendar.SHORT": {"description": "Constant used to represent short date field string formats (e.g. Tu or Feb)", "static": "", "guessedname": "SHORT", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Calendar is the base class for the Calendar widget. In its most basic\nimplementation, it has the ability to render a calendar widget on the page\nthat can be manipulated to select a single date, move back and forth between\nmonths and years.\n<p>To construct the placeholder for the calendar widget, the code is as\nfollows:\n<xmp>\n<div id=\"calContainer\"></div>\n</xmp>\n</p>\n<p>\n<strong>NOTE: As of 2.4.0, the constructor's ID argument is optional.</strong>\nThe Calendar can be constructed by simply providing a container ID string, \nor a reference to a container DIV HTMLElement (the element needs to exist \nin the document).\nE.g.:\n<xmp>\nvar c = new YAHOO.widget.Calendar(\"calContainer\", configOptions);\n</xmp>\nor:\n<xmp>\nvar containerDiv = YAHOO.util.Dom.get(\"calContainer\");\nvar c = new YAHOO.widget.Calendar(containerDiv, configOptions);\n</xmp>\n</p>\n<p>\nIf not provided, the ID will be generated from the container DIV ID by adding an \"_t\" suffix.\nFor example if an ID is not provided, and the container's ID is \"calContainer\", the Calendar's ID will be set to \"calContainer_t\".\n</p>"}, "YAHOO.widget.StackedBarSeries": {"name": "YAHOO.widget.StackedBarSeries", "constructors": [{"description": "StackedBarSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "StackedBarSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "StackedBarSeries", "description": "StackedBarSeries class for the YUI Charts widget."}, "YAHOO.widget.Axis": {"name": "YAHOO.widget.Axis", "constructors": [{"description": "Defines a CartesianChart's vertical or horizontal axis."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "Axis", "file": "Axis.js", "guessedtype": "function", "shortname": "Axis", "properties": {"title": {"type": "String", "description": "The text that will appear next to the axis to indicate information about the data that it displays.", "guessedname": "title", "guessedtype": "property"}, "labelFunction": {"type": "String", "description": "A string reference to the globally-accessible function that may be called to\ndetermine each of the label values for this axis. Also accepts function references.", "guessedname": "labelFunction", "guessedtype": "property"}, "type": {"type": "String", "description": "The type of axis.", "guessedname": "type", "guessedtype": "property"}, "reverse": {"type": "Boolean", "description": "If true, the items on the axis will be drawn in opposite direction.", "guessedname": "reverse", "guessedtype": "property"}, "labelSpacing": {"type": "Number", "description": "The space, in pixels, between labels on an axis.", "guessedname": "labelSpacing", "guessedtype": "property"}}, "description": "Defines a CartesianChart's vertical or horizontal axis."}, "YAHOO.util.Cookie": {"name": "YAHOO.util.Cookie", "namespace": "YAHOO.util", "module": "cookie", "guessedname": "Cookie", "methods": {"setSub": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Sets a sub cookie with a given name to a particular value.", "static": "", "guessedname": "setSub", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to set."}, {"type": "String", "name": "subName", "description": " The name of the subcookie to set."}, {"type": "Variant", "name": "value", "description": " The value to set."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string), expires (a Date object),\nand secure (true/false)."}]}, "_parseCookieHash": {"return": {"type": "Object", "description": "An object containing entries for each cookie value."}, "description": "Parses a cookie hash string into an object.", "private": "", "static": "", "guessedname": "_parseCookieHash", "guessedtype": "function", "params": [{"type": "String", "name": "text", "description": " The cookie hash string to parse. The string should already be URL-decoded."}]}, "set": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Sets a cookie with a given name and value.", "static": "", "guessedname": "set", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to set."}, {"type": "Variant", "name": "value", "description": " The value to set for the cookie."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string), expires (a Date object),\nraw (true/false), and secure (true/false)."}]}, "setSubs": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Sets a cookie with a given name to contain a hash of name-value pairs.", "static": "", "guessedname": "setSubs", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to set."}, {"type": "Object", "name": "value", "description": " An object containing name-value pairs."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string), expires (a Date object),\nand secure (true/false)."}]}, "exists": {"return": {"type": "Boolean", "description": "True if the cookie exists, false if not."}, "description": "Determines if the cookie with the given name exists. This is useful for\nBoolean cookies (those that do not follow the name=value convention).", "static": "", "guessedname": "exists", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to check."}]}, "get": {"return": {"type": "Variant", "description": "If no converter is specified, returns a string or null if\nthe cookie doesn't exist. If the converter is specified, returns the value\nreturned from the converter or null if the cookie doesn't exist."}, "description": "Returns the cookie value for the given name.", "static": "", "guessedname": "get", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to retrieve."}, {"type": "Object|Function", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: raw (true/false) and converter (a function).\nThe converter function is run on the value before returning it. The\nfunction is not used if the cookie doesn't exist. The function can be\npassed instead of the options object for backwards compatibility."}]}, "_parseCookieString": {"return": {"type": "Object", "description": "An object containing entries for each accessible cookie."}, "description": "Parses a cookie string into an object representing all accessible cookies.", "private": "", "static": "", "guessedname": "_parseCookieString", "guessedtype": "function", "params": [{"type": "String", "name": "text", "description": " The cookie string to parse."}, {"type": "Boolean", "name": "decode", "description": " (Optional) Indicates if the cookie values should be decoded or not. Default is true."}]}, "remove": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Removes a cookie from the machine by setting its expiration date to\nsometime in the past.", "static": "", "guessedname": "remove", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to remove."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string),\nand secure (true/false). The expires option will be overwritten\nby the method."}]}, "removeSub": {"return": {"type": "String", "description": "The created cookie string."}, "description": "Removes a subcookie with a given name. Removing the last subcookie\nwon't remove the entire cookie unless options.removeIfEmpty is true.", "static": "", "guessedname": "removeSub", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie in which the subcookie exists."}, {"type": "String", "name": "subName", "description": " The name of the subcookie to remove."}, {"type": "Object", "name": "options", "description": " (Optional) An object containing one or more\ncookie options: path (a string), domain (a string), expires (a Date object),\nremoveIfEmpty (true/false), and secure (true/false). This must be the same\nsettings as the original subcookie."}]}, "_createCookieHashString": {"return": {"type": "String", "description": "A string suitable for use as a cookie value."}, "description": "Formats a cookie value for an object containing multiple values.", "private": "", "static": "", "guessedname": "_createCookieHashString", "guessedtype": "function", "params": [{"type": "Object", "name": "hash", "description": " An object of key-value pairs to create a string for."}]}, "getSubs": {"return": {"type": "Object", "description": "An object of name-value pairs if the cookie with the given name\nexists, null if it does not."}, "description": "Returns an object containing name-value pairs stored in the cookie with the given name.", "static": "", "guessedname": "getSubs", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to retrieve."}]}, "getSub": {"return": {"type": "Variant", "description": "If the cookie doesn't exist, null is returned. If the subcookie\ndoesn't exist, null if also returned. If no converter is specified and the\nsubcookie exists, a string is returned. If a converter is specified and the\nsubcookie exists, the value returned from the converter is returned."}, "description": "Returns the value of a subcookie.", "static": "", "guessedname": "getSub", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie to retrieve."}, {"type": "String", "name": "subName", "description": " The name of the subcookie to retrieve."}, {"type": "Function", "name": "converter", "description": " (Optional) A function to run on the value before returning\nit. The function is not used if the cookie doesn't exist."}]}, "_createCookieString": {"return": {"type": "String", "description": "The formatted cookie string."}, "description": "Creates a cookie string that can be assigned into document.cookie.", "private": "", "static": "", "guessedname": "_createCookieString", "guessedtype": "function", "params": [{"type": "String", "name": "name", "description": " The name of the cookie."}, {"type": "String", "name": "value", "description": " The value of the cookie."}, {"type": "Boolean", "name": "encodeValue", "description": " True to encode the value, false to leave as-is."}, {"type": "Object", "name": "options", "description": " (Optional) Options for the cookie."}]}}, "static": "", "file": "Cookie.js", "guessedtype": "property", "shortname": "Cookie", "description": "Cookie utility."}, "YAHOO.widget.EditorInfo": {"name": "YAHOO.widget.EditorInfo", "namespace": "YAHOO.widget", "module": "editor", "guessedname": "EditorInfo", "methods": {"saveAll": {"params": [{"type": "HTMLElement", "name": "form", "description": " The form to check if this Editor instance belongs to"}], "description": "Saves all Editor instances on the page. If a form reference is passed, only Editor's bound to this form will be saved.", "guessedname": "saveAll", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the EditorInfo.", "guessedname": "toString", "guessedtype": "function"}, "getEditorById": {"return": {"type": "", "description": "Object <a href=\"YAHOO.widget.Editor.html\">YAHOO.widget.Editor</a>"}, "params": [{"type": "String/HTMLElement", "name": "id", "description": " The id or reference of the textarea to return the Editor instance of"}], "description": "Returns a reference to the Editor object associated with the given textarea", "guessedname": "getEditorById", "guessedtype": "function"}}, "static": "", "file": "simple-editor.js", "guessedtype": "property", "shortname": "EditorInfo", "properties": {"blankImage": {"guessedname": "blankImage", "type": "String", "description": "A reference to the blankImage url", "private": "", "guessedtype": "property"}, "_instances": {"guessedname": "_instances", "type": "Object", "description": "A reference to all editors on the page.", "private": "", "guessedtype": "property"}, "window": {"guessedname": "window", "type": "Object <a href=\"YAHOO.widget.EditorWindow.html\">YAHOO.widget.EditorWindow</a>", "description": "A reference to the currently open window object in any editor on the page.", "private": "", "guessedtype": "property"}, "panel": {"guessedname": "panel", "type": "Object <a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>", "description": "A reference to the currently open panel in any editor on the page.", "private": "", "guessedtype": "property"}}, "description": "Singleton object used to track the open window objects and panels across the various open editors"}, "YAHOO.widget.HTMLNode": {"name": "YAHOO.widget.HTMLNode", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node.  \nProviding a string is the same as providing an object with a single property named html.\nAll values in the oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private or functions.\nAll other attributes are made available in noderef.data, which\ncan be used to store custom attributes.  TreeView.getNode(s)ByProperty\ncan be used to retrieve a node by one of the attributes."}, {"type": "YAHOO.widget.Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated; use oData.expanded)"}, {"type": "boolean", "name": "hasIcon", "description": "  specifies whether or not leaf nodes should\nbe rendered with or without a horizontal line line and/or toggle icon. If the icon\nis not displayed, the content fills the space it would have occupied.\nThis option operates independently of the leaf node presentation logic\nfor dynamic nodes.\n(deprecated; use oData.hasIcon)"}], "description": "This implementation takes either a string or object for the\noData argument.  If is it a string, it will use it for the display\nof this node (and it can contain any html code).  If the parameter\nis an object,it looks for a parameter called \"html\" that will be\nused for this node's display."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "HTMLNode", "methods": {"getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if any node is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nIt will return false if any node loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getNodeDefinition", "guessedtype": "function"}}, "extends": "YAHOO.widget.Node", "superclass": "YAHOO.widget.Node", "file": "HTMLNode.js", "guessedtype": "function", "shortname": "HTMLNode", "properties": {"setHtml": {"param": "o {object} An html string or object containing an html property", "description": "Synchronizes the node.html, and the node's content", "guessedname": "setHtml", "guessedtype": "function"}, "_type": {"description": "The node type", "default": "\"HTMLNode\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}, "html": {"type": "string", "description": "The HTML content to use for this node's display", "guessedname": "html", "guessedtype": "property"}, "initContent": {"param": "oData {object} An html string or object containing an html property", "description": "Sets up the node label", "guessedname": "initContent", "guessedtype": "function"}, "contentStyle": {"type": "string", "description": "The CSS class for the html content container.  Defaults to ygtvhtml, but \ncan be overridden to provide a custom presentation for a specific node.", "guessedname": "contentStyle", "guessedtype": "property"}}, "description": "This implementation takes either a string or object for the\noData argument.  If is it a string, it will use it for the display\nof this node (and it can contain any html code).  If the parameter\nis an object,it looks for a parameter called \"html\" that will be\nused for this node's display."}, "YAHOO.util.ArrayAssert": {"name": "YAHOO.util.ArrayAssert", "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ArrayAssert", "methods": {"containsMatch": {"static": "", "params": [{"type": "Function", "name": "matcher", "description": " A function that returns true if the items matches or false if not."}, {"type": "Array", "name": "haystack", "description": " An array of values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value matching some condition is present in an array. This uses\na function to determine a match.", "guessedname": "containsMatch", "guessedtype": "function"}, "doesNotContain": {"static": "", "params": [{"type": "Object", "name": "needle", "description": " The value that is expected in the array."}, {"type": "Array", "name": "haystack", "description": " An array of values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is not present in an array. This uses the triple equals \nsign so no type cohersion may occur.", "guessedname": "doesNotContain", "guessedtype": "function"}, "indexOf": {"static": "", "params": [{"type": "Object", "name": "needle", "description": " The value to look for."}, {"type": "Array", "name": "haystack", "description": " The array to search in."}, {"type": "int", "name": "index", "description": " The index at which the value should exist."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that the given value is contained in an array at the specified index.\nThis uses the triple equals sign so no type cohersion will occur.", "guessedname": "indexOf", "guessedtype": "function"}, "itemsAreSame": {"static": "", "params": [{"type": "Array", "name": "expected", "description": " An array of the expected values."}, {"type": "Array", "name": "actual", "description": " Any array of the actual values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that the values in an array are the same, and in the same position,\nas values in another array. This uses the triple equals sign\nso no type cohersion will occur. Note that the array objects themselves\nneed not be the same for this test to pass.", "guessedname": "itemsAreSame", "guessedtype": "function"}, "contains": {"static": "", "params": [{"type": "Object", "name": "needle", "description": " The value that is expected in the array."}, {"type": "Array", "name": "haystack", "description": " An array of values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a value is present in an array. This uses the triple equals \nsign so no type cohersion may occur.", "guessedname": "contains", "guessedtype": "function"}, "containsItems": {"static": "", "params": [{"type": "Object[]", "name": "needles", "description": " An array of values that are expected in the array."}, {"type": "Array", "name": "haystack", "description": " An array of values to check."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a set of values are present in an array. This uses the triple equals \nsign so no type cohersion may occur. For this assertion to pass, all values must\nbe found.", "guessedname": "containsItems", "guessedtype": "function"}, "doesNotContainItems": {"static": "", "params": [{"type": "Object[]", "name": "needles", "description": " An array of values that are not expected in the array."}, {"type": "Array", "name": "haystack", "description": " An array of values to check."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that a set of values are not present in an array. This uses the triple equals \nsign so no type cohersion may occur. For this assertion to pass, all values must\nnot be found.", "guessedname": "doesNotContainItems", "guessedtype": "function"}, "itemsAreEquivalent": {"return": {"type": "Void", "description": ""}, "description": "Asserts that the values in an array are equivalent, and in the same position,\nas values in another array. This uses a function to determine if the values\nare equivalent. Note that the array objects themselves\nneed not be the same for this test to pass.", "static": "", "guessedname": "itemsAreEquivalent", "guessedtype": "function", "params": [{"type": "Array", "name": "expected", "description": " An array of the expected values."}, {"type": "Array", "name": "actual", "description": " Any array of the actual values."}, {"type": "Function", "name": "comparator", "description": " A function that returns true if the values are equivalent\nor false if not."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}]}, "itemsAreEqual": {"static": "", "params": [{"type": "Array", "name": "expected", "description": " An array of the expected values."}, {"type": "Array", "name": "actual", "description": " Any array of the actual values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that the values in an array are equal, and in the same position,\nas values in another array. This uses the double equals sign\nso type cohersion may occur. Note that the array objects themselves\nneed not be the same for this test to pass.", "guessedname": "itemsAreEqual", "guessedtype": "function"}, "isEmpty": {"static": "", "params": [{"type": "Array", "name": "actual", "description": " The array to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that an array is empty.", "guessedname": "isEmpty", "guessedtype": "function"}, "lastIndexOf": {"static": "", "params": [{"type": "Object", "name": "needle", "description": " The value to look for."}, {"type": "Array", "name": "haystack", "description": " The array to search in."}, {"type": "int", "name": "index", "description": " The index at which the value should exist."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that the given value is contained in an array at the specified index,\nstarting from the back of the array.\nThis uses the triple equals sign so no type cohersion will occur.", "guessedname": "lastIndexOf", "guessedtype": "function"}, "isNotEmpty": {"static": "", "params": [{"type": "Array", "name": "actual", "description": " The array to test."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that an array is not empty.", "guessedname": "isNotEmpty", "guessedtype": "function"}, "doesNotContainMatch": {"static": "", "params": [{"type": "Function", "name": "matcher", "description": " A function that returns true if the items matches or false if not."}, {"type": "Array", "name": "haystack", "description": " An array of values."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that no values matching a condition are present in an array. This uses\na function to determine a match.", "guessedname": "doesNotContainMatch", "guessedtype": "function"}}, "static": "", "file": "ArrayAssert.js", "guessedtype": "property", "shortname": "ArrayAssert", "description": "The ArrayAssert object provides functions to test JavaScript array objects\nfor a variety of cases."}, "YAHOO.widget.StackedColumnChart": {"name": "YAHOO.widget.StackedColumnChart", "constructors": [{"params": [{"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "StackedColumnChart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "StackedColumnChart", "uses": ["YAHOO.widget.CartesianChart"], "file": "ChartTypes.js", "guessedtype": "function", "shortname": "StackedColumnChart", "description": "StackedColumnChart class for the YUI Charts widget."}, "YAHOO.util.DataSourceBase": {"name": "YAHOO.util.DataSourceBase", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "Base class for the YUI DataSource utility."}], "namespace": "YAHOO.util", "module": "datasource", "properties": {"TYPE_HTMLTABLE": {"description": "Type is an HTML TABLE element. Data is parsed out of TR elements from all TBODY elements.", "default": "6", "guessedname": "TYPE_HTMLTABLE", "guessedtype": "property", "type": "Number", "final": ""}, "maxCacheEntries": {"default": "0", "type": "Number", "description": "Max size of the local cache.  Set to 0 to turn off caching.  Caching is\nuseful to reduce the number of server connections.  Recommended only for data\nsources that return comprehensive results for queries or when stale data is\nnot an issue.", "guessedname": "maxCacheEntries", "guessedtype": "property"}, "_oQueue": {"guessedname": "_oQueue", "type": "Object", "description": "Local queue of request connections, enabled if queue needs to be managed.", "private": "", "guessedtype": "property"}, "TYPE_SCRIPTNODE": {"description": "Type is hosted on a server via a dynamic script node.", "default": "7", "guessedname": "TYPE_SCRIPTNODE", "guessedtype": "property", "type": "Number", "final": ""}, "TYPE_TEXT": {"description": "Type is plain text.", "default": "5", "guessedname": "TYPE_TEXT", "guessedtype": "property", "type": "Number", "final": ""}, "_sName": {"guessedname": "_sName", "type": "String", "description": "Name of DataSource instance.", "private": "", "guessedtype": "property"}, "DataSourceBase._nTransactionId": {"description": "Internal class variable to assign unique transaction IDs.", "private": "", "static": "", "guessedname": "_nTransactionId", "guessedtype": "property", "type": "Number"}, "responseType": {"default": "YAHOO.util.DataSourceBase.TYPE_UNKNOWN", "type": "Number", "description": "Format of response:\n<dl>  \n<dt>TYPE_UNKNOWN</dt>\n<dt>TYPE_JSARRAY</dt>\n<dt>TYPE_JSON</dt>\n<dt>TYPE_XML</dt>\n<dt>TYPE_TEXT</dt>\n<dt>TYPE_HTMLTABLE</dt> \n</dl>", "guessedname": "responseType", "guessedtype": "property"}, "DataSourceBase._nIndex": {"description": "Internal class variable to index multiple DataSource instances.", "private": "", "static": "", "guessedname": "_nIndex", "guessedtype": "property", "type": "Number"}, "TYPE_XHR": {"description": "Type is hosted on a server via an XHR connection.", "default": "2", "guessedname": "TYPE_XHR", "guessedtype": "property", "type": "Number", "final": ""}, "useXPath": {"default": "false", "type": "Boolean", "description": "When working with XML data, setting this property to true enables support for\nXPath-syntaxed locators in schema definitions.", "guessedname": "useXPath", "guessedtype": "property"}, "TYPE_JSON": {"description": "Type is JSON.", "default": "3", "guessedname": "TYPE_JSON", "guessedtype": "property", "type": "Number", "final": ""}, "TYPE_UNKNOWN": {"description": "Type is unknown.", "default": "-1", "guessedname": "TYPE_UNKNOWN", "guessedtype": "property", "type": "Number", "final": ""}, "TYPE_JSFUNCTION": {"description": "Type is a JavaScript Function.", "default": "1", "guessedname": "TYPE_JSFUNCTION", "guessedtype": "property", "type": "Number", "final": ""}, "dataType": {"default": "YAHOO.util.DataSourceBase.TYPE_UNKNOWN", "type": "Number", "description": "Where the live data is held:\n<dl>  \n<dt>TYPE_UNKNOWN</dt>\n<dt>TYPE_LOCAL</dt>\n<dt>TYPE_XHR</dt>\n<dt>TYPE_SCRIPTNODE</dt>\n<dt>TYPE_JSFUNCTION</dt>\n</dl>", "guessedname": "dataType", "guessedtype": "property"}, "_aCache": {"guessedname": "_aCache", "type": "Object[]", "description": "Local cache of data result object literals indexed chronologically.", "private": "", "guessedtype": "property"}, "liveData": {"type": "Object", "description": "Pointer to live database.", "guessedname": "liveData", "guessedtype": "property"}, "TYPE_LOCAL": {"description": "Type is local.", "default": "8", "guessedname": "TYPE_LOCAL", "guessedtype": "property", "type": "Number", "final": ""}, "ERROR_DATAINVALID": {"description": "Error message for invalid dataresponses.", "default": "\"Invalid data\"", "guessedname": "ERROR_DATAINVALID", "guessedtype": "property", "type": "String", "final": ""}, "responseSchema": {"type": "Object", "description": "Response schema object literal takes a combination of the following properties:\n<dl>\n<dt>resultsList</dt> <dd>Pointer to array of tabular data</dd>\n<dt>resultNode</dt> <dd>Pointer to node name of row data (XML data only)</dd>\n<dt>recordDelim</dt> <dd>Record delimiter (text data only)</dd>\n<dt>fieldDelim</dt> <dd>Field delimiter (text data only)</dd>\n<dt>fields</dt> <dd>Array of field names (aka keys), or array of object literals\nsuch as: {key:\"fieldname\",parser:YAHOO.util.DataSourceBase.parseDate}</dd>\n<dt>metaFields</dt> <dd>Object literal of keys to include in the oParsedResponse.meta collection</dd>\n<dt>metaNode</dt> <dd>Name of the node under which to search for meta information in XML response data</dd>\n</dl>", "guessedname": "responseSchema", "guessedtype": "property"}, "TYPE_JSARRAY": {"description": "Type is a JavaScript Array.", "default": "0", "guessedname": "TYPE_JSARRAY", "guessedtype": "property", "type": "Number", "final": ""}, "TYPE_XML": {"description": "Type is XML.", "default": "4", "guessedname": "TYPE_XML", "guessedtype": "property", "type": "Number", "final": ""}, "ERROR_DATANULL": {"description": "Error message for null data responses.", "default": "\"Null data\"", "guessedname": "ERROR_DATANULL", "guessedtype": "property", "type": "String", "final": ""}, "parseJSONArgs": {"type": "{MIXED|Array} If an Array, contents are used as individual arguments.\nOtherwise, value is used as an additional argument.", "description": "Additional arguments passed to the JSON parse routine.  The JSON string\nis the assumed first argument (where applicable).  This property is not\nset by default, but the parse methods will use it if present."}, "DataSource.Parser": {"type": "Object", "static": "", "description": "Data parsing functions.", "guessedname": "Parser", "guessedtype": "property"}, "_aIntervals": {"guessedname": "_aIntervals", "type": "Array", "description": "Array of polling interval IDs that have been enabled, needed to clear all intervals.", "private": "", "guessedtype": "property"}}, "guessedname": "DataSourceBase", "methods": {"flushCache": {"description": "Flushes cache.", "guessedname": "flushCache", "guessedtype": "function"}, "getCachedResponse": {"return": {"type": "Object", "description": "Cached response object or null."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use callback object."}], "description": "Overridable method passes request to cache and returns cached response if any,\nrefreshing the hit in the cache as the newest item. Returns null if there is\nno cache hit.", "guessedname": "getCachedResponse", "guessedtype": "function"}, "parseArrayData": {"return": {"type": "Object", "description": "Parsed response object with the following properties:<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full Array from the live database."}], "description": "Overridable method parses Array data into a response object.", "guessedname": "parseArrayData", "guessedtype": "function"}, "sendRequest": {"return": {"type": "Number", "description": "Transaction ID, or null if response found in cache."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  An object literal with the following properties:\n<dl>\n<dt><code>success</code></dt>\n<dd>The function to call when the data is ready.</dd>\n<dt><code>failure</code></dt>\n<dd>The function to call upon a response failure condition.</dd>\n<dt><code>scope</code></dt>\n<dd>The object to serve as the scope for the success and failure handlers.</dd>\n<dt><code>argument</code></dt>\n<dd>Arbitrary data that will be passed back to the success and failure handlers.</dd>\n</dl>"}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "First looks for cached response, then sends request to live data. The\nfollowing arguments are passed to the callback function:\n<dl>\n<dt><code>oRequest</code></dt>\n<dd>The same value that was passed in as the first argument to sendRequest.</dd>\n<dt><code>oParsedResponse</code></dt>\n<dd>An object literal containing the following properties:\n<dl>\n<dt><code>tId</code></dt>\n<dd>Unique transaction ID number.</dd>\n<dt><code>results</code></dt>\n<dd>Schema-parsed data results.</dd>\n<dt><code>error</code></dt>\n<dd>True in cases of data error.</dd>\n<dt><code>cached</code></dt>\n<dd>True when response is returned from DataSource cache.</dd> \n<dt><code>meta</code></dt>\n<dd>Schema-parsed meta data.</dd>\n</dl>\n<dt><code>oPayload</code></dt>\n<dd>The same value as was passed in as <code>argument</code> in the oCallback object literal.</dd>\n</dl>", "guessedname": "sendRequest", "guessedtype": "function"}, "issueCallback": {"static": "", "params": [{"type": "Function|Object", "name": "callback", "description": "  the callback to execute"}, {"type": "Array", "name": "params", "description": "  params to be passed to the callback method"}, {"type": "Boolean", "name": "error", "description": "  whether an error occurred"}, {"type": "Object", "name": "scope", "description": "  the scope from which to execute the callback\n(deprecated - use an object literal callback)"}], "description": "Executes a configured callback.  For object literal callbacks, the third\nparam determines whether to execute the success handler or failure handler.", "guessedname": "issueCallback", "guessedtype": "function"}, "parseData": {"return": {"type": "Object} Parsed response object with the following properties:<br>\n- results {Array} Array of parsed data results<br>\n- meta {Object} Object literal of meta values<br>\n- error {Boolean", "description": "(optional) True if there was an error<br>"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full Array from the live database."}], "description": "Overridable method parses data of generic RESPONSE_TYPE into a response object.", "guessedname": "parseData", "guessedtype": "function"}, "parseTextData": {"return": {"type": "Object", "description": "Parsed response object with the following properties:<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full text response from the live database."}], "description": "Overridable method parses plain text data into a response object.", "guessedname": "parseTextData", "guessedtype": "function"}, "parseHTMLTableData": {"return": {"type": "Object", "description": "Parsed response object with the following properties<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full HTML element reference from the live database."}], "description": "Overridable method parses an HTML TABLE element reference into a response object.\nData is parsed out of TR elements from all TBODY elements.", "guessedname": "parseHTMLTableData", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the DataSource instance."}, "description": "Public accessor to the unique name of the DataSource instance.", "guessedname": "toString", "guessedtype": "function"}, "parseJSONData": {"return": {"type": "Object", "description": "Parsed response object with the following properties<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full JSON from the live database."}], "description": "Overridable method parses JSON data into a response object.", "guessedname": "parseJSONData", "guessedtype": "function"}, "doBeforeCallback": {"return": {"type": "Object", "description": "Parsed response object."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full response from the live database."}, {"type": "Object", "name": "oParsedResponse", "description": "  The parsed response to return to calling object."}, {"type": "Object", "name": "oCallback", "description": "  The callback object."}], "description": "Overridable method gives implementers access to the original full response and\nthe parsed response (parsed against the given schema) before the data\nis added to the cache (if applicable) and then sent back to callback function.\nThis is your chance to access the raw response and/or populate the parsed\nresponse with any custom data.", "guessedname": "doBeforeCallback", "guessedtype": "function"}, "addToCache": {"params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oResponse", "description": "  Response object to cache."}], "description": "Adds a new item to the cache. If cache is full, evicts the stalest item\nbefore adding the new item.", "guessedname": "addToCache", "guessedtype": "function"}, "DataSourceBase.parseNumber": {"return": {"type": "Number", "description": "A number, or null."}, "description": "Converts data to type Number.", "static": "", "guessedname": "parseNumber", "guessedtype": "function", "params": [{"type": "String | Number | Boolean", "name": "oData", "description": "  Data to convert. Note, the following\nvalues return as null: null, undefined, NaN, \"\"."}]}, "setInterval": {"return": {"type": "Number", "description": "Interval ID."}, "params": [{"type": "Number", "name": "nMsec", "description": "  Length of interval in milliseconds."}, {"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Function", "name": "oCallback", "description": "  Handler function to receive the response."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Sets up a polling mechanism to send requests at set intervals and forward\nresponses to given callback.", "guessedname": "setInterval", "guessedtype": "function"}, "parseXMLResult": {"return": {"type": "Object", "description": "Object literal of data for one result."}, "params": [{"type": "XML", "name": "result", "description": "  XML for one result."}], "description": "Overridable method parses XML data for one result into an object literal.", "guessedname": "parseXMLResult", "guessedtype": "function"}, "handleResponse": {"params": [{"type": "Object", "name": "oRequest", "description": "  Request object"}, {"type": "Object", "name": "oRawResponse", "description": "  The raw response from the live database."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}, {"type": "Number", "name": "tId", "description": "  Transaction ID."}], "description": "Receives raw data response and type converts to XML, JSON, etc as necessary.\nForwards oFullResponse to appropriate parsing function to get turned into\noParsedResponse. Calls doBeforeCallback() and adds oParsedResponse to \nthe cache when appropriate before calling issueCallback().\nThe oParsedResponse object literal has the following properties:\n<dl>\n<dd><dt>tId {Number}</dt> Unique transaction ID</dd>\n<dd><dt>results {Array}</dt> Array of parsed data results</dd>\n<dd><dt>meta {Object}</dt> Object literal of meta values</dd> \n<dd><dt>error {Boolean}</dt> (optional) True if there was an error</dd>\n<dd><dt>cached {Boolean}</dt> (optional) True if response was cached</dd>\n</dl>", "guessedname": "handleResponse", "guessedtype": "function"}, "clearInterval": {"params": [{"type": "Number", "name": "nId", "description": "  Interval ID."}], "description": "Disables polling mechanism associated with the given interval ID.", "guessedname": "clearInterval", "guessedtype": "function"}, "parseXMLData": {"return": {"type": "Object", "description": "Parsed response object with the following properties<br>\n- results (Array) Array of parsed data results<br>\n- error (Boolean) True if there was an error"}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full XML response from the live database."}], "description": "Overridable method parses XML data into a response object.", "guessedname": "parseXMLData", "guessedtype": "function"}, "DataSourceBase.parseDate": {"return": {"type": "Date", "description": "A Date instance."}, "description": "Converts data to type Date.", "static": "", "guessedname": "parseDate", "guessedtype": "function", "params": [{"type": "Date | String | Number", "name": "oData", "description": "  Data to convert."}]}, "makeConnection": {"return": {"type": "Number", "description": "Transaction ID."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Overridable default method generates a unique transaction ID and passes \nthe live data reference directly to the  handleResponse function. This\nmethod should be implemented by subclasses to achieve more complex behavior\nor to access remote data.", "guessedname": "makeConnection", "guessedtype": "function"}, "doBeforeParseData": {"return": {"type": "Object", "description": "Full response for parsing."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oFullResponse", "description": "  The full response from the live database."}, {"type": "Object", "name": "oCallback", "description": "  The callback object."}], "description": "Overridable method gives implementers access to the original full response\nbefore the data gets parsed. Implementers should take care not to return an\nunparsable or otherwise invalid response.", "guessedname": "doBeforeParseData", "guessedtype": "function"}, "DataSourceBase.parseString": {"return": {"type": "String", "description": "A string, or null."}, "description": "Converts data to type String.", "static": "", "guessedname": "parseString", "guessedtype": "function", "params": [{"type": "String | Number | Boolean | Date | Array | Object", "name": "oData", "description": "  Data to parse.\nThe special values null and undefined will return null."}]}, "_getLocationValue": {"return": {"type": "Object", "description": "Data value or null."}, "description": "Get an XPath-specified value for a given field from an XML node or document.", "private": "", "static": "", "guessedname": "_getLocationValue", "guessedtype": "function", "params": [{"type": "String | Object", "name": "field", "description": "  Field definition."}, {"type": "Object", "name": "context", "description": "  XML node or document to search within."}]}, "isCacheHit": {"return": {"type": "Boolean", "description": "True if given request matches cached request, false otherwise."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCachedRequest", "description": "  Cached request object."}], "description": "Default overridable method matches given request to given cached request.\nReturns true if is a hit, returns false otherwise.  Implementers should\noverride this method to customize the cache-matching algorithm.", "guessedname": "isCacheHit", "guessedtype": "function"}, "clearAllIntervals": {"description": "Disables all known polling intervals.", "guessedname": "clearAllIntervals", "guessedtype": "function"}}, "file": "DataSource.js", "guessedtype": "function", "shortname": "DataSourceBase", "events": {"dataErrorEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "String", "name": "oArgs.response", "description": "  The response object (if available)."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}, {"type": "String", "name": "oArgs.message", "description": "  The error message."}], "description": "Fired when an error is encountered with the live data source."}, "responseEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.response", "description": "  The raw response object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Number", "name": "oArgs.tId", "description": "  Transaction ID."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when live data source sends response."}, "responseCacheEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.response", "description": "  The parsed response object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when response is cached."}, "cacheFlushEvent": {"description": "Fired when the local cache is flushed."}, "requestEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Number", "name": "oArgs.tId", "description": "  Transaction ID."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when a request is sent to the live data source."}, "cacheRequestEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when a request is made to the local cache."}, "responseParseEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.response", "description": "  The parsed response object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when response is parsed."}, "cacheResponseEvent": {"params": [{"type": "Object", "name": "oArgs.request", "description": "  The request object."}, {"type": "Object", "name": "oArgs.response", "description": "  The response object."}, {"type": "Object", "name": "oArgs.callback", "description": "  The callback object."}, {"type": "Object", "name": "oArgs.caller", "description": "  (deprecated) Use callback.scope."}], "description": "Fired when data is retrieved from the local cache."}}, "description": "Base class for the YUI DataSource utility."}, "YAHOO.util.UnexpectedError": {"name": "YAHOO.util.UnexpectedError", "constructors": [{"params": [{"type": "Error", "name": "cause", "description": " The unexpected error that caused this error to be \nthrown."}], "description": "UnexpectedError is subclass of AssertionError that is thrown whenever\nan error occurs within the course of a test and the test was not expected\nto throw an error."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "UnexpectedError", "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "UnexpectedError", "properties": {"cause": {"type": "Error", "description": "The unexpected error that occurred."}, "name": {"type": "String", "description": "The name of the error that occurred."}, "stack": {"type": "String", "description": "Stack information for the error (if provided)."}}, "description": "UnexpectedError is subclass of AssertionError that is thrown whenever\nan error occurs within the course of a test and the test was not expected\nto throw an error."}, "YAHOO.util.DataSource": {"name": "YAHOO.util.DataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "Factory class for creating a BaseDataSource subclass instance. The sublcass is\ndetermined by oLiveData's type, unless the dataType config is explicitly passed in."}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "DataSource", "file": "DataSource.js", "guessedtype": "function", "shortname": "DataSource", "description": "Factory class for creating a BaseDataSource subclass instance. The sublcass is\ndetermined by oLiveData's type, unless the dataType config is explicitly passed in."}, "YAHOO.tool.TestRunner": {"name": "YAHOO.tool.TestRunner", "namespace": "YAHOO.tool", "module": "yuitest", "events": {"testcasebegin": {"description": "Fires when a test case is opened but before the first \ntest is executed."}, "testcasecomplete": {"description": "Fires when all tests in a test case have been executed."}, "begin": {"description": "Fires when the run() method is called."}, "ignore": {"description": "Fires when a test has been ignored."}, "testsuitebegin": {"description": "Fires when a test suite is opened but before the first \ntest is executed."}, "testsuitecomplete": {"description": "Fires when all test cases in a test suite have been\ncompleted."}, "pass": {"description": "Fires when a test has passed."}, "fail": {"description": "Fires when a test has failed."}, "complete": {"description": "Fires when all test suites and test cases have been completed."}}, "methods": {"_run": {"return": {"type": "Object", "description": "Results of the execution with properties passed, failed, and total."}, "description": "Runs a test case or test suite, returning the results.", "private": "", "static": "", "guessedname": "_run", "guessedtype": "function", "params": [{"type": "YAHOO.tool.TestCase|YAHOO.tool.TestSuite", "name": "testObject", "description": " The test case or test suite to run."}]}, "run": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Runs the test suite.", "guessedname": "run", "guessedtype": "function"}, "resume": {"return": {"type": "Void", "description": ""}, "description": "Resumes the TestRunner after wait() was called.", "static": "", "guessedname": "resume", "guessedtype": "function", "params": [{"type": "Function", "name": "segment", "description": " The function to run as the rest\nof the haulted test."}]}, "_handleTestObjectComplete": {"return": {"type": "Void", "description": ""}, "description": "Handles the completion of a test object's tests. Tallies test results \nfrom one level up to the next.", "private": "", "static": "", "guessedname": "_handleTestObjectComplete", "guessedtype": "function", "params": [{"type": "TestNode", "name": "node", "description": " The TestNode representing the test object."}]}, "_addTestCaseToTestTree": {"return": {"type": "Void", "description": ""}, "description": "Adds a test case to the test tree as a child of the specified node.", "private": "", "static": "", "guessedname": "_addTestCaseToTestTree", "guessedtype": "function", "params": [{"type": "TestNode", "name": "parentNode", "description": " The node to add the test case to as a child."}, {"type": "YAHOO.tool.TestCase", "name": "testCase", "description": " The test case to add."}]}, "clear": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Removes all test objects from the runner.", "guessedname": "clear", "guessedtype": "function"}, "_buildTestTree": {"return": {"type": "Void", "description": ""}, "description": "Builds the test tree based on items in the master suite. The tree is a hierarchical\nrepresentation of the test suites, test cases, and test functions. The resulting tree\nis stored in _root and the pointer _cur is set to the root initially.", "private": "", "static": "", "guessedname": "_buildTestTree", "guessedtype": "function"}, "_addTestSuiteToTestTree": {"return": {"type": "Void", "description": ""}, "description": "Adds a test suite to the test tree as a child of the specified node.", "private": "", "static": "", "guessedname": "_addTestSuiteToTestTree", "guessedtype": "function", "params": [{"type": "TestNode", "name": "parentNode", "description": " The node to add the test suite to as a child."}, {"type": "YAHOO.tool.TestSuite", "name": "testSuite", "description": " The test suite to add."}]}, "add": {"return": {"type": "Void", "description": ""}, "description": "Adds a test suite or test case to the list of test objects to run.", "static": "", "guessedname": "add", "guessedtype": "function", "params": [{"type": "", "name": "testObject", "description": " Either a TestCase or a TestSuite that should be run."}]}, "_next": {"return": {"type": "TestNode", "description": "The next node in the test tree or null if the end is reached."}, "description": "Retrieves the next node in the test tree.", "private": "", "static": "", "guessedname": "_next", "guessedtype": "function"}, "fireEvent": {"description": "Fires events for the TestRunner. This overrides the default fireEvent()\nmethod from EventProvider to add the type property to the data that is\npassed through on each event call.", "protected": "", "static": "", "guessedname": "fireEvent", "guessedtype": "function", "params": [{"type": "String", "name": "type", "description": " The type of event to fire."}, {"type": "Object", "name": "data", "description": " (Optional) Data for the event."}]}, "_runTest": {"return": {"type": "Void", "description": ""}, "description": "Runs a single test based on the data provided in the node.", "private": "", "static": "", "guessedname": "_runTest", "guessedtype": "function", "params": [{"type": "TestNode", "name": "node", "description": " The TestNode representing the test to run."}], "name": "_runTest"}}, "static": "", "file": "TestRunner.js", "shortname": "TestRunner", "properties": {"_root": {"description": "Pointer to the root node in the test tree.", "private": "", "static": "", "guessedname": "_root", "guessedtype": "property", "type": "TestNode"}, "_cur": {"description": "Pointer to the current node in the test tree.", "private": "", "static": "", "guessedname": "_cur", "guessedtype": "property", "type": "TestNode"}, "masterSuite": {"type": "YAHOO.tool.TestSuite", "static": "", "description": "Suite on which to attach all TestSuites and TestCases to be run.", "private": ""}}, "description": "Runs test suites and test cases, providing events to allowing for the\ninterpretation of test results."}, "YAHOO.widget.Series": {"name": "YAHOO.widget.Series", "constructors": [{"description": "Functionality common to most series. Generally, a <code>Series</code> \nobject shouldn't be instantiated directly. Instead, a subclass with a \nconcrete implementation should be used."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "Series", "file": "Series.js", "guessedtype": "function", "shortname": "Series", "properties": {"displayName": {"type": "String", "description": "The human-readable name of the series.", "guessedname": "displayName", "guessedtype": "property"}, "type": {"type": "String", "description": "The type of series.", "guessedname": "type", "guessedtype": "property"}}, "description": "Functionality common to most series. Generally, a <code>Series</code> \nobject shouldn't be instantiated directly. Instead, a subclass with a \nconcrete implementation should be used."}, "YAHOO.util.Dom.Color": {"name": "YAHOO.util.Dom.Color", "namespace": "YAHOO.util.Dom", "module": "dom", "guessedname": "TO_STRING", "methods": {"toRGB": {"returns": "{String} The converted string", "params": [{"type": "String", "name": "val", "description": " The string to convert to RGB notation."}], "description": "Converts a hex or color string to an rgb string: rgb(0,0,0)", "guessedname": "toRGB", "guessedtype": "function"}, "toHex": {"returns": "{String} The converted string", "params": [{"type": "String", "name": "val", "description": " The string to convert to hex notation."}], "description": "Converts an rgb or color string to a hex string: #123456", "guessedname": "toHex", "guessedtype": "function"}}, "file": "Color.js", "guessedtype": "property", "shortname": "Color", "properties": {"KEYWORDS": {"type": "Object", "description": "Color keywords used when converting to Hex", "guessedname": "KEYWORDS", "guessedtype": "property"}, "re_RGB": {"guessedname": "re_RGB", "type": "Regex", "description": "Regex to parse rgb(0,0,0) formatted strings", "private": "", "guessedtype": "property"}, "re_hex3": {"guessedname": "re_hex3", "type": "Regex", "description": "Regex to parse #123 formatted strings", "private": "", "guessedtype": "property"}, "re_hex": {"guessedname": "re_hex", "type": "Regex", "description": "Regex to parse #123456 formatted strings", "private": "", "guessedtype": "property"}}, "description": "Add style management functionality to DOM."}, "YAHOO.util.DDTarget": {"name": "YAHOO.util.DDTarget", "constructors": [{"params": [{"type": "String", "name": "id", "description": " the id of the element that is a drop target"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop objects"}, {"type": "object", "name": "config", "description": " an object containing configurable attributes\nValid properties for DDTarget in addition to those in \nDragDrop: \nnone"}], "description": "A DragDrop implementation that does not move, but can be a drop \ntarget.  You would get the same result by simply omitting implementation \nfor the event callbacks, but this way we reduce the processing cost of the \nevent listener and the callbacks."}], "namespace": "YAHOO.util", "module": "dragdrop", "guessedname": "DDTarget", "extends": "YAHOO.util.DragDrop", "superclass": "YAHOO.util.DragDrop", "file": "DDTarget.js", "guessedtype": "function", "shortname": "DDTarget", "description": "A DragDrop implementation that does not move, but can be a drop \ntarget.  You would get the same result by simply omitting implementation \nfor the event callbacks, but this way we reduce the processing cost of the \nevent listener and the callbacks."}, "YAHOO.widget.ButtonGroup": {"name": "YAHOO.widget.ButtonGroup", "configs": {"disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the button group should be \ndisabled.  Disabling the button group will disable each button \nin the button group.  Disabled buttons are dimmed and will not \nrespond to user input or fire events."}, "checkedButton": {"default": "null", "type": "{<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>}", "description": "Reference for the button in the button group that \nis checked."}, "container": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|String", "description": "HTML element reference or string specifying the id \nattribute of the HTML element that the button group's markup\nshould be rendered into.", "writeonce": ""}, "name": {"default": "null", "type": "String", "description": "String specifying the name for the button group.  \nThis name will be applied to each button in the button group."}, "value": {"default": "null", "type": "Object", "description": "Object specifying the value for the button group."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the button group."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><div></code> element of the button group."}, {"type": "Object", "name": "p_oElement", "description": " Object literal specifying a set of \nconfiguration attributes used to create the button group."}, {"type": "Object", "name": "p_oAttributes", "description": " Optional. Object literal specifying a set \nof configuration attributes used to create the button group."}], "description": "The ButtonGroup class creates a set of buttons that are mutually \nexclusive; checking one button in the set will uncheck all others in the \nbutton group."}], "namespace": "YAHOO.widget", "module": "button", "events": {"beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "beforeCheckedButtonChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCheckedButtonChange", "description": "Fires before the value for the configuration attribute 'checkedButton' changes. Return false to cancel the attribute change."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "beforeContainerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainerChange", "description": "Fires before the value for the configuration attribute 'container' changes. Return false to cancel the attribute change."}, "checkedButtonChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "checkedButtonChange", "description": "Fires when the value for the configuration attribute 'checkedButton' changes."}, "containerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containerChange", "description": "Fires when the value for the configuration attribute 'container' changes."}, "nameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "nameChange", "description": "Fires when the value for the configuration attribute 'name' changes."}, "beforeNameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNameChange", "description": "Fires before the value for the configuration attribute 'name' changes. Return false to cancel the attribute change."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}}, "guessedname": "ButtonGroup", "methods": {"getButton": {"return": {"type": "<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>", "description": ""}, "params": [{"type": "Number", "name": "p_nIndex", "description": " The index of the button to retrieve from the \nbutton group."}], "description": "Returns the button at the specified index.", "guessedname": "getButton", "guessedtype": "function"}, "_setDisabled": {"protected": "", "params": [{"type": "Boolean", "name": "p_bDisabled", "description": " Boolean indicating the value for\nthe button group's \"disabled\" attribute."}], "description": "Sets the value of the button groups's \n\"disabled\" attribute.", "guessedname": "_setDisabled", "guessedtype": "function"}, "getButtons": {"return": {"type": "Array", "description": ""}, "description": "Returns an array of the buttons in the button group.", "guessedname": "getButtons", "guessedtype": "function"}, "destroy": {"description": "Removes the button group's element from its parent \nelement and removes all event handlers.", "guessedname": "destroy", "guessedtype": "function"}, "addButtons": {"return": {"type": "Array", "description": ""}, "params": [{"type": "Array", "name": "p_aButtons", "description": " Array of <a href=\"YAHOO.widget.Button.html\">\nYAHOO.widget.Button</a> instances to be added \nto the button group."}, {"type": "Array", "name": "p_aButtons", "description": " Array of strings specifying the id \nattribute of the <code><input></code> or <code><span>\n</code> elements to be used to create the buttons to be added to the \nbutton group."}, {"type": "Array", "name": "p_aButtons", "description": " Array of object references for the \n<code><input></code> or <code><span></code> elements \nto be used to create the buttons to be added to the button group."}, {"type": "Array", "name": "p_aButtons", "description": " Array of object literals, each containing\na set of <a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>  \nconfiguration attributes used to configure each button to be added \nto the button group."}], "description": "Adds the array of buttons to the button group.", "guessedname": "addButtons", "guessedtype": "function"}, "focus": {"params": [{"type": "Number", "name": "p_nIndex", "description": " Number indicating the index of the button \nto focus."}], "description": "Sets focus to the button at the specified index.", "guessedname": "focus", "guessedtype": "function"}, "addButton": {"return": {"type": "<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>", "description": ""}, "params": [{"type": "<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>", "name": "p_oButton", "description": " Object reference for the <a href=\"YAHOO.widget.Button.html\">\nYAHOO.widget.Button</a> instance to be added to the button group."}, {"type": "String", "name": "p_oButton", "description": " String specifying the id attribute of the \n<code><input></code> or <code><span></code> element \nto be used to create the button to be added to the button group."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|<a href=\"\nhttp://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#\nID-33759296\">HTMLElement</a>", "name": "p_oButton", "description": " Object reference for the \n<code><input></code> or <code><span></code> element \nto be used to create the button to be added to the button group."}, {"type": "Object", "name": "p_oButton", "description": " Object literal specifying a set of \n<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a> \nconfiguration attributes used to configure the button to be added to \nthe button group."}], "description": "Adds the button to the button group.", "guessedname": "addButton", "guessedtype": "function"}, "removeButton": {"params": [{"type": "Number", "name": "p_nIndex", "description": " Number specifying the index of the button \nto be removed from the button group."}], "description": "Removes the button at the specified index from the \nbutton group.", "guessedname": "removeButton", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><div></code> element of the button group."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "name": "p_oElement", "description": " Object \nspecifying the <code><div></code> element of the button group."}, {"type": "Object", "name": "p_oElement", "description": " Object literal specifying a set of  \nconfiguration attributes used to create the button group."}, {"type": "Object", "name": "p_oAttributes", "description": " Optional. Object literal specifying a\nset of configuration attributes used to create the button group."}], "description": "The ButtonGroup class's initialization method.", "guessedname": "init", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "p_oAttributes", "description": " Object literal specifying a set of \nconfiguration attributes used to create the button group."}], "description": "Initializes all of the configuration attributes used to  \ncreate the button group.", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the button group.", "guessedname": "toString", "guessedtype": "function"}, "getCount": {"return": {"type": "Number", "description": ""}, "description": "Returns the number of buttons in the button group.", "guessedname": "getCount", "guessedtype": "function"}, "_onAppendTo": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the event that was fired."}], "description": "\"appendTo\" event handler for the button group.", "guessedname": "_onAppendTo", "guessedtype": "function"}, "_onButtonCheckedChange": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the event that was fired."}, {"type": "<a href=\"YAHOO.widget.Button.html\">YAHOO.widget.Button</a>", "name": "p_oButton", "description": " Object representing the button that fired the event."}], "description": "\"checkedChange\" event handler for each button in the \nbutton group.", "guessedname": "_onButtonCheckedChange", "guessedtype": "function"}, "_onKeyDown": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"keydown\" event handler for the button group.", "guessedname": "_onKeyDown", "guessedtype": "function"}, "check": {"params": [{"type": "Number", "name": "p_nIndex", "description": " Number indicating the index of the button \nto check."}], "description": "Checks the button at the specified index.", "guessedname": "check", "guessedtype": "function"}, "_createGroupElement": {"protected": "", "return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-22445964\">HTMLDivElement</a>", "description": ""}, "description": "Creates the button group's element.", "guessedname": "_createGroupElement", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "buttongroup.js", "guessedtype": "function", "shortname": "ButtonGroup", "properties": {"CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied  \nto the button group's element.", "default": "\"buttongroup\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "_buttons": {"description": "Array of buttons in the button group.", "default": "null", "protected": "", "guessedname": "_buttons", "guessedtype": "property", "type": "Array"}, "CLASS_NAME_PREFIX": {"description": "Prefix used for all class names applied to a ButtonGroup.", "default": "\"yui-\"", "guessedname": "CLASS_NAME_PREFIX", "guessedtype": "property", "type": "String", "final": ""}, "NODE_NAME": {"description": "The name of the tag to be used for the button \ngroup's element.", "default": "\"DIV\"", "guessedname": "NODE_NAME", "guessedtype": "property", "type": "String", "final": ""}}, "description": "The ButtonGroup class creates a set of buttons that are mutually \nexclusive; checking one button in the set will uncheck all others in the \nbutton group."}, "YAHOO.util.ImageLoader.pngBgImgObj": {"name": "YAHOO.util.ImageLoader.pngBgImgObj", "constructors": [{"params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}, {"type": "Object", "name": "ailProps", "description": " The AlphaImageLoader properties to be set for the image\nValid properties are 'sizingMethod' and 'enabled'"}], "description": "PNG background image object. A PNG background image is one whose URL is specified through AlphaImageLoader or by \"background-image\" in the element's style"}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "pngBgImgObj", "methods": {"_applyUrl": {"guessedname": "_applyUrl", "params": [{"type": "Object", "name": "el", "description": "\tHTML DOM element"}], "description": "Inserts the image URL into the DOM so that the image is displayed.\nIf the browser is determined to be IE6 (or older), sets the AlphaImageLoader src; otherwise sets style.backgroundImage", "private": "", "guessedtype": "function"}}, "extends": "YAHOO.util.ImageLoader.imgObj", "superclass": "YAHOO.util.ImageLoader.imgObj", "file": "ImageLoader.js", "guessedtype": "function", "shortname": "pngBgImgObj", "properties": {"props": {"type": "Object", "description": "AlphaImageLoader properties to be set for the image.\nValid properties are \"sizingMethod\" and \"enabled\".", "guessedname": "props", "guessedtype": "property"}}, "description": "PNG background image object. A PNG background image is one whose URL is specified through AlphaImageLoader or by \"background-image\" in the element's style"}, "YAHOO.widget.MenuManager": {"name": "YAHOO.widget.MenuManager", "namespace": "YAHOO.widget", "module": "menu", "guessedname": "MenuManager", "methods": {"getFocusedMenu": {"return": {"type": "YAHOO.widget.Menu", "description": ""}, "description": "Returns a reference to the menu that currently \nhas focus.", "guessedname": "getFocusedMenu", "guessedtype": "function"}, "getMenuItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "params": [{"type": "String", "name": "p_sId", "description": " String specifying the id of the \n<code><li></code> element representing the menu item to\nbe retrieved."}], "description": "Returns a menu item with the specified id.", "guessedname": "getMenuItem", "guessedtype": "function"}, "onDOMEvent": {"params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "Generic, global event handler for all of a menu's \nDOM-based events.  This listens for events against the document \nobject.  If the target of a given event is a member of a menu or \nmenu item's DOM, the instance's corresponding Custom Event is fired.", "private": ""}, "getMenu": {"return": {"type": "YAHOO.widget.Menu", "description": ""}, "params": [{"type": "String", "name": "p_sId", "description": " String specifying the id of the \n<code><div></code> element representing the menu to\nbe retrieved."}], "description": "Returns a menu with the specified id.", "guessedname": "getMenu", "guessedtype": "function"}, "onMenuVisibleConfigChange": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "Event handler for when the \"visible\" configuration  \nproperty of a Menu instance changes.", "private": ""}, "getMenuRootElement": {"params": [{"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>", "name": "p_oElement", "description": " Object \nspecifying an HTML element."}], "description": "Finds the root DIV node of a menu or the root LI node of \na menu item.", "private": ""}, "addMenu": {"params": [{"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object specifying the Menu  \ninstance to be added."}], "description": "Adds a menu to the collection of known menus.", "guessedname": "addMenu", "guessedtype": "function"}, "onMenuDestroy": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}, {"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " The menu that fired the event."}], "description": "\"destroy\" event handler for a menu.", "private": ""}, "onMenuBlur": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"blur\" event handler for a MenuItem instance.", "private": ""}, "getVisible": {"return": {"type": "Object", "description": ""}, "description": "Returns a collection of all visible menus registered\nwith the menu manger.", "guessedname": "getVisible", "guessedtype": "function"}, "getFocusedMenuItem": {"return": {"type": "YAHOO.widget.MenuItem", "description": ""}, "description": "Returns a reference to the menu item that currently \nhas focus.", "guessedname": "getFocusedMenuItem", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the menu manager.", "guessedname": "toString", "guessedtype": "function"}, "getMenuItemGroup": {"return": {"type": "Array", "description": ""}, "params": [{"type": "String", "name": "p_sId", "description": " String specifying the id of the \n<code><ul></code> element representing the group of \nmenu items to be retrieved."}], "description": "Returns an array of menu item instances whose \ncorresponding <code><li></code> elements are child \nnodes of the <code><ul></code> element with the \nspecified id.", "guessedname": "getMenuItemGroup", "guessedtype": "function"}, "removeItem": {"params": [{"type": "MenuItem", "name": "p_oMenuItem", "description": " The MenuItem instance to be removed."}], "description": "Removes a MenuItem instance from the MenuManager's collection of MenuItems.", "private": ""}, "getMenus": {"return": {"type": "Object", "description": ""}, "description": "Returns a collection of all menus registered with the \nmenu manger.", "guessedname": "getMenus", "guessedtype": "function"}, "onItemDestroy": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"destroy\" event handler for a MenuItem instance.", "private": ""}, "onItemAdded": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"itemadded\" event handler for a Menu instance.", "private": ""}, "onMenuFocus": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"focus\" event handler for a MenuItem instance.", "private": ""}, "hideVisible": {"description": "Hides all visible, dynamically positioned menus \n(excluding instances of YAHOO.widget.MenuBar).", "guessedname": "hideVisible", "guessedtype": "function"}, "removeMenu": {"params": [{"type": "YAHOO.widget.Menu", "name": "p_oMenu", "description": " Object specifying the Menu  \ninstance to be removed."}], "description": "Removes a menu from the collection of known menus.", "guessedname": "removeMenu", "guessedtype": "function"}}, "static": "", "file": "menumanager.js", "guessedtype": "function", "shortname": "MenuManager", "description": "Singleton that manages a collection of all menus and menu items.  Listens \nfor DOM events at the document level and dispatches the events to the \ncorresponding menu or menu item."}, "YAHOO.widget.Logger": {"name": "YAHOO.widget.Logger", "namespace": "YAHOO.widget", "module": "logger", "events": {"logResetEvent": {"description": "Fired when the Logger has been reset has been created.", "guessedname": "logResetEvent", "guessedtype": "property"}, "newLogEvent": {"params": [{"type": "String", "name": "sMsg", "description": "  Log message."}], "description": "Fired when a new log message has been created.", "guessedname": "newLogEvent", "guessedtype": "property"}, "sourceCreateEvent": {"params": [{"type": "String", "name": "sSource", "description": "  Source name."}], "description": "Fired when a new source has been named.", "guessedname": "sourceCreateEvent", "guessedtype": "property"}, "categoryCreateEvent": {"params": [{"type": "String", "name": "sCategory", "description": "  Category name."}], "description": "Fired when a new category has been created.", "guessedname": "categoryCreateEvent", "guessedtype": "property"}}, "guessedname": "Logger", "methods": {"reset": {"description": "Resets internal stack and startTime, enables Logger, and fires logResetEvent.", "guessedname": "reset", "guessedtype": "function"}, "_isNewSource": {"return": {"type": "Boolean", "description": "Returns true if source is unknown, else returns false."}, "description": "Checks to see if a source already exists.", "private": "", "params": [{"type": "String", "name": "sSource", "description": "  Source name."}], "guessedname": "_isNewSource", "guessedtype": "function"}, "getStack": {"return": {"type": "Object[]", "description": "Array of log message objects."}, "description": "Public accessor to internal stack of log message objects.", "guessedname": "getStack", "guessedtype": "function"}, "log": {"params": [{"type": "String", "name": "sMsg", "description": "  The log message."}, {"type": "String", "name": "sCategory", "description": "  Category of log message, or null."}, {"type": "String", "name": "sSource", "description": "  Source of LogWriter, or null if global."}], "description": "Saves a log message to the stack and fires newLogEvent. If the log message is\nassigned to an unknown category, creates a new category. If the log message is\nfrom an unknown source, creates a new source.  If browser console is enabled,\noutputs the log message to browser console.", "guessedname": "log", "guessedtype": "function"}, "_onWindowError": {"guessedname": "_onWindowError", "params": [{"type": "String", "name": "sMsg", "description": "  The error message."}, {"type": "String", "name": "sUrl", "description": "  URL of the error."}, {"type": "String", "name": "sLine", "description": "  Line number of the error."}], "description": "Handles logging of messages due to window error events.", "private": "", "guessedtype": "function"}, "_isNewCategory": {"return": {"type": "Boolean", "description": "Returns true if category is unknown, else returns false."}, "description": "Checks to see if a category has already been created.", "private": "", "params": [{"type": "String", "name": "sCategory", "description": "  Category name."}], "guessedname": "_isNewCategory", "guessedtype": "function"}, "handleWindowErrors": {"description": "Surpresses native JavaScript errors and outputs to console. By default,\nLogger does not handle JavaScript window error events.\nNB: Not all browsers support the window.onerror event.", "guessedname": "handleWindowErrors", "guessedtype": "function"}, "_printToBrowserConsole": {"guessedname": "_printToBrowserConsole", "params": [{"type": "Object", "name": "oEntry", "description": "  Log entry object."}], "description": "Outputs a log message to global console.log() function.", "private": "", "guessedtype": "function"}, "_createNewCategory": {"guessedname": "_createNewCategory", "params": [{"type": "String", "name": "sCategory", "description": "  Category name."}], "description": "Creates a new category of log messages and fires categoryCreateEvent.", "private": "", "guessedtype": "function"}, "_createNewSource": {"guessedname": "_createNewSource", "params": [{"type": "String", "name": "sSource", "description": "  Source name."}], "description": "Creates a new source of log messages and fires sourceCreateEvent.", "private": "", "guessedtype": "function"}, "enableBrowserConsole": {"description": "Enables output to the browser's global console.log() function, which is used\nby the Firebug extension to Firefox as well as Safari.", "guessedname": "enableBrowserConsole", "guessedtype": "function"}, "disableBrowserConsole": {"description": "Disables output to the browser's global console.log() function, which is used\nby the Firebug extension to Firefox as well as Safari.", "guessedname": "disableBrowserConsole", "guessedtype": "function"}, "unhandleWindowErrors": {"description": "Unsurpresses native JavaScript errors. By default,\nLogger does not handle JavaScript window error events.\nNB: Not all browsers support the window.onerror event.", "guessedname": "unhandleWindowErrors", "guessedtype": "function"}, "getStartTime": {"return": {"type": "Date", "description": "Internal date of when Logger singleton was initialized."}, "description": "Public accessor to internal start time.", "guessedname": "getStartTime", "guessedtype": "function"}}, "static": "", "file": "Logger.js", "guessedtype": "property", "shortname": "Logger", "properties": {"maxStackEntries": {"default": "2500", "type": "Number", "static": "", "description": "Upper limit on size of internal stack."}, "_lastTime": {"type": "Date", "static": "", "description": "Timestamp of last logged message.", "private": ""}, "_startTime": {"type": "Date", "static": "", "description": "Static timestamp of Logger initialization.", "private": ""}, "_browserConsoleEnabled": {"default": "false", "type": "Boolean", "static": "", "description": "Internal property to track whether output to browser console is enabled.", "private": ""}, "loggerEnabled": {"default": "true", "type": "Boolean", "static": "", "description": "True if Logger is enabled, false otherwise."}, "sources": {"default": "[\"global\"]", "type": "String[]", "static": "", "description": "Array of sources."}, "_stack": {"type": "Array", "static": "", "description": "Array to hold all log messages.", "private": ""}, "categories": {"default": "[\"info\",\"warn\",\"error\",\"time\",\"window\"]", "type": "String[]", "static": "", "description": "Array of categories."}}, "description": "The singleton Logger class provides core log management functionality. Saves\nlogs written through the global YAHOO.log function or written by a LogWriter\ninstance. Provides access to logs for reading by a LogReader instance or\nnative browser console such as the Firebug extension to Firefox or Safari's\nJavaScript console through integration with the console.log() method."}, "YAHOO.widget.Overlay": {"name": "YAHOO.widget.Overlay", "configs": {"iframe": {"default": "true for IE6 and below, false for all other browsers.", "type": "Boolean", "description": "Boolean indicating whether or not the Overlay should \nhave an IFRAME shim; used to prevent SELECT elements from \npoking through an Overlay instance in IE6.  When set to \"true\", \nthe iframe shim is created when the Overlay instance is intially\nmade visible."}, "constraintoviewport": {"default": "false", "type": "Boolean", "description": "True if the Overlay should be prevented from being positioned \nout of the viewport."}, "height": {"default": "null", "type": "String", "description": "CSS height of the Overlay."}, "zIndex": {"default": "null", "type": "Number", "description": "CSS z-index of the Overlay."}, "width": {"default": "null", "type": "String", "description": "CSS width of the Overlay."}, "xy": {"default": "null", "type": "Number[]", "description": "An array with the absolute x and y positions of the Overlay"}, "preventcontextoverlap": {"default": "false", "type": "Boolean", "description": "Boolean indicating whether or not the Overlay should overlap its \ncontext element (defined using the \"context\" configuration property) when the \n\"constraintoviewport\" configuration property is set to \"true\"."}, "context": {"default": "null", "type": "Array", "description": "<p>\nThe array of context arguments for context-sensitive positioning. \n</p>\n<p>\nThe format of the array is: <code>[contextElementOrId, overlayCorner, contextCorner, arrayOfTriggerEvents (optional), xyOffset (optional)]</code>, the\nthe 5 array elements described in detail below:\n</p>\n<dl>\n<dt>contextElementOrId <String|HTMLElement></dt>\n<dd>A reference to the context element to which the overlay should be aligned (or it's id).</dd>\n<dt>overlayCorner <String></dt>\n<dd>The corner of the overlay which is to be used for alignment. This corner will be aligned to the \ncorner of the context element defined by the \"contextCorner\" entry which follows. Supported string values are: \n\"tr\" (top right), \"tl\" (top left), \"br\" (bottom right), or \"bl\" (bottom left).</dd>\n<dt>contextCorner <String></dt>\n<dd>The corner of the context element which is to be used for alignment. Supported string values are the same ones listed for the \"overlayCorner\" entry above.</dd>\n<dt>arrayOfTriggerEvents (optional) <Array[String|CustomEvent]></dt>\n<dd>\n<p>\nBy default, context alignment is a one time operation, aligning the Overlay to the context element when context configuration property is set, or when the <a href=\"#method_align\">align</a> \nmethod is invoked. However, you can use the optional \"arrayOfTriggerEvents\" entry to define the list of events which should force the overlay to re-align itself with the context element. \nThis is useful in situations where the layout of the document may change, resulting in the context element's position being modified.\n</p>\n<p>\nThe array can contain either event type strings for events the instance publishes (e.g. \"beforeShow\") or CustomEvent instances. Additionally the following\n3 static container event types are also currently supported : <code>\"windowResize\", \"windowScroll\", \"textResize\"</code> (defined in <a href=\"#property__TRIGGER_MAP\">_TRIGGER_MAP</a> private property).\n</p>\n</dd>\n<dt>xyOffset <Number[]></dt>\n<dd>\nA 2 element Array specifying the X and Y pixel amounts by which the Overlay should be offset from the aligned corner. e.g. [5,0] offsets the Overlay 5 pixels to the left, <em>after</em> aligning the given context corners.\nNOTE: If using this property and no triggers need to be defined, the arrayOfTriggerEvents property should be set to null to maintain correct array positions for the arguments. \n</dd>\n</dl>\n<p>\nFor example, setting this property to <code>[\"img1\", \"tl\", \"bl\"]</code> will \nalign the Overlay's top left corner to the bottom left corner of the\ncontext element with id \"img1\".\n</p>\n<p>\nSetting this property to <code>[\"img1\", \"tl\", \"bl\", null, [0,5]</code> will \nalign the Overlay's top left corner to the bottom left corner of the\ncontext element with id \"img1\", and then offset it by 5 pixels on the Y axis (providing a 5 pixel gap between the bottom of the context element and top of the overlay).\n</p>\n<p>\nAdding the optional trigger values: <code>[\"img1\", \"tl\", \"bl\", [\"beforeShow\", \"windowResize\"], [0,5]]</code>,\nwill re-align the overlay position, whenever the \"beforeShow\" or \"windowResize\" events are fired.\n</p>"}, "autofillheight": {"default": "null", "type": "String", "description": "Standard module element which should auto fill out the height of the Overlay if the height config property is set.\nSupported values are \"header\", \"body\", \"footer\"."}, "y": {"default": "null", "type": "Number", "description": "The absolute y-coordinate position of the Overlay"}, "x": {"default": "null", "type": "Number", "description": "The absolute x-coordinate position of the Overlay"}, "fixedcenter": {"default": "false", "type": "Boolean | String", "description": "Determines whether or not the Overlay should be anchored \nto the center of the viewport.\n<p>This property can be set to:</p>\n<dl>\n<dt>true</dt>\n<dd>\nTo enable fixed center positioning\n<p>\nWhen enabled, the overlay will \nbe positioned in the center of viewport when initially displayed, and \nwill remain in the center of the viewport whenever the window is \nscrolled or resized.\n</p>\n<p>\nIf the overlay is too big for the viewport, \nit's top left corner will be aligned with the top left corner of the viewport.\n</p>\n</dd>\n<dt>false</dt>\n<dd>\nTo disable fixed center positioning.\n<p>In this case the overlay can still be \ncentered as a one-off operation, by invoking the <code>center()</code> method,\nhowever it will not remain centered when the window is scrolled/resized.\n</dd>\n<dt>\"contained\"<dt>\n<dd>To enable fixed center positioning, as with the <code>true</code> option.\n<p>However, unlike setting the property to <code>true</code>, \nwhen the property is set to <code>\"contained\"</code>, if the overlay is \ntoo big for the viewport, it will not get automatically centered when the \nuser scrolls or resizes the window (until the window is large enough to contain the \noverlay). This is useful in cases where the Overlay has both header and footer \nUI controls which the user may need to access.\n</p>\n</dd>\n</dl>"}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Overlay <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Overlay"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this Overlay. See configuration \ndocumentation for more details."}], "description": "Overlay is a Module that is absolutely positioned above the page flow. It \nhas convenience methods for positioning and sizing, as well as options for \ncontrolling zIndex and constraining the Overlay's position to the current \nvisible viewport. Overlay also contains a dynamicly generated IFRAME which \nis placed beneath it for Internet Explorer 6 and 5.x so that it will be \nproperly rendered above SELECT elements."}], "namespace": "YAHOO.widget", "module": "container", "events": {"YAHOO.widget.Overlay.windowScrollEvent": {"description": "A singleton CustomEvent used for reacting to the DOM event for \nwindow scroll", "guessedname": "windowScrollEvent", "guessedtype": "property"}, "moveEvent": {"params": [{"type": "Number", "name": "x", "description": " x coordinate"}, {"type": "Number", "name": "y", "description": " y coordinate"}], "description": "CustomEvent fired after the Overlay is moved.", "guessedname": "moveEvent", "guessedtype": "property"}, "YAHOO.widget.Overlay.windowResizeEvent": {"description": "A singleton CustomEvent used for reacting to the DOM event for\nwindow resize", "guessedname": "windowResizeEvent", "guessedtype": "property"}, "beforeMoveEvent": {"params": [{"type": "Number", "name": "x", "description": " x coordinate"}, {"type": "Number", "name": "y", "description": " y coordinate"}], "description": "CustomEvent fired before the Overlay is moved.", "guessedname": "beforeMoveEvent", "guessedtype": "property"}}, "guessedname": "Overlay", "methods": {"moveTo": {"params": [{"type": "Number", "name": "x", "description": " The Overlay's new x position"}, {"type": "Number", "name": "y", "description": " The Overlay's new y position"}], "description": "Moves the Overlay to the specified position. This function is  \nidentical to calling this.cfg.setProperty(\"xy\", [x,y]);", "guessedname": "moveTo", "guessedtype": "function"}, "stackIframe": {"description": "Sets the zindex of the iframe shim, if it exists, based on the zindex of\nthe Overlay element. The zindex of the iframe is set to be one less \nthan the Overlay element's zindex.\n<p>NOTE: This method will not bump up the zindex of the Overlay element\nto ensure that the iframe shim has a non-negative zindex.\nIf you require the iframe zindex to be 0 or higher, the zindex of \nthe Overlay element should be set to a value greater than 0, before \nthis method is called.\n</p>", "guessedname": "stackIframe", "guessedtype": "function"}, "showIframe": {"description": "Shows the iframe shim, if it has been enabled.", "guessedname": "showIframe", "guessedtype": "function"}, "configFixedCenter": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"fixedcenter\" property \nis changed.", "guessedname": "configFixedCenter", "guessedtype": "function"}, "YAHOO.widget.Overlay.windowResizeHandler": {"static": "", "params": [{"type": "DOMEvent", "name": "e", "description": " The DOM resize event"}], "description": "The DOM event handler used to fire the CustomEvent for window resize", "guessedname": "windowResizeHandler", "guessedtype": "function"}, "showMacGeckoScrollbars": {"description": "Adds a CSS class (\"show-scrollbars\") and removes a CSS class \n(\"hide-scrollbars\") to the Overlay to fix a bug in Gecko on Mac OS X \n(https://bugzilla.mozilla.org/show_bug.cgi?id=187435)", "guessedname": "showMacGeckoScrollbars", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Overlay."}, "description": "Returns a String representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "_getConstrainedPos": {"return": {"type": "Number", "description": "The constrained coordinate value"}, "description": "Shared implementation method for getConstrainedX and getConstrainedY.\n<p>\nGiven a coordinate value, returns the calculated coordinate required to \nposition the Overlay if it is to be constrained to the viewport, based on the \ncurrent element size, viewport dimensions, scroll values and preventoverlap \nsettings\n</p>", "protected": "", "params": [{"type": "String", "name": "pos", "description": " The coordinate which needs to be constrained, either \"x\" or \"y\""}, {"type": "Number", "name": "The", "description": " coordinate value which needs to be constrained"}], "guessedname": "_getConstrainedPos", "guessedtype": "function"}, "hideMacGeckoScrollbars": {"description": "Adds a CSS class (\"hide-scrollbars\") and removes a CSS class \n(\"show-scrollbars\") to the Overlay to fix a bug in Gecko on Mac OS X \n(https://bugzilla.mozilla.org/show_bug.cgi?id=187435)", "guessedname": "hideMacGeckoScrollbars", "guessedtype": "function"}, "_setDomVisibility": {"protected": "", "params": [{"type": "boolean", "name": "visible", "description": " Whether to show or hide the Overlay's outer element"}], "description": "Internal implementation to set the visibility of the overlay in the DOM.", "guessedname": "_setDomVisibility", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Overlay which are fired  \nautomatically at appropriate times by the Overlay class.", "guessedname": "initEvents", "guessedtype": "function"}, "fitsInViewport": {"return": {"type": "", "description": "boolean true if the Overlay will fit, false if not"}, "description": "Determines if the Overlay (including the offset value defined by Overlay.VIEWPORT_OFFSET) \nwill fit entirely inside the viewport, in both dimensions - width and height.", "guessedname": "fitsInViewport", "guessedtype": "function"}, "bringToTop": {"description": "Places the Overlay on top of all other instances of \nYAHOO.widget.Overlay.", "guessedname": "bringToTop", "guessedtype": "function"}, "_processTriggers": {"protected": "", "params": [{"type": "Array[String|CustomEvent]", "name": "triggers", "description": " An array of either CustomEvents, event type strings \n(e.g. \"beforeShow\", \"windowScroll\") to/from which the provided function should be \nsubscribed/unsubscribed respectively."}, {"type": "String", "name": "mode", "description": " Either \"subscribe\" or \"unsubscribe\", specifying whether or not\nwe are subscribing or unsubscribing trigger listeners"}, {"type": "Function", "name": "fn", "description": " The function to be subscribed/unsubscribed to/from the trigger event.\nContext is always set to the overlay instance, and no additional object argument \nget passed to the subscribed function."}], "description": "Utility method that subscribes or unsubscribes the given \nfunction from the list of trigger events provided.", "guessedname": "_processTriggers", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Overlay <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Overlay"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this Overlay. \nSee configuration documentation for more details."}], "description": "The Overlay initialization method, which is executed for Overlay and  \nall of its subclasses. This method is automatically called by the \nconstructor, and  sets up all DOM references for pre-existing markup, \nand creates required markup if it is not already present.", "guessedname": "init", "guessedtype": "function"}, "configXY": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"xy\" property is changed.", "guessedname": "configXY", "guessedtype": "function"}, "_getPreciseHeight": {"return": {"type": "Float", "description": "The sub-pixel height if supported by the browser, else the rounded height."}, "description": "Returns the sub-pixel height of the el, using getBoundingClientRect, if available,\notherwise returns the offsetHeight", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": ""}], "guessedname": "_getPreciseHeight", "guessedtype": "function"}, "_autoFillOnHeightChange": {"protected": "", "params": [{"type": "String", "name": "type", "description": " The event type"}, {"type": "Array", "name": "args", "description": " The array of arguments passed to event subscribers"}, {"type": "HTMLElement", "name": "el", "description": " The header, body or footer element which is to be resized to fill\nout the containers height"}], "description": "The default custom event handler executed when the overlay's height is changed, \nif the autofillheight property has been set.", "guessedname": "_autoFillOnHeightChange", "guessedtype": "function"}, "fillHeight": {"params": [{"type": "HTMLElement", "name": "el", "description": " The element which should be resized to fill out the height\nof the container element."}], "description": "<p>\nSets the height on the provided header, body or footer element to \nfill out the height of the container. It determines the height of the \ncontainers content box, based on it's configured height value, and \nsets the height of the autofillheight element to fill out any \nspace remaining after the other standard module element heights \nhave been accounted for.\n</p>\n<p><strong>NOTE:</strong> This method is not designed to work if an explicit \nheight has not been set on the container, since for an \"auto\" height container, \nthe heights of the header/body/footer will drive the height of the container.</p>", "guessedname": "fillHeight", "guessedtype": "function"}, "syncPosition": {"description": "Synchronizes the Panel's \"xy\", \"x\", and \"y\" properties with the \nPanel's position in the DOM. This is primarily used to update  \nposition information during drag & drop.", "guessedname": "syncPosition", "guessedtype": "function"}, "hideIframe": {"description": "Hides the iframe shim, if it has been enabled.", "guessedname": "hideIframe", "guessedtype": "function"}, "configHeight": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"height\" property is changed.", "guessedname": "configHeight", "guessedtype": "function"}, "getConstrainedXY": {"return": {"type": "Array", "description": "The constrained x and y coordinates at index 0 and 1 respectively;"}, "params": [{"type": "Number", "name": "x", "description": " The X coordinate value to be constrained"}, {"type": "Number", "name": "y", "description": " The Y coordinate value to be constrained"}], "description": "Given x, y coordinate values, returns the calculated coordinates required to \nposition the Overlay if it is to be constrained to the viewport, based on the \ncurrent element size, viewport dimensions and scroll values.", "guessedname": "getConstrainedXY", "guessedtype": "function"}, "configContext": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"context\" property\nis changed.", "guessedname": "configContext", "guessedtype": "function"}, "_preventOverlap": {"return": {"type": "Number", "description": "The new coordinate value which was set to prevent overlap"}, "description": "Helper method, used to position the Overlap to prevent overlap with the \ncontext element (used when preventcontextoverlap is enabled)", "protected": "", "params": [{"type": "String", "name": "pos", "description": " The coordinate to prevent overlap for, either \"x\" or \"y\"."}, {"type": "HTMLElement", "name": "contextEl", "description": " The context element"}, {"type": "Number", "name": "overlaySize", "description": " The related overlay dimension value (for \"x\", the width, for \"y\", the height)"}, {"type": "Number", "name": "viewportSize", "description": " The related viewport dimension value (for \"x\", the width, for \"y\", the height)"}, {"type": "Object", "name": "docScroll", "description": "  The related document scroll value (for \"x\", the scrollLeft, for \"y\", the scrollTop)"}], "guessedname": "_preventOverlap", "guessedtype": "function"}, "onDomResize": {"params": [{"type": "DOMEvent", "name": "e", "description": " The resize DOM event"}, {"type": "Object", "name": "obj", "description": " The scope object"}], "description": "Event handler fired when the resize monitor element is resized.", "guessedname": "onDomResize", "guessedtype": "function"}, "configConstrainToViewport": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for \nthe property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"constraintoviewport\" \nproperty is changed.", "guessedname": "configConstrainToViewport", "guessedtype": "function"}, "configVisible": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration\nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"visible\" property is \nchanged.  This method is responsible for firing showEvent\nand hideEvent.", "guessedname": "configVisible", "guessedtype": "function"}, "_validateAutoFillHeight": {"return": {"type": "", "description": "true, if valid, false otherwise"}, "description": "autofillheight validator. Verifies that the autofill value is either null \nor one of the strings : \"body\", \"header\" or \"footer\".", "protected": "", "params": [{"type": "String", "name": "val", "description": ""}], "guessedname": "_validateAutoFillHeight", "guessedtype": "function"}, "_alignOnTrigger": {"protected": "", "params": [{"type": "String", "name": "type", "description": " The event type (not used by the default implementation)"}, {"type": "Any[]", "name": "args", "description": " The array of arguments for the trigger event (not used by the default implementation)"}], "description": "Custom Event handler for context alignment triggers. Invokes the align method", "guessedname": "_alignOnTrigger", "guessedtype": "function"}, "configWidth": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"width\" property is changed.", "guessedname": "configWidth", "guessedtype": "function"}, "destroy": {"description": "Removes the Overlay element from the DOM and sets all child \nelements to null.", "guessedname": "destroy", "guessedtype": "function"}, "forceContainerRedraw": {"description": "Can be used to force the container to repaint/redraw it's contents.\n<p>\nBy default applies and then removes a 1px bottom margin through the \napplication/removal of a \"yui-force-redraw\" class.\n</p>\n<p>\nIt is currently used by Overlay to force a repaint for webkit \nbrowsers, when centering.\n</p>", "guessedname": "forceContainerRedraw", "guessedtype": "function"}, "_primeXYFromDOM": {"protected": "", "description": "Set's the container's XY value from DOM if not already set.\nDiffers from syncPosition, in that the XY value is only sync'd with DOM if \nnot already set. The method also refire's the XY config property event, so any\nbeforeMove, Move event listeners are invoked.", "guessedname": "_primeXYFromDOM", "guessedtype": "function"}, "configAutoFillHeight": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"autofillheight\" property is changed.", "guessedname": "configAutoFillHeight", "guessedtype": "function"}, "YAHOO.widget.Overlay.windowScrollHandler": {"static": "", "params": [{"type": "DOMEvent", "name": "e", "description": " The DOM scroll event"}], "description": "The DOM event handler used to fire the CustomEvent for window scroll", "guessedname": "windowScrollHandler", "guessedtype": "function"}, "center": {"description": "Centers the container in the viewport.", "guessedname": "center", "guessedtype": "function"}, "_findTriggerCE": {"guessedname": "_findTriggerCE", "params": [{"type": "String|CustomEvent", "name": "t", "description": " Either a CustomEvent, or event type (e.g. \"windowScroll\") for which a \ncustom event instance needs to be looked up from the Overlay._TRIGGER_MAP."}], "description": "Helper method to locate the custom event instance for the event name string\npassed in. As a convenience measure, any custom events passed in are returned.", "private": "", "guessedtype": "function"}, "align": {"params": [{"type": "String", "name": "elementAlign", "description": "  The String representing the corner of \nthe Overlay that should be aligned to the context element"}, {"type": "String", "name": "contextAlign", "description": "  The corner of the context element \nthat the elementAlign corner should stick to."}, {"type": "Number[]", "name": "xyOffset", "description": " Optional. A 2 element array specifying the x and y pixel offsets which should be applied\nafter aligning the element and context corners. For example, passing in [5, -10] for this value, would offset the \nOverlay by 5 pixels along the X axis (horizontally) and -10 pixels along the Y axis (vertically) after aligning the specified corners."}], "description": "Aligns the Overlay to its context element using the specified corner \npoints (represented by the constants TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, \nand BOTTOM_RIGHT.", "guessedname": "align", "guessedtype": "function"}, "syncIframe": {"description": "Syncronizes the size and position of iframe shim to that of its \ncorresponding Overlay instance.", "guessedname": "syncIframe", "guessedtype": "function"}, "configIframe": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"iframe\" property is changed.", "guessedname": "configIframe", "guessedtype": "function"}, "_getComputedHeight": {"return": {"type": "Number", "description": "The content box height of the given element, or null if it could not be determined."}, "description": "Determines the content box height of the given element (height of the element, without padding or borders) in pixels.", "private": "", "params": [{"type": "HTMLElement", "name": "el", "description": " The element for which the content height needs to be determined"}], "guessedname": "_getComputedHeight", "guessedtype": "function"}, "configY": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"y\" property is changed.", "guessedname": "configY", "guessedtype": "function"}, "configX": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"x\" property is changed.", "guessedname": "configX", "guessedtype": "function"}, "getConstrainedY": {"return": {"type": "Number", "description": "The constrained y coordinate"}, "params": [{"type": "Number", "name": "y", "description": " The Y coordinate value to be constrained"}], "description": "Given y coordinate value, returns the calculated y coordinate required to \nposition the Overlay if it is to be constrained to the viewport, based on the \ncurrent element size, viewport dimensions and scroll values.", "guessedname": "getConstrainedY", "guessedtype": "function"}, "getConstrainedX": {"return": {"type": "Number", "description": "The constrained x coordinate"}, "params": [{"type": "Number", "name": "x", "description": " The X coordinate value to be constrained"}], "description": "Given x coordinate value, returns the calculated x coordinate required to \nposition the Overlay if it is to be constrained to the viewport, based on the \ncurrent element size, viewport dimensions and scroll values.", "guessedname": "getConstrainedX", "guessedtype": "function"}, "configzIndex": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"zIndex\" property is changed.", "guessedname": "configzIndex", "guessedtype": "function"}, "doCenterOnDOMEvent": {"description": "Fixed center event handler used for centering on scroll/resize, but only if \nthe overlay is visible and, if \"fixedcenter\" is set to \"contained\", only if \nthe overlay fits within the viewport.", "guessedname": "doCenterOnDOMEvent", "guessedtype": "function"}, "enforceConstraints": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler executed when the moveEvent is fired, if the \n\"constraintoviewport\" is set to true.", "guessedname": "enforceConstraints", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be changed \nusing the Overlay's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Module", "superclass": "YAHOO.widget.Module", "file": "Overlay.js", "guessedtype": "function", "shortname": "Overlay", "properties": {"DEFAULT_CONFIG": {"description": "Constant representing the Overlay's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}, "YAHOO.widget.Overlay.CSS_IFRAME": {"description": "Constant representing the default CSS class used for an Overlay iframe shim.", "static": "", "guessedname": "CSS_IFRAME", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay.STD_MOD_RE": {"description": "Constant representing the names of the standard module elements\nused in the overlay.", "static": "", "guessedname": "STD_MOD_RE", "guessedtype": "property", "type": "RegExp", "final": ""}, "YAHOO.widget.Overlay.CSS_HIDDEN": {"description": "Constant representing the default hidden CSS class used for an Overlay. This class is \napplied to the overlay's outer DIV whenever it's hidden.", "static": "", "guessedname": "CSS_HIDDEN", "guessedtype": "property", "type": "String", "final": ""}, "CONTEXT_TRIGGERS": {"final": "", "type": "Array", "description": "<p>\nArray of default event types which will trigger\ncontext alignment for the Overlay class.\n</p>\n<p>The array is empty by default for Overlay,\nbut maybe populated in future releases, so classes extending\nOverlay which need to define their own set of CONTEXT_TRIGGERS\nshould concatenate their super class's prototype.CONTEXT_TRIGGERS \nvalue with their own array of values.\n</p>\n<p>\nE.g.:\n<code>CustomOverlay.prototype.CONTEXT_TRIGGERS = YAHOO.widget.Overlay.prototype.CONTEXT_TRIGGERS.concat([\"windowScroll\"]);</code>\n</p>", "guessedname": "CONTEXT_TRIGGERS", "guessedtype": "property"}, "YAHOO.widget.Overlay._TRIGGER_MAP": {"description": "Internal map of special event types, which are provided\nby the instance. It maps the event type to the custom event \ninstance. Contains entries for the \"windowScroll\", \"windowResize\" and\n\"textResize\" static container events.", "private": "", "static": "", "guessedname": "_TRIGGER_MAP", "guessedtype": "property", "type": "Object"}, "YAHOO.widget.Overlay.CSS_OVERLAY": {"description": "Constant representing the default CSS class used for an Overlay", "static": "", "guessedname": "CSS_OVERLAY", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay._initialized": {"guessedname": "_initialized", "type": "Boolean", "description": "A boolean that indicated whether the window resize and scroll events have \nalready been subscribed to.", "private": "", "guessedtype": "property"}, "YAHOO.widget.Overlay.BOTTOM_RIGHT": {"description": "Constant representing the bottom right corner of an element, used for \nconfiguring the context element alignment", "static": "", "guessedname": "BOTTOM_RIGHT", "guessedtype": "property", "type": "String", "final": ""}, "EVENT_TYPES": {"description": "Constant representing the name of the Overlay's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "YAHOO.widget.Overlay.VIEWPORT_OFFSET": {"description": "Number representing the minimum distance an Overlay instance should be \npositioned relative to the boundaries of the browser's viewport, in pixels.", "default": "10", "static": "", "guessedname": "VIEWPORT_OFFSET", "guessedtype": "property", "type": "Number", "final": ""}, "YAHOO.widget.Overlay.TOP_RIGHT": {"description": "Constant representing the top right corner of an element, used for \nconfiguring the context element alignment", "static": "", "guessedname": "TOP_RIGHT", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay.TOP_LEFT": {"description": "Constant representing the top left corner of an element, used for \nconfiguring the context element alignment", "static": "", "guessedname": "TOP_LEFT", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay.IFRAME_SRC": {"description": "The URL that will be placed in the iframe", "default": "3", "static": "", "guessedname": "IFRAME_SRC", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.Overlay.BOTTOM_LEFT": {"description": "Constant representing the top bottom left corner of an element, used for \nconfiguring the context element alignment", "static": "", "guessedname": "BOTTOM_LEFT", "guessedtype": "property", "type": "String", "final": ""}}, "description": "Overlay is a Module that is absolutely positioned above the page flow. It \nhas convenience methods for positioning and sizing, as well as options for \ncontrolling zIndex and constraining the Overlay's position to the current \nvisible viewport. Overlay also contains a dynamicly generated IFRAME which \nis placed beneath it for Internet Explorer 6 and 5.x so that it will be \nproperly rendered above SELECT elements."}, "YAHOO.widget.EditorWindow": {"file": "editor.js", "description": "Class to hold Window information between uses. We use the same panel to show the windows, so using this will allow you to configure a window before it is shown.\nThis is what you pass to Editor.openWindow();. These parameters will not take effect until the openWindow() is called in the editor.", "namespace": "YAHOO.widget", "module": "editor", "methods": {"setFooter": {"params": [{"type": "String/HTMLElement", "name": "str", "description": " The string or DOM reference to be used as the windows footer."}], "description": "Sets the footer for the window.", "guessedname": "setFooter", "guessedtype": "function"}, "setBody": {"params": [{"type": "String/HTMLElement", "name": "str", "description": " The string or DOM reference to be used as the windows body."}], "description": "Sets the body for the window.", "guessedname": "setBody", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the EditorWindow.", "guessedname": "toString", "guessedtype": "function"}, "setHeader": {"params": [{"type": "String/HTMLElement", "name": "str", "description": " The string or DOM reference to be used as the windows header."}], "description": "Sets the header for the window.", "guessedname": "setHeader", "guessedtype": "function"}}, "param": "{String} name The name of the window.", "guessedname": "EditorWindow", "guessedtype": "function", "shortname": "EditorWindow", "properties": {"body": {"private": "", "description": "Holder for the body of the window, used in Editor.openWindow", "guessedname": "body", "guessedtype": "property"}, "header": {"private": "", "description": "Holder for the header of the window, used in Editor.openWindow", "guessedname": "header", "guessedtype": "property"}, "footer": {"private": "", "description": "Holder for the footer of the window, used in Editor.openWindow", "guessedname": "footer", "guessedtype": "property"}, "name": {"private": "", "description": "A unique name for the window", "guessedname": "name", "guessedtype": "property"}, "attrs": {"private": "", "description": "The window attributes", "guessedname": "attrs", "guessedtype": "property"}}, "name": "YAHOO.widget.EditorWindow"}, "YAHOO.widget.SWF": {"name": "YAHOO.widget.SWF", "constructors": [{"params": [{"type": "String|HTMLElement", "name": "id", "description": " The id of the element, or the element itself that the SWF will be inserted into.  \nThe width and height of the SWF will be set to the width and height of this container element."}, {"type": "String", "name": "swfURL", "description": " The URL of the SWF to be embedded into the page."}, {"type": "Object", "name": "p_oAttributes", "description": " (optional) Configuration parameters for the Flash application and values for Flashvars\nto be passed to the SWF."}], "description": "Creates the SWF instance and keeps the configuration data"}], "namespace": "YAHOO.widget", "module": "swf", "guessedname": "SWF", "methods": {"eventHandler": {"guessedname": "eventHandler", "params": [{"type": "String", "name": "swfid", "description": "  the id of the SWF dispatching the event"}, {"type": "Object", "name": "event", "description": "  the event being transmitted."}], "description": "Handles an event coming from within the SWF and delegate it\nto a specific instance of SWF.", "private": "", "guessedtype": "function"}, "callSWF": {"params": [{"type": "String", "name": "func", "description": "  the name of the function to call"}, {"type": "Object", "name": "args", "description": "  the set of arguments to pass to the function."}], "description": "Calls a specific function exposed by the SWF's\nExternalInterface.", "guessedname": "callSWF", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the SWF instance."}, "description": "Public accessor to the unique name of the SWF instance.", "guessedname": "toString", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "swf.js", "guessedtype": "function", "shortname": "SWF", "properties": {"_instances": {"guessedname": "_instances", "type": "Object", "description": "The static collection of all instances of the SWFs on the page.", "private": "", "guessedtype": "property"}, "_id": {"type": "String", "description": "The DOM id of this instance of the element. Automatically generated.", "guessedname": "_id", "guessedtype": "property"}}, "description": "Creates the SWF instance and keeps the configuration data"}, "YAHOO.widget.Paginator": {"name": "YAHOO.widget.Paginator", "configs": {"alwaysVisible": {"default": "true", "type": "boolean", "description": "Display pagination controls even when there is only one page.  Set\nto false to forgo rendering and/or hide the containers when there\nis only one page of data.  Note if you are using the rowsPerPage\ndropdown ui component, visibility will be maintained as long as the\nnumber of records exceeds the smallest page size."}, "updateOnChange": {"default": "false", "deprecated": "use changeRequest listener that calls setState", "type": "boolean", "description": "Update the UI immediately upon interaction.  If false, changeRequest\nsubscribers or other external code will need to explicitly set the\nnew values in the paginator to trigger repaint."}, "containerClass": {"default": "'yui-pg-container'", "type": "string", "description": "Class assigned to the element(s) containing pagination controls."}, "initialPage": {"default": "1", "type": "integer", "description": "Page to display on initial paint"}, "totalRecords": {"default": "0", "type": "integer", "description": "Total number of records to paginate through"}, "recordOffset": {"default": "0", "type": "integer", "description": "Zero based index of the record considered first on the current page.\nFor page based interactions, don't modify this attribute directly;\nuse setPage(n)."}, "rendered": {"type": "boolean", "description": "Indicator of whether the DOM nodes have been initially created", "final": ""}, "rowsPerPage": {"type": "integer", "description": "REQUIRED. Number of records constituting a "page""}, "template": {"see": "Paginator.TEMPLATE_DEFAULT", "type": "string", "description": "Template used to render controls.  The string will be used as\ninnerHTML on all specified container nodes.  Bracketed keys\n(e.g. {pageLinks}) in the string will be replaced with an instance\nof the so named ui component."}, "id": {"type": "integer", "description": "Unique id assigned to this instance", "final": ""}, "containers": {"type": "{string|HTMLElement|Array(string|HTMLElement)}", "description": "REQUIRED. Node references or ids of nodes in which to render the\npagination controls."}}, "constructors": [{"params": [{"type": "Object", "name": "config", "description": "  Object literal to set instance and ui component\nconfiguration."}], "description": "Instantiate a Paginator, passing a configuration object to the contructor.\nThe configuration object should contain the following properties:\n<ul>\n<li>rowsPerPage : <em>n</em> (int)</li>\n<li>totalRecords : <em>n</em> (int or Paginator.VALUE_UNLIMITED)</li>\n<li>containers : <em>id | el | arr</em> (HTMLElement reference, its id, or an array of either)</li>\n</ul>"}], "namespace": "YAHOO.widget", "module": "paginator", "events": {"rendered": {"deprecated": "use render event", "description": "Event fired when the Paginator is initially rendered"}, "templateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "templateChange", "description": "Fires when the value for the configuration attribute 'template' changes."}, "render": {"description": "Event fired when the Paginator is initially rendered"}, "initialPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "initialPageChange", "description": "Fires when the value for the configuration attribute 'initialPage' changes."}, "beforeContainerClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainerClassChange", "description": "Fires before the value for the configuration attribute 'containerClass' changes. Return false to cancel the attribute change."}, "alwaysVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "alwaysVisibleChange", "description": "Fires when the value for the configuration attribute 'alwaysVisible' changes."}, "beforeRenderedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRenderedChange", "description": "Fires before the value for the configuration attribute 'rendered' changes. Return false to cancel the attribute change."}, "beforeRecordOffsetChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRecordOffsetChange", "description": "Fires before the value for the configuration attribute 'recordOffset' changes. Return false to cancel the attribute change."}, "beforeTemplateChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTemplateChange", "description": "Fires before the value for the configuration attribute 'template' changes. Return false to cancel the attribute change."}, "beforeTotalRecordsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTotalRecordsChange", "description": "Fires before the value for the configuration attribute 'totalRecords' changes. Return false to cancel the attribute change."}, "updateOnChangeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "updateOnChangeChange", "description": "Fires when the value for the configuration attribute 'updateOnChange' changes."}, "renderedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "renderedChange", "description": "Fires when the value for the configuration attribute 'rendered' changes."}, "destroy": {"description": "Event used to trigger cleanup of ui components"}, "beforeContainersChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainersChange", "description": "Fires before the value for the configuration attribute 'containers' changes. Return false to cancel the attribute change."}, "changeRequest": {"description": "Event fired when a change in pagination values is requested,\neither by interacting with the various ui components or via the\nsetStartIndex(n) etc APIs.\nSubscribers will receive the proposed state as the first parameter.\nThe proposed state object will contain the following keys:\n<ul>\n<li>paginator - the Paginator instance</li>\n<li>page</li>\n<li>totalRecords</li>\n<li>recordOffset - index of the first record on the new page</li>\n<li>rowsPerPage</li>\n<li>records - array containing [start index, end index] for the records on the new page</li>\n<li>before - object literal with all these keys for the current state</li>\n</ul>"}, "pageChange": {"description": "Event fired when attribute changes have resulted in the calculated\ncurrent page changing."}, "beforeRowsPerPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRowsPerPageChange", "description": "Fires before the value for the configuration attribute 'rowsPerPage' changes. Return false to cancel the attribute change."}, "rowsPerPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "rowsPerPageChange", "description": "Fires when the value for the configuration attribute 'rowsPerPage' changes."}, "beforeDestroy": {"description": "Event that fires before the destroy event."}, "totalRecordsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "totalRecordsChange", "description": "Fires when the value for the configuration attribute 'totalRecords' changes."}, "recordOffsetChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "recordOffsetChange", "description": "Fires when the value for the configuration attribute 'recordOffset' changes."}, "containersChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containersChange", "description": "Fires when the value for the configuration attribute 'containers' changes."}, "containerClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containerClassChange", "description": "Fires when the value for the configuration attribute 'containerClass' changes."}, "beforeInitialPageChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeInitialPageChange", "description": "Fires before the value for the configuration attribute 'initialPage' changes. Return false to cancel the attribute change."}, "beforeIdChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeIdChange", "description": "Fires before the value for the configuration attribute 'id' changes. Return false to cancel the attribute change."}, "beforeUpdateOnChangeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeUpdateOnChangeChange", "description": "Fires before the value for the configuration attribute 'updateOnChange' changes. Return false to cancel the attribute change."}, "beforeAlwaysVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAlwaysVisibleChange", "description": "Fires before the value for the configuration attribute 'alwaysVisible' changes. Return false to cancel the attribute change."}, "idChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "idChange", "description": "Fires when the value for the configuration attribute 'id' changes."}}, "methods": {"render": {"chainable": "", "return": {"type": "", "description": "the Paginator instance"}, "description": "Render the pagination controls per the format attribute into the\nspecified container nodes.", "guessedname": "render", "guessedtype": "function"}, "getRowsPerPage": {"return": {"type": "number", "description": "the current setting of the rowsPerPage attribute"}, "description": "Get the number of rows per page.", "guessedname": "getRowsPerPage", "guessedtype": "function"}, "getTotalRecords": {"return": {"type": "number", "description": "the current setting of totalRecords attribute"}, "description": "Get the total number of records.", "guessedname": "getTotalRecords", "guessedtype": "function"}, "getPreviousPage": {"return": {"type": "number", "description": ""}, "description": "Get the page number of the previous page, or null if the current page\nis the first page.", "guessedname": "getPreviousPage", "guessedtype": "function"}, "getTotalPages": {"return": {"type": "number", "description": ""}, "description": "Get the total number of pages in the data set according to the current\nrowsPerPage and totalRecords values.  If totalRecords is not set, or\nset to YAHOO.widget.Paginator.VALUE_UNLIMITED, returns\nYAHOO.widget.Paginator.VALUE_UNLIMITED.", "guessedname": "getTotalPages", "guessedtype": "function"}, "setState": {"params": [{"type": "Object", "name": "state", "description": "  Object literal of attribute:value pairs to set"}], "description": "Convenience method to facilitate setting state attributes rowsPerPage,\ntotalRecords, recordOffset in batch.  Also supports calculating\nrecordOffset from state.page if state.recordOffset is not provided.\nFires only a single pageChange event, if appropriate.\nThis will not fire a changeRequest event.", "guessedname": "setState", "guessedtype": "function"}, "updateVisibility": {"description": "Hides the containers if there is only one page of data and attribute\nalwaysVisible is false.  Conversely, it displays the containers if either\nthere is more than one page worth of data or alwaysVisible is turned on.", "guessedname": "updateVisibility", "guessedtype": "function"}, "_selfSubscribe": {"protected": "", "description": "Subscribes to instance attribute change events to automate certain\nbehaviors.", "guessedname": "_selfSubscribe", "guessedtype": "function"}, "initEvents": {"private": "", "description": "Initialize this instance's CustomEvents.", "guessedname": "initEvents", "guessedtype": "function"}, "_firePageChange": {"protected": "", "params": [{"type": "Object", "name": "state", "description": "  the result of getState(oldState)"}], "description": "Fires a pageChange event in the form of a standard attribute change\nevent with additional properties prevState and newState.", "guessedname": "_firePageChange", "guessedtype": "function"}, "setStartIndex": {"params": [{"type": "number", "name": "offset", "description": "  the new record offset"}, {"type": "boolean", "name": "silent", "description": "  whether to forcibly avoid firing the changeRequest event"}], "description": "Move the record offset to a new starting index.  This will likely cause\nthe calculated current page to change.  You should probably use setPage.", "guessedname": "setStartIndex", "guessedtype": "function"}, "destroy": {"description": "Removes controls from the page and unhooks events.", "guessedname": "destroy", "guessedtype": "function"}, "getCurrentPage": {"return": {"type": "number", "description": ""}, "description": "Get the page number corresponding to the current record offset.", "guessedname": "getCurrentPage", "guessedtype": "function"}, "getState": {"return": {"type": "object", "description": ""}, "params": [{"type": "object", "name": "changes", "description": "  OPTIONAL object literal with proposed values\nSupported change keys include:\n<ul>\n<li>rowsPerPage</li>\n<li>totalRecords</li>\n<li>recordOffset OR</li>\n<li>page</li>\n</ul>"}], "description": "Get an object literal describing the current state of the paginator.  If\nan object literal of proposed values is passed, the proposed state will\nbe returned as an object literal with the following keys:\n<ul>\n<li>paginator - instance of the Paginator</li>\n<li>page - number</li>\n<li>totalRecords - number</li>\n<li>recordOffset - number</li>\n<li>rowsPerPage - number</li>\n<li>records - [ start_index, end_index ]</li>\n<li>before - (OPTIONAL) { state object literal for current state }</li>\n</ul>", "guessedname": "getState", "guessedtype": "function"}, "hasPreviousPage": {"return": {"type": "boolean", "description": ""}, "description": "Is there a page before the current page?", "guessedname": "hasPreviousPage", "guessedtype": "function"}, "getStartIndex": {"return": {"type": "number", "description": "the index of the first record on the current page"}, "description": "Get the index of the first record on the current page", "guessedname": "getStartIndex", "guessedtype": "function"}, "setTotalRecords": {"params": [{"type": "number", "name": "total", "description": "  the new total number of records"}, {"type": "boolean", "name": "silent", "description": "  whether to forcibly avoid firing the changeRequest event"}], "description": "Set the total number of records.", "guessedname": "setTotalRecords", "guessedtype": "function"}, "_handleStateChange": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  the attribute change event"}], "description": "Fires the pageChange event when the state attributes have changed in\nsuch a way as to locate the current recordOffset on a new page.", "guessedname": "_handleStateChange", "guessedtype": "function"}, "hasPage": {"return": {"type": "boolean", "description": ""}, "params": [{"type": "number", "name": "page", "description": "  the page in question"}], "description": "Does the requested page have any records?", "guessedname": "hasPage", "guessedtype": "function"}, "setRowsPerPage": {"params": [{"type": "number", "name": "rpp", "description": "  the new number of rows per page"}, {"type": "boolean", "name": "silent", "description": "  whether to forcibly avoid firing the\nchangeRequest event"}], "description": "Set the number of rows per page.", "guessedname": "setRowsPerPage", "guessedtype": "function"}, "setPage": {"params": [{"type": "number", "name": "newPage", "description": "  the new page number"}, {"type": "boolean", "name": "silent", "description": "  whether to forcibly avoid firing the\nchangeRequest event"}], "description": "Set the current page to the provided page number if possible.", "guessedname": "setPage", "guessedtype": "function"}, "hasNextPage": {"return": {"type": "boolean", "description": ""}, "description": "Are there records on the next page?", "guessedname": "hasNextPage", "guessedtype": "function"}, "initUIComponents": {"private": "", "description": "Initialize registered ui components onto this instance.", "guessedname": "initUIComponents", "guessedtype": "function"}, "_syncRecordOffset": {"protected": "", "params": [{"type": "Event", "name": "e", "description": "  totalRecordsChange event"}], "description": "Sets recordOffset to the starting index of the previous page when\ntotalRecords is reduced below the current recordOffset.", "guessedname": "_syncRecordOffset", "guessedtype": "function"}, "_renderTemplate": {"protected": "", "params": [{"type": "HTMLElement", "name": "container", "description": "  where to add the ui components"}, {"type": "String", "name": "template", "description": "  the template to use as a guide for rendering"}, {"type": "String", "name": "id_base", "description": "  id base for the container's ui components"}, {"type": "Boolean", "name": "hide", "description": "  leave the container hidden after assembly"}], "description": "Creates the individual ui components and renders them into a container.", "guessedname": "_renderTemplate", "guessedtype": "function"}, "Paginator.isNumeric": {"description": "Similar to YAHOO.lang.isNumber, but allows numeric strings.  This is\nis used for attribute validation in conjunction with getters that return\nnumbers.", "returns": "{Boolean} true if the input is coercable into a finite number", "static": "", "guessedname": "isNumeric", "guessedtype": "function", "params": [{"type": "Number|String", "name": "v", "description": "  value to be checked for number or numeric string"}]}, "initConfig": {"private": "", "description": "Initialize the Paginator's attributes (see YAHOO.util.Element class\nAttributeProvider).", "guessedname": "initConfig", "guessedtype": "function"}, "getContainerNodes": {"return": {"type": "Array", "description": "array of HTMLElement nodes"}, "description": "Get the configured container nodes", "guessedname": "getContainerNodes", "guessedtype": "function"}, "getPageRecords": {"return": {"type": "Array", "description": "[start_index, end_index]"}, "params": [{"type": "number", "name": "page", "description": "  (optional) The page (current page if not specified)"}], "description": "Get the start and end record indexes of the specified page.", "guessedname": "getPageRecords", "guessedtype": "function"}, "getNextPage": {"return": {"type": "number", "description": ""}, "description": "Get the page number of the next page, or null if the current page is the\nlast page.", "guessedname": "getNextPage", "guessedtype": "function"}, "renderUIComponent": {"params": [{"type": "HTMLElement", "name": "marker", "description": "  the marker node to replace"}, {"type": "String", "name": "id_base", "description": "  string base the component's generated id"}], "description": "Replaces a marker node with a rendered UI component, determined by the\nyui-pg-ui-(UI component class name) in the marker's className. e.g.\nyui-pg-ui-PageLinks => new YAHOO.widget.Paginator.ui.PageLinks(this)", "guessedname": "renderUIComponent", "guessedtype": "function"}, "Paginator.toNumber": {"return": {"type": "", "description": "Number"}, "description": "Return a number or null from input", "static": "", "guessedname": "toNumber", "guessedtype": "function", "params": [{"type": "Number|String", "name": "n", "description": "  a number or numeric string"}]}}, "file": "Paginator.js", "shortname": "Paginator", "properties": {"_pageChanged": {"protected": "", "type": "boolean", "description": "Used by setState to indicate when a page change has occurred", "guessedname": "_pageChanged", "guessedtype": "property"}, "Paginator.TEMPLATE_DEFAULT": {"type": "string", "static": "", "description": "Default template used by Paginator instances.  Update this if you want\nall new Paginators to use a different default template.", "guessedname": "TEMPLATE_DEFAULT", "guessedtype": "property"}, "Paginator.TEMPLATE_ROWS_PER_PAGE": {"type": "string", "static": "", "description": "Common alternate pagination format, including page links, links for\nprevious, next, first and last pages as well as a rows-per-page\ndropdown.  Offered as a convenience.", "guessedname": "TEMPLATE_ROWS_PER_PAGE", "guessedtype": "property"}, "_batch": {"protected": "", "type": "boolean", "description": "Flag used to indicate multiple attributes are being updated via setState", "guessedname": "_batch", "guessedtype": "property"}, "_containers": {"guessedname": "_containers", "type": "Array(HTMLElement)", "description": "Array of nodes in which to render pagination controls.  This is set via\nthe "containers" attribute.", "private": "", "guessedtype": "property"}, "Paginator.id": {"description": "Incrementing index used to give instances unique ids.", "private": "", "static": "", "guessedname": "id", "guessedtype": "property", "type": "number"}, "_state": {"protected": "", "type": "Object", "description": "Temporary state cache used by setState to keep track of the previous\nstate for eventual pageChange event firing", "guessedname": "_state", "guessedtype": "property"}, "Paginator.ui": {"static": "", "description": "Storage object for UI Components", "guessedname": "ui", "guessedtype": "property"}, "Paginator.VALUE_UNLIMITED": {"description": "Used to identify unset, optional configurations, or used explicitly in\nthe case of totalRecords to indicate unlimited pagination.", "static": "", "guessedname": "VALUE_UNLIMITED", "guessedtype": "property", "type": "number", "final": ""}, "Paginator.ID_BASE": {"description": "Base of id strings used for ui components.", "private": "", "static": "", "guessedname": "ID_BASE", "guessedtype": "property", "type": "string"}}, "description": "Instantiate a Paginator, passing a configuration object to the contructor.\nThe configuration object should contain the following properties:\n<ul>\n<li>rowsPerPage : <em>n</em> (int)</li>\n<li>totalRecords : <em>n</em> (int or Paginator.VALUE_UNLIMITED)</li>\n<li>containers : <em>id | el | arr</em> (HTMLElement reference, its id, or an array of either)</li>\n</ul>"}, "YAHOO.util.AnimMgr": {"name": "YAHOO.util.AnimMgr", "namespace": "YAHOO.util", "module": "animation", "guessedname": "AnimMgr", "methods": {"run": {"description": "Called per Interval to handle each animation frame.", "guessedname": "run", "guessedtype": "function"}, "unRegister": {"guessedname": "unRegister", "params": [{"type": "object", "name": "tween", "description": " The Anim instance to be be registered"}, {"type": "Int", "name": "index", "description": " The index of the Anim instance"}], "description": "removes an animation instance from the animation queue.\nAll animation instances must be registered in order to animate.", "private": "", "guessedtype": "function"}, "stop": {"params": [{"type": "object", "name": "tween", "description": " A specific Anim instance to stop (optional)\nIf no instance given, Manager stops thread and all animations."}], "description": "Stops the animation thread or a specific animation instance.", "guessedname": "stop", "guessedtype": "function"}, "start": {"description": "Starts the animation thread.\nOnly one thread can run at a time.", "guessedname": "start", "guessedtype": "function"}, "registerElement": {"params": [{"type": "object", "name": "tween", "description": " The Anim instance to be be registered"}], "description": "Adds an animation instance to the animation queue.\nAll animation instances must be registered in order to animate.", "guessedname": "registerElement", "guessedtype": "function"}, "correctFrame": {"guessedname": "correctFrame", "params": [{"type": "Object", "name": "tween", "description": " The Anim instance being corrected."}], "description": "On the fly frame correction to keep animation on time.", "private": "", "guessedtype": "function"}}, "file": "AnimMgr.js", "guessedtype": "function", "shortname": "AnimMgr", "properties": {"queue": {"guessedname": "queue", "type": "Array", "description": "The current queue of registered animation objects.", "private": "", "guessedtype": "property"}, "tweenCount": {"guessedname": "tweenCount", "type": "Int", "description": "The number of active animations.", "private": "", "guessedtype": "property"}, "delay": {"type": "Int", "description": "Interval delay in milliseconds, defaults to fastest possible.", "guessedname": "delay", "guessedtype": "property"}, "fps": {"type": "Int", "description": "Base frame rate (frames per second). \nArbitrarily high for better x-browser calibration (slower browsers drop more frames).", "guessedname": "fps", "guessedtype": "property"}, "thread": {"guessedname": "thread", "type": "Int", "description": "Reference to the animation Interval.", "private": "", "guessedtype": "property"}}, "description": "Handles animation queueing and threading.\nUsed by Anim and subclasses."}, "YAHOO.util.ImageLoader.group": {"name": "YAHOO.util.ImageLoader.group", "constructors": [{"params": [{"type": "String|HTMLElement", "name": "trigEl", "description": "\tThe HTML element id or reference to assign the trigger event to. Can be null for no trigger"}, {"type": "String", "name": "trigAct", "description": " The type of event to assign to trigEl. Can be null for no trigger"}, {"type": "Number", "name": "timeout", "description": "\tTimeout (time limit) length, in seconds. Can be undefined, or <= 0, for no time limit"}], "description": "A group for images. A group can have one time limit and a series of triggers. Thus the images belonging to this group must share these constraints."}], "namespace": "YAHOO.util.ImageLoader", "module": "imageloader", "guessedname": "group", "methods": {"registerBgImage": {"return": {"type": "Object", "description": "bgImgObj that was registered, for modifying any attributes in the object"}, "params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}], "description": "Registers a background image with the group", "guessedname": "registerBgImage", "guessedtype": "function"}, "addCustomTrigger": {"params": [{"type": "Object", "name": "event", "description": " A YAHOO.util.CustomEvent object"}], "description": "Adds a custom event trigger to the group.", "guessedname": "addCustomTrigger", "guessedtype": "function"}, "addTrigger": {"params": [{"type": "String|HTMLElement", "name": "trigEl", "description": "  The HTML element id or reference to assign the trigger event to"}, {"type": "String", "name": "trigAct", "description": " The type of event to assign to trigEl"}], "description": "Adds a trigger to the group. Call this with the same style as YAHOO.util.Event.addListener", "guessedname": "addTrigger", "guessedtype": "function"}, "_getFetchTimeout": {"guessedname": "_getFetchTimeout", "return": {"type": "Function", "description": "group's fetch method"}, "description": "Returns the group's fetch method, with the proper closure, for use with setTimeout", "private": "", "guessedtype": "function"}, "registerSrcImage": {"return": {"type": "Object", "description": "srcImgObj that was registered, for modifying any attributes in the object"}, "params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}, {"type": "Int", "name": "width", "description": "\tpixel width of the image - defaults to image's natural size"}, {"type": "Int", "name": "height", "description": "\tpixel height of the image - defaults to image's natural size"}], "description": "Registers a src image with the group", "guessedname": "registerSrcImage", "guessedtype": "function"}, "registerPngBgImage": {"return": {"type": "Object", "description": "pngBgImgObj that was registered, for modifying any attributes in the object"}, "params": [{"type": "String", "name": "domId", "description": "\tHTML DOM id of the image element"}, {"type": "String", "name": "url", "description": "\tURL for the image"}, {"type": "Object", "name": "ailProps", "description": " The AlphaImageLoader properties to be set for the image\nValid properties are 'sizingMethod' and 'enabled'"}], "description": "Registers an alpha-channel-type png background image with the group", "guessedname": "registerPngBgImage", "guessedtype": "function"}, "_onloadTasks": {"private": "", "description": "Setup to do in the window's onload\nInitiates time limit for group; executes the fold check for the images", "guessedname": "_onloadTasks", "guessedtype": "function"}, "_foldCheck": {"private": "", "description": "Checks the position of each image in the group. If any part of the image is within the client viewport, shows the image immediately.", "guessedname": "_foldCheck", "guessedtype": "function"}, "fetch": {"description": "Displays the images in the group", "guessedname": "fetch", "guessedtype": "function"}, "_fetchByClass": {"private": "", "description": "Finds all elements in the Dom with the class name specified in the group. Removes the class from the element in order to let the style definitions trigger the image fetching", "guessedname": "_fetchByClass", "guessedtype": "function"}}, "file": "ImageLoader.js", "guessedtype": "function", "shortname": "group", "requires": "YAHOO.util.Dom", "properties": {"name": {"type": "String", "description": "Name for the group. Only used to identify the group in logging statements", "guessedname": "name", "guessedtype": "property"}, "_classImageEls": {"guessedname": "_classImageEls", "type": "Array", "description": "HTML elements having the class name that is associated with this group\nElements are stored during the _foldCheck function and reused later during the fetch function. Gives a slight performance improvement when className and foldConditional are both used", "private": "", "guessedtype": "property"}, "_imgObjs": {"guessedname": "_imgObjs", "type": "Object", "description": "Collection of images registered with this group", "private": "", "guessedtype": "property"}, "timeoutLen": {"type": "Number", "description": "Timeout (time limit) length, in seconds", "guessedname": "timeoutLen", "guessedtype": "property"}, "className": {"type": "String", "description": "Class name that will identify images belonging to the group. This class name will be removed from each element in order to fetch images.\nThis class should have, in its CSS style definition, \"background:none !important;\"", "guessedname": "className", "guessedtype": "property"}, "_triggers": {"guessedname": "_triggers", "type": "Array", "description": "Collection of triggers for this group.\nKeeps track of each trigger's element, event, and event-listener-callback \"fetch\" function", "private": "", "guessedtype": "property"}, "_customTriggers": {"guessedname": "_customTriggers", "type": "Array", "description": "Collection of custom-event triggers for this group.\nKeeps track of each trigger's event object and event-listener-callback \"fetch\" function", "private": "", "guessedtype": "property"}, "_timeout": {"guessedname": "_timeout", "type": "Object", "description": "Timeout object to keep a handle on the time limit", "private": "", "guessedtype": "property"}, "foldConditional": {"type": "Boolean", "description": "Flag to check if images are above the fold. If foldConditional is true, the group will check each of its image locations at page load. If any part of the image is within the client viewport, the image is displayed immediately", "guessedname": "foldConditional", "guessedtype": "property"}}, "description": "A group for images. A group can have one time limit and a series of triggers. Thus the images belonging to this group must share these constraints."}, "YAHOO.util.XHRDataSource": {"name": "YAHOO.util.XHRDataSource", "constructors": [{"params": [{"type": "HTMLElement", "name": "oLiveData", "description": "   Pointer to live data."}, {"type": "object", "name": "oConfigs", "description": "  (optional) Object literal of configuration values."}], "description": "XHRDataSource class for accessing remote data via the YUI Connection Manager\nUtility"}], "namespace": "YAHOO.util", "module": "datasource", "guessedname": "XHRDataSource", "methods": {"_xhrFailure": {"guessedname": "_xhrFailure", "params": [{"type": "Object", "name": "oResponse", "description": "  HTTPXMLRequest object"}], "description": "Define Connection Manager failure handler", "private": "", "guessedtype": "function"}, "_xhrSuccess": {"guessedname": "_xhrSuccess", "params": [{"type": "Object", "name": "oResponse", "description": "  HTTPXMLRequest object"}], "description": "Define Connection Manager success handler", "private": "", "guessedtype": "function"}, "makeConnection": {"return": {"type": "Number", "description": "Transaction ID."}, "params": [{"type": "Object", "name": "oRequest", "description": "  Request object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object literal."}, {"type": "Object", "name": "oCaller", "description": "  (deprecated) Use oCallback.scope."}], "description": "Overriding method passes query to Connection Manager. The returned\nresponse is then forwarded to the handleResponse function.", "guessedname": "makeConnection", "guessedtype": "function"}}, "extends": "YAHOO.util.DataSourceBase", "superclass": "YAHOO.util.DataSourceBase", "file": "DataSource.js", "guessedtype": "function", "shortname": "XHRDataSource", "properties": {"connTimeout": {"default": "0", "type": "Number", "description": "The connection timeout defines how many  milliseconds the XHR connection will\nwait for a server response. Any non-zero value will enable the Connection Manager's\nAuto-Abort feature.", "guessedname": "connTimeout", "guessedtype": "property"}, "connMethodPost": {"default": "false", "type": "Boolean", "description": "True if data is to be sent via POST. By default, data will be sent via GET.", "guessedname": "connMethodPost", "guessedtype": "property"}, "_xhrCallback": {"guessedname": "_xhrCallback", "param": "oResponse {Object} HTTPXMLRequest object", "description": "Define Connection Manager callback object", "private": "", "guessedtype": "property"}, "connXhrMode": {"default": "\"allowAll\"", "type": "String", "description": "Defines request/response management in the following manner:\n<dl>\n<dt>queueRequests</dt>\n<dd>If a request is already in progress, wait until response is returned\nbefore sending the next request.</dd>\n<dt>cancelStaleRequests</dt>\n<dd>If a request is already in progress, cancel it before sending the next\nrequest.</dd>\n<dt>ignoreStaleResponses</dt>\n<dd>Send all requests, but handle only the response for the most recently\nsent request.</dd>\n<dt>allowAll</dt>\n<dd>Send all requests and handle all responses.</dd>\n</dl>", "guessedname": "connXhrMode", "guessedtype": "property"}, "connMgr": {"default": "YAHOO.util.Connect", "type": "Object", "description": "Alias to YUI Connection Manager, to allow implementers to use a custom class.", "guessedname": "connMgr", "guessedtype": "property"}}, "description": "XHRDataSource class for accessing remote data via the YUI Connection Manager\nUtility"}, "YAHOO": {"name": "YAHOO", "description": "The YAHOO global namespace object.  If YAHOO is already defined, the\nexisting YAHOO object will not be overwritten so that defined\nnamespaces are preserved.", "namespace": "", "module": "yahoo", "guessedname": "YAHOO", "static": "", "file": "YAHOO.js", "guessedtype": "property", "shortname": "YAHOO", "methods": {"register": {"static": "", "params": [{"type": "String", "name": "name", "description": "    the name of the module (event, slider, etc)"}, {"type": "Function", "name": "mainClass", "description": " a reference to class in the module.  This\nclass will be tagged with the version info\nso that it will be possible to identify the\nversion that is in use when multiple versions\nhave loaded"}, {"type": "Object", "name": "data", "description": "      metadata object for the module.  Currently it\nis expected to contain a \"version\" property\nand a \"build\" property at minimum."}], "description": "Registers a module with the YAHOO object", "guessedname": "register", "guessedtype": "function"}, "namespace": {"return": {"type": "Object", "description": "A reference to the last namespace object created"}, "description": "Returns the namespace specified and creates it if it doesn't exist\n<pre>\nYAHOO.namespace(\"property.package\");\nYAHOO.namespace(\"YAHOO.property.package\");\n</pre>\nEither of the above would create YAHOO.property, then\nYAHOO.property.package\nBe careful when naming packages. Reserved words may work in some browsers\nand not others. For instance, the following will fail in Safari:\n<pre>\nYAHOO.namespace(\"really.long.nested.namespace\");\n</pre>\nThis fails because \"long\" is a future reserved word in ECMAScript\nFor implementation code that uses YUI, do not create your components\nin the namespaces defined by YUI (\n<code>YAHOO.util</code>, \n<code>YAHOO.widget</code>, \n<code>YAHOO.lang</code>, \n<code>YAHOO.tool</code>, \n<code>YAHOO.example</code>, \n<code>YAHOO.env</code>) -- create your own namespace (e.g., 'companyname').", "static": "", "guessedname": "namespace", "guessedtype": "function", "params": [{"type": "String*", "name": "arguments", "description": " 1-n namespaces to create"}]}, "extend": {"static": "", "params": [{"type": "Function", "name": "subc", "description": "   the object to modify"}, {"type": "Function", "name": "superc", "description": " the object to inherit"}, {"type": "Object", "name": "overrides", "description": "  additional properties/methods to add to the\nsubclass prototype.  These will override the\nmatching items obtained from the superclass if present."}], "description": "An alias for <a href=\"YAHOO.lang.html#extend\">YAHOO.lang.extend</a>", "guessedname": "extend", "guessedtype": "property"}, "augment": {"static": "", "params": [{"type": "Function", "name": "r", "description": "  the object to receive the augmentation"}, {"type": "Function", "name": "s", "description": "  the object that supplies the properties to augment"}, {"type": "String*", "name": "arguments", "description": " zero or more properties methods to \naugment the receiver with.  If none specified, everything\nin the supplier will be used unless it would\noverwrite an existing property in the receiver"}], "description": "An alias for <a href=\"YAHOO.lang.html#augment\">YAHOO.lang.augment</a>", "guessedname": "augment", "guessedtype": "property"}, "log": {"return": {"type": "Boolean", "description": "True if the log operation was successful."}, "description": "Uses YAHOO.widget.Logger to output a log message, if the widget is\navailable.", "static": "", "guessedname": "log", "guessedtype": "function", "params": [{"type": "String", "name": "msg", "description": "  The message to log."}, {"type": "String", "name": "cat", "description": "  The log category for the message.  Default\ncategories are \"info\", \"warn\", \"error\", time\".\nCustom categories can be used as well. (opt)"}, {"type": "String", "name": "src", "description": "  The source of the the message (opt)"}]}}}, "YAHOO.util.Event": {"name": "YAHOO.util.Event", "namespace": "YAHOO.util", "module": "event", "events": {"DOMReadyEvent": {"description": "Custom event the fires when the dom is initially usable", "guessedname": "DOMReadyEvent", "guessedtype": "property"}}, "guessedname": "Event", "methods": {"regCE": {"description": "Used by old versions of CustomEvent, restored for backwards\ncompatibility", "deprecated": "still here for backwards compatibility", "private": "", "static": "", "guessedname": "regCE", "guessedtype": "function"}, "_simpleRemove": {"description": "Basic remove listener", "private": "", "static": "", "guessedname": "_simpleRemove", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": "      the element to bind the handler to"}, {"type": "string", "name": "sType", "description": "   the type of event handler"}, {"type": "function", "name": "fn", "description": "      the callback to invoke"}, {"type": "boolen", "name": "capture", "description": " capture or bubble phase"}]}, "_getScrollLeft": {"guessedname": "_getScrollLeft", "static": "", "description": "Returns scrollLeft", "private": "", "guessedtype": "function"}, "getTime": {"return": {"type": "Date", "description": "the time of the event"}, "description": "Returns the time of the event.  If the time is not included, the\nevent is modified using the current time.", "static": "", "guessedname": "getTime", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "addBlurListener": {"return": {"type": "Boolean", "description": "True if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Attaches a focusout event listener to the specified element for \nthe purpose of listening for the blur event on the element's \ndescendants.", "deprecated": "use YAHOO.util.Event.on and specify \"focusout\" as the event type.", "static": "", "guessedname": "addBlurListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the handler"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the obj passed in becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}]}, "generateId": {"return": {"type": "string", "description": "the resulting id of the element"}, "description": "Generates an unique ID for the element if it does not already \nhave one.", "static": "", "guessedname": "generateId", "guessedtype": "function", "params": [{"type": "", "name": "el", "description": " the element to create the id for"}]}, "getTarget": {"return": {"type": "HTMLElement", "description": "the event's target"}, "description": "Returns the event's target element.  Safari sometimes provides\na text node, and this is automatically resolved to the text\nnode's parent so that it behaves like other browsers.", "static": "", "guessedname": "getTarget", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}, {"type": "boolean", "name": "resolveTextNode", "description": " when set to true the target's\nparent will be returned if the target is a \ntext node.  @deprecated, the text node is\nnow resolved automatically"}]}, "_createDelegate": {"return": {"type": "Function", "description": "Function that will call the event listener \nspecified by the <code>YAHOO.util.Event.delegate</code> method."}, "description": "Creates a delegate function used to call event listeners specified \nvia the <code>YAHOO.util.Event.delegate</code> method.", "private": "", "static": "", "guessedname": "_createDelegate", "guessedtype": "function", "params": [{"type": "Function", "name": "fn", "description": "        The method (event listener) to call."}, {"type": "Function|string", "name": "filter", "description": " Function or CSS selector used to \ndetermine for what element(s) the event listener should be called."}, {"type": "Object", "name": "obj", "description": "\tAn arbitrary object that will be \npassed as a parameter to the listener."}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the value of the \nobj parameter becomes the execution context\nof the listener. If an object, this object\nbecomes the execution context."}]}, "removeDelegate": {"return": {"type": "boolean", "description": "Returns true if the unbind was successful, false \notherwise."}, "description": "Removes a delegated event listener.", "static": "", "guessedname": "removeDelegate", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "container", "description": " An id, an element \nreference, or a collection of ids and/or elements to remove\nthe listener from."}, {"type": "String", "name": "type", "description": " The type of event to remove."}, {"type": "Function", "name": "fn", "description": " The method the event invokes.  If fn is\nundefined, then all event listeners for the type of event are \nremoved."}]}, "stopPropagation": {"static": "", "params": [{"type": "Event", "name": "ev", "description": " the event"}], "description": "Stops event propagation", "guessedname": "stopPropagation", "guessedtype": "function"}, "getCharCode": {"return": {"type": "int", "description": "the event's charCode"}, "description": "Returns the charcode for an event", "static": "", "guessedname": "getCharCode", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "_getType": {"guessedname": "_getType", "params": [{"type": "String", "name": "sType", "description": "     The type to look up"}], "description": "Checks to see if the type requested is a special type \n(as defined by the _specialTypes hash), and (if so) returns \nthe special type name.", "private": "", "guessedtype": "function"}, "_simpleAdd": {"description": "Adds a DOM event directly without the caching, cleanup, context adj, etc", "private": "", "static": "", "guessedname": "_simpleAdd", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "el", "description": "      the element to bind the handler to"}, {"type": "string", "name": "sType", "description": "   the type of event handler"}, {"type": "function", "name": "fn", "description": "      the callback to invoke"}, {"type": "boolen", "name": "capture", "description": " capture or bubble phase"}]}, "_isValidCollection": {"return": {"type": "boolean", "description": "true if the object is array-like and populated"}, "description": "We want to be able to use getElementsByTagName as a collection\nto attach a group of events to.  Unfortunately, different \nbrowsers return different types of collections.  This function\ntests to determine if the object is array-like.  It will also \nfail if the object is an array, but is empty.", "private": "", "static": "", "guessedname": "_isValidCollection", "guessedtype": "function", "params": [{"type": "", "name": "o", "description": " the object to test"}]}, "getEl": {"description": "We cache elements bound by id because when the unload event \nfires, we can no longer use document.getElementById", "deprecated": "Elements are not cached any longer", "private": "", "static": "", "guessedname": "getEl", "guessedtype": "function"}, "_load": {"guessedname": "_load", "static": "", "description": "hook up any deferred listeners", "private": "", "guessedtype": "function"}, "resolveTextNode": {"return": {"type": "HTMLElement", "description": "the normized node"}, "description": "In some cases, some browsers will return a text node inside\nthe actual element that was targeted.  This normalizes the\nreturn value for getTarget and getRelatedTarget.", "static": "", "guessedname": "resolveTextNode", "guessedtype": "function", "params": [{"type": "HTMLElement", "name": "node", "description": " node to resolve"}]}, "stopEvent": {"static": "", "params": [{"type": "Event", "name": "ev", "description": " the event"}], "description": "Convenience method for stopPropagation + preventDefault", "guessedname": "stopEvent", "guessedtype": "function"}, "addFocusListener": {"return": {"type": "Boolean", "description": "True if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Attaches a focusin event listener to the specified element for \nthe purpose of listening for the focus event on the element's \ndescendants.", "deprecated": "use YAHOO.util.Event.on and specify \"focusin\" as the event type.", "static": "", "guessedname": "addFocusListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the handler"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the obj passed in becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}]}, "getXY": {"return": {"type": "[x, y]", "description": "the pageX and pageY properties of the event"}, "description": "Returns the pageX and pageY properties as an indexed array.", "static": "", "guessedname": "getXY", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "addListener": {"return": {"type": "Boolean", "description": "True if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Appends an event handler", "static": "", "guessedname": "addListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "String", "name": "sType", "description": "     The type of event to append"}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the handler"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the obj passed in becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}]}, "_createMouseDelegate": {"return": {"type": "Function", "description": "Function that will call the event listener \nspecified by either the <code>YAHOO.util.Event.addListener</code> \nor <code>YAHOO.util.Event.on</code> method."}, "description": "Creates a delegate function used to call mouseover and mouseleave \nevent listeners specified via the \n<code>YAHOO.util.Event.addListener</code> \nor <code>YAHOO.util.Event.on</code> method.", "private": "", "static": "", "guessedname": "_createMouseDelegate", "guessedtype": "function", "params": [{"type": "Function", "name": "fn", "description": "        The method (event listener) to call"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the listener"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the value of the \nobj parameter becomes the execution context\nof the listener. If an object, this object\nbecomes the execution context."}]}, "_unload": {"guessedname": "_unload", "static": "", "description": "Removes all listeners registered by pe.event.  Called \nautomatically during the unload event.", "private": "", "guessedtype": "function"}, "_tryPreloadAttach": {"guessedname": "_tryPreloadAttach", "static": "", "description": "Polling function that runs before the onload event fires, \nattempting to attach to DOM Nodes as soon as they are \navailable", "private": "", "guessedtype": "function"}, "onBlur": {"description": "YAHOO.util.Event.onBlur is an alias for addBlurListener", "deprecated": "use YAHOO.util.Event.on and specify \"focusout\" as the event type.", "see": "addBlurListener", "static": "", "guessedname": "onBlur", "guessedtype": "property"}, "_getScrollTop": {"guessedname": "_getScrollTop", "static": "", "description": "Returns scrollTop", "private": "", "guessedtype": "function"}, "onContentReady": {"static": "", "params": [{"type": "string", "name": "id", "description": " the id of the element to look for."}, {"type": "function", "name": "fn", "description": " what to execute when the element is ready."}, {"type": "object", "name": "obj", "description": " an optional object to be passed back as\na parameter to fn."}, {"type": "boolean|object", "name": "overrideContext", "description": " If set to true, fn will execute\nin the context of obj.  If an object, fn will\nexectute in the context of that object"}], "description": "Works the same way as onAvailable, but additionally checks the\nstate of sibling elements to determine if the content of the\navailable element is safe to modify.\n<p>The callback is executed with a single parameter:\nthe custom object parameter, if provided.</p>", "guessedname": "onContentReady", "guessedtype": "function"}, "startInterval": {"static": "", "private": "", "guessedname": "startInterval", "guessedtype": "function"}, "onAvailable": {"static": "", "params": [{"type": "string||string[]", "name": "id", "description": " the id of the element, or an array\nof ids to look for."}, {"type": "function", "name": "fn", "description": " what to execute when the element is found."}, {"type": "object", "name": "obj", "description": " an optional object to be passed back as\na parameter to fn."}, {"type": "boolean|object", "name": "overrideContext", "description": " If set to true, fn will execute\nin the context of obj, if set to an object it\nwill execute in the context of that object"}, {"type": "boolean", "name": "checkContent", "description": "  check child node readiness (onContentReady)"}], "description": "Executes the supplied callback when the item with the supplied\nid is found.  This is meant to be used to execute behavior as\nsoon as possible as the page loads.  If you use this after the\ninitial page load it will poll for a fixed time for the element.\nThe number of times it will poll and the frequency are\nconfigurable.  By default it will poll for 10 seconds.\n<p>The callback is executed with a single parameter:\nthe custom object parameter, if provided.</p>", "guessedname": "onAvailable", "guessedtype": "function"}, "onFocus": {"description": "YAHOO.util.Event.onFocus is an alias for addFocusListener", "deprecated": "use YAHOO.util.Event.on and specify \"focusin\" as the event type.", "see": "addFocusListener", "static": "", "guessedname": "onFocus", "guessedtype": "property"}, "clearCache": {"description": "Clears the element cache", "deprecated": "Elements are not cached any longer", "private": "", "static": "", "guessedname": "clearCache", "guessedtype": "function"}, "removeListener": {"return": {"type": "boolean", "description": "true if the unbind was successful, false \notherwise."}, "description": "Removes an event listener", "static": "", "guessedname": "removeListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to remove\nthe listener from."}, {"type": "String", "name": "sType", "description": " the type of event to remove."}, {"type": "Function", "name": "fn", "description": " the method the event invokes.  If fn is\nundefined, then all event handlers for the type of event are \nremoved."}]}, "removeBlurListener": {"return": {"type": "boolean", "description": "true if the unbind was successful, false \notherwise."}, "description": "Removes a focusout event listener to the specified element for \nthe purpose of listening for the blur event on the element's \ndescendants.", "deprecated": "use YAHOO.util.Event.removeListener and specify \"focusout\" as the event type.", "static": "", "guessedname": "removeBlurListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to remove\nthe listener from."}, {"type": "Function", "name": "fn", "description": " the method the event invokes.  If fn is\nundefined, then all event handlers for the type of event are \nremoved."}]}, "onDOMReady": {"static": "", "params": [{"type": "function", "name": "fn", "description": " what to execute when the element is found."}, {"type": "object", "name": "obj", "description": " an optional object to be passed back as\na parameter to fn."}, {"type": "boolean|object", "name": "overrideContext", "description": " If set to true, fn will execute\nin the context of obj, if set to an object it\nwill execute in the context of that object"}], "description": "Executes the supplied callback when the DOM is first usable.  This\nwill execute immediately if called after the DOMReady event has\nfired.   @todo the DOMContentReady event does not fire when the\nscript is dynamically injected into the page.  This means the\nDOMReady custom event will never fire in FireFox or Opera when the\nlibrary is injected.  It _will_ fire in Safari, and the IE \nimplementation would allow for us to fire it if the defered script\nis not available.  We want this to behave the same in all browsers.\nIs there a way to identify when the script has been injected \ninstead of included inline?  Is there a way to know whether the \nwindow onload event has fired without having had a listener attached \nto it when it did so?\n<p>The callback is a CustomEvent, so the signature is:</p>\n<p>type <string>, args <array>, customobject <object></p>\n<p>For DOMReady events, there are no fire argments, so the\nsignature is:</p>\n<p>\"DOMReady\", [], obj</p>"}, "on": {"see": "addListener", "static": "", "description": "YAHOO.util.Event.on is an alias for addListener", "guessedname": "on", "guessedtype": "property"}, "_getScroll": {"guessedname": "_getScroll", "static": "", "description": "Returns the scrollTop and scrollLeft.  Used to calculate the \npageX and pageY in Internet Explorer", "private": "", "guessedtype": "function"}, "getListeners": {"return": {"type": "Object", "description": "the listener. Contains the following fields:\n  type:   (string)   the type of event\n  fn:     (function) the callback supplied to addListener\n  obj:    (object)   the custom object supplied to addListener\n  adjust: (boolean|object)  whether or not to adjust the default context\n  scope: (boolean)  the derived context based on the adjust parameter\n  index:  (int)      its position in the Event util listener cache"}, "description": "Returns all listeners attached to the given element via addListener.\nOptionally, you can specify a specific type of event to return.", "static": "", "guessedname": "getListeners", "guessedtype": "function", "params": [{"type": "HTMLElement|string", "name": "el", "description": "  the element or element id to inspect"}, {"type": "string", "name": "sType", "description": "  optional type of listener to return. If\nleft out, all listeners will be returned"}]}, "getEvent": {"return": {"type": "Event", "description": "the event"}, "description": "Finds the event in the window object, the caller's arguments, or\nin the arguments of another method in the callstack.  This is\nexecuted automatically for events registered through the event\nmanager, so the implementer should not normally need to execute\nthis function at all.", "static": "", "guessedname": "getEvent", "guessedtype": "function", "params": [{"type": "Event", "name": "e", "description": " the event parameter from the handler"}, {"type": "HTMLElement", "name": "boundEl", "description": " the element the listener is attached to"}]}, "purgeElement": {"static": "", "params": [{"type": "HTMLElement", "name": "el", "description": " the element to purge"}, {"type": "boolean", "name": "recurse", "description": " recursively purge this element's children\nas well.  Use with caution."}, {"type": "string", "name": "sType", "description": " optional type of listener to purge. If\nleft out, all listeners will be removed"}], "description": "Removes all listeners attached to the given element via addListener.\nOptionally, the node's children can also be purged.\nOptionally, you can specify a specific type of event to remove.", "guessedname": "purgeElement", "guessedtype": "function"}, "_addListener": {"return": {"type": "Boolean", "description": "True if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Appends an event handler", "private": "", "static": "", "guessedname": "_addListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "String", "name": "sType", "description": "     The type of event to append"}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the handler"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the obj passed in becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}, {"type": "boolen", "name": "capture", "description": " capture or bubble phase"}]}, "preventDefault": {"static": "", "params": [{"type": "Event", "name": "ev", "description": " the event"}], "description": "Prevents the default behavior of the event", "guessedname": "preventDefault", "guessedtype": "function"}, "_getCacheIndex": {"guessedname": "_getCacheIndex", "static": "", "description": "Locating the saved event handler data by function ref", "private": "", "guessedtype": "function"}, "_ready": {"guessedname": "_ready", "static": "", "description": "Fires the DOMReady event listeners the first time the document is\nusable.", "private": "", "guessedtype": "function"}, "delegate": {"return": {"type": "Boolean", "description": "Returns true if the action was successful or defered,\nfalse if one or more of the elements \ncould not have the listener attached,\nor if the operation throws an exception."}, "description": "Appends a delegated event listener.  Delegated event listeners \nreceive three arguments by default: the DOM event, the element  \nspecified by the filtering function or CSS selector, and the \ncontainer element (the element to which the event listener is \nbound).  (Note: Using the delegate method requires the event-delegate \nmodule.  Using CSS selectors as the filtering criteria for delegated \nevent listeners requires inclusion of the Selector Utility.)", "static": "", "guessedname": "delegate", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "container", "description": " An id, an element \nreference, or a collection of ids and/or elements to assign the \nlistener to."}, {"type": "String", "name": "type", "description": "     The type of event listener to append"}, {"type": "Function", "name": "fn", "description": "        The method the event invokes"}, {"type": "Function|string", "name": "filter", "description": " Function or CSS selector used to \ndetermine for what element(s) the event listener should be called. \nWhen a function is specified, the function should return an \nHTML element.  Using a CSS Selector requires the inclusion of the \nCSS Selector Utility."}, {"type": "Object", "name": "obj", "description": "    An arbitrary object that will be \npassed as a parameter to the listener"}, {"type": "Boolean|object", "name": "overrideContext", "description": "  If true, the value of the obj parameter becomes\nthe execution context of the listener. If an\nobject, this object becomes the execution\ncontext."}]}, "getPageY": {"return": {"type": "int", "description": "the event's pageY"}, "description": "Returns the event's pageY", "static": "", "guessedname": "getPageY", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "getPageX": {"return": {"type": "int", "description": "the event's pageX"}, "description": "Returns the event's pageX", "static": "", "guessedname": "getPageX", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}, "removeFocusListener": {"return": {"type": "boolean", "description": "true if the unbind was successful, false \notherwise."}, "description": "Removes a focusin event listener to the specified element for \nthe purpose of listening for the focus event on the element's \ndescendants.", "deprecated": "use YAHOO.util.Event.removeListener and specify \"focusin\" as the event type.", "static": "", "guessedname": "removeFocusListener", "guessedtype": "function", "params": [{"type": "String|HTMLElement|Array|NodeList", "name": "el", "description": " An id, an element \nreference, or a collection of ids and/or elements to remove\nthe listener from."}, {"type": "Function", "name": "fn", "description": " the method the event invokes.  If fn is\nundefined, then all event handlers for the type of event are \nremoved."}]}, "getRelatedTarget": {"return": {"type": "HTMLElement", "description": "the event's relatedTarget"}, "description": "Returns the event's related target", "static": "", "guessedname": "getRelatedTarget", "guessedtype": "function", "params": [{"type": "Event", "name": "ev", "description": " the event"}]}}, "static": "", "file": "Event.js", "guessedtype": "function", "shortname": "Event", "properties": {"isSafari": {"description": "Safari detection", "deprecated": "use YAHOO.env.ua.webkit", "private": "", "static": "", "guessedname": "isSafari", "guessedtype": "property"}, "CAPTURE": {"description": "The original capture parameter passed into addListener", "static": "", "guessedname": "CAPTURE", "guessedtype": "property", "type": "int", "final": ""}, "WFN": {"description": "Function wrapped for context correction and cleanup, int constant", "static": "", "guessedname": "WFN", "guessedtype": "property", "type": "int", "final": ""}, "throwErrors": {"default": "false", "type": "boolean", "description": "Errors thrown by subscribers of custom events are caught\nand the error message is written to the debug console.  If\nthis property is set to true, it will also re-throw the\nerror.", "guessedname": "throwErrors", "guessedtype": "property"}, "FN": {"description": "Function to execute, int constant", "static": "", "guessedname": "FN", "guessedtype": "property", "type": "int", "final": ""}, "DOMReady": {"type": "boolean", "static": "", "description": "True when the document is initially usable", "guessedname": "DOMReady", "guessedtype": "property"}, "POLL_RETRYS": {"description": "The number of times we should look for elements that are not\nin the DOM at the time the event is requested after the document\nhas been loaded.  The default is 500 at amp;40 ms, so it will poll\nfor 20 seconds or until all outstanding handlers are bound\n(whichever comes first).", "static": "", "guessedname": "POLL_RETRYS", "guessedtype": "property", "type": "int", "final": ""}, "listeners": {"description": "Cache of wrapped listeners", "private": "", "static": "", "guessedname": "listeners", "guessedtype": "property", "type": "array"}, "_specialTypes": {"guessedname": "_specialTypes", "static": "", "description": "Map of special event types", "private": "", "guessedtype": "property"}, "unloadListeners": {"description": "User-defined unload function that will be fired before all events\nare detached", "private": "", "static": "", "guessedname": "unloadListeners", "guessedtype": "property", "type": "array"}, "OVERRIDE": {"description": "The original context parameter passed into addListener", "static": "", "guessedname": "OVERRIDE", "guessedtype": "property", "type": "int", "final": ""}, "EL": {"description": "Element to bind, int constant", "static": "", "guessedname": "EL", "guessedtype": "property", "type": "int", "final": ""}, "OBJ": {"description": "Object passed in by the user that will be returned as a \nparameter to the callback, int constant.  Specific to\nunload listeners", "static": "", "guessedname": "UNLOAD_OBJ", "guessedtype": "property", "type": "int", "final": ""}, "elCache\nDOM element cache": {"deprecated": "Elements are not cached due to issues that arise when\nelements are removed and re-added", "static": "", "guessedname": "elCache", "private": "", "guessedtype": "property"}, "_interval": {"guessedname": "_interval", "static": "", "description": "poll handle", "private": "", "guessedtype": "property"}, "webkit": {"description": "webkit version", "deprecated": "use YAHOO.env.ua.webkit", "private": "", "static": "", "guessedname": "webkit", "guessedtype": "property", "type": "string"}, "loadComplete": {"description": "True after the onload event has fired", "private": "", "static": "", "guessedname": "loadComplete", "guessedtype": "property", "type": "boolean"}, "webkitKeymap": {"description": "Normalized keycodes for webkit/safari", "private": "", "static": "", "guessedname": "webkitKeymap", "guessedtype": "property", "type": "{int: int}", "final": ""}, "_dri": {"guessedname": "_dri", "static": "", "description": "document readystate poll handle", "private": "", "guessedtype": "property"}, "counter": {"guessedname": "counter", "static": "", "description": "Counter for auto id generation", "private": "", "guessedtype": "property"}, "POLL_INTERVAL": {"description": "The poll interval in milliseconds", "static": "", "guessedname": "POLL_INTERVAL", "guessedtype": "property", "type": "int", "final": ""}, "ADJ_SCOPE": {"description": "Adjusted context, either the element we are registering the event\non or the custom object passed in by the listener, int constant", "static": "", "guessedname": "ADJ_SCOPE", "guessedtype": "property", "type": "int", "final": ""}, "onAvailStack": {"guessedname": "onAvailStack", "static": "", "description": "onAvailable listeners", "private": "", "guessedtype": "property"}, "isIE": {"description": "IE detection", "deprecated": "use YAHOO.env.ua.ie", "private": "", "static": "", "guessedname": "isIE", "guessedtype": "property"}, "retryCount": {"guessedname": "retryCount", "static": "", "description": "The number of times to poll after window.onload.  This number is\nincreased if additional late-bound handlers are requested after\nthe page load.", "private": "", "guessedtype": "property"}, "lastError": {"type": "Error", "static": "", "description": "addListener/removeListener can throw errors in unexpected scenarios.\nThese errors are suppressed, the method returns false, and this property\nis set", "guessedname": "lastError", "guessedtype": "property"}, "TYPE": {"description": "Type of event, int constant", "static": "", "guessedname": "TYPE", "guessedtype": "property", "type": "int", "final": ""}}, "description": "The event utility provides functions to add and remove event listeners,\nevent cleansing.  It also tries to automatically remove listeners it\nregisters during the unload event."}, "YAHOO.util.Dom": {"name": "YAHOO.util.Dom", "namespace": "YAHOO.util", "module": "dom", "guessedname": "Dom", "methods": {"getElementsBy": {"return": {"type": "Array", "description": "Array of HTMLElements"}, "params": [{"type": "Function", "name": "method", "description": " - A boolean method for testing elements which receives the element as its only argument."}, {"type": "String", "name": "tag", "description": " (optional) The tag name of the elements being collected"}, {"type": "String | HTMLElement", "name": "root", "description": " (optional) The HTMLElement or an ID to use as the starting point"}, {"type": "Function", "name": "apply", "description": " (optional) A function to apply to each element when found"}, {"type": "Any", "name": "o", "description": " (optional) An optional arg that is passed to the supplied method"}, {"type": "Boolean", "name": "overrides", "description": " (optional) Whether or not to override the scope of \"method\" with \"o\""}], "description": "Returns an array of HTMLElements that pass the test applied by supplied boolean method.\nFor optimized performance, include a tag and/or root node when possible.\nNote: This method operates against a live collection, so modifying the \ncollection in the callback (removing/appending nodes, etc.) will have\nside effects.  Instead you should iterate the returned nodes array,\nas you would with the native \"getElementsByTagName\" method.", "guessedname": "getElementsBy", "guessedtype": "function"}, "getAttribute": {"return": {"type": "String", "description": "The current value of the attribute."}, "params": [{"type": "String | HTMLElement", "name": "el", "description": " The target element for the attribute."}, {"type": "String", "name": "attr", "description": " The attribute to get."}], "description": "Provides a normalized attribute interface.", "guessedname": "getAttribute", "guessedtype": "function"}, "generateId": {"return": {"type": "String | Array", "description": "The generated ID, or array of generated IDs (or original ID if already present on an element)"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " (optional) An optional element array of elements to add an ID to (no ID is added if one is already present)."}, {"type": "String", "name": "prefix", "description": " (optional) an optional prefix to use (defaults to \"yui-gen\")."}], "description": "Returns an ID and applies it to the element \"el\", if provided.", "guessedname": "generateId", "guessedtype": "function"}, "getDocumentWidth": {"return": {"type": "Int", "description": "The width of the actual document (which includes the body and its margin)."}, "description": "Returns the width of the document.", "guessedname": "getDocumentWidth", "guessedtype": "function"}, "setStyle": {"params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}, {"type": "String", "name": "property", "description": " The style property to be set."}, {"type": "String", "name": "val", "description": " The value to apply to the given property."}], "description": "Wrapper for setting style properties of HTMLElements.  Normalizes \"opacity\" across modern browsers.", "guessedname": "setStyle", "guessedtype": "function"}, "getX": {"return": {"type": "Number | Array", "description": "The X position of the element(s)"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements"}], "description": "Gets the current X position of an element based on page coordinates.  The element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "getX", "guessedtype": "function"}, "getY": {"return": {"type": "Number | Array", "description": "The Y position of the element(s)"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements"}], "description": "Gets the current Y position of an element based on page coordinates.  Element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "getY", "guessedtype": "function"}, "getChildren": {"return": {"type": "Array", "description": "A static array of HTMLElements"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns an array of HTMLElement childNodes.", "guessedname": "getChildren", "guessedtype": "function"}, "getFirstChild": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns the first HTMLElement child.", "guessedname": "getFirstChild", "guessedtype": "function"}, "getClientRegion": {"return": {"type": "Region", "description": "A Region object representing the viewport which accounts for document scroll"}, "description": "Creates a Region based on the viewport relative to the document.", "guessedname": "getClientRegion", "guessedtype": "function"}, "getLastChildBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " A boolean function used to test children\nthat receives the node being tested as its only argument"}], "description": "Returns the last HTMLElement child that passes the test method.", "guessedname": "getLastChildBy", "guessedtype": "function"}, "getAncestorBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " - A boolean method for testing elements which receives the element as its only argument."}], "description": "Returns the nearest ancestor that passes the test applied by supplied boolean method.\nFor performance reasons, IDs are not accepted and argument validation omitted.", "guessedname": "getAncestorBy", "guessedtype": "function"}, "insertBefore": {"return": {"type": "HTMLElement", "description": "The node that was inserted (or null if insert fails)"}, "params": [{"type": "String | HTMLElement", "name": "newNode", "description": " The node to be inserted"}, {"type": "String | HTMLElement", "name": "referenceNode", "description": " The node to insert the new node before"}], "description": "Inserts the new node as the previous sibling of the reference node", "guessedname": "insertBefore", "guessedtype": "function"}, "getElementBy": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "Function", "name": "method", "description": " - A boolean method for testing elements which receives the element as its only argument."}, {"type": "String", "name": "tag", "description": " (optional) The tag name of the elements being collected"}, {"type": "String | HTMLElement", "name": "root", "description": " (optional) The HTMLElement or an ID to use as the starting point"}], "description": "Returns the first HTMLElement that passes the test applied by the supplied boolean method.", "guessedname": "getElementBy", "guessedtype": "function"}, "getPreviousSiblingBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " A boolean function used to test siblings\nthat receives the sibling node being tested as its only argument"}], "description": "Returns the previous sibling that is an HTMLElement. \nFor performance reasons, IDs are not accepted and argument validation omitted.\nReturns the nearest HTMLElement sibling if no method provided.", "guessedname": "getPreviousSiblingBy", "guessedtype": "function"}, "getElementsByClassName": {"return": {"type": "Array", "description": "An array of elements that have the given class name"}, "params": [{"type": "String", "name": "className", "description": " The class name to match against"}, {"type": "String", "name": "tag", "description": " (optional) The tag name of the elements being collected"}, {"type": "String | HTMLElement", "name": "root", "description": " (optional) The HTMLElement or an ID to use as the starting point.\nThis element is not included in the className scan."}, {"type": "Function", "name": "apply", "description": " (optional) A function to apply to each element when found"}, {"type": "Any", "name": "o", "description": " (optional) An optional arg that is passed to the supplied method"}, {"type": "Boolean", "name": "overrides", "description": " (optional) Whether or not to override the scope of \"method\" with \"o\""}], "description": "Returns an array of HTMLElements with the given class.\nFor optimized performance, include a tag and/or root node when possible.\nNote: This method operates against a live collection, so modifying the \ncollection in the callback (removing/appending nodes, etc.) will have\nside effects.  Instead you should iterate the returned nodes array,\nas you would with the native \"getElementsByTagName\" method.", "guessedname": "getElementsByClassName", "guessedtype": "function"}, "replaceClass": {"return": {"type": "Boolean | Array", "description": "A pass/fail boolean or array of booleans"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " The element or collection to remove the class from"}, {"type": "String", "name": "oldClassName", "description": " the class name to be replaced"}, {"type": "String", "name": "newClassName", "description": " the class name that will be replacing the old class name"}], "description": "Replace a class with another class for a given element or collection of elements.\nIf no oldClassName is present, the newClassName is simply added.", "guessedname": "replaceClass", "guessedtype": "function"}, "getNextSibling": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns the next sibling that is an HTMLElement", "guessedname": "getNextSibling", "guessedtype": "function"}, "getDocumentHeight": {"return": {"type": "Int", "description": "The height of the actual document (which includes the body and its margin)."}, "description": "Returns the height of the document.", "guessedname": "getDocumentHeight", "guessedtype": "function"}, "getLastChild": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns the last HTMLElement child.", "guessedname": "getLastChild", "guessedtype": "function"}, "getClientHeight": {"deprecated": "Now using getViewportHeight.  This interface left intact for back compat.", "return": {"type": "Int", "description": "The height of the viewable area of the page."}, "description": "Returns the height of the client (viewport).", "guessedname": "getClientHeight", "guessedtype": "function"}, "inDocument": {"return": {"type": "Boolean", "description": "Whether or not the element is present in the current document"}, "params": [{"type": "String | HTMLElement", "name": "el", "description": " The element to search for"}, {"type": "Object", "name": "doc", "description": " An optional document to search, defaults to element's owner document"}], "description": "Determines whether an HTMLElement is present in the current document.", "guessedname": "inDocument", "guessedtype": "function"}, "insertAfter": {"return": {"type": "HTMLElement", "description": "The node that was inserted (or null if insert fails)"}, "params": [{"type": "String | HTMLElement", "name": "newNode", "description": " The node to be inserted"}, {"type": "String | HTMLElement", "name": "referenceNode", "description": " The node to insert the new node after"}], "description": "Inserts the new node as the next sibling of the reference node", "guessedname": "insertAfter", "guessedtype": "function"}, "getViewportHeight": {"return": {"type": "Int", "description": "The height of the viewable area of the page (excludes scrollbars)."}, "description": "Returns the current height of the viewport.", "guessedname": "getViewportHeight", "guessedtype": "function"}, "addClass": {"return": {"type": "Boolean | Array", "description": "A pass/fail boolean or array of booleans"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " The element or collection to add the class to"}, {"type": "String", "name": "className", "description": " the class name to add to the class attribute"}], "description": "Adds a class name to a given element or collection of elements.", "guessedname": "addClass", "guessedtype": "function"}, "getAncestorByClassName": {"return": {"type": "Object", "description": "HTMLElement"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}, {"type": "String", "name": "className", "description": ""}], "description": "Returns the nearest ancestor with the given className.", "guessedname": "getAncestorByClassName", "guessedtype": "function"}, "getViewportWidth": {"return": {"type": "Int", "description": "The width of the viewable area of the page (excludes scrollbars)."}, "description": "Returns the current width of the viewport.", "guessedname": "getViewportWidth", "guessedtype": "function"}, "get": {"return": {"type": "HTMLElement | Array", "description": "A DOM reference to an HTML element or an array of HTMLElements."}, "params": [{"type": "String | HTMLElement |Array", "name": "el", "description": " Accepts a string to use as an ID for getting a DOM reference, an actual DOM reference, or an Array of IDs and/or HTMLElements."}], "description": "Returns an HTMLElement reference.", "guessedname": "get", "guessedtype": "function"}, "removeClass": {"return": {"type": "Boolean | Array", "description": "A pass/fail boolean or array of booleans"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " The element or collection to remove the class from"}, {"type": "String", "name": "className", "description": " the class name to remove from the class attribute"}], "description": "Removes a class name from a given element or collection of elements.", "guessedname": "removeClass", "guessedtype": "function"}, "getStyle": {"return": {"type": "String | Array", "description": "The current value of the style property for the element(s)."}, "params": [{"type": "String | HTMLElement |Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}, {"type": "String", "name": "property", "description": " The style property whose value is returned."}], "description": "Normalizes currentStyle and ComputedStyle.", "guessedname": "getStyle", "guessedtype": "function"}, "setXY": {"params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements"}, {"type": "Array", "name": "pos", "description": " Contains X & Y values for new position (coordinates are page-based)"}, {"type": "Boolean", "name": "noRetry", "description": " By default we try and set the position a second time if the first fails"}], "description": "Set the position of an html element in page coordinates, regardless of how the element is positioned.\nThe element(s) must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "setXY", "guessedtype": "function"}, "getPreviousSibling": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}], "description": "Returns the previous sibling that is an HTMLElement", "guessedname": "getPreviousSibling", "guessedtype": "function"}, "getDocumentScrollTop": {"return": {"type": "Int", "description": "The amount that the document is scrolled to the top"}, "params": [{"type": "HTMLDocument", "name": "document", "description": " (optional) The document to get the scroll value of"}], "description": "Returns the top scroll value of the document", "guessedname": "getDocumentScrollTop", "guessedtype": "function"}, "setX": {"params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}, {"type": "Int", "name": "x", "description": " The value to use as the X coordinate for the element(s)."}], "description": "Set the X position of an html element in page coordinates, regardless of how the element is positioned.\nThe element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "setX", "guessedtype": "function"}, "setY": {"params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}, {"type": "Int", "name": "x", "description": " To use as the Y coordinate for the element(s)."}], "description": "Set the Y position of an html element in page coordinates, regardless of how the element is positioned.\nThe element must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "setY", "guessedtype": "function"}, "getXY": {"return": {"type": "Array", "description": "The XY position of the element(s)"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM\nreference, or an Array of IDs and/or HTMLElements"}], "description": "Gets the current position of an element based on page coordinates. \nElement must be part of the DOM tree to have page coordinates (display:none or elements not appended return false).", "guessedname": "getXY", "guessedtype": "function"}, "getFirstChildBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " A boolean function used to test children\nthat receives the node being tested as its only argument"}], "description": "Returns the first HTMLElement child that passes the test method.", "guessedname": "getFirstChildBy", "guessedtype": "function"}, "getClientWidth": {"deprecated": "Now using getViewportWidth.  This interface left intact for back compat.", "return": {"type": "Int", "description": "The width of the viewable area of the page."}, "description": "Returns the width of the client (viewport).", "guessedname": "getClientWidth", "guessedtype": "function"}, "getNextSiblingBy": {"return": {"type": "Object", "description": "HTMLElement or null if not found"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to use as the starting point"}, {"type": "Function", "name": "method", "description": " A boolean function used to test siblings\nthat receives the sibling node being tested as its only argument"}], "description": "Returns the next HTMLElement sibling that passes the boolean method. \nFor performance reasons, IDs are not accepted and argument validation omitted.\nReturns the nearest HTMLElement sibling if no method provided.", "guessedname": "getNextSiblingBy", "guessedtype": "function"}, "getRegion": {"return": {"type": "Region | Array", "description": "A Region or array of Region instances containing \"top, left, bottom, right\" member data."}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " Accepts a string to use as an ID, an actual DOM reference, or an Array of IDs and/or HTMLElements."}], "description": "Returns the region position of the given element.\nThe element must be part of the DOM tree to have a region (display:none or elements not appended return false).", "guessedname": "getRegion", "guessedtype": "function"}, "setAttribute": {"params": [{"type": "String | HTMLElement", "name": "el", "description": " The target element for the attribute."}, {"type": "String", "name": "attr", "description": " The attribute to set."}, {"type": "String", "name": "val", "description": " The value of the attribute."}], "description": "Provides a normalized attribute interface.", "guessedname": "setAttribute", "guessedtype": "function"}, "batch": {"return": {"type": "Any | Array", "description": "The return value(s) from the supplied method"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " (optional) An element or array of elements to apply the method to"}, {"type": "Function", "name": "method", "description": " The method to apply to the element(s)"}, {"type": "Any", "name": "o", "description": " (optional) An optional arg that is passed to the supplied method"}, {"type": "Boolean", "name": "overrides", "description": " (optional) Whether or not to override the scope of \"method\" with \"o\""}], "description": "Runs the supplied method against each item in the Collection/Array.\nThe method is called with the element(s) as the first arg, and the optional param as the second ( method(el, o) ).", "guessedname": "batch", "guessedtype": "function"}, "getChildrenBy": {"return": {"type": "Array", "description": "A static array of HTMLElements"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The HTMLElement to start from"}, {"type": "Function", "name": "method", "description": " A boolean function used to test children\nthat receives the node being tested as its only argument"}], "description": "Returns an array of HTMLElement childNodes that pass the test method.", "guessedname": "getChildrenBy", "guessedtype": "function"}, "isAncestor": {"return": {"type": "Boolean", "description": "Whether or not the haystack is an ancestor of needle"}, "params": [{"type": "String | HTMLElement", "name": "haystack", "description": " The possible ancestor"}, {"type": "String | HTMLElement", "name": "needle", "description": " The possible descendent"}], "description": "Determines whether an HTMLElement is an ancestor of another HTML element in the DOM hierarchy.", "guessedname": "isAncestor", "guessedtype": "function"}, "getDocumentScrollLeft": {"return": {"type": "Int", "description": "The amount that the document is scrolled to the left"}, "params": [{"type": "HTMLDocument", "name": "document", "description": " (optional) The document to get the scroll value of"}], "description": "Returns the left scroll value of the document", "guessedname": "getDocumentScrollLeft", "guessedtype": "function"}, "getAncestorByTagName": {"return": {"type": "Object", "description": "HTMLElement"}, "params": [{"type": "String | HTMLElement", "name": "node", "description": " The HTMLElement or an ID to use as the starting point"}, {"type": "String", "name": "tagName", "description": ""}], "description": "Returns the nearest ancestor with the given tagName.", "guessedname": "getAncestorByTagName", "guessedtype": "function"}, "hasClass": {"return": {"type": "Boolean | Array", "description": "A boolean value or array of boolean values"}, "params": [{"type": "String | HTMLElement | Array", "name": "el", "description": " The element or collection to test"}, {"type": "String", "name": "className", "description": " the class name to search for"}], "description": "Determines whether an HTMLElement has the given className.", "guessedname": "hasClass", "guessedtype": "function"}}, "file": "Dom.js", "guessedtype": "property", "shortname": "Dom", "requires": "yahoo, event", "description": "Provides helper methods for DOM elements."}, "YAHOO.widget.TVFadeOut": {"name": "YAHOO.widget.TVFadeOut", "constructors": [{"params": [{"type": "HTMLElement", "name": "el", "description": "  the element to animate"}, {"type": "Function", "name": "callback", "description": "  function to invoke when the animation is finished"}], "description": "A 1/2 second fade out animation."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "TVFadeOut", "methods": {"onComplete": {"description": "Clean up and invoke callback", "guessedname": "onComplete", "guessedtype": "function"}, "animate": {"description": "Performs the animation", "guessedname": "animate", "guessedtype": "function"}, "toString": {"return": {"type": "string", "description": "the string representation of the instance"}, "description": "toString", "guessedname": "toString", "guessedtype": "function"}}, "file": "TVFadeOut.js", "guessedtype": "function", "shortname": "TVFadeOut", "properties": {"el": {"type": "HTMLElement", "description": "The element to animate", "guessedname": "el", "guessedtype": "property"}, "callback": {"type": "function", "description": "the callback to invoke when the animation is complete", "guessedname": "callback", "guessedtype": "property"}}, "description": "A 1/2 second fade out animation."}, "YAHOO.widget.RadioCellEditor": {"name": "YAHOO.widget.RadioCellEditor", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (Optional) Object literal of configs."}], "description": "The RadioCellEditor class provides functionality for inline editing\nDataTable cell data with radio buttons."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "RadioCellEditor", "methods": {"renderForm": {"description": "Render a form with input(s) type=radio.", "guessedname": "renderForm", "guessedtype": "function"}, "handleDisabledBtns": {"description": "After rendering form, if disabledBtns is set to true, then sets up a mechanism\nto save input without them.", "guessedname": "handleDisabledBtns", "guessedtype": "function"}, "getInputValue": {"description": "Retrieves input value from RadioCellEditor.", "guessedname": "getInputValue", "guessedtype": "function"}, "focus": {"description": "Sets focus in RadioCellEditor.", "guessedname": "focus", "guessedtype": "function"}, "resetForm": {"description": "Resets RadioCellEditor UI to initial state.", "guessedname": "resetForm", "guessedtype": "function"}}, "extends": "YAHOO.widget.BaseCellEditor", "superclass": "YAHOO.widget.BaseCellEditor", "file": "CellEditor.js", "guessedtype": "function", "shortname": "RadioCellEditor", "properties": {"radioOptions": {"type": "String[] | Object[]", "description": "Array of radio values. Can either be a simple array (e.g., [\"yes\",\"no\",\"maybe\"])\nor a an array of objects (e.g., [{label:\"yes\", value:1}, {label:\"no\", value:-1},\n{label:\"maybe\", value:0}]).", "guessedname": "radioOptions", "guessedtype": "property"}, "radios": {"type": "HTMLElement[]", "description": "Reference to radio elements.", "guessedname": "radios", "guessedtype": "property"}}, "description": "The RadioCellEditor class provides functionality for inline editing\nDataTable cell data with radio buttons."}, "YAHOO.widget.Paginator.ui.LastPageLink": {"properties": {"current": {"guessedname": "current", "type": "HTMLElement", "description": "Currently placed HTMLElement node", "private": "", "guessedtype": "property"}, "span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node (inactive link)", "private": "", "guessedtype": "property"}, "link": {"guessedname": "link", "type": "HTMLElement", "description": "Link HTMLElement node", "private": "", "guessedtype": "property"}, "na": {"guessedname": "na", "type": "HTMLElement", "description": "Empty place holder node for when the last page link is inappropriate to\ndisplay in any form (unlimited paging).", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.LastPageLink", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the link to jump to the last page."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforeLastPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLastPageLinkLabelChange", "description": "Fires before the value for the configuration attribute 'lastPageLinkLabel' changes. Return false to cancel the attribute change."}, "lastPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "lastPageLinkClassChange", "description": "Fires when the value for the configuration attribute 'lastPageLinkClass' changes."}, "beforeLastPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLastPageLinkClassChange", "description": "Fires before the value for the configuration attribute 'lastPageLinkClass' changes. Return false to cancel the attribute change."}, "lastPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "lastPageLinkLabelChange", "description": "Fires when the value for the configuration attribute 'lastPageLinkLabel' changes."}}, "guessedname": "LastPageLink", "methods": {"onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the link's onclick event.  Passes to setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the link/span node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "paginator", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event (ignored)"}], "description": "Swap the link, span, and na nodes if appropriate.", "guessedname": "update", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}}, "file": "LastPageLink.js", "guessedtype": "function", "shortname": "LastPageLink", "configs": {"lastPageLinkClass": {"default": "'yui-pg-last'", "description": "CSS class assigned to the link/span"}, "lastPageLinkLabel": {"default": "'last >>'", "description": "Used as innerHTML for the last page link/span."}}, "description": "ui Component to generate the link to jump to the last page."}, "YAHOO.widget.Chart": {"name": "YAHOO.widget.Chart", "configs": {"altText": {"type": "String", "description": "The alternative text to provide for screen readers and other assistive technology."}, "version": {"type": "String", "description": "Minimum required version for the SWF file. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "swfURL": {"type": "String", "description": "Absolute or relative URL to the SWF displayed by the Chart. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "expressInstall": {"type": "String", "description": "URL pointing to a SWF file that handles Flash Player's express\ninstall feature. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "request": {"type": "String", "description": "Request to be sent to the Chart's DataSource."}, "legendLabelFunction": {"type": "String", "description": "The string representation of a globally-accessible function\nthat may be called by the SWF to format the labels of a Chart's legend."}, "wmode": {"type": "String", "description": "Sets the window mode of the Flash Player control. May be\n\"window\", \"opaque\", or \"transparent\". Only available in the constructor\nbecause it may not be set after Flash Player has been embedded in the page."}, "dataTipFunction": {"type": "String", "description": "The string representation of a globally-accessible function\nthat may be called by the SWF to generate the datatip text for a Chart's item."}, "dataSource": {"type": "DataSource", "description": "The DataSource instance to display in the Chart."}, "backgroundColor": {"type": "String", "description": "The background color of the SWF. Only available in the constructor because it may not be\nset after Flash Player has been embedded in the page."}, "series": {"type": "Array", "description": "Defines the series to be displayed by the Chart."}, "polling": {"type": "Number", "description": "A numeric value indicating the number of milliseconds between\npolling requests to the DataSource."}, "categoryNames": {"type": "Array", "description": "Defines the names of the categories to be displayed in the Chart.."}}, "constructors": [{"params": [{"type": "String", "name": "type", "description": "  The char type. May be \"line\", \"column\", \"bar\", or \"pie\""}, {"type": "HTMLElement", "name": "containerId", "description": "  Container element for the Flash Player instance."}, {"type": "YAHOO.util.DataSource", "name": "dataSource", "description": "  DataSource instance."}, {"type": "object", "name": "attributes", "description": "  (optional) Object literal of configuration values."}], "description": "Chart class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "properties": {"_dataTipFunction": {"guessedname": "_dataTipFunction", "type": "String", "description": "Stores a reference to the dataTipFunction created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}, "_seriesFunctions": {"guessedname": "_seriesFunctions", "type": "Array", "description": "Stores references to series function values created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}, "_request": {"private": "", "description": "Storage for the request attribute.", "guessedname": "_request", "guessedtype": "property"}, "_attributes": {"guessedname": "_attributes", "type": "Object", "description": "The initializing attributes are stored here until the SWF is ready.", "private": "", "guessedtype": "property"}, "_pollingInterval": {"guessedname": "_pollingInterval", "type": "Number", "description": "The time, in ms, between requests for data.", "private": "", "guessedtype": "property"}, "_type": {"guessedname": "_type", "type": "String", "description": "The type of this chart instance.", "private": "", "guessedtype": "property"}, "_legendLabelFunction": {"guessedname": "_legendLabelFunction", "type": "String", "description": "Stores a reference to the legendLabelFunction created by\nYAHOO.widget.Chart.createProxyFunction()", "private": "", "guessedtype": "property"}, "_id": {"guessedname": "_id", "type": "String", "description": "The id of this instance.", "private": "", "guessedtype": "property"}, "_initialized": {"guessedname": "_initialized", "type": "Boolean", "description": "Indicates whether the SWF has been initialized and is ready\nto communicate with JavaScript", "private": "", "guessedtype": "property"}, "_containerID": {"guessedname": "_containerID", "type": "String", "description": "The ID of the containing DIV.", "private": "", "guessedtype": "property"}, "_swfEmbed": {"guessedname": "_swfEmbed", "type": "swf", "description": "The javascript wrapper for the swf object", "private": "", "guessedtype": "property"}, "_seriesDefs": {"private": "", "description": "Storage for the series attribute.", "guessedname": "_seriesDefs", "guessedtype": "property"}, "_dataSource": {"private": "", "description": "Storage for the dataSource attribute.", "guessedname": "_dataSource", "guessedtype": "property"}, "Chart.SWFURL": {"description": "Storage for the dataTipFunction attribute.", "default": "\"assets/charts.swf\"", "private": "", "static": "", "guessedname": "SWFURL", "guessedtype": "property", "final": ""}, "proxyFunctionCount": {"guessedname": "proxyFunctionCount", "static": "", "description": "The number of proxy functions that have been created.", "private": "", "guessedtype": "property"}, "_swfURL": {"guessedname": "_swfURL", "type": "String", "description": "The URL of the SWF file.", "private": "", "guessedtype": "property"}, "_pollingID": {"guessedname": "_pollingID", "type": "Number", "description": "The id returned from the DataSource's setInterval function.", "private": "", "guessedtype": "property"}, "_swf": {"private": "", "description": "A reference to the embedded SWF file.", "guessedname": "_swf", "guessedtype": "property"}}, "guessedname": "Chart", "methods": {"_loadHandler": {"private": "", "description": "Called when the SWF is ready for communication. Sets the type, initializes\nthe styles, and sets the DataSource.", "guessedname": "_loadHandler", "guessedtype": "function"}, "_getDataSource": {"private": "", "description": "Getter for the dataSource attribute.", "guessedname": "_getDataSource", "guessedtype": "function"}, "refreshData": {"description": "Sends (or resends) the request to the DataSource.", "guessedname": "refreshData", "guessedtype": "function"}, "_initAttributes": {"private": "", "description": "Initializes the attributes.", "guessedname": "_initAttributes", "guessedtype": "function"}, "_setLegendLabelFunction": {"private": "", "description": "Setter for the legendLabelFunction attribute.", "guessedname": "_setLegendLabelFunction", "guessedtype": "function"}, "_setPolling": {"private": "", "description": "Setter for the polling attribute.", "guessedname": "_setPolling", "guessedtype": "function"}, "_getSeriesDefs": {"private": "", "description": "Getter for the series attribute.", "guessedname": "_getSeriesDefs", "guessedtype": "function"}, "_setCategoryNames": {"private": "", "description": "Setter for the categoryNames attribute.", "guessedname": "_setCategoryNames", "guessedtype": "function"}, "setStyles": {"params": [{"type": "Object", "name": "styles", "description": "  Initializer for all Chart styles."}], "description": "Resets all styles on the Chart instance.", "guessedname": "setStyles", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the Chart instance."}, "description": "Public accessor to the unique name of the Chart instance.", "guessedname": "toString", "guessedtype": "function"}, "_eventHandler": {"private": "", "description": "Handles swfReady event from SWF.", "guessedname": "_eventHandler", "guessedtype": "function"}, "_getSWFURL": {"private": "", "description": "Getter for swfURL attribute.", "guessedname": "_getSWFURL", "guessedtype": "function"}, "_getRequest": {"private": "", "description": "Getter for the request attribute.", "guessedname": "_getRequest", "guessedtype": "function"}, "_setAltText": {"private": "", "description": "Setter for altText attribute.", "guessedname": "_setAltText", "guessedtype": "function"}, "_setDataTipFunction": {"private": "", "description": "Setter for the dataTipFunction attribute.", "guessedname": "_setDataTipFunction", "guessedtype": "function"}, "_setSeriesDefs": {"private": "", "description": "Setter for the series attribute.", "guessedname": "_setSeriesDefs", "guessedtype": "function"}, "_setRequest": {"private": "", "description": "Setter for the request attribute.", "guessedname": "_setRequest", "guessedtype": "function"}, "YAHOO.widget.Chart.getFunctionReference": {"guessedname": "getFunctionReference", "static": "", "description": "Uses YAHOO.widget.Chart.createProxyFunction to return string\nreference to a function.", "private": "", "guessedtype": "function"}, "_loadDataHandler": {"private": "", "description": "Called when the DataSource receives new data. The series definitions are used\nto build a data provider for the SWF chart.", "guessedname": "_loadDataHandler", "guessedtype": "function"}, "_getAltText": {"private": "", "description": "Getter for altText attribute.", "guessedname": "_getAltText", "guessedtype": "function"}, "setSeriesStyles": {"params": [{"type": "Array", "name": "styles", "description": "  Initializer for all Chart series styles."}], "description": "Sets the styles on all series in the Chart.", "guessedname": "setSeriesStyles", "guessedtype": "function"}, "YAHOO.widget.Chart.createProxyFunction": {"guessedname": "createProxyFunction", "static": "", "description": "Creates a globally accessible function that wraps a function reference.\nReturns the proxy function's name as a string for use by the SWF through\nExternalInterface.", "private": "", "guessedtype": "function"}, "_getPolling": {"private": "", "description": "Getter for the polling attribute.", "guessedname": "_getPolling", "guessedtype": "function"}, "_getCategoryNames": {"private": "", "description": "Getter for the categoryNames attribute.", "guessedname": "_getCategoryNames", "guessedtype": "function"}, "setStyle": {"params": [{"type": "String", "name": "name", "description": "  Name of the Chart style value to change."}, {"type": "Object", "name": "value", "description": "  New value to pass to the Chart style."}], "description": "Sets a single style value on the Chart instance.", "guessedname": "setStyle", "guessedtype": "function"}, "_setDataSource": {"private": "", "description": "Setter for the dataSource attribute.", "guessedname": "_setDataSource", "guessedtype": "function"}, "YAHOO.widget.Chart.removeProxyFunction": {"guessedname": "removeProxyFunction", "static": "", "description": "Removes a function created with createProxyFunction()", "private": "", "guessedtype": "function"}}, "uses": ["YAHOO.util.AttributeProvider"], "file": "Chart.js", "guessedtype": "function", "shortname": "Chart", "events": {"beforeDataSourceChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataSourceChange", "description": "Fires before the value for the configuration attribute 'dataSource' changes. Return false to cancel the attribute change."}, "beforeSeriesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSeriesChange", "description": "Fires before the value for the configuration attribute 'series' changes. Return false to cancel the attribute change."}, "altTextChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "altTextChange", "description": "Fires when the value for the configuration attribute 'altText' changes."}, "beforeSwfURLChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSwfURLChange", "description": "Fires before the value for the configuration attribute 'swfURL' changes. Return false to cancel the attribute change."}, "beforeBackgroundColorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBackgroundColorChange", "description": "Fires before the value for the configuration attribute 'backgroundColor' changes. Return false to cancel the attribute change."}, "itemDoubleClickEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user double-clicks an item renderer in the chart with the mouse."}, "contentReady": {"description": "Fires when the SWF is initialized and communication is possible."}, "itemDragStartEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user presses the mouse down on an item to initiate a drag action."}, "dataSourceChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataSourceChange", "description": "Fires when the value for the configuration attribute 'dataSource' changes."}, "itemMouseOverEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user moves the mouse over the bounds of an item renderer in the chart."}, "beforeCategoryNamesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCategoryNamesChange", "description": "Fires before the value for the configuration attribute 'categoryNames' changes. Return false to cancel the attribute change."}, "expressInstallChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "expressInstallChange", "description": "Fires when the value for the configuration attribute 'expressInstall' changes."}, "beforeExpressInstallChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeExpressInstallChange", "description": "Fires before the value for the configuration attribute 'expressInstall' changes. Return false to cancel the attribute change."}, "categoryNamesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "categoryNamesChange", "description": "Fires when the value for the configuration attribute 'categoryNames' changes."}, "itemClickEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user clicks an item renderer in the chart with the mouse."}, "itemDragEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user moves the mouse during a drag action."}, "pollingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "pollingChange", "description": "Fires when the value for the configuration attribute 'polling' changes."}, "dataTipFunctionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "dataTipFunctionChange", "description": "Fires when the value for the configuration attribute 'dataTipFunction' changes."}, "swfURLChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "swfURLChange", "description": "Fires when the value for the configuration attribute 'swfURL' changes."}, "legendLabelFunctionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "legendLabelFunctionChange", "description": "Fires when the value for the configuration attribute 'legendLabelFunction' changes."}, "beforeWmodeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeWmodeChange", "description": "Fires before the value for the configuration attribute 'wmode' changes. Return false to cancel the attribute change."}, "beforePollingChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforePollingChange", "description": "Fires before the value for the configuration attribute 'polling' changes. Return false to cancel the attribute change."}, "requestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "requestChange", "description": "Fires when the value for the configuration attribute 'request' changes."}, "wmodeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "wmodeChange", "description": "Fires when the value for the configuration attribute 'wmode' changes."}, "itemDragEndEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user releases the mouse during a drag action."}, "beforeVersionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeVersionChange", "description": "Fires before the value for the configuration attribute 'version' changes. Return false to cancel the attribute change."}, "beforeRequestChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeRequestChange", "description": "Fires before the value for the configuration attribute 'request' changes. Return false to cancel the attribute change."}, "backgroundColorChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "backgroundColorChange", "description": "Fires when the value for the configuration attribute 'backgroundColor' changes."}, "seriesChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "seriesChange", "description": "Fires when the value for the configuration attribute 'series' changes."}, "beforeLegendLabelFunctionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLegendLabelFunctionChange", "description": "Fires before the value for the configuration attribute 'legendLabelFunction' changes. Return false to cancel the attribute change."}, "beforeDataTipFunctionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDataTipFunctionChange", "description": "Fires before the value for the configuration attribute 'dataTipFunction' changes. Return false to cancel the attribute change."}, "versionChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "versionChange", "description": "Fires when the value for the configuration attribute 'version' changes."}, "beforeAltTextChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeAltTextChange", "description": "Fires before the value for the configuration attribute 'altText' changes. Return false to cancel the attribute change."}, "itemMouseOutEvent": {"params": [{"type": "String", "name": "event.type", "description": "  The event type"}, {"type": "Object", "name": "event.item", "description": "  The data displayed by the renderer"}, {"type": "Number", "name": "event.index", "description": "  The position within the series that the item appears."}, {"type": "Number", "name": "event.seriesIndex", "description": "  The position within the series definition that the series appears."}, {"type": "Number", "name": "event.x", "description": "  The horizontal position of the mouse, relative to the SWF."}, {"type": "Number", "name": "event.y", "description": "  The vertical position of the mouse, relative to the SWF."}], "description": "Fires when the user moves the mouse out of the bounds of an item renderer in the chart."}}, "description": "Chart class for the YUI Charts widget."}, "YAHOO.util.ColumnDD": {"name": "YAHOO.util.ColumnDD", "constructors": [{"params": [{"type": "YAHOO.widget.DataTable", "name": "oDataTable", "description": "  DataTable instance."}, {"type": "YAHOO.widget.Column", "name": "oColumn", "description": "  Column instance."}, {"type": "HTMLElement", "name": "elTh", "description": "  TH element reference."}, {"type": "HTMLElement", "name": "elTarget", "description": "  Drag target element."}], "description": "ColumnDD subclasses DragDrop to support rearrangeable Columns."}], "namespace": "YAHOO.util", "module": "datatable", "guessedname": "ColumnDD", "extends": "YAHOO.util.DDProxy", "superclass": "YAHOO.util.DDProxy", "file": "ColumnSet.js", "guessedtype": "function", "shortname": "ColumnDD", "description": "ColumnDD subclasses DragDrop to support rearrangeable Columns."}, "YAHOO.widget.RootNode": {"name": "YAHOO.widget.RootNode", "constructors": [{"params": [{"type": "YAHOO.widget.TreeView", "name": "oTree", "description": "  The tree instance this node belongs to"}], "description": "A custom YAHOO.widget.Node that handles the unique nature of \nthe virtual, presentationless root node."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "RootNode", "methods": {"getNodeCount": {"return": {"type": "int", "description": "number of nodes in the tree"}, "description": "Count of nodes in tree.  \nIt overrides Nodes.getNodeCount because the root node should not be counted.", "guessedname": "getNodeCount", "guessedtype": "function"}, "getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the tree or false if any child node is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nSince the RootNode is automatically created by treeView, \nits own definition is excluded from the returned node definition\nwhich only contains its children.", "guessedname": "getNodeDefinition", "guessedtype": "function"}}, "extends": "YAHOO.widget.Node", "superclass": "YAHOO.widget.Node", "file": "RootNode.js", "guessedtype": "function", "shortname": "RootNode", "properties": {"_type": {"description": "The node type", "default": "\"RootNode\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}}, "description": "A custom YAHOO.widget.Node that handles the unique nature of \nthe virtual, presentationless root node."}, "YAHOO.tool.TestNode": {"name": "YAHOO.tool.TestNode", "constructors": [{"params": [{"type": "Variant", "name": "testObject", "description": " A TestSuite, TestCase, or the name of a test function."}], "description": "A node in the test tree structure. May represent a TestSuite, TestCase, or\ntest function."}], "namespace": "YAHOO.tool", "module": "yuitest", "methods": {"appendChild": {"return": {"type": "Void", "description": ""}, "params": [{"type": "Variant", "name": "testObject", "description": " A TestSuite, TestCase, or the name of a test function."}], "description": "Appends a new test object (TestSuite, TestCase, or test function name) as a child\nof this node.", "guessedname": "appendChild", "guessedtype": "function"}}, "private": "", "file": "TestRunner.js", "shortname": "TestNode", "properties": {"testObject": {"type": "Variant", "description": "The TestSuite, TestCase, or test function represented by this node.", "guessedname": "testObject", "guessedtype": "property"}, "parent": {"type": "TestNode", "description": "Pointer to this node's parent.", "guessedname": "parent", "guessedtype": "property"}, "results": {"type": "object", "description": "Test results for this test object."}, "firstChild": {"type": "TestNode", "description": "Pointer to this node's first child."}, "next": {"type": "TestNode", "description": "Pointer to this node's next sibling.", "guessedname": "next", "guessedtype": "property"}, "lastChild": {"type": "TestNode", "description": "Pointer to this node's last child.", "guessedname": "lastChild", "guessedtype": "property"}}, "description": "A node in the test tree structure. May represent a TestSuite, TestCase, or\ntest function."}, "YAHOO.widget.ProfilerViewer": {"name": "YAHOO.widget.ProfilerViewer", "configs": {"tableHeight": {"default": "\"15em\"", "type": "string", "description": "The height of the DataTable.  The table will scroll\nvertically if the content overflows the specified\nheight."}, "swfUrl": {"default": "\"http://yui.yahooapis.com/2.5.0/build/charts/assets/charts.swf\"", "type": "string", "description": "The path to the YUI Charts swf file; must be a full URI\nor a path relative to the page being profiled. Changes at runtime\nnot supported; pass this value in at instantiation."}, "sortedBy": {"default": "{key:\"total\", dir:\"yui-dt-desc\"}", "type": "string", "description": "The default column key to sort by.  Valid keys are: fn, calls,\navg, min, max, total.  Valid dir values are: \nYAHOO.widget.DataTable.CLASS_ASC and\nYAHOO.widget.DataTable.CLASS_DESC (or their\nstring equivalents)."}, "filter": {"default": "null", "type": "function", "description": "A filter function to use in selecting functions that will\nappear in the ProfilerViewer report.  The function is passed\na function report object and should return a boolean indicating\nwhether that function should be included in the ProfilerViewer\ndisplay.  The argument is structured as follows:\n{\nfn: <str function name>,\ncalls : <n number of calls>,\navg : <n average call duration>,\nmax: <n duration of longest call>,\nmin: <n duration of shortest call>,\ntotal: <n total time of all calls>\npoints : <array time in ms of each call>\n}\nFor example, you would use the follwing filter function to \nreturn only functions that have been called at least once:\nfunction(o) {\nreturn (o.calls > 0);\n}"}, "visible": {"default": "false", "type": "boolean", "description": "The default visibility setting for the viewer canvas. If true,\nthe viewer will load all necessary files and render itself\nimmediately upon instantiation; otherwise, the viewer will\nload only minimal resources until the user toggles visibility\nvia the UI."}, "base": {"default": "\"\"", "type": "string", "description": "The YUI Loader base path from which to pull YUI files needed\nin the rendering of the ProfilerViewer canvas.  Passed directly\nto YUI Loader.  Leave blank to draw files from\nyui.yahooapis.com."}, "maxChartFunctions": {"default": "6", "type": "int", "description": "The maximum number of functions to profile in the chart. The\ngreater the number of functions, the greater the height of the\nchart canvas.\nheight."}, "chartStyle": {"default": "See JS source for default definitions.", "type": "obj", "description": "The style object that defines the chart's visual presentation.\nConforms to the style attribute passed to the Charts Control\nconstructor.  See Charts Control User's Guide for more information\non how to format this object."}, "showChart": {"default": "true", "type": "boolean", "description": "The default visibility setting for the chart."}, "chartSeriesDefinitions": {"default": "See JS source for full default definitions.", "type": "obj", "description": "The series definition information to use when charting\nspecific fields on the chart.  displayName, xField,\nand style members are used to construct the series\ndefinition; the \"group\" member is the array of fields\nthat should be charted when the table is sorted by a\ngiven field."}}, "constructors": [{"params": [{"type": "HTMLElement | String | Object", "name": "el(optional)", "description": " The html \nelement into which the ProfileViewer should be rendered. \nAn element will be created if none provided."}, {"type": "Object", "name": "attr", "description": " (optional) A key map of the ProfilerViewer's \ninitial attributes.  Ignored if first arg is an attributes object."}], "description": "A widget to view YUI Profiler output."}], "namespace": "YAHOO.widget", "module": "profilerviewer", "events": {"beforeChartSeriesDefinitionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeChartSeriesDefinitionsChange", "description": "Fires before the value for the configuration attribute 'chartSeriesDefinitions' changes. Return false to cancel the attribute change."}, "beforeVisibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeVisibleChange", "description": "Fires before the value for the configuration attribute 'visible' changes. Return false to cancel the attribute change."}, "swfUrlChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "swfUrlChange", "description": "Fires when the value for the configuration attribute 'swfUrl' changes."}, "beforeFilterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFilterChange", "description": "Fires before the value for the configuration attribute 'filter' changes. Return false to cancel the attribute change."}, "showChartChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "showChartChange", "description": "Fires when the value for the configuration attribute 'showChart' changes."}, "sortedByChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "sortedByChange", "description": "Fires when the value for the configuration attribute 'sortedBy' changes."}, "chartSeriesDefinitionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "chartSeriesDefinitionsChange", "description": "Fires when the value for the configuration attribute 'chartSeriesDefinitions' changes."}, "beforeShowChartChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeShowChartChange", "description": "Fires before the value for the configuration attribute 'showChart' changes. Return false to cancel the attribute change."}, "beforeTableHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTableHeightChange", "description": "Fires before the value for the configuration attribute 'tableHeight' changes. Return false to cancel the attribute change."}, "maxChartFunctionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "maxChartFunctionsChange", "description": "Fires when the value for the configuration attribute 'maxChartFunctions' changes."}, "tableHeightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "tableHeightChange", "description": "Fires when the value for the configuration attribute 'tableHeight' changes."}, "beforeSortedByChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSortedByChange", "description": "Fires before the value for the configuration attribute 'sortedBy' changes. Return false to cancel the attribute change."}, "visibleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "visibleChange", "description": "Fires when the value for the configuration attribute 'visible' changes."}, "beforeSwfUrlChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSwfUrlChange", "description": "Fires before the value for the configuration attribute 'swfUrl' changes. Return false to cancel the attribute change."}, "beforeBaseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeBaseChange", "description": "Fires before the value for the configuration attribute 'base' changes. Return false to cancel the attribute change."}, "baseChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "baseChange", "description": "Fires when the value for the configuration attribute 'base' changes."}, "chartStyleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "chartStyleChange", "description": "Fires when the value for the configuration attribute 'chartStyle' changes."}, "beforeMaxChartFunctionsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMaxChartFunctionsChange", "description": "Fires before the value for the configuration attribute 'maxChartFunctions' changes. Return false to cancel the attribute change."}, "filterChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "filterChange", "description": "Fires when the value for the configuration attribute 'filter' changes."}, "beforeChartStyleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeChartStyleChange", "description": "Fires before the value for the configuration attribute 'chartStyle' changes. Return false to cancel the attribute change."}, "renderEvent": {"description": "Fired when the viewer canvas first renders. No arguments are passed\nwith this event."}, "refreshDataEvent": {"description": "Fired when a data refresh is requested. No arguments are passed\nwith this event."}}, "guessedname": "ProfilerViewer", "methods": {"getDataTable": {"public": "", "return": {"type": "", "description": "YAHOO.widget.DataTable"}, "description": "Returns the element containing the console's DataTable\ninstance.", "guessedname": "getDataTable", "guessedtype": "function"}, "show": {"guessedname": "_show", "return": {"type": "", "description": "void"}, "description": "Shows the viewer canvas.", "private": "", "guessedtype": "function"}, "refreshData": {"public": "", "return": {"type": "", "description": "void"}, "description": "Refreshes the data displayed in the ProfilerViewer. When called,\nthis will invoke a refresh of the DataTable and (if displayed)\nthe Chart.", "guessedname": "refreshData", "guessedtype": "function"}, "_initViewerDOM": {"private": "", "description": "Set up the DOM structure for the ProfilerViewer canvas,\nincluding the holder for the DataTable.", "guessedname": "_initViewerDOM", "guessedtype": "function"}, "_drawChartLegend": {"private": "", "description": "Set up the Chart's legend", "guessedname": "_drawChartLegend", "guessedtype": "function"}, "_dataTableRenderHandler": {"private": "", "description": "Proxy the render event in DataTable into the ProfilerViewer\nattribute.", "guessedname": "_dataTableRenderHandler", "guessedtype": "function"}, "initAttributes": {"guessedname": "initAttributes", "params": [{"type": "Object", "name": "attr", "description": " Hash of initial attributes"}], "description": "setAttributeConfigs TabView specific properties.", "private": "", "guessedtype": "function"}, "getHeadEl": {"public": "", "return": {"type": "", "description": "HTMLElement"}, "description": "Returns the element containing the console's header.", "guessedname": "getHeadEl", "guessedtype": "function"}, "getChartEl": {"public": "", "return": {"type": "", "description": "HTMLElement"}, "description": "Returns the element containing the console's chart.", "guessedname": "getChartEl", "guessedtype": "function"}, "_createButton": {"private": "", "description": "Create anchor elements for use as buttons. Args: label\nis text to appear on the face of the button, parentEl\nis the el to which the anchor will be attached, position\nis true for inserting as the first node and false for\ninserting as the last node of the parentEl.", "guessedname": "_createButton", "guessedtype": "function"}, "_refreshDataTable": {"private": "", "description": "Refresh DataTable, getting new data from Profiler.", "guessedname": "_refreshDataTable", "guessedtype": "function"}, "_sortedByChange": {"private": "", "description": "Proxy the sort event in DataTable into the ProfilerViewer\nattribute.", "guessedname": "_sortedByChange", "guessedtype": "function"}, "_initDataTable": {"private": "", "description": "Set up the DataTable.", "guessedname": "_initDataTable", "guessedtype": "function"}, "_toggleVisible": {"guessedname": "_toggleVisible", "return": {"type": "", "description": "void"}, "description": "Toggles visibility of the viewer canvas.", "private": "", "guessedtype": "function"}, "getBodyEl": {"public": "", "return": {"type": "", "description": "HTMLElement"}, "description": "Returns the element containing the console's body, including\nthe chart and the datatable..", "guessedname": "getBodyEl", "guessedtype": "function"}, "hide": {"guessedname": "_hide", "return": {"type": "", "description": "void"}, "description": "Hides the viewer canvas.", "private": "", "guessedtype": "function"}, "_initChart": {"private": "", "description": "Set up the Chart.", "guessedname": "_initChart", "guessedtype": "function"}, "_getChartData": {"private": "", "description": "Get data for the Chart from DataTable recordset", "guessedname": "_getChartData", "guessedtype": "function"}, "toString": {"guessedname": "toString", "return": {"type": "", "description": "String"}, "description": "Provides a readable name for the ProfilerViewer instance.", "private": "", "guessedtype": "function"}, "_sizeChartCanvas": {"private": "", "description": "Resize the chart's canvas if based on number of records\nreturned from the chart's datasource.", "guessedname": "_sizeChartCanvas", "guessedtype": "function"}, "getTableEl": {"public": "", "return": {"type": "", "description": "HTMLElement"}, "description": "Returns the element containing the console's dataTable.", "guessedname": "getTableEl", "guessedtype": "function"}, "_thClickHandler": {"private": "", "description": "Event handler for clicks on the DataTable's sortable column\nheads.", "guessedname": "_thClickHandler", "guessedtype": "function"}, "_initLauncherDOM": {"private": "", "description": "Set up the DOM structure for the ProfilerViewer launcher.", "guessedname": "_initLauncherDOM", "guessedtype": "function"}, "_arraySum": {"private": "", "description": "Utility function for array sums.", "guessedname": "_arraySum", "guessedtype": "function"}, "_createProfilerViewerElement": {"guessedname": "_createProfilerViewerElement", "return": {"type": "", "description": "HTMLElement"}, "description": "If no element is passed in, create it as the first element\nin the document.", "private": "", "guessedtype": "function"}, "_getSeriesDef": {"private": "", "description": "Build series definition based on current configuration attributes.", "guessedname": "_getSeriesDef", "guessedtype": "function"}, "_initChartDOM": {"private": "", "description": "Set up the DOM structure for the ProfilerViewer canvas.", "guessedname": "_initChartDOM", "guessedtype": "function"}, "_setBusyState": {"private": "", "description": "Set's console busy state.", "guessedname": "_setBusyState", "guessedtype": "function"}, "_refreshChart": {"private": "", "description": "Refresh chart, getting new data from table.", "guessedname": "_refreshChart", "guessedtype": "function"}, "_render": {"guessedname": "_render", "return": {"type": "", "description": "void"}, "description": "Render the viewer canvas", "private": "", "guessedtype": "function"}, "_getProfilerData": {"private": "", "description": "Retrieves data from Profiler, filtering and sorting as needed\nbased on current widget state.  Adds calculated percentage\ncolumn and function name to data returned by Profiler.", "guessedname": "_getProfilerData", "guessedtype": "function"}, "getChart": {"public": "", "return": {"type": "", "description": "YAHOO.widget.BarChart"}, "description": "Returns the element containing the console's Chart instance.", "guessedname": "getChart", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "profilerviewer.js", "guessedtype": "function", "shortname": "ProfilerViewer", "properties": {"CLASS_CHART": {"description": "Classname for element containing the chart.", "default": "\"yui-pv-chart\"", "static": "", "guessedname": "CLASS_CHART", "guessedtype": "property", "type": "string", "public": ""}, "CLASS_BUSY": {"description": "Classname for busy indicator in the dashboard.", "default": "\"yui-pv-busy\"", "static": "", "guessedname": "CLASS_BUSY", "guessedtype": "property", "type": "string", "public": ""}, "timeAxisLabelFunction": {"description": "Function used to format numbers in milliseconds\nfor chart; must be publicly accessible, per Charts spec.", "private": "", "static": "", "guessedname": "timeAxisLabelFunction", "guessedtype": "function", "type": "function"}, "CLASS_CHART_LEGEND": {"description": "Classname for element containing the chart's legend.", "default": "\"yui-pv-chartlegend\"", "static": "", "guessedname": "CLASS_CHART_LEGEND", "guessedtype": "property", "type": "string", "public": ""}, "CLASS_REFRESH": {"description": "Classname for the \"refresh data\" button.", "default": "\"yui-pv-refresh\"", "static": "", "guessedname": "CLASS_REFRESH", "guessedtype": "property", "type": "string", "public": ""}, "CLASS_CHART_CONTAINER": {"description": "Classname for element containing the chart and chart\nlegend elements.", "default": "\"yui-pv-chartcontainer\"", "static": "", "guessedname": "CLASS_CHART_CONTAINER", "guessedtype": "property", "type": "string", "public": ""}, "percentAxisLabelFunction": {"description": "Function used to format percent numbers for chart; must\nbe publicly accessible, per Charts spec.", "private": "", "static": "", "guessedname": "percentAxisLabelFunction", "guessedtype": "function", "type": "function"}, "CLASS_DASHBOARD": {"description": "Classname for ProfilerViewer button dashboard.", "default": "\"yui-pv-dashboard\"", "static": "", "guessedname": "CLASS_DASHBOARD", "guessedtype": "property", "type": "string", "public": ""}, "STRINGS": {"description": "Strings used in the UI.", "default": "English language strings for UI.", "object": "", "static": "", "guessedname": "STRINGS", "guessedtype": "property", "public": ""}, "CLASS": {"description": "Classname for ProfilerViewer containing element.", "default": "\"yui-pv\"", "static": "", "guessedname": "CLASS", "guessedtype": "property", "type": "string", "public": ""}, "CLASS_TABLE": {"description": "Classname for element containing the datatable.", "default": "\"yui-pv-table\"", "static": "", "guessedname": "CLASS_TABLE", "guessedtype": "property", "type": "string", "public": ""}}, "description": "A widget to view YUI Profiler output."}, "YAHOO.util.DD": {"name": "YAHOO.util.DD", "constructors": [{"params": [{"type": "String", "name": "id", "description": " the id of the linked element"}, {"type": "String", "name": "sGroup", "description": " the group of related DragDrop items"}, {"type": "object", "name": "config", "description": " an object containing configurable attributes\nValid properties for DD: \nscroll"}], "description": "A DragDrop implementation where the linked element follows the \nmouse cursor during a drag."}], "namespace": "YAHOO.util", "module": "dragdrop", "events": {"startDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs after a mouse down and the drag threshold has been met. The drag threshold default is either 3 pixels of mouse movement or 1 full second of holding the mousedown."}, "mouseUpEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fired from inside DragDropMgr when the drag operation is finished."}, "dragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs every mousemove event while dragging."}, "dragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires every mousemove event while over a drag and drop object."}, "dragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when a dragged object is no longer over an object that had the onDragEnter fire."}, "b4EndDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the endDragEvent. Returning false will cancel."}, "b4StartDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the startDragEvent, returning false will cancel the startDrag Event."}, "b4DragOutEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOutEvent"}, "endDragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires on the mouseup event after a drag has been initiated (startDrag fired)."}, "b4DragOverEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragOverEvent."}, "dragEnterEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Occurs when the dragged object first interacts with another targettable drag and drop object."}, "b4DragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragDropEvent"}, "b4DragEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires before the dragEvent."}, "dragDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped on another."}, "mouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event. The mousedown does not always result in a drag operation."}, "invalidDropEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Fires when the dragged objects is dropped in a location that contains no drop targets."}, "b4MouseDownEvent": {"type": "YAHOO.util.CustomEvent See <a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for more information on listening for this event.", "description": "Provides access to the mousedown event, before the mouseDownEvent gets fired. Returning false will cancel the drag."}}, "guessedname": "DD", "methods": {"setDragElPos": {"params": [{"type": "int", "name": "iPageX", "description": " the X coordinate of the mousedown or drag event"}, {"type": "int", "name": "iPageY", "description": " the Y coordinate of the mousedown or drag event"}], "description": "Sets the drag element to the location of the mousedown or click event, \nmaintaining the cursor location relative to the location on the element \nthat was clicked.  Override this if you want to place the element in a \nlocation other than where the cursor is.", "guessedname": "setDragElPos", "guessedtype": "function"}, "alignElWithMouse": {"params": [{"type": "HTMLElement", "name": "el", "description": " the element to move"}, {"type": "int", "name": "iPageX", "description": " the X coordinate of the mousedown or drag event"}, {"type": "int", "name": "iPageY", "description": " the Y coordinate of the mousedown or drag event"}], "description": "Sets the element to the location of the mousedown or click event, \nmaintaining the cursor location relative to the location on the element \nthat was clicked.  Override this if you want to place the element in a \nlocation other than where the cursor is.", "guessedname": "alignElWithMouse", "guessedtype": "function"}, "autoOffset": {"params": [{"type": "int", "name": "iPageX", "description": " the X coordinate of the click"}, {"type": "int", "name": "iPageY", "description": " the Y coordinate of the click"}], "description": "Sets the pointer offset to the distance between the linked element's top \nleft corner and the location the element was clicked", "guessedname": "autoOffset", "guessedtype": "function"}, "autoScroll": {"guessedname": "autoScroll", "params": [{"type": "int", "name": "x", "description": " the drag element's x position"}, {"type": "int", "name": "y", "description": " the drag element's y position"}, {"type": "int", "name": "h", "description": " the height of the drag element"}, {"type": "int", "name": "w", "description": " the width of the drag element"}], "description": "Auto-scroll the window if the dragged object has been moved beyond the \nvisible window boundary.", "private": "", "guessedtype": "function"}, "setDelta": {"params": [{"type": "int", "name": "iDeltaX", "description": " the distance from the left"}, {"type": "int", "name": "iDeltaY", "description": " the distance from the top"}], "description": "Sets the pointer offset.  You can call this directly to force the \noffset to be in a particular location (e.g., pass in 0,0 to set it \nto the center of the object, as done in YAHOO.widget.Slider)", "guessedname": "setDelta", "guessedtype": "function"}, "cachePosition": {"params": [{"type": "", "name": "iPageX", "description": " the current x position (optional, this just makes it so we\ndon't have to look it up again)"}, {"type": "", "name": "iPageY", "description": " the current y position (optional, this just makes it so we\ndon't have to look it up again)"}], "description": "Saves the most recent position so that we can reset the constraints and\ntick marks on-demand.  We need to know this so that we can calculate the\nnumber of pixels the element is offset from its original position.", "guessedname": "cachePosition", "guessedtype": "function"}}, "extends": "YAHOO.util.DragDrop", "superclass": "YAHOO.util.DragDrop", "file": "DD.js", "guessedtype": "function", "shortname": "DD", "properties": {"scroll": {"type": "boolean", "description": "When set to true, the utility automatically tries to scroll the browser\nwindow when a drag and drop element is dragged near the viewport boundary.\nDefaults to true.", "guessedname": "scroll", "guessedtype": "property"}}, "description": "A DragDrop implementation where the linked element follows the \nmouse cursor during a drag."}, "YAHOO.widget.Paginator.ui.NextPageLink": {"properties": {"current": {"guessedname": "current", "type": "HTMLElement", "description": "Currently placed HTMLElement node", "private": "", "guessedtype": "property"}, "span": {"guessedname": "span", "type": "HTMLElement", "description": "Span node (inactive link)", "private": "", "guessedtype": "property"}, "link": {"guessedname": "link", "type": "HTMLElement", "description": "Link node", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.NextPageLink", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "ui Component to generate the link to jump to the next page."}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforeNextPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNextPageLinkLabelChange", "description": "Fires before the value for the configuration attribute 'nextPageLinkLabel' changes. Return false to cancel the attribute change."}, "beforeNextPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNextPageLinkClassChange", "description": "Fires before the value for the configuration attribute 'nextPageLinkClass' changes. Return false to cancel the attribute change."}, "nextPageLinkClassChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "nextPageLinkClassChange", "description": "Fires when the value for the configuration attribute 'nextPageLinkClass' changes."}, "nextPageLinkLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "nextPageLinkLabelChange", "description": "Fires when the value for the configuration attribute 'nextPageLinkLabel' changes."}}, "guessedname": "NextPageLink", "methods": {"onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for the link's onclick event.  Passes to setPage method.", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Removes the link/span node and clears event listeners", "guessedname": "destroy", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Swap the link and span nodes if appropriate.", "guessedname": "update", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}}, "file": "NextPageLink.js", "guessedtype": "function", "shortname": "NextPageLink", "configs": {"nextPageLinkLabel": {"default": "'next >'", "description": "Used as innerHTML for the next page link/span."}, "nextPageLinkClass": {"default": "'yui-pg-next'", "description": "CSS class assigned to the link/span"}}, "description": "ui Component to generate the link to jump to the next page."}, "YAHOO.widget.Calendar_Core": {"name": "YAHOO.widget.Calendar_Core", "deprecated": "The old Calendar_Core class is no longer necessary.", "namespace": "YAHOO.widget", "module": "calendar", "guessedname": "Calendar_Core", "extends": "YAHOO.widget.Calendar", "superclass": "YAHOO.widget.Calendar", "file": "Calendar.js", "guessedtype": "property", "shortname": "Calendar_Core"}, "YAHOO.widget.Button": {"name": "YAHOO.widget.Button", "configs": {"replaceLabel": {"default": "false", "type": "Boolean", "description": "Boolean indicating whether or not the text of the \nbutton's <code><label></code> element should be used as\nthe source for the button's label configuration attribute and \nremoved from the DOM."}, "disabled": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the button should be disabled.  \n(Disabled buttons are dimmed and will not respond to user input \nor fire events.  Does not apply to button's of type \"link.\")"}, "href": {"type": "String", "description": "String specifying the href for the button.  Applies\nonly to buttons of type \"link.\""}, "checked": {"default": "false", "type": "Boolean", "description": "Boolean indicating if the button is checked. \nApplies only to buttons of type \"radio\" and \"checkbox.\""}, "title": {"default": "null", "type": "String", "description": "String specifying the title for the button."}, "menu": {"default": "null", "type": "<a href=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu</a>|<a \nhref=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>|<a \nhref=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-58190037\">HTMLElement</a>|String|Array", "description": "Object specifying the menu for the button.  \nThe value can be one of the following:\n<ul>\n<li>Object specifying a rendered <a href=\"YAHOO.widget.Menu.html\">\nYAHOO.widget.Menu</a> instance.</li>\n<li>Object specifying a rendered <a href=\"YAHOO.widget.Overlay.html\">\nYAHOO.widget.Overlay</a> instance.</li>\n<li>String specifying the id attribute of the <code><div>\n</code> element used to create the menu.  By default the menu \nwill be created as an instance of \n<a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>.  \nIf the <a href=\"YAHOO.widget.Menu.html#CSS_CLASS_NAME\">\ndefault CSS class name for YAHOO.widget.Menu</a> is applied to \nthe <code><div></code> element, it will be created as an\ninstance of <a href=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu\n</a>.</li><li>String specifying the id attribute of the \n<code><select></code> element used to create the menu.\n</li><li>Object specifying the <code><div></code> element\nused to create the menu.</li>\n<li>Object specifying the <code><select></code> element\nused to create the menu.</li>\n<li>Array of object literals, each representing a set of \n<a href=\"YAHOO.widget.MenuItem.html\">YAHOO.widget.MenuItem</a> \nconfiguration attributes.</li>\n<li>Array of strings representing the text labels for each menu \nitem in the menu.</li>\n</ul>", "writeonce": ""}, "label": {"default": "null", "type": "String", "description": "String specifying the button's text label \nor innerHTML."}, "srcelement": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|String", "description": "Object reference to the HTML element (either \n<code><input></code> or <code><span></code>) \nused to create the button.", "writeonce": ""}, "onclick": {"default": "null", "type": "Object", "description": "Object literal representing the code to be executed  \nwhen the button is clicked.  Format:<br> <code> {<br> \n<strong>fn:</strong> Function,   // The handler to call \nwhen the event fires.<br> <strong>obj:</strong> Object, \n// An object to pass back to the handler.<br> \n<strong>scope:</strong> Object //  The object to use \nfor the scope of the handler.<br> } </code>"}, "type": {"default": "\"push\"", "type": "String", "description": "String specifying the button's type.  Possible \nvalues are: \"push,\" \"link,\" \"submit,\" \"reset,\" \"checkbox,\" \n\"radio,\" \"menu,\" and \"split.\"", "writeonce": ""}, "container": {"default": "null", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>|String", "description": "HTML element reference or string specifying the id \nattribute of the HTML element that the button's markup should be \nrendered into.", "writeonce": ""}, "menuclassname": {"default": "\"yui-button-menu\"", "type": "String", "description": "String representing the CSS class name to be \napplied to the root element of the button's menu.", "writeonce": ""}, "menumaxheight": {"default": "0", "type": "Number", "description": "Number defining the maximum height (in pixels) for a menu's \nbody element (<code><div class=\"bd\"<</code>).  Once a menu's body \nexceeds this height, the contents of the body are scrolled to maintain \nthis value.  This value cannot be set lower than the value of the \n\"minscrollheight\" configuration property."}, "target": {"type": "String", "description": "String specifying the target for the button.  \nApplies only to buttons of type \"link.\""}, "name": {"default": "null", "type": "String", "description": "String specifying the name for the button."}, "menuminscrollheight": {"default": "90", "type": "Number", "description": "Number defining the minimum threshold for the \"menumaxheight\" \nconfiguration attribute.  When set this attribute is automatically applied \nto all submenus."}, "value": {"default": "null", "type": "Object", "description": "Object specifying the value for the button."}, "lazyloadmenu": {"default": "true", "type": "Boolean", "description": "Boolean indicating the value to set for the \n<a href=\"YAHOO.widget.Menu.html#lazyLoad\">\"lazyload\"</a>\nconfiguration property of the button's menu.  Setting \n\"lazyloadmenu\" to <code>true </code> will defer rendering of \nthe button's menu until the first time it is made visible.  \nIf \"lazyloadmenu\" is set to <code>false</code>, the button's \nmenu will be rendered immediately if the button is in the \ndocument, or in response to the button's \"appendTo\" event if \nthe button is not yet in the document.  In either case, the \nmenu is rendered into the button's parent HTML element.  \n<em>This attribute does not apply if a \n<a href=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu</a> or \n<a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a> \ninstance is passed as the value of the button's \"menu\" \nconfiguration attribute. <a href=\"YAHOO.widget.Menu.html\">\nYAHOO.widget.Menu</a> or <a href=\"YAHOO.widget.Overlay.html\">\nYAHOO.widget.Overlay</a> instances should be rendered before \nbeing set as the value for the \"menu\" configuration \nattribute.</em>", "writeonce": ""}, "tabindex": {"default": "null", "type": "Number", "description": "Number specifying the tabindex for the button."}, "focusmenu": {"default": "true", "type": "Boolean", "description": "Boolean indicating whether or not the button's menu \nshould be focused when it is made visible."}, "menualignment": {"default": "[\"tl\", \"bl\"]", "type": "Array", "description": "Array defining how the Button's Menu is aligned to the Button.  \nThe default value of [\"tl\", \"bl\"] aligns the Menu's top left corner to the Button's \nbottom left corner."}, "selectedMenuItem": {"default": "null", "type": "YAHOO.widget.MenuItem", "description": "Object representing the item in the button's menu \nthat is currently selected."}}, "constructors": [{"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><input></code>, <code><button></code>,\n<code><a></code>, or <code><span></code> element to \nbe used to create the button."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-6043025\">HTMLInputElement</a>|<a href=\"http://www.w3.org\n/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-34812697\">\nHTMLButtonElement</a>|<a href=\"\nhttp://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html#\nID-33759296\">HTMLElement</a>", "name": "p_oElement", "description": " Object reference for the \n<code><input></code>, <code><button></code>, \n<code><a></code>, or <code><span></code> element to be \nused to create the button."}, {"type": "Object", "name": "p_oElement", "description": " Object literal specifying a set of   \nconfiguration attributes used to create the button."}, {"type": "Object", "name": "p_oAttributes", "description": " Optional. Object literal specifying a set  \nof configuration attributes used to create the button."}], "description": "The Button class creates a rich, graphical button."}], "namespace": "YAHOO.widget", "module": "button", "events": {"beforeTitleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTitleChange", "description": "Fires before the value for the configuration attribute 'title' changes. Return false to cancel the attribute change."}, "focus": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item receives focus.  Passes back a  \nsingle object representing the original DOM event object passed back by \nthe event utility (YAHOO.util.Event) when the event was fired.  See \n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> \nfor more information on listening for this event."}, "beforeMenuclassnameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenuclassnameChange", "description": "Fires before the value for the configuration attribute 'menuclassname' changes. Return false to cancel the attribute change."}, "beforeDisabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeDisabledChange", "description": "Fires before the value for the configuration attribute 'disabled' changes. Return false to cancel the attribute change."}, "beforeNameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeNameChange", "description": "Fires before the value for the configuration attribute 'name' changes. Return false to cancel the attribute change."}, "beforeMenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenuChange", "description": "Fires before the value for the configuration attribute 'menu' changes. Return false to cancel the attribute change."}, "menuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menuChange", "description": "Fires when the value for the configuration attribute 'menu' changes."}, "beforeHrefChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeHrefChange", "description": "Fires before the value for the configuration attribute 'href' changes. Return false to cancel the attribute change."}, "option": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the user invokes the button's option.  Passes \nback a single object representing the original DOM event (either \n\"mousedown\" or \"keydown\") that caused the \"option\" event to fire.  See \n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> \nfor more information on listening for this event."}, "onclickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "onclickChange", "description": "Fires when the value for the configuration attribute 'onclick' changes."}, "menumaxheightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menumaxheightChange", "description": "Fires when the value for the configuration attribute 'menumaxheight' changes."}, "hrefChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "hrefChange", "description": "Fires when the value for the configuration attribute 'href' changes."}, "menuminscrollheightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menuminscrollheightChange", "description": "Fires when the value for the configuration attribute 'menuminscrollheight' changes."}, "beforeReplaceLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeReplaceLabelChange", "description": "Fires before the value for the configuration attribute 'replaceLabel' changes. Return false to cancel the attribute change."}, "containerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "containerChange", "description": "Fires when the value for the configuration attribute 'container' changes."}, "blur": {"type": "YAHOO.util.CustomEvent", "description": "Fires when the menu item loses the input focus.  Passes back  \na single object representing the original DOM event object passed back by \nthe event utility (YAHOO.util.Event) when the event was fired.  See \n<a href=\"YAHOO.util.Element.html#addListener\">Element.addListener</a> for  \nmore information on listening for this event."}, "beforeMenuminscrollheightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenuminscrollheightChange", "description": "Fires before the value for the configuration attribute 'menuminscrollheight' changes. Return false to cancel the attribute change."}, "typeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "typeChange", "description": "Fires when the value for the configuration attribute 'type' changes."}, "beforeLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLabelChange", "description": "Fires before the value for the configuration attribute 'label' changes. Return false to cancel the attribute change."}, "beforeTypeChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTypeChange", "description": "Fires before the value for the configuration attribute 'type' changes. Return false to cancel the attribute change."}, "targetChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "targetChange", "description": "Fires when the value for the configuration attribute 'target' changes."}, "tabindexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "tabindexChange", "description": "Fires when the value for the configuration attribute 'tabindex' changes."}, "beforeSelectedMenuItemChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSelectedMenuItemChange", "description": "Fires before the value for the configuration attribute 'selectedMenuItem' changes. Return false to cancel the attribute change."}, "beforeOnclickChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeOnclickChange", "description": "Fires before the value for the configuration attribute 'onclick' changes. Return false to cancel the attribute change."}, "replaceLabelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "replaceLabelChange", "description": "Fires when the value for the configuration attribute 'replaceLabel' changes."}, "beforeMenualignmentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenualignmentChange", "description": "Fires before the value for the configuration attribute 'menualignment' changes. Return false to cancel the attribute change."}, "valueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "valueChange", "description": "Fires when the value for the configuration attribute 'value' changes."}, "beforeContainerChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeContainerChange", "description": "Fires before the value for the configuration attribute 'container' changes. Return false to cancel the attribute change."}, "labelChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "labelChange", "description": "Fires when the value for the configuration attribute 'label' changes."}, "focusmenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "focusmenuChange", "description": "Fires when the value for the configuration attribute 'focusmenu' changes."}, "nameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "nameChange", "description": "Fires when the value for the configuration attribute 'name' changes."}, "beforeTargetChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTargetChange", "description": "Fires before the value for the configuration attribute 'target' changes. Return false to cancel the attribute change."}, "disabledChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "disabledChange", "description": "Fires when the value for the configuration attribute 'disabled' changes."}, "lazyloadmenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "lazyloadmenuChange", "description": "Fires when the value for the configuration attribute 'lazyloadmenu' changes."}, "beforeValueChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeValueChange", "description": "Fires before the value for the configuration attribute 'value' changes. Return false to cancel the attribute change."}, "beforeTabindexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTabindexChange", "description": "Fires before the value for the configuration attribute 'tabindex' changes. Return false to cancel the attribute change."}, "beforeSrcelementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeSrcelementChange", "description": "Fires before the value for the configuration attribute 'srcelement' changes. Return false to cancel the attribute change."}, "menuclassnameChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menuclassnameChange", "description": "Fires when the value for the configuration attribute 'menuclassname' changes."}, "beforeMenumaxheightChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMenumaxheightChange", "description": "Fires before the value for the configuration attribute 'menumaxheight' changes. Return false to cancel the attribute change."}, "beforeFocusmenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeFocusmenuChange", "description": "Fires before the value for the configuration attribute 'focusmenu' changes. Return false to cancel the attribute change."}, "srcelementChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "srcelementChange", "description": "Fires when the value for the configuration attribute 'srcelement' changes."}, "selectedMenuItemChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "selectedMenuItemChange", "description": "Fires when the value for the configuration attribute 'selectedMenuItem' changes."}, "beforeLazyloadmenuChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeLazyloadmenuChange", "description": "Fires before the value for the configuration attribute 'lazyloadmenu' changes. Return false to cancel the attribute change."}, "menualignmentChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "menualignmentChange", "description": "Fires when the value for the configuration attribute 'menualignment' changes."}, "titleChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "titleChange", "description": "Fires when the value for the configuration attribute 'title' changes."}, "checkedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "checkedChange", "description": "Fires when the value for the configuration attribute 'checked' changes."}, "beforeCheckedChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeCheckedChange", "description": "Fires before the value for the configuration attribute 'checked' changes. Return false to cancel the attribute change."}}, "methods": {"_showMenu": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object \npassed back by the event utility (YAHOO.util.Event) that triggered \nthe display of the menu."}], "description": "Shows the button's menu.", "guessedname": "_showMenu", "guessedtype": "function"}, "submitForm": {"protected": "", "return": {"type": "Boolean", "description": ""}, "description": "Submits the form to which the button belongs.  Returns  \ntrue if the form was submitted successfully, false if the submission \nwas cancelled.", "guessedname": "submitForm", "guessedtype": "function"}, "createInputElement": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-6043025\">HTMLInputElement</a>", "description": ""}, "params": [{"type": "String", "name": "p_sType", "description": " String specifying the type of \n<code><input></code> element to create."}, {"type": "String", "name": "p_sName", "description": " String specifying the name of \n<code><input></code> element to create."}, {"type": "String", "name": "p_sValue", "description": " String specifying the value of \n<code><input></code> element to create."}, {"type": "String", "name": "p_bChecked", "description": " Boolean specifying if the  \n<code><input></code> element is to be checked."}], "description": "Creates an <code><input></code> element of the \nspecified type.", "private": ""}, "createButtonElement": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-58190037\">HTMLElement</a>", "description": ""}, "params": [{"type": "String", "name": "p_sType", "description": " String indicating the type of element \nto create."}], "description": "Creates the button's HTML elements.", "guessedname": "createButtonElement", "guessedtype": "function"}, "_isActivationKey": {"return": {"type": "Boolean", "description": ""}, "description": "Determines if the specified keycode is one that toggles  \nthe button's \"active\" state.", "protected": "", "params": [{"type": "Number", "name": "p_nKeyCode", "description": " Number representing the keycode to \nbe evaluated."}], "guessedname": "_isActivationKey", "guessedtype": "function"}, "hasFocus": {"return": {"type": "Boolean", "description": ""}, "description": "Returns a boolean indicating whether or not the button \nhas focus.", "guessedname": "hasFocus", "guessedtype": "function"}, "getForm": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-\n20000929/level-one-html.html#ID-40002357\">HTMLFormElement</a>", "description": ""}, "description": "Returns a reference to the button's parent form.", "guessedname": "getForm", "guessedtype": "function"}, "_onFormReset": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event \nobject passed back by the event utility (YAHOO.util.Event)."}], "description": "\"reset\" event handler for the button's form.", "guessedname": "_onFormReset", "guessedtype": "function"}, "_addListenersToForm": {"protected": "", "description": "Adds event handlers to the button's form.", "guessedname": "_addListenersToForm", "guessedtype": "function"}, "_onMouseUp": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mouseup\" event handler for the button.", "guessedname": "_onMouseUp", "guessedtype": "function"}, "_onOption": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"option\" event handler for the button.", "guessedname": "_onOption", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "p_oAttributes", "description": " Object literal specifying a set of \nconfiguration attributes used to create the button."}], "description": "Initializes all of the configuration attributes used to  \ncreate the button.", "guessedname": "initAttributes", "guessedtype": "function"}, "_setTabIndex": {"protected": "", "params": [{"type": "Number", "name": "p_nTabIndex", "description": " Number indicating the value for the \nbutton's \"tabindex\" attribute."}], "description": "Sets the value of the button's \"tabindex\" attribute.", "guessedname": "_setTabIndex", "guessedtype": "function"}, "_onSelectedMenuItemChange": {"params": [{"type": "Event", "name": "event", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"selectedMenuItemChange\" event handler for the Button's\n\"selectedMenuItem\" attribute.", "guessedname": "_onSelectedMenuItemChange", "guessedtype": "function"}, "_onDocumentKeyUp": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"keyup\" event handler for the document.", "guessedname": "_onDocumentKeyUp", "guessedtype": "function"}, "_onClick": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"click\" event handler for the button.", "guessedname": "_onClick", "guessedtype": "function"}, "removeStateCSSClasses": {"description": "Removes state-specific CSS classes to the button's root \nDOM element.", "guessedname": "removeStateCSSClasses", "guessedtype": "function"}, "YAHOO.widget.Button.onFormKeyPress": {"params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object passed \nback by the event utility (YAHOO.util.Event)."}], "description": "\"keypress\" event handler for the button's form.", "guessedname": "onFormKeyPress", "guessedtype": "function"}, "YAHOO.widget.Button.addHiddenFieldsToForm": {"params": [{"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-40002357\">HTMLFormElement</a>", "name": "p_oForm", "description": " Object reference \nfor the form to search."}], "description": "Searches the specified form and adds hidden fields for  \ninstances of YAHOO.widget.Button that are of type \"radio,\" \"checkbox,\" \n\"menu,\" and \"split.\"", "guessedname": "addHiddenFieldsToForm", "guessedtype": "function"}, "getHiddenFields": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|Array", "description": ""}, "description": "Returns an <code><input></code> element or \narray of form elements used to represent the button when its parent \nform is submitted.", "guessedname": "getHiddenFields", "guessedtype": "function"}, "YAHOO.widget.Button.getButton": {"return": {"type": "YAHOO.widget.Button", "description": ""}, "params": [{"type": "String", "name": "p_sId", "description": " String specifying the id of the root node of the \nHTML element representing the button to be retrieved."}], "description": "Returns a button with the specified id.", "guessedname": "getButton", "guessedtype": "function"}, "_setDisabled": {"protected": "", "params": [{"type": "Boolean", "name": "p_bDisabled", "description": " Boolean indicating the value for \nthe button's \"disabled\" attribute."}], "description": "Sets the value of the button's \"disabled\" attribute.", "guessedname": "_setDisabled", "guessedtype": "function"}, "getMenu": {"return": {"type": "<a href=\"YAHOO.widget.Overlay.html\">\nYAHOO.widget.Overlay</a>|<a \nhref=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu</a>", "description": ""}, "description": "Returns a reference to the button's menu.", "guessedname": "getMenu", "guessedtype": "function"}, "_setChecked": {"protected": "", "params": [{"type": "Boolean", "name": "p_bChecked", "description": " Boolean indicating the value for  \nthe button's \"checked\" attribute."}], "description": "Sets the value of the button's \"target\" attribute.", "guessedname": "_setChecked", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "p_oElement", "description": " String specifying the id attribute of the \n<code><input></code>, <code><button></code>,\n<code><a></code>, or <code><span></code> element to \nbe used to create the button."}, {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|<a href=\"http://\nwww.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html\n#ID-34812697\">HTMLButtonElement</a>|<a href=\"http://www.w3.org/TR\n/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-33759296\">\nHTMLElement</a>", "name": "p_oElement", "description": " Object reference for the \n<code><input></code>, <code><button></code>, \n<code><a></code>, or <code><span></code> element to be \nused to create the button."}, {"type": "Object", "name": "p_oElement", "description": " Object literal specifying a set of \nconfiguration attributes used to create the button."}, {"type": "Object", "name": "p_oAttributes", "description": " Optional. Object literal specifying a \nset of configuration attributes used to create the button."}], "description": "The Button class's initialization method.", "guessedname": "init", "guessedtype": "function"}, "_setTitle": {"protected": "", "params": [{"type": "String", "name": "p_nTabIndex", "description": " Number indicating the value for \nthe button's \"title\" attribute."}], "description": "Sets the value of the button's \"title\" attribute.", "guessedname": "_setTitle", "guessedtype": "function"}, "_setHref": {"protected": "", "params": [{"type": "String", "name": "p_sHref", "description": " String indicating the value for the button's \n\"href\" attribute."}], "description": "Sets the value of the button's \"href\" attribute.", "guessedname": "_setHref", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": ""}, "description": "Returns a string representing the button.", "guessedname": "toString", "guessedtype": "function"}, "_onMouseDown": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mousedown\" event handler for the button.", "guessedname": "_onMouseDown", "guessedtype": "function"}, "destroy": {"description": "Removes the button's element from its parent element and \nremoves all event handlers.", "guessedname": "destroy", "guessedtype": "function"}, "_onMenuHide": {"guessedname": "_onMenuHide", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}], "description": "\"hide\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "_setMenu": {"protected": "", "params": [{"type": "Object", "name": "p_oMenu", "description": " Object indicating the value for the button's \n\"menu\" attribute."}], "description": "Sets the value of the button's \"menu\" attribute.", "guessedname": "_setMenu", "guessedtype": "function"}, "_onKeyUp": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"keyup\" event handler for the button.", "guessedname": "_onKeyUp", "guessedtype": "function"}, "_onLabelClick": {"params": [{"type": "Event", "name": "event", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"click\" event handler for the Button's\n<code><label></code> element.", "guessedname": "_onLabelClick", "guessedtype": "function"}, "_isSplitButtonOptionKey": {"return": {"type": "Boolean", "description": ""}, "description": "Determines if the specified keycode is one that toggles  \nthe display of the split button's menu.", "protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "guessedname": "_isSplitButtonOptionKey", "guessedtype": "function"}, "_onAppendTo": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"appendTo\" event handler for the button.", "guessedname": "_onAppendTo", "guessedtype": "function"}, "_onDblClick": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"dblclick\" event handler for the button.", "guessedname": "_onDblClick", "guessedtype": "function"}, "_onFormSubmit": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event \nobject passed back by the event utility (YAHOO.util.Event)."}], "description": "\"submit\" event handler for the button's form.", "guessedname": "_onFormSubmit", "guessedtype": "function"}, "_onFocus": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"focus\" event handler for the button.", "guessedname": "_onFocus", "guessedtype": "function"}, "_setOnClick": {"protected": "", "params": [{"type": "Object", "name": "p_oObject", "description": " Object indicating the value for the button's \n\"onclick\" attribute."}], "description": "Sets the value of the button's \"onclick\" attribute.", "guessedname": "_setOnClick", "guessedtype": "function"}, "blur": {"description": "Causes the button to lose focus and fires the button's\n\"blur\" event.", "guessedname": "blur", "guessedtype": "function"}, "_onMenuShow": {"guessedname": "_onMenuShow", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}], "description": "\"show\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "setAttributesFromSrcElement": {"params": [{"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-\none-html.html#ID-6043025\">HTMLInputElement</a>|<a href=\"http://www.w3.org/\nTR/2000/WD-DOM-Level-1-20000929/level-one-html.html#ID-\n48250443\">HTMLAnchorElement</a>", "name": "p_oElement", "description": " Object reference to the HTML \nelement (either <code><input></code> or <code><span>\n</code>) used to create the button."}, {"type": "Object", "name": "p_oAttributes", "description": " Object reference for the collection of \nconfiguration attributes used to create the button."}], "description": "Gets the values for all the attributes of the source element \n(either <code><input></code> or <code><a></code>) that \nmap to Button configuration attributes and sets them into a collection \nthat is passed to the Button constructor.", "private": ""}, "focus": {"description": "Causes the button to receive the focus and fires the \nbutton's \"focus\" event.", "guessedname": "focus", "guessedtype": "function"}, "setFormElementProperties": {"description": "Gets the value of the attributes from the form element  \nand sets them into the collection of configuration attributes used to \nconfigure the button.", "private": ""}, "_hideMenu": {"protected": "", "description": "Hides the button's menu.", "guessedname": "_hideMenu", "guessedtype": "function"}, "_setLabel": {"protected": "", "params": [{"type": "String", "name": "p_sLabel", "description": " String indicating the value for the button's \n\"label\" attribute."}], "description": "Sets the value of the button's \"label\" attribute.", "guessedname": "_setLabel", "guessedtype": "function"}, "_setType": {"protected": "", "params": [{"type": "String", "name": "p_sType", "description": " String indicating the value for the button's \n\"type\" attribute."}], "description": "Sets the value of the button's \"type\" attribute.", "guessedname": "_setType", "guessedtype": "function"}, "_onMenuRender": {"guessedname": "_onMenuRender", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the  \nevent thatwas fired."}], "description": "\"render\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "_onDocumentMouseDown": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mousedown\" event handler for the document.", "guessedname": "_onDocumentMouseDown", "guessedtype": "function"}, "isActive": {"return": {"type": "Boolean", "description": ""}, "description": "Returns a boolean indicating whether or not the button \nis active.", "guessedname": "isActive", "guessedtype": "function"}, "_onMouseMove": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mousemove\" event handler for the button.", "guessedname": "_onMouseMove", "guessedtype": "function"}, "_onMenuKeyDown": {"guessedname": "_onMenuKeyDown", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"keydown\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "createHiddenFields": {"return": {"type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|Array", "description": ""}, "description": "Creates the button's hidden form field and appends it \nto its parent form.", "guessedname": "createHiddenFields", "guessedtype": "function"}, "addStateCSSClasses": {"description": "Appends state-specific CSS classes to the button's root \nDOM element.", "guessedname": "addStateCSSClasses", "guessedtype": "function"}, "_onMenuClick": {"guessedname": "_onMenuClick", "params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"click\" event handler for the button's menu.", "private": "", "guessedtype": "function"}, "_onMouseOver": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mouseover\" event handler for the button.", "guessedname": "_onMouseOver", "guessedtype": "function"}, "_onMouseOut": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mouseout\" event handler for the button.", "guessedname": "_onMouseOut", "guessedtype": "function"}, "initConfig": {"params": [{"type": "Object", "name": "Object", "description": " representing the button's set of \nconfiguration attributes."}], "description": "Initializes the set of configuration attributes that are \nused to instantiate the button.", "private": ""}, "_setTarget": {"protected": "", "params": [{"type": "String", "name": "p_sTarget", "description": " String indicating the value for the button's \n\"target\" attribute."}], "description": "Sets the value of the button's \"target\" attribute.", "guessedname": "_setTarget", "guessedtype": "function"}, "removeHiddenFields": {"description": "Removes the button's hidden form field(s) from its \nparent form.", "guessedname": "removeHiddenFields", "guessedtype": "function"}, "_onDocumentMouseUp": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"mouseup\" event handler for the button.", "guessedname": "_onDocumentMouseUp", "guessedtype": "function"}, "setAttributeFromDOMAttribute": {"params": [{"type": "String", "name": "p_sAttribute", "description": " String representing the name of the \nattribute to retrieve from the DOM element."}], "description": "Gets the value of the specified DOM attribute and sets it \ninto the collection of configuration attributes used to configure \nthe button.", "private": ""}, "_onKeyDown": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"keydown\" event handler for the button.", "guessedname": "_onKeyDown", "guessedtype": "function"}, "_onBlur": {"protected": "", "params": [{"type": "Event", "name": "p_oEvent", "description": " Object representing the DOM event object  \npassed back by the event utility (YAHOO.util.Event)."}], "description": "\"blur\" event handler for the button.", "guessedname": "_onBlur", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "button.js", "shortname": "Button", "properties": {"CSS_CLASS_NAME": {"description": "String representing the CSS class(es) to be applied to  \nthe button's root element.", "default": "\"button\"", "guessedname": "CSS_CLASS_NAME", "guessedtype": "property", "type": "String", "final": ""}, "_menu": {"description": "Object reference to the button's menu.", "default": "null", "protected": "", "guessedname": "_menu", "guessedtype": "property", "type": "{<a href=\"YAHOO.widget.Overlay.html\">YAHOO.widget.Overlay</a>|\n<a href=\"YAHOO.widget.Menu.html\">YAHOO.widget.Menu</a>}"}, "CLASS_NAME_PREFIX": {"description": "Prefix used for all class names applied to a Button.", "default": "\"yui-\"", "guessedname": "CLASS_NAME_PREFIX", "guessedtype": "property", "type": "String", "final": ""}, "_hiddenFields": {"description": "Object reference to the <code><input></code>  \nelement, or array of HTML form elements used to represent the button\nwhen its parent form is submitted.", "default": "null", "protected": "", "guessedname": "_hiddenFields", "guessedtype": "property", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-6043025\">HTMLInputElement</a>|Array"}, "_nOptionRegionX": {"description": "Number representing the X coordinate of the leftmost edge of the Button's \noption region.  Applies only to Buttons of type \"split\".", "default": "0", "protected": "", "guessedname": "_nOptionRegionX", "guessedtype": "property", "type": "Number"}, "_onclickAttributeValue": {"description": "Object reference to the button's current value for the \n\"onclick\" configuration attribute.", "default": "null", "protected": "", "guessedname": "_onclickAttributeValue", "guessedtype": "property", "type": "Object"}, "NODE_NAME": {"description": "The name of the node to be used for the button's \nroot element.", "default": "\"SPAN\"", "guessedname": "NODE_NAME", "guessedtype": "property", "type": "String", "final": ""}, "CHECK_ACTIVATION_KEYS": {"description": "Array of numbers representing keys that (when pressed) \ntoggle the button's \"checked\" attribute.", "default": "[32]", "guessedname": "CHECK_ACTIVATION_KEYS", "guessedtype": "property", "type": "Array", "final": ""}, "_activationButtonPressed": {"description": "Boolean indicating if the mouse button that toggles \nthe button's \"active\" state has been pressed.", "default": "false", "protected": "", "guessedname": "_activationButtonPressed", "guessedtype": "property", "type": "Boolean"}, "_button": {"description": "Object reference to the button's internal \n<code><a></code> or <code><button></code> element.", "default": "null", "protected": "", "guessedname": "_button", "guessedtype": "property", "type": "<a href=\"http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/\nlevel-one-html.html#ID-48250443\">HTMLAnchorElement</a>|<a href=\"\nhttp://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/level-one-html.html\n#ID-34812697\">HTMLButtonElement</a>"}, "_hasMouseEventHandlers": {"description": "Boolean indicating if the button's \"mouseout,\" \n\"mousedown,\" and \"mouseup\" event handlers are assigned", "default": "false", "protected": "", "guessedname": "_hasMouseEventHandlers", "guessedtype": "property", "type": "Boolean"}, "ACTIVATION_KEYS": {"description": "Array of numbers representing keys that (when presed) \ntoggle the button's \"active\" state.", "default": "[13, 32]", "guessedname": "ACTIVATION_KEYS", "guessedtype": "property", "type": "Array", "final": ""}, "_hasKeyEventHandlers": {"description": "Boolean indicating if the button's \"blur\", \"keydown\" and \n\"keyup\" event handlers are assigned", "default": "false", "protected": "", "guessedname": "_hasKeyEventHandlers", "guessedtype": "property", "type": "Boolean"}, "_activationKeyPressed": {"description": "Boolean indicating if the key(s) that toggle the button's \n\"active\" state have been pressed.", "default": "false", "protected": "", "guessedname": "_activationKeyPressed", "guessedtype": "property", "type": "Boolean"}, "OPTION_AREA_WIDTH": {"description": "Width (in pixels) of the area of a split button that  \nwhen pressed will display a menu.", "default": "20", "guessedname": "OPTION_AREA_WIDTH", "guessedtype": "property", "type": "Number", "final": ""}}, "description": "The Button class creates a rich, graphical button."}, "YAHOO.widget.AutoComplete": {"name": "YAHOO.widget.AutoComplete", "constructors": [{"params": [{"type": "HTMLElement", "name": "elInput", "description": "  DOM element reference of an input field."}, {"type": "String", "name": "elInput", "description": "  String ID of an input field."}, {"type": "HTMLElement", "name": "elContainer", "description": "  DOM element reference of an existing DIV."}, {"type": "String", "name": "elContainer", "description": "  String ID of an existing DIV."}, {"type": "YAHOO.widget.DataSource", "name": "oDataSource", "description": "  DataSource instance."}, {"type": "Object", "name": "oConfigs", "description": "  (optional) Object literal of configuration params."}], "description": "The AutoComplete class provides the customizable functionality of a plug-and-play DHTML\nauto completion widget.  Some key features:\n<ul>\n<li>Navigate with up/down arrow keys and/or mouse to pick a selection</li>\n<li>The drop down container can \"roll down\" or \"fly out\" via configurable\nanimation</li>\n<li>UI look-and-feel customizable through CSS, including container\nattributes, borders, position, fonts, etc</li>\n</ul>"}], "namespace": "YAHOO.widget", "module": "autocomplete", "events": {"dataErrorEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object", "name": "oResponse", "description": "  The response object, if available."}], "description": "Fired when the AutoComplete instance does not receive query results from the\nDataSource due to an error.", "guessedname": "dataErrorEvent", "guessedtype": "property"}, "dataReturnEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object[]", "name": "aResults", "description": "  Results array."}], "description": "Fired when the AutoComplete instance receives query results from the data\nsource.", "guessedname": "dataReturnEvent", "guessedtype": "property"}, "containerExpandEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the results container is expanded.", "guessedname": "containerExpandEvent", "guessedtype": "property"}, "itemArrowToEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The <li> element item arrowed to."}], "description": "Fired when result item has been arrowed to.", "guessedname": "itemArrowToEvent", "guessedtype": "property"}, "itemArrowFromEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The <li> element item arrowed from."}], "description": "Fired when result item has been arrowed away from.", "guessedname": "itemArrowFromEvent", "guessedtype": "property"}, "containerPopulateEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the results container is populated.", "guessedname": "containerPopulateEvent", "guessedtype": "property"}, "textboxFocusEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the input field receives focus.", "guessedname": "textboxFocusEvent", "guessedtype": "property"}, "typeAheadEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "String", "name": "sPrefill", "description": "  The prefill string."}], "description": "Fired when the input field has been prefilled by the type-ahead\nfeature.", "guessedname": "typeAheadEvent", "guessedtype": "property"}, "itemSelectEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The selected <li> element item."}, {"type": "Object", "name": "oData", "description": "  The data returned for the item, either as an object,\nor mapped from the schema into an array."}], "description": "Fired when an item is selected via mouse click, ENTER key, or TAB key.", "guessedname": "itemSelectEvent", "guessedtype": "property"}, "dataRequestEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object", "name": "oRequest", "description": "  The request."}], "description": "Fired when the AutoComplete instance makes a request to the DataSource.", "guessedname": "dataRequestEvent", "guessedtype": "property"}, "itemMouseOverEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The <li&gt element item moused to."}], "description": "Fired when result item has been moused over.", "guessedname": "itemMouseOverEvent", "guessedtype": "property"}, "_sLastTextboxValue": {"guessedname": "_sLastTextboxValue", "type": "String", "description": "Internal tracker to last known textbox value, used to determine whether or not\nto trigger a query via interval for certain IME users.", "private": "", "guessedtype": "property"}, "unmatchedItemSelectEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sSelection", "description": "  The selected string."}], "description": "Fired when a user selection does not match any of the displayed result items.", "guessedname": "unmatchedItemSelectEvent", "guessedtype": "property"}, "selectionEnforceEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "String", "name": "sClearedValue", "description": "  The cleared value (including delimiters if applicable)."}], "description": "Fired if forceSelection is enabled and the user's input has been cleared\nbecause it did not match one of the returned query results.", "guessedname": "selectionEnforceEvent", "guessedtype": "property"}, "textboxKeyEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "Number", "name": "nKeycode", "description": "  The keycode number."}], "description": "Fired when the input field receives key input.", "guessedname": "textboxKeyEvent", "guessedtype": "property"}, "textboxBlurEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the input field loses focus.", "guessedname": "textboxBlurEvent", "guessedtype": "property"}, "containerCollapseEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the results container is collapsed.", "guessedname": "containerCollapseEvent", "guessedtype": "property"}, "textboxChangeEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Fired when the input field value has changed when it loses focus.", "guessedname": "textboxChangeEvent", "guessedtype": "property"}, "itemMouseOutEvent": {"params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}, {"type": "HTMLElement", "name": "elItem", "description": "  The <li> element item moused from."}], "description": "Fired when result item has been moused out.", "guessedname": "itemMouseOutEvent", "guessedtype": "property"}}, "guessedname": "AutoComplete", "methods": {"_onTextboxKeyPress": {"guessedname": "_onTextboxKeyPress", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The keypress event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles textbox keypress events.", "private": "", "guessedtype": "function"}, "_selectText": {"guessedname": "_selectText", "params": [{"type": "HTMLElement", "name": "elTextbox", "description": "  Text input box element in which to select text."}, {"type": "Number", "name": "nStart", "description": "  Starting index of text string to select."}, {"type": "Number", "name": "nEnd", "description": "  Ending index of text selection."}], "description": "Selects text in the input field.", "private": "", "guessedtype": "function"}, "snapContainer": {"description": "Snaps container to bottom-left corner of input element", "guessedname": "snapContainer", "guessedtype": "function"}, "_clearInterval": {"guessedname": "_clearInterval", "params": [{"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Cancels text input detection by intervals.", "private": "", "guessedtype": "function"}, "_populateListItem": {"guessedname": "_populateListItem", "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  The LI element."}, {"type": "Object", "name": "oResult", "description": "  The result object."}, {"type": "String", "name": "sCurQuery", "description": "  The query string."}], "description": "Populates the given <li> element with return value from formatResult().", "private": "", "guessedtype": "function"}, "_onTextboxBlur": {"guessedname": "_onTextboxBlur", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The focus event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles text input box losing focus.", "private": "", "guessedtype": "function"}, "_typeAhead": {"guessedname": "_typeAhead", "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  The <li> element item whose data populates the input field."}, {"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Updates in the text input box with the first query result as the user types,\nselecting the substring that the user has not typed.", "private": "", "guessedtype": "function"}, "getListItems": {"deprecated": "Use getListEl().childNodes.", "guessedname": "getListItems", "guessedtype": "function"}, "_toggleHighlight": {"guessedname": "_toggleHighlight", "params": [{"type": "HTMLElement", "name": "elNewListItem", "description": "  The <li> element item to receive highlight behavior."}, {"type": "String", "name": "sType", "description": "  Type \"mouseover\" will toggle highlight on, and \"mouseout\" will toggle highlight off."}], "description": "Toggles the highlight on or off for an item in the container, and also cleans\nup highlighting of any previous item.", "private": "", "guessedtype": "function"}, "_togglePrehighlight": {"guessedname": "_togglePrehighlight", "params": [{"type": "HTMLElement", "name": "elNewListItem", "description": "  The <li> element item to receive highlight behavior."}, {"type": "String", "name": "sType", "description": "  Type \"mouseover\" will toggle highlight on, and \"mouseout\" will toggle highlight off."}], "description": "Toggles the pre-highlight on or off for an item in the container, and also cleans\nup pre-highlighting of any previous item.", "private": "", "guessedtype": "function"}, "_onTextboxFocus": {"guessedname": "_onTextboxFocus", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The focus event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles text input box receiving focus.", "private": "", "guessedtype": "function"}, "enableIntervalDetection": {"description": "Enables interval detection for a less performant but brute force mechanism to\ndetect input values at an interval set by queryInterval and send queries if\ninput value has changed. Needed to support right-click+paste or shift+insert\nedge cases. Please note that intervals are cleared at the end of each interaction,\nso enableIntervalDetection must be called for each new interaction. The\nrecommended approach is to call it in response to textboxFocusEvent.", "guessedname": "enableIntervalDetection", "guessedtype": "property"}, "expandContainer": {"description": "Expands container.", "guessedname": "expandContainer", "guessedtype": "function"}, "getListItemIndex": {"return": {"type": "Number", "description": "Index."}, "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  Reference to <LI> element."}], "description": "Public accessor to the index of the associated with a given <li> result.", "guessedname": "getListItemIndex", "guessedtype": "function"}, "_isIgnoreKey": {"return": {"type": "Boolean", "description": "True if key should be ignored, false otherwise."}, "description": "Whether or not key is functional or should be ignored. Note that the right\narrow key is NOT an ignored key since it triggers queries for certain intl\ncharsets.", "private": "", "params": [{"type": "Number", "name": "nKeycode", "description": "  Code of key pressed."}], "guessedname": "_isIgnoreKey", "guessedtype": "function"}, "_initContainerHelperEls": {"private": "", "description": "Initializes the results container helpers if they are enabled and do\nnot exist", "guessedname": "_initContainerHelperEls", "guessedtype": "function"}, "_onInterval": {"private": "", "description": "Enables query triggers based on text input detection by intervals (rather\nthan by key events).", "guessedname": "_onInterval", "guessedtype": "function"}, "setBody": {"params": [{"type": "String", "name": "sBody", "description": "  HTML markup for results container body."}], "description": "Sets HTML markup for the results container body. This markup will be\ninserted within a <div> tag with a class of \"yui-ac-bd\".", "guessedname": "setBody", "guessedtype": "function"}, "filterResults": {"return": {"type": "Object", "description": "Filtered response object."}, "params": [{"type": "String", "name": "sQuery", "description": "  Original request."}, {"type": "Object", "name": "oFullResponse", "description": "  Full response object."}, {"type": "Object", "name": "oParsedResponse", "description": "  Parsed response object."}, {"type": "Object", "name": "oCallback", "description": "  Callback object."}], "description": "Executed by DataSource (within DataSource scope via doBeforeCallback()) to\nfilter results through a simple client-side matching algorithm.", "guessedname": "filterResults", "guessedtype": "function"}, "getListEl": {"return": {"type": "HTMLElement[]", "description": "Reference to <ul> element within the results container."}, "description": "Public accessor to the <ul> element that displays query results within the results container.", "guessedname": "getListEl", "guessedtype": "function"}, "_onTextboxKeyUp": {"guessedname": "_onTextboxKeyUp", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The keyup event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles textbox keyup events to trigger queries.", "private": "", "guessedtype": "function"}, "_updateValue": {"guessedname": "_updateValue", "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  The <li> element item with which to update the value."}], "description": "Updates the text input box value with selected query result. If a delimiter\nhas been defined, then the value gets appended with the delimiter.", "private": "", "guessedtype": "function"}, "_populateList": {"guessedname": "_populateList", "params": [{"type": "String", "name": "sQuery", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Populates the array of <li> elements in the container with query\nresults.", "private": "", "guessedtype": "function"}, "_focus": {"private": "", "description": "Focuses input field.", "guessedname": "_focus", "guessedtype": "function"}, "doBeforeExpandContainer": {"return": {"type": "Boolean", "description": "Return true to continue expanding container, false to cancel the expand."}, "params": [{"type": "HTMLElement", "name": "elTextbox", "description": "  The text input box."}, {"type": "HTMLElement", "name": "elContainer", "description": "  The container element."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object[]", "name": "aResults", "description": "   An array of query results."}], "description": "Overridable method called before container expands allows implementers to access data\nand DOM elements.", "guessedname": "doBeforeExpandContainer", "guessedtype": "function"}, "_moveSelection": {"guessedname": "_moveSelection", "params": [{"type": "Number", "name": "nKeyCode", "description": "  Code of key pressed."}], "description": "Triggered by up and down arrow keys, changes the current highlighted\n<li> element item. Scrolls container if necessary.", "private": "", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the AutoComplete instance."}, "description": "Public accessor to the unique name of the AutoComplete instance.", "guessedname": "toString", "guessedtype": "function"}, "doBeforeLoadData": {"return": {"type": "Boolean", "description": "Return true to continue loading data, false to cancel."}, "params": [{"type": "String", "name": "sQuery", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Overridable method called before container is loaded with result data.", "guessedname": "doBeforeLoadData", "guessedtype": "function"}, "destroy": {"description": "Nulls out the entire AutoComplete instance and related objects, removes attached\nevent listeners, and clears out DOM elements inside the container. After\ncalling this method, the instance reference should be expliclitly nulled by\nimplementer, as in myAutoComplete = null. Use with caution!", "guessedname": "destroy", "guessedtype": "function"}, "AutoComplete._cloneObject": {"description": "Clones object literal or array of object literals.", "private": "", "static": "", "guessedname": "_cloneObject", "guessedtype": "function", "params": [{"type": "Object", "name": "o", "description": "  Object."}]}, "doBeforeSendQuery": {"deprecated": "Use generateRequest.", "guessedname": "doBeforeSendQuery", "guessedtype": "function"}, "getListItemData": {"return": {"type": "Object", "description": "Result data."}, "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  Reference to <LI> element."}], "description": "Public accessor to the result data associated with a given <li> result.", "guessedname": "getListItemData", "guessedtype": "function"}, "generateRequest": {"return": {"type": "MIXED", "description": "Request"}, "params": [{"type": "String", "name": "sQuery", "description": "  Query string"}], "description": "A function that converts an AutoComplete query into a request value which is then\npassed to the DataSource's sendRequest method in order to retrieve data for \nthe query. By default, returns a String with the syntax: \"query={query}\"\nImplementers can customize this method for custom request syntaxes.", "guessedname": "generateRequest", "guessedtype": "function"}, "_initListEl": {"private": "", "description": "Clears out contents of container body and creates up to\nYAHOO.widget.AutoComplete#maxResultsDisplayed <li> elements in an\n<ul> element.", "guessedname": "_initListEl", "guessedtype": "function"}, "_onContainerClick": {"guessedname": "_onContainerClick", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container click events.", "private": "", "guessedtype": "function"}, "setFooter": {"params": [{"type": "String", "name": "sFooter", "description": "  HTML markup for results container footer."}], "description": "Sets HTML markup for the results container footer. This markup will be\ninserted within a <div> tag with a class of \"yui-ac-ft\".", "guessedname": "setFooter", "guessedtype": "function"}, "_selectItem": {"guessedname": "_selectItem", "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  The selected <li> element item."}], "description": "Selects a result item from the container", "private": "", "guessedtype": "function"}, "_onWindowUnload": {"guessedname": "_onWindowUnload", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The unload event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles window unload event.", "private": "", "guessedtype": "function"}, "handleResponse": {"params": [{"type": "String", "name": "sQuery", "description": "  Original request."}, {"type": "Object", "name": "oResponse", "description": "  Response object."}, {"type": "MIXED", "name": "oPayload", "description": "  (optional) Additional argument(s)"}], "description": "Handles response for display. This is the callback function method passed to\nYAHOO.util.DataSourceBase#sendRequest so results from the DataSource are\nreturned to the AutoComplete instance.", "guessedname": "handleResponse", "guessedtype": "function"}, "_enableIntervalDetection": {"private": "", "description": "Enables interval detection for IME support.", "guessedname": "_enableIntervalDetection", "guessedtype": "function"}, "sendQuery": {"params": [{"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Makes query request to the DataSource.", "guessedname": "sendQuery", "guessedtype": "function"}, "getContainerEl": {"return": {"type": "HTMLELement", "description": "DOM reference to container element."}, "description": "Returns DOM reference to container element.", "guessedname": "getContainerEl", "guessedtype": "function"}, "_toggleContainerHelpers": {"guessedname": "_toggleContainerHelpers", "params": [{"type": "Boolean", "name": "bShow", "description": "  True if container is expanded, false if collapsed"}], "description": "Syncs results container with its helpers.", "private": "", "guessedtype": "function"}, "_extractQuery": {"return": {"type": "Object", "description": "Object literal containing properties \"query\" and \"previous\"."}, "description": "Extracts rightmost query from delimited string.", "private": "", "params": [{"type": "String", "name": "sQuery", "description": "  String to parse"}], "guessedname": "_extractQuery", "guessedtype": "function"}, "_jumpSelection": {"private": "", "description": "If an item is highlighted in the container, the right arrow key jumps to the\nend of the textbox and selects the highlighted item, otherwise the container\nis closed.", "guessedname": "_jumpSelection", "guessedtype": "function"}, "_onContainerScroll": {"guessedname": "_onContainerScroll", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The scroll event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container scroll events.", "private": "", "guessedtype": "function"}, "clearList": {"description": "Clears entire list of suggestions.", "guessedname": "clearList", "guessedtype": "function"}, "_clearSelection": {"private": "", "description": "When forceSelection is true and the user attempts\nleave the text input box without selecting an item from the query results,\nthe user selection is cleared.", "guessedname": "_clearSelection", "guessedtype": "function"}, "__initProps": {"private": "", "description": "Updates and validates latest public config properties.", "guessedname": "_initProps", "guessedtype": "function"}, "isContainerOpen": {"return": {"type": "Boolean", "description": "Returns true if container is in an expanded state, false otherwise."}, "description": "Returns true if container is in an expanded state, false otherwise.", "guessedname": "isContainerOpen", "guessedtype": "function"}, "preparseRawResponse": {"return": {"type": "Object", "description": "oParsedResponse or null."}, "params": [{"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Executed by DataSource (within DataSource scope via doBeforeParseData()) to\nhandle responseStripAfter cleanup.", "guessedname": "preparseRawResponse", "guessedtype": "function"}, "_toggleContainer": {"guessedname": "_toggleContainer", "params": [{"type": "Boolean", "name": "bShow", "description": "  True if container should be expanded, false if container should be collapsed"}], "description": "Animates expansion or collapse of the container.", "private": "", "guessedtype": "function"}, "formatResult": {"return": {"type": "String", "description": "HTML markup of formatted result data."}, "params": [{"type": "Object", "name": "oResultData", "description": "  Result data object."}, {"type": "String", "name": "sQuery", "description": "  The corresponding query string."}, {"type": "HTMLElement", "name": "sResultMatch", "description": "  The current query string."}], "description": "Overridable method that returns HTML markup for one result to be populated\nas innerHTML of an <LI> element.", "guessedname": "formatResult", "guessedtype": "function"}, "_textMatchesOption": {"guessedname": "_textMatchesOption", "return": {"type": "HTMLElement", "description": "Matching list item element if user-input text matches\na result, null otherwise."}, "description": "Whether or not user-typed value in the text input box matches any of the\nquery results.", "private": "", "guessedtype": "function"}, "collapseContainer": {"description": "Collapses container.", "guessedname": "collapseContainer", "guessedtype": "function"}, "_onContainerMouseout": {"guessedname": "_onContainerMouseout", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The mouseout event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container mouseout events.", "private": "", "guessedtype": "function"}, "getSubsetMatches": {"return": {"type": "Object", "description": "oParsedResponse or null."}, "params": [{"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Handles subset matching for when queryMatchSubset is enabled.", "guessedname": "getSubsetMatches", "guessedtype": "function"}, "_sendQuery": {"guessedname": "_sendQuery", "params": [{"type": "String", "name": "sQuery", "description": "  Query string."}], "description": "Makes query request to the DataSource.", "private": "", "guessedtype": "function"}, "_onTextboxKeyDown": {"guessedname": "_onTextboxKeyDown", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The keydown event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles textbox keydown events of functional keys, mainly for UI behavior.", "private": "", "guessedtype": "function"}, "isFocused": {"return": {"type": "Boolean", "description": "Returns true if widget instance is currently active."}, "description": "Returns true if widget instance is currently active.", "guessedname": "isFocused", "guessedtype": "function"}, "_doBeforeExpandContainer": {"return": {"type": "Boolean", "description": "Return true to continue expanding container, false to cancel the expand."}, "description": "Called before container expands, by default snaps container to the\nbottom-left corner of the input element, then calls public overrideable method.", "private": "", "params": [{"type": "HTMLElement", "name": "elTextbox", "description": "  The text input box."}, {"type": "HTMLElement", "name": "elContainer", "description": "  The container element."}, {"type": "String", "name": "sQuery", "description": "  The query string."}, {"type": "Object[]", "name": "aResults", "description": "   An array of query results."}], "guessedname": "_doBeforeExpandContainer", "guessedtype": "function"}, "getListItemMatch": {"return": {"type": "String", "description": "Matching string."}, "params": [{"type": "HTMLElement", "name": "elListItem", "description": "  Reference to <LI> element."}], "description": "Public accessor to the matching string associated with a given <li> result.", "guessedname": "getListItemMatch", "guessedtype": "function"}, "_initContainerEl": {"private": "", "description": "Initializes the results container once at object creation", "guessedname": "_initContainerEl", "guessedtype": "function"}, "getInputEl": {"return": {"type": "HTMLELement", "description": "DOM reference to input element."}, "description": "Returns DOM reference to input element.", "guessedname": "getInputEl", "guessedtype": "function"}, "_onContainerMouseover": {"guessedname": "_onContainerMouseover", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The mouseover event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container mouseover events.", "private": "", "guessedtype": "function"}, "setHeader": {"params": [{"type": "String", "name": "sHeader", "description": "  HTML markup for results container header."}], "description": "Sets HTML markup for the results container header. This markup will be\ninserted within a <div> tag with a class of \"yui-ac-hd\".", "guessedname": "setHeader", "guessedtype": "function"}, "_onContainerResize": {"guessedname": "_onContainerResize", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The resize event."}, {"type": "YAHOO.widget.AutoComplete", "name": "oSelf", "description": "  The AutoComplete instance."}], "description": "Handles container resize events.", "private": "", "guessedtype": "function"}}, "file": "AutoComplete.js", "guessedtype": "function", "shortname": "AutoComplete", "properties": {"queryQuestionMark": {"default": "true", "type": "Boolean", "description": "For XHR DataSources, AutoComplete will automatically insert a \"?\" between the server URI and \nthe \"query\" param/value pair. To prevent this behavior, implementers should\nset this value to false. To more fully customize the query syntax, implementers\nshould override the generateRequest() method.", "guessedname": "queryQuestionMark", "guessedtype": "property"}, "forceSelection": {"default": "false", "type": "Boolean", "description": "Whether or not to force the user's selection to match one of the query\nresults. Enabling this feature essentially transforms the input field into a\n<select> field. This feature is not recommended with delimiter character(s)\ndefined.", "guessedname": "forceSelection", "guessedtype": "property"}, "_elIFrame": {"guessedname": "_elIFrame", "type": "HTMLElement", "description": "Reference to iframe element within container element.", "private": "", "guessedtype": "property"}, "animHoriz": {"default": "false", "type": "Boolean", "description": "Whether or not to animate the expansion/collapse of the results container in the\nhorizontal direction.", "guessedname": "animHoriz", "guessedtype": "property"}, "useShadow": {"default": "false", "type": "Boolean", "description": "Whether or not the results container should have a shadow.", "guessedname": "useShadow", "guessedtype": "property"}, "queryMatchSubset": {"default": "false", "type": "Boolean", "description": "Enables query subset matching. When the DataSource's cache is enabled and queryMatchSubset is\ntrue, substrings of queries will return matching cached results. For\ninstance, if the first query is for \"abc\" susequent queries that start with\n\"abc\", like \"abcd\", will be queried against the cache, and not the live data\nsource. Recommended only for DataSources that return comprehensive results\nfor queries with very few characters.", "guessedname": "queryMatchSubset", "guessedtype": "property"}, "useIFrame": {"default": "false", "type": "Boolean", "description": "Whether or not to use an iFrame to layer over Windows form elements in\nIE. Set to true only when the results container will be on top of a\n<select> field in IE and thus exposed to the IE z-index bug (i.e.,\n5.5 < IE < 7).", "guessedname": "useIFrame", "guessedtype": "property"}, "typeAheadDelay": {"default": "0.5", "type": "Number", "description": "If typeAhead is true, number of seconds to delay before updating input with\ntypeAhead value. In order to prevent certain race conditions, this value must\nalways be greater than the queryDelay.", "guessedname": "typeAheadDelay", "guessedtype": "property"}, "_elContainer": {"guessedname": "_elContainer", "type": "HTMLElement", "description": "Container DOM element.", "private": "", "guessedtype": "property"}, "_nDelayID": {"guessedname": "_nDelayID", "type": "Number", "description": "Delay timeout ID.", "private": "", "guessedtype": "property"}, "_oAnim": {"guessedname": "_oAnim", "type": "Boolean", "description": "Animation instance for container expand/collapse.", "private": "", "guessedtype": "property"}, "_elFooter": {"guessedname": "_elFooter", "type": "HTMLElement", "description": "Reference to footer element within content element.", "private": "", "guessedtype": "property"}, "_queryInterval": {"guessedname": "_queryInterval", "type": "Object", "description": "For users typing via certain IMEs, queries must be triggered by intervals,\nsince key events yet supported across all browsers for all IMEs.", "private": "", "guessedtype": "property"}, "_sName": {"guessedname": "_sName", "type": "String", "description": "Name of AutoComplete instance.", "private": "", "guessedtype": "property"}, "_elShadow": {"guessedname": "_elShadow", "type": "HTMLElement", "description": "Reference to shadow element within container element.", "private": "", "guessedtype": "property"}, "applyLocalFilter": {"default": "true for local arrays and json, otherwise false", "type": "Boolean", "description": "By default, results from local DataSources will pass through the filterResults\nmethod to apply a client-side matching algorithm.", "guessedname": "applyLocalFilter", "guessedtype": "property"}, "queryMatchCase": {"default": "false", "type": "Boolean", "description": "When applyLocalFilter is true, the local filtering algorthim can have case sensitivity\nenabled.", "guessedname": "queryMatchCase", "guessedtype": "property"}, "_nKeyCode": {"guessedname": "_nKeyCode", "type": "Number", "description": "Key code of the last key pressed in textbox.", "private": "", "guessedtype": "property"}, "_sInitInputValue": {"guessedname": "_sInitInputValue", "type": "String", "description": "Stores initial input value used to determine if textboxChangeEvent should be fired.", "private": "", "guessedtype": "property"}, "typeAhead": {"default": "false", "type": "Boolean", "description": "If autohighlight is enabled, whether or not the input field should be automatically updated\nwith the first query result as the user types, auto-selecting the substring portion\nof the first result that the user has not yet typed.", "guessedname": "typeAhead", "guessedtype": "property"}, "_nDisplayedItems": {"guessedname": "_nDisplayedItems", "type": "Number", "description": "Number of <li> elements currently displayed in results container.", "private": "", "guessedtype": "property"}, "_sCurQuery": {"guessedname": "_sCurQuery", "type": "String", "description": "Current query string", "private": "", "guessedtype": "property"}, "delimChar": {"type": "String | String[]", "description": "Query delimiter. A single character separator for multiple delimited\nselections. Multiple delimiter characteres may be defined as an array of\nstrings. A null value or empty string indicates that query results cannot\nbe delimited. This feature is not recommended if you need forceSelection to\nbe true.", "guessedname": "delimChar", "guessedtype": "property"}, "_elContent": {"guessedname": "_elContent", "type": "HTMLElement", "description": "Reference to content element within container element.", "private": "", "guessedtype": "property"}, "alwaysShowContainer": {"default": "false", "type": "Boolean", "description": "Enabling this feature prevents the toggling of the container to a collapsed state.\nSetting to true does not automatically trigger the opening of the container.\nImplementers are advised to pre-load the container with an explicit \"sendQuery()\" call.", "guessedname": "alwaysShowContainer", "guessedtype": "property"}, "highlightClassName": {"default": "\"yui-ac-highlight\"", "type": "String", "description": "Class name of a highlighted item within results container.", "guessedname": "highlightClassName", "guessedtype": "property"}, "queryInterval": {"default": "500", "type": "Number", "description": "When IME usage is detected or interval detection is explicitly enabled,\nAutoComplete will detect the input value at the given interval and send a\nquery if the value has changed.", "guessedname": "queryInterval", "guessedtype": "property"}, "resultTypeList": {"default": "true", "type": "Boolean", "description": "For backward compatibility to pre-2.6.0 formatResults() signatures, setting\nresultsTypeList to true will take each object literal result returned by\nDataSource and flatten into an array.", "guessedname": "resultTypeList", "guessedtype": "property"}, "minQueryLength": {"default": "1", "type": "Number", "description": "Number of characters that must be entered before querying for results. A negative value\neffectively turns off the widget. A value of 0 allows queries of null or empty string\nvalues.", "guessedname": "minQueryLength", "guessedtype": "property"}, "_bOverContainer": {"guessedname": "_bOverContainer", "type": "Boolean", "description": "Whether or not the mouse is currently over the results\ncontainer. This is necessary in order to prevent clicks on container items\nfrom being text input field blur events.", "private": "", "guessedtype": "property"}, "_bFocused": {"guessedname": "_bFocused", "type": "Boolean", "description": "Whether or not the widget instance is currently active. If query results come back\nbut the user has already moved on, do not proceed with auto complete behavior.", "private": "", "guessedtype": "property"}, "_nTypeAheadDelayID": {"guessedname": "_nTypeAheadDelayID", "type": "Number", "description": "TypeAhead delay timeout ID.", "private": "", "guessedtype": "property"}, "queryMatchContains": {"default": "false", "type": "Boolean", "description": "When applyLocalFilter is true, results can  be locally filtered to return\nmatching strings that \"contain\" the query string rather than simply \"start with\"\nthe query string.", "guessedname": "queryMatchContains", "guessedtype": "property"}, "suppressInputUpdate": {"default": "false", "type": "Boolean", "description": "Whether or not the input field should be updated with selections.", "guessedname": "suppressInputUpdate", "guessedtype": "property"}, "_elCurPrehighlightItem": {"guessedname": "_elCurPrehighlightItem", "type": "HTMLElement", "description": "Pointer to the currently pre-highlighted <li> element in the container.", "private": "", "guessedtype": "property"}, "dataSource": {"type": "YAHOO.widget.DataSource", "description": "The DataSource object that encapsulates the data used for auto completion.\nThis object should be an inherited object from YAHOO.widget.DataSource.", "guessedname": "dataSource", "guessedtype": "property"}, "autoHighlight": {"default": "true", "type": "Boolean", "description": "Whether or not the first item in results container should be automatically highlighted\non expand.", "guessedname": "autoHighlight", "guessedtype": "property"}, "allowBrowserAutocomplete": {"default": "true", "type": "Boolean", "description": "Whether or not to allow browsers to cache user-typed input in the input\nfield. Disabling this feature will prevent the widget from setting the\nautocomplete=\"off\" on the input field. When autocomplete=\"off\"\nand users click the back button after form submission, user-typed input can\nbe prefilled by the browser from its cache. This caching of user input may\nnot be desired for sensitive data, such as credit card numbers, in which\ncase, implementers should consider setting allowBrowserAutocomplete to false.", "guessedname": "allowBrowserAutocomplete", "guessedtype": "property"}, "animVert": {"default": "true", "type": "Boolean", "description": "Whether or not to animate the expansion/collapse of the results container in the\nvertical direction.", "guessedname": "animVert", "guessedtype": "property"}, "autoSnapContainer": {"default": "true", "type": "Boolean", "description": "If true, before each time the container expands, the container element will be\npositioned to snap to the bottom-left corner of the input element. If\nautoSnapContainer is set to false, this positioning will not be done.", "guessedname": "autoSnapContainer", "guessedtype": "property"}, "_nIndex": {"description": "Internal class variable to index multiple AutoComplete instances.", "default": "0", "private": "", "guessedname": "_nIndex", "guessedtype": "property", "type": "Number"}, "_elCurListItem": {"guessedname": "_elCurListItem", "type": "HTMLElement", "description": "Pointer to the currently highlighted <li> element in the container.", "private": "", "guessedtype": "property"}, "_bContainerOpen": {"guessedname": "_bContainerOpen", "type": "Boolean", "description": "Whether or not the results container is currently open.", "private": "", "guessedtype": "property"}, "animSpeed": {"default": "0.3", "type": "Number", "description": "Speed of container expand/collapse animation, in seconds..", "guessedname": "animSpeed", "guessedtype": "property"}, "_elHeader": {"guessedname": "_elHeader", "type": "HTMLElement", "description": "Reference to header element within content element.", "private": "", "guessedtype": "property"}, "_elList": {"guessedname": "_elList", "type": "HTMLElement", "description": "Internal reference to <ul> elements that contains query results within the\nresults container.", "private": "", "guessedtype": "property"}, "_iFrameSrc": {"guessedname": "_iFrameSrc", "type": "String", "description": "Src to iFrame used when useIFrame = true. Supports implementations over SSL\nas well.", "private": "", "guessedtype": "property"}, "maxResultsDisplayed": {"default": "10", "type": "Number", "description": "Maximum number of results to display in results container.", "guessedname": "maxResultsDisplayed", "guessedtype": "property"}, "_bItemSelected": {"guessedname": "_bItemSelected", "type": "Boolean", "description": "Whether or not an item has been selected since the container was populated\nwith results. Reset to false by _populateList, and set to true when item is\nselected.", "private": "", "guessedtype": "property"}, "_sPastSelections": {"description": "Selections from previous queries (for saving delimited queries).", "default": "\"\"", "private": "", "guessedname": "_sPastSelections", "guessedtype": "property", "type": "String"}, "prehighlightClassName": {"type": "String", "description": "Class name of a pre-highlighted item within results container.", "guessedname": "prehighlightClassName", "guessedtype": "property"}, "queryDelay": {"default": "0.2", "type": "Number", "description": "Number of seconds to delay before submitting a query request.  If a query\nrequest is received before a previous one has completed its delay, the\nprevious request is cancelled and the new request is set to the delay. If \ntypeAhead is also enabled, this value must always be less than the typeAheadDelay\nin order to avoid certain race conditions.", "guessedname": "queryDelay", "guessedtype": "property"}, "_elTextbox": {"guessedname": "_elTextbox", "type": "HTMLElement", "description": "Text input field DOM element.", "private": "", "guessedtype": "property"}, "_elBody": {"guessedname": "_elBody", "type": "HTMLElement", "description": "Reference to body element within content element.", "private": "", "guessedtype": "property"}}, "description": "The AutoComplete class provides the customizable functionality of a plug-and-play DHTML\nauto completion widget.  Some key features:\n<ul>\n<li>Navigate with up/down arrow keys and/or mouse to pick a selection</li>\n<li>The drop down container can \"roll down\" or \"fly out\" via configurable\nanimation</li>\n<li>UI look-and-feel customizable through CSS, including container\nattributes, borders, position, fonts, etc</li>\n</ul>"}, "YAHOO.util.Dom.IEStyle": {"name": "YAHOO.util.Dom.IEStyle", "namespace": "YAHOO.util.Dom", "module": "dom", "guessedname": "Y", "methods": {"getBorderWidth": {"return": {"type": "String", "description": "The elements border width"}, "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "property", "description": " The property to check"}], "description": "Try to determine the width of an elements border", "guessedname": "getBorderWidth", "guessedtype": "function"}, "get": {"returns": "{String} The computed style", "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "property", "description": " The property to check"}], "description": "Method used by DOM to get style information for IE", "guessedname": "get", "guessedtype": "function"}, "getColor": {"return": {"type": "String", "description": "The value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the color of an element", "guessedname": "getColor", "guessedtype": "function"}, "getMargin": {"return": {"type": "String", "description": "The margin value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the margin value from a style property", "guessedname": "getMargin", "guessedtype": "function"}, "getBorderColor": {"return": {"type": "String", "description": "The value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the bordercolor of an element", "guessedname": "getBorderColor", "guessedtype": "function"}, "getOffset": {"return": {"type": "String", "description": "The offset"}, "params": [{"type": "HTMLElement", "name": "el", "description": " The element to check"}, {"type": "String", "name": "prop", "description": " The property to check."}], "description": "Determine the offset of an element", "guessedname": "getOffset", "guessedtype": "function"}, "getPixel": {"return": {"type": "String", "description": "The pixel value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the pixel value from a style property", "guessedname": "getPixel", "guessedtype": "function"}, "getVisibility": {"return": {"type": "String", "description": "The value"}, "params": [{"type": "HTMLElement", "name": "node", "description": " The element to check"}, {"type": "String", "name": "att", "description": " The attribute to check"}], "description": "Get the visibility of an element", "guessedname": "getVisibility", "guessedtype": "function"}}, "file": "IEStyle.js", "guessedtype": "property", "shortname": "IEStyle", "description": "Internal methods used to add style management functionality to DOM."}, "YAHOO.tool.TestCase": {"name": "YAHOO.tool.TestCase", "constructors": [{"params": [{"type": "", "name": "template", "description": " An object containing any number of test methods, other methods,\nan optional name, and anything else the test case needs."}], "description": "Test case containing various tests to run."}], "namespace": "YAHOO.tool", "module": "yuitest", "guessedname": "TestCase", "methods": {"tearDown": {"return": {"type": "Void", "description": ""}, "description": "Function to run after each test is executed.", "guessedname": "tearDown", "guessedtype": "function"}, "setUp": {"return": {"type": "Void", "description": ""}, "description": "Function to run before each test is executed.", "guessedname": "setUp", "guessedtype": "function"}, "wait": {"return": {"type": "Void", "description": ""}, "params": [{"type": "Function", "name": "segment", "description": " (Optional) The function to run after the delay.\nIf omitted, the TestRunner will wait until resume() is called."}, {"type": "int", "name": "delay", "description": " (Optional) The number of milliseconds to wait before running\nthe function. If omitted, defaults to zero."}], "description": "Causes the test case to wait a specified amount of time and then\ncontinue executing the given code.", "guessedname": "wait", "guessedtype": "function"}, "resume": {"return": {"type": "Void", "description": ""}, "params": [{"type": "Function", "name": "segment", "description": " (Optional) The function to run.\nIf omitted, the test automatically passes."}], "description": "Resumes a paused test and runs the given function.", "guessedname": "resume", "guessedtype": "function"}}, "file": "TestCase.js", "guessedtype": "function", "shortname": "TestCase", "description": "Test case containing various tests to run."}, "YAHOO.util.ObjectAssert": {"name": "YAHOO.util.ObjectAssert", "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "ObjectAssert", "methods": {"hasProperty": {"description": "Asserts that an object has a property with the given name.", "param": "{String} propertyName The name of the property to test.", "static": "", "guessedname": "hasProperty", "guessedtype": "function", "params": [{"type": "String", "name": "propertyName", "description": " The name of the property to test."}, {"type": "Object", "name": "object", "description": " The object to search."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}]}, "propertiesAreEqual": {"static": "", "params": [{"type": "Object", "name": "expected", "description": " An object with the expected properties."}, {"type": "Object", "name": "actual", "description": " An object with the actual properties."}, {"type": "String", "name": "message", "description": " (Optional) The message to display if the assertion fails."}], "description": "Asserts that all properties in the object exist in another object.", "guessedname": "propertiesAreEqual", "guessedtype": "function"}}, "static": "", "file": "ObjectAssert.js", "guessedtype": "property", "shortname": "ObjectAssert", "description": "The ObjectAssert object provides functions to test JavaScript objects\nfor a variety of cases."}, "YAHOO.util.UnexpectedValue": {"name": "YAHOO.util.UnexpectedValue", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}, {"type": "Object", "name": "unexpected", "description": " The unexpected value."}], "description": "UnexpectedValue is subclass of AssertionError that is thrown whenever\na value was unexpected in its scope. This typically means that a test\nwas performed to determine that a value was *not* equal to a certain\nvalue."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "UnexpectedValue", "methods": {"getMessage": {"return": {"type": "String", "description": "A string describing the error."}, "description": "Returns a fully formatted error for an assertion failure. The message\ncontains information about the unexpected value that was encountered.", "guessedname": "getMessage", "guessedtype": "function"}}, "extends": "YAHOO.util.AssertionError", "superclass": "YAHOO.util.AssertionError", "file": "Assert.js", "guessedtype": "function", "shortname": "UnexpectedValue", "properties": {"unexpected": {"type": "Object", "description": "The unexpected value."}, "name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "UnexpectedValue is subclass of AssertionError that is thrown whenever\na value was unexpected in its scope. This typically means that a test\nwas performed to determine that a value was *not* equal to a certain\nvalue."}, "YAHOO.widget.ToolbarButtonAdvanced": {"name": "YAHOO.widget.ToolbarButtonAdvanced", "constructors": [{"params": [{"type": "String/HTMLElement", "name": "el", "description": " The element to turn into a button."}, {"type": "Object", "name": "attrs", "description": " Object liternal containing configuration parameters."}], "description": "<p>Creates a rich custom Toolbar Button. Primarily used with the Rich Text Editor's Toolbar</p>"}], "namespace": "YAHOO.widget", "module": "editor", "methods": {"checkValue": {"params": [{"type": "String", "name": "value", "description": " The value of the option that we want to mark as selected"}], "description": "Select an option by value", "guessedname": "checkValue", "guessedtype": "function"}}, "file": "toolbar-button.js", "shortname": "ToolbarButtonAdvanced", "requires": "yahoo, dom, element, event, container_core, menu, button\nProvides a toolbar button based on the button and menu widgets.", "properties": {"buttonType": {"private": "", "description": "Tells if the Button is a Rich Button or a Simple Button", "guessedname": "buttonType", "guessedtype": "property"}}, "description": "<p>Creates a rich custom Toolbar Button. Primarily used with the Rich Text Editor's Toolbar</p>"}, "YAHOO.util.AssertionError": {"name": "YAHOO.util.AssertionError", "constructors": [{"params": [{"type": "String", "name": "message", "description": " The message to display when the error occurs."}], "description": "AssertionError is thrown whenever an assertion fails. It provides methods\nto more easily get at error information and also provides a base class\nfrom which more specific assertion errors can be derived."}], "namespace": "YAHOO.util", "module": "yuitest", "guessedname": "AssertionError", "methods": {"getMessage": {"return": {"type": "String", "description": "A string describing the error."}, "description": "Returns a fully formatted error for an assertion failure. This should\nbe overridden by all subclasses to provide specific information.", "guessedname": "getMessage", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "A string representation of the error."}, "description": "Returns a string representation of the error.", "guessedname": "toString", "guessedtype": "function"}}, "extends": "Error", "superclass": "Error", "file": "Assert.js", "guessedtype": "function", "shortname": "AssertionError", "properties": {"name": {"type": "String", "description": "The name of the error that occurred."}}, "description": "AssertionError is thrown whenever an assertion fails. It provides methods\nto more easily get at error information and also provides a base class\nfrom which more specific assertion errors can be derived."}, "YAHOO.tool.TestReporter": {"name": "YAHOO.tool.TestReporter", "constructors": [{"params": [{"type": "String", "name": "url", "description": " The URL to submit the results to."}, {"type": "Function", "name": "format", "description": " (Optiona) A function that outputs the results in a specific format.\nDefault is YAHOO.tool.TestFormat.XML."}], "description": "An object capable of sending test results to a server."}], "namespace": "YAHOO.tool", "module": "yuitest", "guessedname": "TestReporter", "methods": {"report": {"return": {"type": "Void", "description": ""}, "params": [{"type": "Object", "name": "results", "description": " The results object created by TestRunner."}], "description": "Sends the report to the server.", "guessedname": "report", "guessedtype": "function"}, "destroy": {"return": {"type": "Void", "description": ""}, "description": "Cleans up the memory associated with the TestReporter, removing DOM elements\nthat were created.", "guessedname": "destroy", "guessedtype": "function"}, "_convertToISOString": {"return": {"type": "String", "description": "An ISO-formatted date string"}, "description": "Convert a date into ISO format.\nFrom Douglas Crockford's json2.js", "private": "", "params": [{"type": "Date", "name": "date", "description": " The date to convert."}], "guessedname": "_convertToISOString", "guessedtype": "function"}, "addField": {"return": {"type": "Void", "description": ""}, "params": [{"type": "String", "name": "name", "description": " The name of the field."}, {"type": "Variant", "name": "value", "description": " The value of the field."}], "description": "Adds a field to the form that submits the results.", "guessedname": "addField", "guessedtype": "function"}}, "file": "TestReporter.js", "guessedtype": "function", "shortname": "TestReporter", "properties": {"url": {"type": "String", "description": "The URL to submit the data to."}, "_form": {"type": "HTMLFormElement", "description": "The form element used to submit the results.", "private": ""}, "_fields": {"type": "Object", "description": "Extra fields to submit with the request.", "private": ""}, "_iframe": {"type": "HTMLIFrameElement", "description": "Iframe used as a target for form submission.", "private": ""}, "format": {"type": "Function", "description": "The formatting function to call when submitting the data."}}, "description": "An object capable of sending test results to a server."}, "LogReader": {"name": "LogReader", "constructors": [{"params": [{"type": "HTMLElement", "name": "elContainer", "description": "  (optional) DOM element reference of an existing DIV."}, {"type": "String", "name": "elContainer", "description": "  (optional) String ID of an existing DIV."}, {"type": "Object", "name": "oConfigs", "description": "  (optional) Object literal of configuration params."}], "description": "The LogReader class provides UI to read messages logged to YAHOO.widget.Logger."}], "namespace": "", "module": "logger", "methods": {"getLastTime": {"return": {"type": "Date", "description": "Timestamp of the last log."}, "description": "Gets timestamp of the last log.", "guessedname": "getLastTime", "guessedtype": "function"}, "_onReset": {"guessedname": "_onReset", "params": [{"type": "String", "name": "sType", "description": "  The event."}, {"type": "Object[]", "name": "aArgs", "description": "  Data passed from event firer."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles Logger's resetEvent.", "private": "", "guessedtype": "function"}, "render": {"description": "Adds the UI to the DOM, attaches event listeners, and bootstraps initial\nUI state.", "guessedname": "render", "guessedtype": "function"}, "show": {"description": "Shows UI of LogReader. Logging functionality is not disrupted.", "guessedname": "show", "guessedtype": "function"}, "setTitle": {"params": [{"type": "String", "name": "sTitle", "description": "  New title."}], "description": "Updates title to given string.", "guessedname": "setTitle", "guessedtype": "function"}, "_init": {"protected": "", "params": [{"type": "String|HTMLElement", "name": "container", "description": "  (optional) the render target"}, {"type": "Object", "name": "config", "description": "  (optional) instance configuration"}], "description": "Initializes the instance's message buffer, start time, etc", "guessedname": "_init", "guessedtype": "function"}, "getCategories": {"return": {"type": "String[]", "description": "Array of enabled categories."}, "description": "Returns array of enabled categories.", "guessedname": "getCategories", "guessedtype": "function"}, "_createSourceCheckbox": {"guessedname": "_createSourceCheckbox", "params": [{"type": "String", "name": "sSource", "description": "  Source name."}], "description": "Creates a checkbox in the LogReader footer element to filter by source.", "private": "", "guessedtype": "function"}, "_onClickClearBtn": {"guessedname": "_onClickClearBtn", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles click events on the clear button.", "private": "", "guessedtype": "function"}, "_initCategories": {"private": "", "description": "Initializes category filters.", "guessedname": "_initCategories", "guessedtype": "function"}, "pause": {"description": "Pauses output of log messages. While paused, log messages are not lost, but\nget saved to a buffer and then output upon resume of LogReader.", "guessedname": "pause", "guessedtype": "function"}, "hide": {"description": "Hides UI of LogReader. Logging functionality is not disrupted.", "guessedname": "hide", "guessedtype": "function"}, "_printToConsole": {"guessedname": "_printToConsole", "params": [{"type": "Object[]", "name": "aEntries", "description": "  Array of LogMsg objects to output to console."}], "description": "Cycles through an array of log messages, and outputs each one to the console\nif its category has not been filtered out.", "private": "", "guessedtype": "function"}, "_initHeaderEl": {"private": "", "description": "Initializes the header element.", "guessedname": "_initHeaderEl", "guessedtype": "function"}, "_initDragDrop": {"private": "", "description": "Initializes Drag and Drop on the header element.", "guessedname": "_initDragDrop", "guessedtype": "function"}, "_printBuffer": {"private": "", "description": "Sends buffer of log messages to output and clears buffer.", "guessedname": "_printBuffer", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "Unique name of the LogReader instance."}, "description": "Public accessor to the unique name of the LogReader instance.", "guessedname": "toString", "guessedtype": "function"}, "showSource": {"params": [{"type": "String", "name": "Source", "description": " name."}], "description": "Shows log messages associated with given source.", "guessedname": "showSource", "guessedtype": "function"}, "destroy": {"description": "Removes the UI from the DOM entirely and detaches all event listeners.\nImplementers should note that Logger will still accumulate messages.", "guessedname": "destroy", "guessedtype": "function"}, "showCategory": {"params": [{"type": "String", "name": "Category", "description": " name."}], "description": "Shows log messages associated with given category.", "guessedname": "showCategory", "guessedtype": "function"}, "_onClickCollapseBtn": {"guessedname": "_onClickCollapseBtn", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance"}], "description": "Handles click events on the collapse button.", "private": "", "guessedtype": "function"}, "_onCategoryCreate": {"guessedname": "_onCategoryCreate", "params": [{"type": "String", "name": "sType", "description": "  The event."}, {"type": "Object[]", "name": "aArgs", "description": "  Data passed from event firer."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles Logger's categoryCreateEvent.", "private": "", "guessedtype": "function"}, "collapse": {"description": "Collapses UI of LogReader. Logging functionality is not disrupted.", "guessedname": "collapse", "guessedtype": "function"}, "resume": {"description": "Resumes output of log messages, including outputting any log messages that\nhave been saved to buffer while paused.", "guessedname": "resume", "guessedtype": "function"}, "_onSourceCreate": {"guessedname": "_onSourceCreate", "params": [{"type": "String", "name": "sType", "description": "  The event."}, {"type": "Object[]", "name": "aArgs", "description": "  Data passed from event firer."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles Logger's sourceCreateEvent.", "private": "", "guessedtype": "function"}, "_onClickPauseBtn": {"guessedname": "_onClickPauseBtn", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles click events on the pause button.", "private": "", "guessedtype": "function"}, "_initFooterEl": {"private": "", "description": "Initializes the footer element.", "guessedname": "_initFooterEl", "guessedtype": "function"}, "_onNewLog": {"guessedname": "_onNewLog", "params": [{"type": "String", "name": "sType", "description": "  The event."}, {"type": "Object[]", "name": "aArgs", "description": "  Data passed from event firer."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles Logger's newLogEvent.", "private": "", "guessedtype": "function"}, "html2Text": {"guessedname": "html2Text", "params": [{"type": "String", "name": "sHtml", "description": "  String to convert."}], "description": "Converts input chars \"<\", \">\", and \"&\" to HTML entities.", "private": "", "guessedtype": "function"}, "_filterLogs": {"private": "", "description": "Reprints all log messages in the stack through filters.", "guessedname": "_filterLogs", "guessedtype": "function"}, "_onCheckCategory": {"guessedname": "_onCheckCategory", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles check events on the category filter checkboxes.", "private": "", "guessedtype": "function"}, "_onCheckSource": {"guessedname": "_onCheckSource", "params": [{"type": "HTMLEvent", "name": "v", "description": "  The click event."}, {"type": "Object", "name": "oSelf", "description": "  The LogReader instance."}], "description": "Handles check events on the category filter checkboxes.", "private": "", "guessedtype": "function"}, "expand": {"description": "Expands UI of LogReader. Logging functionality is not disrupted.", "guessedname": "expand", "guessedtype": "function"}, "getSources": {"return": {"type": "Array", "description": "Array of enabled sources."}, "description": "Returns array of enabled sources.", "guessedname": "getSources", "guessedtype": "function"}, "_initSources": {"private": "", "description": "Initializes source filters.", "guessedname": "_initSources", "guessedtype": "function"}, "hideCategory": {"params": [{"type": "String", "name": "Category", "description": " name."}], "description": "Hides log messages associated with given category.", "guessedname": "hideCategory", "guessedtype": "function"}, "_createCategoryCheckbox": {"guessedname": "_createCategoryCheckbox", "params": [{"type": "String", "name": "sCategory", "description": "  Category name."}], "description": "Creates the UI for a category filter in the LogReader footer element.", "private": "", "guessedtype": "function"}, "_initConsoleEl": {"private": "", "description": "Initializes the console element.", "guessedname": "_initConsoleEl", "guessedtype": "function"}, "_initContainerEl": {"private": "", "description": "Initializes the primary container element.", "guessedname": "_initContainerEl", "guessedtype": "function"}, "clearConsole": {"description": "Does not delete any log messages, but clears all printed log messages from\nthe console. Log messages will be printed out again if user re-filters. The\nstatic method YAHOO.widget.Logger.reset() should be called in order to\nactually delete log messages.", "guessedname": "clearConsole", "guessedtype": "function"}, "hideSource": {"params": [{"type": "String", "name": "Source", "description": " name."}], "description": "Hides log messages associated with given source.", "guessedname": "hideSource", "guessedtype": "function"}, "getCheckbox": {"return": {"type": "Array", "description": "Array of all filter checkboxes."}, "params": [{"type": "String", "name": "Category", "description": " or source name."}], "description": "Returns related checkbox element for given filter (i.e., category or source).", "guessedname": "getCheckbox", "guessedtype": "function"}}, "file": "LogReader.js", "shortname": "LogReader", "properties": {"right": {"type": "String", "description": "Public member to access CSS right position of the LogReader container.", "guessedname": "right", "guessedtype": "property"}, "entryFormat": {"default": "null", "type": "String", "description": "Custom output format for log messages.  Defaults to null, which falls\nback to verboseOutput param deciding between LogReader.VERBOSE_TEMPLATE\nand LogReader.BASIC_TEMPLATE.  Use bracketed place holders to mark where\nmessage info should go.  Available place holder names include:\n<ul>\n<li>category</li>\n<li>label</li>\n<li>sourceAndDetail</li>\n<li>message</li>\n<li>localTime</li>\n<li>elapsedTime</li>\n<li>totalTime</li>\n</ul>", "guessedname": "entryFormat", "guessedtype": "property"}, "height": {"type": "String", "description": "Public member to access CSS height of the LogReader container.", "guessedname": "height", "guessedtype": "property"}, "newestOnTop": {"type": "Boolean", "description": "Whether or not newest message is printed on top.", "guessedname": "newestOnTop", "guessedtype": "property"}, "_elCollapse": {"guessedname": "_elCollapse", "type": "HTMLElement", "description": "LogReader collapse element.", "private": "", "guessedtype": "property"}, "_elCategoryFilters": {"guessedname": "_elCategoryFilters", "type": "HTMLElement", "description": "Container element for LogReader category filter checkboxes.", "private": "", "guessedtype": "property"}, "_memberName": {"description": "Internal class member to index multiple LogReader instances.", "default": "0", "private": "", "static": "", "guessedname": "_index", "guessedtype": "property", "type": "Number"}, "_sName": {"guessedname": "_sName", "type": "String", "description": "Name of LogReader instance.", "private": "", "guessedtype": "property"}, "isCollapsed": {"default": "false", "type": "Boolean", "description": "True when LogReader is in a collapsed state, false otherwise.", "guessedname": "isCollapsed", "guessedtype": "property"}, "_btnCollapse": {"guessedname": "_btnCollapse", "type": "HTMLElement", "description": "LogReader collapse button element.", "private": "", "guessedtype": "property"}, "logReaderEnabled": {"default": "true", "type": "Boolean", "description": "Whether or not LogReader is enabled to output log messages.", "guessedname": "logReaderEnabled", "guessedtype": "property"}, "_filterCheckboxes": {"guessedname": "_filterCheckboxes", "type": "Object", "description": "Hash of filters and their related checkbox elements.", "private": "", "guessedtype": "property"}, "thresholdMax": {"default": "500", "type": "Number", "description": "Maximum number of messages a LogReader console will display.", "guessedname": "thresholdMax", "guessedtype": "property"}, "_buffer": {"guessedname": "_buffer", "type": "Object[]", "description": "Buffer of log message objects for batch output.", "private": "", "guessedtype": "property"}, "bottom": {"type": "String", "description": "Public member to access CSS bottom position of the LogReader container.", "guessedname": "bottom", "guessedtype": "property"}, "_elBtns": {"guessedname": "_elBtns", "type": "HTMLElement", "description": "LogReader buttons container element.", "private": "", "guessedtype": "property"}, "_lastTime": {"guessedname": "_lastTime", "type": "Date", "description": "Date of last output log message.", "private": "", "guessedtype": "property"}, "top": {"type": "String", "description": "Public member to access CSS top position of the LogReader container.", "guessedname": "top", "guessedtype": "property"}, "_btnPause": {"guessedname": "_btnPause", "type": "HTMLElement", "description": "LogReader pause button element.", "private": "", "guessedtype": "property"}, "_elContainer": {"guessedname": "_elContainer", "type": "HTMLElement", "description": "LogReader container element.", "private": "", "guessedtype": "property"}, "width": {"type": "String", "description": "Public member to access CSS width of the LogReader container.", "guessedname": "width", "guessedtype": "property"}, "VERBOSE_TEMPLATE": {"default": "\"<p><span class='{category}'>{label}</span>{totalTime}ms (+{elapsedTime}) {localTime}:</p><p>{sourceAndDetail}</p><p>{message}</p>\"", "static": "", "description": "Template used for innerHTML of verbose entry output.", "guessedname": "VERBOSE_TEMPLATE", "guessedtype": "property"}, "fontSize": {"type": "String", "description": "Public member to access CSS font size of the LogReader container.", "guessedname": "fontSize", "guessedtype": "property"}, "footerEnabled": {"default": "true", "type": "Boolean", "description": "Whether or not the footer UI is enabled for the LogReader.", "guessedname": "footerEnabled", "guessedtype": "property"}, "verboseOutput": {"default": "true", "type": "Boolean", "description": "Whether or not output is verbose (more readable). Setting to true will make\noutput more compact (less readable).", "guessedname": "verboseOutput", "guessedtype": "property"}, "_sourceFilters": {"guessedname": "_sourceFilters", "type": "String[]", "description": "Array of filters for log message sources.", "private": "", "guessedtype": "property"}, "_elHd": {"guessedname": "_elHd", "type": "HTMLElement", "description": "LogReader header element.", "private": "", "guessedtype": "property"}, "_categoryFilters": {"guessedname": "_categoryFilters", "type": "String[]", "description": "Array of filters for log message categories.", "private": "", "guessedtype": "property"}, "_consoleMsgCount": {"description": "Number of log messages output to console.", "default": "0", "private": "", "guessedname": "_consoleMsgCount", "guessedtype": "property", "type": "Number"}, "_elSourceFilters": {"guessedname": "_elSourceFilters", "type": "HTMLElement", "description": "Container element for LogReader source filter checkboxes.", "private": "", "guessedtype": "property"}, "thresholdMin": {"default": "100", "type": "Number", "description": "When a LogReader console reaches its thresholdMax, it will clear out messages\nand print out the latest thresholdMin number of messages.", "guessedname": "thresholdMin", "guessedtype": "property"}, "_title": {"guessedname": "_title", "type": "HTMLElement", "description": "LogReader title header element.", "private": "", "guessedtype": "property"}, "_elDefaultContainer": {"type": "HTMLElement", "description": "A class member shared by all LogReaders if a container needs to be\ncreated during instantiation. Will be null if a container element never needs to\nbe created on the fly, such as when the implementer passes in their own element.", "private": ""}, "autoRender": {"default": "true", "type": "{Boolean}", "description": "Render the LogReader immediately upon instantiation.  If set to false,\nyou must call myLogReader.render() to generate the UI."}, "_elFt": {"guessedname": "_elFt", "type": "HTMLElement", "description": "LogReader footer element.", "private": "", "guessedtype": "property"}, "outputBuffer": {"default": "100", "type": "Number", "description": "Output timeout buffer in milliseconds.", "guessedname": "outputBuffer", "guessedtype": "property"}, "_elConsole": {"guessedname": "_elConsole", "type": "HTMLElement", "description": "LogReader console element.", "private": "", "guessedtype": "property"}, "draggable": {"default": "true", "type": "Boolean", "description": "Enables draggable LogReader if DragDrop Utility is present.", "guessedname": "draggable", "guessedtype": "property"}, "ENTRY_TEMPLATE": {"description": "Node template for the log entries", "default": "<code>pre</code> element with class yui-log-entry", "static": "", "guessedname": "ENTRY_TEMPLATE", "guessedtype": "function", "type": "{HTMLElement}"}, "isPaused": {"default": "false", "type": "Boolean", "description": "True when LogReader is in a paused state, false otherwise.", "guessedname": "isPaused", "guessedtype": "property"}, "_btnClear": {"guessedname": "_btnClear", "type": "HTMLElement", "description": "Clear button element.", "private": "", "guessedtype": "property"}, "_timeout": {"guessedname": "_timeout", "type": "Number", "description": "Batched output timeout ID.", "private": "", "guessedtype": "property"}, "BASIC_TEMPLATE": {"default": "\"<p><span class='{category}'>{label}</span>{totalTime}ms (+{elapsedTime}) {localTime}: {sourceAndDetail}: {message}</p>\"", "static": "", "description": "Template used for innerHTML of compact entry output.", "guessedname": "BASIC_TEMPLATE", "guessedtype": "property"}, "left": {"type": "String", "description": "Public member to access CSS left position of the LogReader container.", "guessedname": "left", "guessedtype": "property"}}, "description": "The LogReader class provides UI to read messages logged to YAHOO.widget.Logger."}, "YAHOO.widget.MenuNode": {"name": "YAHOO.widget.MenuNode", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node.\nProviding a string is the same as providing an object with a single property named label.\nAll values in the oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private or functions.\nAll attributes are made available in noderef.data, which\ncan be used to store custom attributes.  TreeView.getNode(s)ByProperty\ncan be used to retrieve a node by one of the attributes."}, {"type": "YAHOO.widget.Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated; use oData.expanded)"}], "description": "A menu-specific implementation that differs from TextNode in that only \none sibling can be expanded at a time."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "MenuNode", "extends": "YAHOO.widget.TextNode", "superclass": "YAHOO.widget.TextNode", "file": "MenuNode.js", "guessedtype": "function", "shortname": "MenuNode", "properties": {"_type": {"default": "\"MenuNode\"", "guessedname": "_type", "description": "The node type", "private": "", "guessedtype": "property"}}, "description": "A menu-specific implementation that differs from TextNode in that only \none sibling can be expanded at a time."}, "YAHOO.widget.Record": {"name": "YAHOO.widget.Record", "constructors": [{"params": [{"type": "Object", "name": "oConfigs", "description": "  (optional) Object literal of key/value pairs."}], "description": "The Record class defines a DataTable record."}], "namespace": "YAHOO.widget", "module": "datatable", "guessedname": "Record", "methods": {"getCount": {"return": {"type": "", "description": "Number"}, "description": "Returns unique count assigned at instantiation.", "guessedname": "getCount", "guessedtype": "function"}, "getData": {"return": {"type": "", "description": "Object"}, "params": [{"type": "String", "name": "sField", "description": "  (Optional) The field from which to retrieve data value."}], "description": "Returns data for the Record for a field if given, or the entire object\nliteral otherwise.", "guessedname": "getData", "guessedtype": "function"}, "getId": {"return": {"type": "", "description": "String"}, "description": "Returns unique ID assigned at instantiation.", "guessedname": "getId", "guessedtype": "function"}, "setData": {"params": [{"type": "String", "name": "sKey", "description": "  The key of the new value."}, {"type": "MIXED", "name": "oData", "description": "  The new value."}], "description": "Sets given data at the given key. Use the RecordSet method updateRecordValue to trigger\nevents.", "guessedname": "setData", "guessedtype": "function"}}, "file": "RecordSet.js", "guessedtype": "function", "shortname": "Record", "properties": {"_sId": {"guessedname": "_sId", "type": "String", "description": "Immutable unique ID assigned at instantiation. Remains constant while a\nRecord's position index can change from sorting.", "private": "", "guessedtype": "property"}, "_nCount": {"guessedname": "_nCount", "type": "Number", "description": "Immutable unique count assigned at instantiation. Remains constant while a\nRecord's position index can change from sorting.", "private": "", "guessedtype": "property"}, "_oData": {"guessedname": "_oData", "type": "Object", "description": "Holds data for the Record in an object literal.", "private": "", "guessedtype": "property"}, "Record._nCount": {"guessedname": "_nCount", "type": "Number", "description": "Internal class variable to give unique IDs to Record instances.", "private": "", "guessedtype": "property"}}, "description": "The Record class defines a DataTable record."}, "YAHOO.widget.TabView": {"name": "YAHOO.widget.TabView", "configs": {"tabs": {"type": "Array", "description": "The Tabs belonging to the TabView instance."}, "activeIndex": {"type": "Int", "description": "The index of the tab currently active."}, "activeTab": {"type": "YAHOO.widget.Tab", "description": "The tab currently active."}, "orientation": {"default": "\"top\"", "type": "String", "description": "How the Tabs should be oriented relative to the TabView."}}, "constructors": [{"params": [{"type": "HTMLElement | String | Object", "name": "el(optional)", "description": " The html \nelement that represents the TabView, or the attribute object to use. \nAn element will be created if none provided."}, {"type": "Object", "name": "attr", "description": " (optional) A key map of the tabView's \ninitial attributes.  Ignored if first arg is attributes object."}], "description": "A widget to control tabbed views."}], "namespace": "YAHOO.widget", "module": "tabview", "events": {"tabsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "tabsChange", "description": "Fires when the value for the configuration attribute 'tabs' changes."}, "orientationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "orientationChange", "description": "Fires when the value for the configuration attribute 'orientation' changes."}, "beforeOrientationChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeOrientationChange", "description": "Fires before the value for the configuration attribute 'orientation' changes. Return false to cancel the attribute change."}, "activeIndexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "activeIndexChange", "description": "Fires when the value for the configuration attribute 'activeIndex' changes."}, "beforeActiveTabChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeActiveTabChange", "description": "Fires before the value for the configuration attribute 'activeTab' changes. Return false to cancel the attribute change."}, "beforeActiveIndexChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeActiveIndexChange", "description": "Fires before the value for the configuration attribute 'activeIndex' changes. Return false to cancel the attribute change."}, "activeTabChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "activeTabChange", "description": "Fires when the value for the configuration attribute 'activeTab' changes."}, "beforeTabsChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeTabsChange", "description": "Fires before the value for the configuration attribute 'tabs' changes. Return false to cancel the attribute change."}}, "guessedname": "TabView", "methods": {"getTabIndex": {"return": {"type": "", "description": "int"}, "params": [{"type": "YAHOO.widget.Tab", "name": "tab", "description": " The tab whose index will be returned."}], "description": "Returns the index of given tab.", "guessedname": "getTabIndex", "guessedtype": "function"}, "removeTab": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.Tab", "name": "item", "description": " The Tab instance to be removed."}], "description": "Removes the specified Tab from the TabView.", "guessedname": "removeTab", "guessedtype": "function"}, "contentTransition": {"description": "The transiton to use when switching between tabs.", "guessedname": "contentTransition", "guessedtype": "function"}, "_initTabs": {"guessedname": "_initTabs", "return": {"type": "", "description": "void"}, "description": "Creates Tab instances from a collection of HTMLElements.", "private": "", "guessedtype": "function"}, "deselectTab": {"params": [{"type": "Int", "name": "index", "description": " The tab index to deselect"}], "description": "Removes selected state from the given tab if it is the activeTab", "guessedname": "deselectTab", "guessedtype": "function"}, "initAttributes": {"params": [{"type": "Object", "name": "attr", "description": " Hash of initial attributes"}], "description": "setAttributeConfigs TabView specific properties.", "guessedname": "initAttributes", "guessedtype": "function"}, "toString": {"return": {"type": "", "description": "String"}, "description": "Provides a readable name for the TabView instance.", "guessedname": "toString", "guessedtype": "function"}, "DOMEventHandler": {"return": {"type": "", "description": "void"}, "params": [{"type": "event", "name": "e", "description": " The Dom event that is being handled."}], "description": "Routes childNode events.", "guessedname": "DOMEventHandler", "guessedtype": "function"}, "addTab": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.Tab", "name": "tab", "description": " A Tab instance to add."}, {"type": "Integer", "name": "index", "description": " The position to add the tab."}], "description": "Adds a Tab to the TabView instance.  \nIf no index is specified, the tab is added to the end of the tab list.", "guessedname": "addTab", "guessedtype": "function"}, "selectTab": {"params": [{"type": "Int", "name": "index", "description": " The tab index to be made active"}], "description": "Makes the tab at the given index the active tab", "guessedname": "selectTab", "guessedtype": "function"}, "getTab": {"return": {"type": "", "description": "YAHOO.widget.Tab"}, "params": [{"type": "Integer", "name": "index", "description": " The position of the Tab."}], "description": "Returns the Tab instance at the specified index.", "guessedname": "getTab", "guessedtype": "function"}}, "extends": "YAHOO.util.Element", "superclass": "YAHOO.util.Element", "file": "TabView.js", "guessedtype": "function", "shortname": "TabView", "properties": {"CLASSNAME": {"default": "\"navset\"", "description": "The className to add when building from scratch.", "guessedname": "CLASSNAME", "guessedtype": "property"}, "TAB_PARENT_CLASSNAME": {"default": "\"nav\"", "description": "The className of the HTMLElement containing the TabView's tab elements\nto look for when building from existing markup, or to add when building\nfrom scratch. \nAll childNodes of the tab container are treated as Tabs when building\nfrom existing markup.", "guessedname": "TAB_PARENT_CLASSNAME", "guessedtype": "property"}, "CONTENT_PARENT_CLASSNAME": {"default": "\"nav-content\"", "description": "The className of the HTMLElement containing the TabView's label elements\nto look for when building from existing markup, or to add when building\nfrom scratch. \nAll childNodes of the content container are treated as content elements when\nbuilding from existing markup.", "guessedname": "CONTENT_PARENT_CLASSNAME", "guessedtype": "property"}, "_tabParent": {"guessedname": "_tabParent", "type": "HTMLElement", "description": "The container of the tabView's label elements.", "private": "", "guessedtype": "property"}, "_contentParent": {"guessedname": "_contentParent", "type": "HTMLElement", "description": "The container of the tabView's content elements.", "private": "", "guessedtype": "property"}}, "description": "A widget to control tabbed views."}, "YAHOO.widget.CalendarNavigator": {"name": "YAHOO.widget.CalendarNavigator", "constructors": [{"params": [{"type": "Calendar|CalendarGroup", "name": "cal", "description": " The instance of the Calendar or CalendarGroup to which this CalendarNavigator should be attached."}], "description": "The CalendarNavigator is used along with a Calendar/CalendarGroup to \nprovide a Month/Year popup navigation control, allowing the user to navigate \nto a specific month/year in the Calendar/CalendarGroup without having to \nscroll through months sequentially"}], "namespace": "YAHOO.widget", "module": "calendar", "guessedname": "CalendarNavigator", "methods": {"_getMonthFromUI": {"protected": "", "return": {"type": "Number", "description": "The month index, or 0 if a UI element for the month\nis not found"}, "description": "Returns the month value (index), from the month UI element", "guessedname": "_getMonthFromUI", "guessedtype": "function"}, "createNav": {"description": "Creates the navigator's containing HTMLElement, it's contents, and appends \nthe containg element to the Calendar/CalendarGroup's container.", "guessedname": "createNav", "guessedtype": "function"}, "_update": {"protected": "", "params": [{"type": "", "name": "cal", "description": " The Calendar instance to update"}], "description": "Updates the Calendar rendered state, based on the state of the CalendarNavigator", "guessedname": "_update", "guessedtype": "function"}, "_handleDirectionKeys": {"protected": "", "params": [{"type": "Event", "name": "e", "description": " The DOM event being handled"}], "description": "Default Keyboard event handler to capture up/down/pgup/pgdown\non the Navigator's year control (yearEl).", "guessedname": "_handleDirectionKeys", "guessedtype": "function"}, "render": {"description": "Renders the HTML for the navigator, adding it to the \ndocument and attaches event listeners if it has not \nalready been rendered.", "guessedname": "render", "guessedtype": "function"}, "show": {"description": "Displays the navigator and mask, updating the input controls to reflect the \ncurrently set month and year. The show method will invoke the render method\nif the navigator has not been renderered already, allowing for lazy rendering\nof the control.\nThe show method will fire the Calendar/CalendarGroup's beforeShowNav and showNav events", "guessedname": "show", "guessedtype": "function"}, "erase": {"description": "Removes all renderered HTML elements for the Navigator from\nthe DOM, purges event listeners and clears (nulls) any property\nreferences to HTML references", "guessedname": "erase", "guessedtype": "function"}, "_handleShiftTabKey": {"protected": "", "params": [{"type": "Event", "name": "e", "description": " The DOM event being handled"}], "description": "Default Keyboard event handler to capture Shift-Tab \non the first control (firstCtrl) in the Navigator.", "guessedname": "_handleShiftTabKey", "guessedtype": "function"}, "cancel": {"description": "Hides the navigator and mask, without updating the Calendar/CalendarGroup's state", "guessedname": "cancel", "guessedtype": "function"}, "applyKeyListeners": {"description": "Attaches DOM listeners for keyboard support. \nTab/Shift-Tab looping, Enter Key Submit on Year element,\nUp/Down/PgUp/PgDown year increment on Year element\n<p>\nNOTE: MacOSX Safari 2.x doesn't let you tab to buttons and \nMacOSX Gecko does not let you tab to buttons or select controls,\nso for these browsers, Tab/Shift-Tab looping is limited to the \nelements which can be reached using the tab key.\n</p>", "guessedname": "applyKeyListeners", "guessedtype": "function"}, "setError": {"params": [{"type": "String", "name": "msg", "description": " The error message to display"}], "description": "Displays an error message in the Navigator's error panel", "guessedname": "setError", "guessedtype": "function"}, "hideMask": {"description": "Hides the navigator's mask element", "guessedname": "hideMask", "guessedtype": "function"}, "_updateMonthUI": {"protected": "", "description": "Updates the Navigator's month UI, based on the month value set on the Navigator object", "guessedname": "_updateMonthUI", "guessedtype": "function"}, "hide": {"description": "Hides the navigator and mask\nThe show method will fire the Calendar/CalendarGroup's beforeHideNav event and hideNav events", "guessedname": "hide", "guessedtype": "function"}, "submit": {"description": "Updates the Calendar/CalendarGroup's pagedate with the currently set month and year if valid.\n<p>\nIf the currently set month/year is invalid, a validation error will be displayed and the \nCalendar/CalendarGroup's pagedate will not be updated.\n</p>", "guessedname": "submit", "guessedtype": "function"}, "renderNavContents": {"return": {"type": "Array", "description": "A reference to the buffer passed in."}, "description": "Renders the contents of the navigator", "param": "{Array} html The HTML buffer to append the HTML to.", "params": [{"type": "Array", "name": "html", "description": " The HTML buffer to append the HTML to."}], "guessedname": "renderNavContents", "guessedtype": "function"}, "init": {"params": [{"type": "Calendar", "name": "cal", "description": " The instance of the Calendar or CalendarGroup to which this CalendarNavigator should be attached"}], "description": "Init lifecycle method called as part of construction", "guessedname": "init", "guessedtype": "function"}, "setYearError": {"description": "Displays the validation error UI for the year control", "guessedname": "setYearError", "guessedtype": "function"}, "_getYearFromUI": {"protected": "", "return": {"type": "Number", "description": "The year value set in the UI, if valid. null is returned if \nthe UI does not contain a valid year value."}, "description": "Returns the year value, from the Navitator's year UI element", "guessedname": "_getYearFromUI", "guessedtype": "function"}, "_syncMask": {"protected": "", "description": "Used to set the width/height of the mask in pixels to match the Calendar Container.\nCurrently only used for IE6 or IE in quirks mode. The other A-Grade browser are handled using CSS (width/height 100%).\n<p>\nThe method is also registered as an HTMLElement resize listener on the Calendars container element.\n</p>", "guessedname": "_syncMask", "guessedtype": "function"}, "getYear": {"return": {"type": "Number", "description": "The Navigator's current year value"}, "description": "Returns the current year set on the navigator\nNote: This may not be the year set in the UI, if \nthe UI contains an invalid value.", "guessedname": "getYear", "guessedtype": "function"}, "destroy": {"description": "Destroys the Navigator object and any HTML references", "guessedname": "destroy", "guessedtype": "function"}, "getMonth": {"return": {"type": "Number", "description": "The Navigator's current month index"}, "description": "Returns the current month set on the navigator\nNote: This may not be the month set in the UI, if \nthe UI contains an invalid value.", "guessedname": "getMonth", "guessedtype": "function"}, "showMask": {"description": "Displays the navigator's mask element", "guessedname": "showMask", "guessedtype": "function"}, "renderButton": {"return": {"type": "String", "description": "The HTML created for the Button UI"}, "description": "Renders the submit/cancel buttons for the navigator", "guessedname": "renderButtons", "guessedtype": "function"}, "clearErrors": {"description": "Clears all validation and error messages in the UI", "guessedname": "clearErrors", "guessedtype": "function"}, "applyListeners": {"description": "Attaches DOM event listeners to the rendered elements\n<p>\nThe method will call applyKeyListeners, to setup keyboard specific \nlisteners\n</p>", "guessedname": "applyListeners", "guessedtype": "function"}, "purgeListeners": {"description": "Removes/purges DOM event listeners from the rendered elements", "guessedname": "purgeListeners", "guessedtype": "function"}, "clearYearError": {"description": "Removes the validation error UI for the year control", "guessedname": "clearYearError", "guessedtype": "function"}, "clearError": {"description": "Clears the navigator's error message and hides the error panel", "guessedname": "clearError", "guessedtype": "function"}, "validate": {"return": {"type": "Boolean", "description": "true, if the current UI state contains valid values, false if not"}, "description": "Validates the current state of the UI controls", "guessedname": "validate", "guessedtype": "function"}, "setMonth": {"params": [{"type": "Number", "name": "nMonth", "description": " The month index, from 0 (Jan) through 11 (Dec)."}], "description": "Sets the current month on the Navigator, and updates the UI", "guessedname": "setMonth", "guessedtype": "function"}, "_setFirstLastElements": {"protected": "", "description": "Sets up references to the first and last focusable element in the Navigator's UI\nin terms of tab order (Naviagator's firstEl and lastEl properties). The references\nare used to control modality by looping around from the first to the last control\nand visa versa for tab/shift-tab navigation.\n<p>\nSee <a href=\"#applyKeyListeners\">applyKeyListeners</a>\n</p>", "guessedname": "_setFirstLastElements", "guessedtype": "function"}, "_show": {"protected": "", "description": "Protected implementation to handle how UI elements are \nhidden/shown.", "guessedname": "_show", "guessedtype": "function"}, "setInitialFocus": {"description": "Sets the initial focus, based on the configured value", "guessedname": "setInitialFocus", "guessedtype": "function"}, "_handleEnterKey": {"protected": "", "params": [{"type": "Event", "name": "e", "description": " The DOM event being handled"}], "description": "Default Keyboard event handler to capture Enter \non the Navigator's year control (yearEl)", "guessedname": "_handleEnterKey", "guessedtype": "function"}, "__getCfg": {"return": {"type": "", "description": "The value of the configuration property"}, "description": "Retrieve Navigator configuration values from \nthe parent Calendar/CalendarGroup's config value.\n<p>\nIf it has not been set in the user provided configuration, the method will \nreturn the default value of the configuration property, as set in DEFAULT_CONFIG\n</p>", "private": "", "params": [{"type": "String", "name": "Case", "description": " sensitive property name."}, {"type": "Boolean", "name": "true,", "description": " if the property is a string property, false if not."}], "guessedname": "__getCfg", "guessedtype": "function"}, "setYear": {"params": [{"type": "Number", "name": "nYear", "description": " The full year value to set the Navigator to."}], "description": "Sets the current year on the Navigator, and updates the UI. If the \nprovided year is invalid, it will not be set.", "guessedname": "setYear", "guessedtype": "function"}, "_handleTabKey": {"protected": "", "params": [{"type": "Event", "name": "e", "description": " The DOM event being handled"}], "description": "Default Keyboard event handler to capture Tab \non the last control (lastCtrl) in the Navigator.", "guessedname": "_handleTabKey", "guessedtype": "function"}, "createMask": {"description": "Creates the Mask HTMLElement and appends it to the Calendar/CalendarGroups\ncontainer.", "guessedname": "createMask", "guessedtype": "function"}, "purgeKeyListeners": {"description": "Removes/purges DOM listeners for keyboard support", "guessedname": "purgeKeyListeners", "guessedtype": "function"}, "renderYear": {"return": {"type": "Array", "description": "A reference to the buffer passed in."}, "params": [{"type": "Array", "name": "html", "description": " The HTML buffer to append the HTML to."}], "description": "Renders the year label and control for the navigator", "guessedname": "renderYear", "guessedtype": "function"}, "_updateYearUI": {"protected": "", "description": "Updates the Navigator's year UI, based on the year value set on the Navigator object", "guessedname": "_updateYearUI", "guessedtype": "function"}}, "file": "CalendarNavigator.js", "guessedtype": "function", "shortname": "CalendarNavigator", "properties": {"_DEFAULT_CFG": {"description": "Object literal containing the default configuration values for the CalendarNavigator", "deprecated": "Made public. See the public DEFAULT_CONFIG property", "protected": "", "static": "", "guessedname": "_DEFAULT_CFG", "guessedtype": "property", "type": "Object"}, "YAHOO.widget.CalendarNavigator.YR_PATTERN": {"type": "RegExp", "static": "", "description": "Regular expression used to validate the year input", "guessedname": "YR_PATTERN", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.UPDATE_DELAY": {"type": "Number", "static": "", "description": "Artificial delay (in ms) between the time the Navigator is hidden\nand the Calendar/CalendarGroup state is updated. Allows the user\nthe see the Calendar/CalendarGroup page changing. If set to 0\nthe Calendar/CalendarGroup page will be updated instantly", "guessedname": "UPDATE_DELAY", "guessedtype": "property"}, "lastCtrl": {"type": "HTMLElement", "description": "Reference to the last focusable control in the navigator (by default cancelEl)", "guessedname": "lastCtrl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.MONTH_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the month control.", "static": "", "guessedname": "MONTH_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "errorEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to display validation errors", "guessedname": "errorEl", "guessedtype": "property"}, "submitEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to update the Calendar/Calendar group\nwith the month/year values", "guessedname": "submitEl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.DEFAULT": {"type": "String", "static": "", "description": "Class applied to default controls", "guessedname": "DEFAULT", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.ID_SUFFIX": {"description": "The suffix added to the Calendar/CalendarGroup's ID, to generate\na unique ID for the Navigator and it's bounding box.", "static": "", "guessedname": "ID_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.CalendarNavigator.CLASSES.NAV_VISIBLE": {"type": "String", "static": "", "description": "Class applied to the Calendar/CalendarGroup's bounding box to indicate\nthe Navigator is currently visible", "guessedname": "NAV_VISIBLE", "guessedtype": "property"}, "id": {"type": "String", "description": "The unique ID for this CalendarNavigator instance", "guessedname": "id", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.YEAR_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the year control.", "static": "", "guessedname": "YEAR_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "firstCtrl": {"type": "HTMLElement", "description": "Reference to the first focusable control in the navigator (by default monthEl)", "guessedname": "firstCtrl", "guessedtype": "property"}, "__isIEQuirks": {"private": "", "description": "Private flag, to identify IE Quirks", "guessedname": "ie", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.TRIM": {"type": "RegExp", "static": "", "description": "Regular expression used to trim strings", "guessedname": "TRIM", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.MONTH": {"type": "String", "static": "", "description": "Class applied to the month label/control bounding box", "guessedname": "MONTH", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.YR_MINOR_INC": {"type": "Number", "static": "", "description": "The amount by which to increment the current year value,\nwhen the arrow up/down key is pressed on the year control", "guessedname": "YR_MINOR_INC", "guessedtype": "property"}, "yearEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to input the year", "guessedname": "yearEl", "guessedtype": "property"}, "navEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to render the navigator's bounding box", "guessedname": "navEl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.MASK": {"type": "String", "static": "", "description": "Class applied to the Navigator mask's bounding box", "guessedname": "MASK", "guessedtype": "property"}, "monthEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to input the month", "guessedname": "monthEl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.YR_MAJOR_INC": {"type": "Number", "static": "", "description": "The amount by which to increment the current year value,\nwhen the page up/down key is pressed on the year control", "guessedname": "YR_MAJOR_INC", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES": {"type": "Object", "static": "", "description": "YAHOO.widget.CalendarNavigator.CLASSES contains constants\nfor the class values applied to the CalendarNaviatgator's \nDOM elements", "guessedname": "CLASSES", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.ERROR": {"type": "String", "static": "", "description": "Class applied to the validation error area's bounding box", "guessedname": "ERROR", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.NAV": {"type": "String", "static": "", "description": "Class applied to the Calendar Navigator's bounding box", "guessedname": "NAV", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.BUTTONS": {"type": "String", "static": "", "description": "Class applied to the submit/cancel button's bounding box", "guessedname": "BUTTONS", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.INVALID": {"type": "String", "static": "", "description": "Class applied to controls with invalid data (e.g. a year input field with invalid an year)", "guessedname": "INVALID", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.ERROR_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the error bounding box.", "static": "", "guessedname": "ERROR_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "YAHOO.widget.CalendarNavigator.CLASSES.BUTTON": {"type": "String", "static": "", "description": "Class applied to buttons wrapping element", "guessedname": "BUTTON", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.YEAR_CTRL": {"type": "String", "static": "", "description": "Class applied to the year input control", "guessedname": "YEAR_CTRL", "guessedtype": "property"}, "_year": {"protected": "", "type": "Number", "description": "Internal state property for the current year displayed in the navigator", "guessedname": "_year", "guessedtype": "property"}, "maskEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to render the navigator's mask", "guessedname": "maskEl", "guessedtype": "property"}, "DEFAULT_CONFIG": {"type": "Object", "static": "", "description": "Object literal containing the default configuration values for the CalendarNavigator\nThe configuration object is expected to follow the format below, with the properties being\ncase sensitive.\n<dl>\n<dt>strings</dt>\n<dd><em>Object</em> :  An object with the properties shown below, defining the string labels to use in the Navigator's UI\n<dl>\n<dt>month</dt><dd><em>String</em> : The string to use for the month label. Defaults to \"Month\".</dd>\n<dt>year</dt><dd><em>String</em> : The string to use for the year label. Defaults to \"Year\".</dd>\n<dt>submit</dt><dd><em>String</em> : The string to use for the submit button label. Defaults to \"Okay\".</dd>\n<dt>cancel</dt><dd><em>String</em> : The string to use for the cancel button label. Defaults to \"Cancel\".</dd>\n<dt>invalidYear</dt><dd><em>String</em> : The string to use for invalid year values. Defaults to \"Year needs to be a number\".</dd>\n</dl>\n</dd>\n<dt>monthFormat</dt><dd><em>String</em> : The month format to use. Either YAHOO.widget.Calendar.LONG, or YAHOO.widget.Calendar.SHORT. Defaults to YAHOO.widget.Calendar.LONG</dd>\n<dt>initialFocus</dt><dd><em>String</em> : Either \"year\" or \"month\" specifying which input control should get initial focus. Defaults to \"year\"</dd>\n</dl>", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.YEAR": {"type": "String", "static": "", "description": "Class applied to the year label/control bounding box", "guessedname": "YEAR", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CANCEL_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the \"Cancel\" button.", "static": "", "guessedname": "CANCEL_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}, "__isMac": {"private": "", "description": "Private flag, to identify MacOS", "guessedname": "__isMac", "guessedtype": "property"}, "_doc": {"protected": "", "type": "HTMLDocument", "description": "The document containing the Calendar/Calendar group instance", "guessedname": "_doc", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.CLASSES.MONTH_CTRL": {"type": "String", "static": "", "description": "Class applied to the month input control", "guessedname": "MONTH_CTRL", "guessedtype": "property"}, "_month": {"protected": "", "type": "Number", "description": "Internal state property for the current month index displayed in the navigator", "guessedname": "_month", "guessedtype": "property"}, "__rendered": {"guessedname": "__rendered", "type": "Boolean", "description": "Private internal state property which indicates whether or not the \nNavigator has been rendered.", "private": "", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.YR_MAX_DIGITS": {"type": "Number", "static": "", "description": "The number of digits to which the year input control is to be limited.", "guessedname": "YR_MAX_DIGITS", "guessedtype": "property"}, "cal": {"type": "{Calendar|CalendarGroup}", "description": "The Calendar/CalendarGroup instance to which the navigator belongs", "guessedname": "cal", "guessedtype": "property"}, "cancelEl": {"type": "HTMLElement", "description": "Reference to the HTMLElement used to hide the navigator without updating the \nCalendar/Calendar group", "guessedname": "cancelEl", "guessedtype": "property"}, "YAHOO.widget.CalendarNavigator.SUBMIT_SUFFIX": {"description": "The suffix added to the Navigator's ID, to generate\na unique ID for the \"Submit\" button.", "static": "", "guessedname": "SUBMIT_SUFFIX", "guessedtype": "property", "type": "String", "final": ""}}, "description": "The CalendarNavigator is used along with a Calendar/CalendarGroup to \nprovide a Month/Year popup navigation control, allowing the user to navigate \nto a specific month/year in the Calendar/CalendarGroup without having to \nscroll through months sequentially"}, "YAHOO.util.Selector": {"name": "YAHOO.util.Selector", "namespace": "YAHOO.util", "module": "selector", "guessedname": "Selector", "methods": {"test": {"return": {"type": "boolean", "description": "Whether or not the node matches the selector."}, "description": "Test if the supplied node matches the supplied selector.", "static": "", "guessedname": "test", "guessedtype": "function", "params": [{"type": "HTMLElement | String", "name": "node", "description": " An id or node reference to the HTMLElement being tested."}, {"type": "string", "name": "selector", "description": " The CSS Selector to test the node against."}]}, "filter": {"return": {"type": "array", "description": "An array of nodes from the supplied array that match the given selector."}, "description": "Filters a set of nodes based on a given CSS selector.", "static": "", "guessedname": "filter", "guessedtype": "function", "params": [{"type": "array", "name": "nodes", "description": " A set of nodes/ids to filter."}, {"type": "string", "name": "selector", "description": " The selector used to test each node."}]}, "_tokenize": {"description": "Break selector into token units per simple selector.\nCombinator is attached to left-hand selector.", "guessedname": "_tokenize", "guessedtype": "function"}, "query": {"return": {"type": "Array", "description": "An array of nodes that match the given selector."}, "description": "Retrieves a set of nodes based on a given CSS selector.", "static": "", "guessedname": "query", "guessedtype": "function", "params": [{"type": "string", "name": "selector", "description": " The CSS Selector to test the node against."}, {"type": "HTMLElement | String", "name": "root", "description": " optional An id or HTMLElement to start the query from. Defaults to Selector.document."}, {"type": "Boolean", "name": "firstOnly", "description": " optional Whether or not to return only the first match."}]}}, "static": "", "file": "Selector.js", "guessedtype": "property", "shortname": "Selector", "properties": {"attrAliases": {"type": "object", "description": "Mapping of attributes to aliases, normally to work around HTMLAttributes\nthat conflict with JS reserved words.", "guessedname": "attrAliases", "guessedtype": "property"}, "operators": {"type": "object", "description": "List of operators and corresponding boolean functions. \nThese functions are passed the attribute and the current node's value of the attribute.", "guessedname": "operators", "guessedtype": "property"}, "document": {"default": "window.document", "type": "object", "description": "Default document for use queries", "guessedname": "document", "guessedtype": "property"}, "shorthand": {"type": "object", "description": "Mapping of shorthand tokens to corresponding attribute selector", "guessedname": "shorthand", "guessedtype": "property"}, "pseudos": {"type": "object", "description": "List of pseudo-classes and corresponding boolean functions. \nThese functions are called with the current node, and any value that was parsed with the pseudo regex.", "guessedname": "pseudos", "guessedtype": "property"}}, "description": "Provides helper methods for collecting and filtering DOM elements."}, "YAHOO.widget.Paginator.ui.YourComponent": {"properties": {"button": {"guessedname": "button", "type": "HTMLElement", "description": "Describe the node that will be stored in this property", "private": "", "guessedtype": "property"}}, "name": "YAHOO.widget.Paginator.ui.YourComponent", "for": "YAHOO.widget.Paginator", "innerClasses": ["YAHOO.widget.Paginator"], "constructors": [{"params": [{"type": "Pagintor", "name": "p", "description": "  Paginator instance to attach to"}], "description": "Describe the ui Component"}], "namespace": "YAHOO.widget.Paginator.ui", "module": "paginator", "events": {"beforeMyAttrChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "beforeMyAttrChange", "description": "Fires before the value for the configuration attribute 'myAttr' changes. Return false to cancel the attribute change."}, "myAttrChange": {"params": [{"type": "{oldValue: any, newValue: any}", "name": "event", "description": "An object containing the previous attribute value and the new value."}], "name": "myAttrChange", "description": "Fires when the value for the configuration attribute 'myAttr' changes."}}, "guessedname": "YourComponent", "methods": {"initListeners": {"description": "Subscribe to the Paginator's events that will affect this component's ui", "guessedname": "initListeners", "guessedtype": "function"}, "render": {"return": {"type": "HTMLElement", "description": ""}, "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Generate the nodes and return the appropriate node given the current\npagination state.", "guessedname": "render", "guessedtype": "function"}, "initUI": {"guessedname": "_initUI", "params": [{"type": "string", "name": "id_base", "description": "  used to create unique ids for generated nodes"}], "description": "Initialize the DOM nodes managed by this component", "private": "", "guessedtype": "function"}, "update": {"params": [{"type": "CustomEvent", "name": "e", "description": "  The calling change event"}], "description": "Make any necessary changes to the component nodes", "guessedname": "update", "guessedtype": "function"}, "init": {"static": "", "params": [{"type": "Paginator", "name": "p", "description": "  Paginator instance to decorate"}], "description": "Decorates Paginator instances with new attributes. Called during\nPaginator instantiation.", "guessedname": "init", "guessedtype": "function"}, "onClick": {"params": [{"type": "DOMEvent", "name": "e", "description": "  The click event"}], "description": "Listener for a DOM event from a managed element.  Pass new value to\nPaginator.setStartIndex(..), .setPage(..) etc to fire off changeRequest\nevents.  DO NOT modify the managed element's state here.  That should\nhappen in response to the Paginator's recordOffsetChange event (et al)", "guessedname": "onClick", "guessedtype": "function"}, "destroy": {"private": "", "description": "Remove the generated DOM structure", "guessedname": "destroy", "guessedtype": "function"}, "bindUI": {"private": "", "description": "Attach DOM event listeners to the nodes managed by this component", "guessedname": "_bindUI", "guessedtype": "function"}, "rebuild": {"params": [{"type": "CustomEvent", "name": "e", "description": "  the calling change event"}], "description": "Make more substantial changes in a separate method if necessary", "guessedname": "rebuild", "guessedtype": "function"}}, "file": "UIComponentTemplate.js", "guessedtype": "function", "shortname": "YourComponent", "configs": {"myAttr": {"default": "'foo'", "description": "Describe your attribute"}}, "description": "Describe the ui Component"}, "YAHOO.util.History": {"name": "YAHOO.util.History", "constructors": [{"description": "The History class provides the ability to use the back/forward navigation\nbuttons in a DHTML application. It also allows a DHTML application to\nbe bookmarked in a specific state."}], "namespace": "YAHOO.util", "module": "history", "events": {"onLoadEvent": {"see": "onReady", "description": "Fired when the Browser History Manager is ready. If you subscribe to\nthis event after the Browser History Manager has been initialized,\nit will not fire. Therefore, it is recommended to use the onReady\nmethod instead.", "guessedname": "onLoadEvent", "guessedtype": "property"}}, "guessedname": "History", "methods": {"getCurrentState": {"return": {"type": "string", "description": "The current state of the specified module."}, "description": "Returns the current state of the specified module.", "params": [{"type": "string", "name": "module", "description": " Non-empty string representing your module."}], "guessedname": "getCurrentState", "guessedtype": "function", "public": ""}, "_updateIFrame": {"return": {"type": "boolean", "description": "true if successful. false otherwise."}, "description": "Update the IFrame with our new state.", "private": ""}, "_handleFQStateChange": {"params": [{"type": "string", "name": "fqstate", "description": " Fully qualified state"}], "description": "Sets the new currentState attribute of all modules depending on the new\nfully qualified state. Also notifies the modules which current state has\nchanged.", "private": ""}, "onReady": {"see": "onLoadEvent", "params": [{"type": "function", "name": "fn", "description": " what to execute when the Browser History Manager is ready."}, {"type": "object", "name": "obj", "description": " an optional object to be passed back as a parameter to fn."}, {"type": "boolean|object", "name": "overrideContext", "description": " If true, the obj passed in becomes fn's execution scope."}], "description": "Executes the supplied callback when the Browser History Manager is\nready. This will execute immediately if called after the Browser\nHistory Manager onLoad event has fired.", "guessedname": "onReady", "guessedtype": "function"}, "navigate": {"return": {"type": "boolean", "description": "Indicates whether the new state was successfully added to the history."}, "description": "Call this method when you want to store a new entry in the browser's history.", "params": [{"type": "string", "name": "module", "description": " Non-empty string representing your module."}, {"type": "string", "name": "state", "description": " String representing the new state of the specified module."}], "guessedname": "navigate", "guessedtype": "function", "public": ""}, "_initialize": {"description": "Finish up the initialization of the Browser History Manager.", "private": ""}, "register": {"params": [{"type": "string", "name": "module", "description": " Non-empty string uniquely identifying the\nmodule you wish to register."}, {"type": "string", "name": "initialState", "description": " The initial state of the specified\nmodule corresponding to its earliest history entry."}, {"type": "function", "name": "onStateChange", "description": " Callback called when the\nstate of the specified module has changed."}, {"type": "object", "name": "obj", "description": " An arbitrary object that will be passed as a\nparameter to the handler."}, {"type": "boolean", "name": "overrideContext", "description": " If true, the obj passed in becomes the\nexecution scope of the listener."}], "description": "Registers a new module.", "guessedname": "register", "guessedtype": "function"}, "_checkIframeLoaded": {"description": "Periodically checks whether our internal IFrame is ready to be used.", "private": ""}, "getBookmarkedState": {"return": {"type": "string", "description": "The bookmarked state of the specified module."}, "description": "Returns the state of a module according to the URL fragment\nidentifier. This method is useful to initialize your modules\nif your application was bookmarked from a particular state.", "params": [{"type": "string", "name": "module", "description": " Non-empty string representing your module."}], "guessedname": "getBookmarkedState", "guessedtype": "function", "public": ""}, "initialize": {"public": "", "params": [{"type": "string|HTML Element", "name": "stateField", "description": " <input type=\"hidden\"> used\nto store application states. Must be in the static markup."}, {"type": "string|HTML Element", "name": "histFrame", "description": " IFrame used to store\nthe history (only required on Internet Explorer)"}], "description": "Initializes the Browser History Manager. Call this method\nfrom a script block located right after the opening body tag.", "guessedname": "initialize", "guessedtype": "function"}, "_storeStates": {"description": "Stores all the registered modules' initial state and current state.\nOn Safari, we also store all the fully qualified states visited by\nthe application within a single browser session. The storage takes\nplace in the form field specified during initialization.", "private": ""}, "getQueryStringParameter": {"return": {"type": "string", "description": "The value of the specified parameter, or null."}, "description": "Returns the value of the specified query string parameter.\nThis method is not used internally by the Browser History Manager.\nHowever, it is provided here as a helper since many applications\nusing the Browser History Manager will want to read the value of\nurl parameters to initialize themselves.", "params": [{"type": "string", "name": "paramName", "description": " Name of the parameter we want to look up."}, {"type": "string", "name": "queryString", "description": " Optional URL to look at. If not specified,\nthis method uses the URL in the address bar."}], "guessedname": "getQueryStringParameter", "guessedtype": "function", "public": ""}, "_getHash": {"return": {"type": "string", "description": "The hash portion of the document's location"}, "description": "location.hash is a bit buggy on Opera. I have seen instances where\nnavigating the history using the back/forward buttons, and hence\nchanging the URL, would not change location.hash. That's ok, the\nimplementation of an equivalent is trivial.", "private": ""}, "multiNavigate": {"return": {"type": "boolean", "description": "Indicates whether the new state was successfully added to the history."}, "description": "Call this method when you want to store a new entry in the browser's history.", "params": [{"type": "object", "name": "states", "description": " Associative array of module-state pairs to set simultaneously."}], "guessedname": "multiNavigate", "guessedtype": "function", "public": ""}}, "file": "history.js", "guessedtype": "function", "shortname": "History", "properties": {"_histFrame": {"description": "Our hidden IFrame used to store the browsing history.", "default": "null", "private": "", "guessedname": "_histFrame", "guessedtype": "property", "type": "HTMLIFrameElement"}, "_initialized": {"description": "Flag used to tell whether YAHOO.util.History.initialize has been called.", "default": "false", "private": "", "guessedname": "_initialized", "guessedtype": "property", "type": "boolean"}, "_stateField": {"description": "INPUT field (with type=\"hidden\" or type=\"text\") or TEXTAREA.\nThis field keeps the value of the initial state, current state\nthe list of all states across pages within a single browser session.", "default": "null", "private": "", "guessedname": "_stateField", "guessedtype": "property", "type": "HTMLInputElement|HTMLTextAreaElement"}, "_modules": {"description": "List of registered modules.", "default": "[]", "private": "", "guessedname": "_modules", "guessedtype": "property", "type": "array"}, "_fqstates": {"description": "List of fully qualified states. This is used only by Safari.", "default": "[]", "private": "", "guessedname": "_fqstates", "guessedtype": "property", "type": "array"}}, "description": "The History class provides the ability to use the back/forward navigation\nbuttons in a DHTML application. It also allows a DHTML application to\nbe bookmarked in a specific state."}, "YAHOO.widget.DateNode": {"name": "YAHOO.widget.DateNode", "constructors": [{"params": [{"type": "object", "name": "oData", "description": "  a string or object containing the data that will\nbe used to render this node.\nProviding a string is the same as providing an object with a single property named label.\nAll values in the oData will be used to set equally named properties in the node\nas long as the node does have such properties, they are not undefined, private nor functions.\nAll attributes are made available in noderef.data, which\ncan be used to store custom attributes.  TreeView.getNode(s)ByProperty\ncan be used to retrieve a node by one of the attributes."}, {"type": "YAHOO.widget.Node", "name": "oParent", "description": "  this node's parent node"}, {"type": "boolean", "name": "expanded", "description": "  the initial expanded/collapsed state (deprecated; use oData.expanded)"}], "description": "A Date-specific implementation that differs from TextNode in that it uses \nYAHOO.widget.Calendar as an in-line editor, if available\nIf Calendar is not available, it behaves as a plain TextNode."}], "namespace": "YAHOO.widget", "module": "treeview", "guessedname": "DateNode", "methods": {"getEditorValue": {"return": {"type": "string", "description": "date entered"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Returns the value from the input element.\nOverrides Node.getEditorValue.", "guessedname": "getEditorValue", "guessedtype": "function"}, "fillEditorContainer": {"return": {"type": "", "description": "void"}, "params": [{"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "If YAHOO.widget.Calendar is available, it will pop up a Calendar to enter a new date.  Otherwise, it falls back to a plain <input>  textbox", "guessedname": "fillEditorContainer", "guessedtype": "function"}, "displayEditedValue": {"params": [{"type": "string", "name": "value", "description": "  date to be displayed and stored in the node"}, {"type": "YAHOO.widget.TreeView.editorData", "name": "editorData", "description": "   a shortcut to the static object holding editing information"}], "description": "Finally displays the newly entered date in the tree.\nOverrides Node.displayEditedValue.", "guessedname": "displayEditedValue", "guessedtype": "function"}, "getNodeDefinition": {"return": {"type": "Object | false", "description": "definition of the node or false if this node or any descendant is defined as dynamic"}, "description": "Returns an object which could be used to build a tree out of this node and its children.\nIt can be passed to the tree constructor to reproduce this node as a tree.\nIt will return false if the node or any descendant loads dynamically, regardless of whether it is loaded or not.", "guessedname": "getNodeDefinition", "guessedtype": "function"}}, "extends": "YAHOO.widget.TextNode", "superclass": "YAHOO.widget.TextNode", "file": "DateNode.js", "guessedtype": "function", "shortname": "DateNode", "properties": {"_type": {"description": "The node type", "default": "\"DateNode\"", "private": "", "guessedname": "_type", "guessedtype": "property", "type": "string"}, "calendarConfig": {"description": "Configuration object for the Calendar editor, if used.\nSee <a href=\"http://developer.yahoo.com/yui/calendar/#internationalization\">http://developer.yahoo.com/yui/calendar/#internationalization</a>", "guessedname": "calendarConfig", "guessedtype": "property"}}, "description": "A Date-specific implementation that differs from TextNode in that it uses \nYAHOO.widget.Calendar as an in-line editor, if available\nIf Calendar is not available, it behaves as a plain TextNode."}, "YAHOO.widget.BarSeries": {"name": "YAHOO.widget.BarSeries", "constructors": [{"description": "BarSeries class for the YUI Charts widget."}], "namespace": "YAHOO.widget", "module": "charts", "guessedname": "BarSeries", "uses": ["YAHOO.widget.CartesianSeries"], "file": "Series.js", "guessedtype": "function", "shortname": "BarSeries", "description": "BarSeries class for the YUI Charts widget."}, "YAHOO.tool.TestLogger": {"name": "YAHOO.tool.TestLogger", "constructors": [{"params": [{"type": "HTMLElement", "name": "element", "description": " (Optional) The element to create the logger in."}, {"type": "Object", "name": "config", "description": " (Optional) Configuration options for the logger."}], "description": "Displays test execution progress and results, providing filters based on\ndifferent key events."}], "namespace": "YAHOO.tool", "module": "yuitest", "guessedname": "TestLogger", "methods": {"_handleTestRunnerEvent": {"return": {"type": "Void", "description": ""}, "description": "Handles all TestRunner events, outputting appropriate data into the console.", "private": "", "params": [{"type": "Object", "name": "data", "description": " The event data object."}], "guessedname": "_handleTestRunnerEvent", "guessedtype": "function"}, "formatMsg": {"return": {"type": "String", "description": "HTML-formatted message for output to console."}, "description": "Formats message string to HTML for output to console.", "private": "", "params": [{"type": "Object", "name": "oLogMsg", "description": "  Log message object."}], "guessedname": "formatMsg", "guessedtype": "function"}, "clearTestRunner": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Clears the reference to the TestRunner from previous operations. This \nunsubscribes all events and removes the object reference.", "guessedname": "clearTestRunner", "guessedtype": "function"}, "setTestRunner": {"return": {"type": "Void", "description": ""}, "description": "Sets the source test runner that the logger should monitor.", "static": "", "guessedname": "setTestRunner", "guessedtype": "function", "params": [{"type": "YAHOO.tool.TestRunner", "name": "testRunner", "description": " The TestRunner to observe."}]}}, "file": "TestLogger.js", "guessedtype": "function", "shortname": "TestLogger", "description": "Displays test execution progress and results, providing filters based on\ndifferent key events."}, "YAHOO.util.StorageEvent": {"name": "YAHOO.util.StorageEvent", "constructors": [{"params": [{"type": "Object", "name": "storageArea", "description": "  Required. The Storage object that was affected."}, {"type": "String", "name": "key", "description": "  Required. The key being changed; DOMString in HTML 5 spec."}, {"type": "String", "name": "oldValue", "description": "  Required. The old value of the key being changed; DOMString in HTML 5 spec."}, {"type": "String", "name": "newValue", "description": "  Required. The new value of the key being changed; DOMString in HTML 5 spec."}, {"type": "String", "name": "type", "description": "  Required. The storage event type."}], "description": "The StorageEvent class manages the storage events by emulating the HTML 5 implementation."}], "namespace": "YAHOO.util", "module": "Storage", "guessedname": "StorageEvent", "file": "StorageEvent.js", "guessedtype": "function", "shortname": "StorageEvent", "properties": {"key": {"description": "The 'key' attribute represents the key being changed.", "readonly": "", "static": "", "guessedname": "key", "guessedtype": "property", "type": "{String}"}, "url": {"description": "The 'url' attribute represents the address of the document whose key changed.", "readonly": "", "static": "", "guessedname": "url", "guessedtype": "property", "type": "{String}"}, "source": {"description": "The 'source' attribute represents the WindowProxy object of the browsing context of the document whose key changed.", "readonly": "", "static": "", "guessedname": "source", "guessedtype": "property", "type": "{Object}"}, "storageArea": {"description": "The 'storageArea' attribute represents the Storage object that was affected.", "readonly": "", "static": "", "guessedname": "storageArea", "guessedtype": "property", "type": "{Object}"}, "oldValue": {"description": "The 'oldValue' attribute represents the old value of the key being changed.", "readonly": "", "static": "", "guessedname": "oldValue", "guessedtype": "property", "type": "{String}"}, "type": {"description": "The 'type' attribute represents the Storage event type.", "readonly": "", "static": "", "guessedname": "type", "guessedtype": "property", "type": "{Object}"}, "newValue": {"description": "The 'newValue' attribute represents the new value of the key being changed.", "readonly": "", "static": "", "guessedname": "newValue", "guessedtype": "property", "type": "{String}"}}, "description": "The StorageEvent class manages the storage events by emulating the HTML 5 implementation."}, "YAHOO.tool.TestManager": {"name": "YAHOO.tool.TestManager", "namespace": "YAHOO.tool", "module": "yuitest", "events": {"testmanagerbegin": {"static": "", "description": "Fires when the test manager starts running all test pages"}, "testmanagercomplete": {"static": "", "params": [{"type": " pages_passed: int, pages_failed: int, tests_passed: int\ntests_failed: int, passed: string[], failed: string[],\npage_results: {} ", "name": "obj", "description": ""}], "description": "Fires when the test manager finishes running all test pages.  External\ntest runners should subscribe to this event in order to get the\naggregated test results."}, "testpagecomplete": {"static": "", "params": [{"type": "page: string, results: object", "name": "obj", "description": "  the name of the\npage that was loaded, and the test suite results"}], "description": "Fires when a test page is complete"}, "testpagebegin": {"static": "", "params": [{"type": "string", "name": "curPage", "description": "  the page being loaded"}], "description": "Fires when loading a test page"}}, "guessedname": "TestManager", "methods": {"load": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Signals that a test page has been loaded. This should be called from\nwithin the test page itself to notify the TestManager that it is ready.", "guessedname": "load", "guessedtype": "function"}, "_run": {"return": {"type": "Void", "description": ""}, "description": "Loads the next test page into the iframe.", "private": "", "static": "", "guessedname": "_run", "guessedtype": "function"}, "stop": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Stops the execution of tests.", "guessedname": "stop", "guessedtype": "function"}, "setPages": {"return": {"type": "Void", "description": ""}, "description": "Sets the pages to be loaded.", "static": "", "guessedname": "setPages", "guessedtype": "function", "params": [{"type": "String[]", "name": "pages", "description": " An array of URLs to load."}]}, "start": {"static": "", "return": {"type": "Void", "description": ""}, "description": "Begins the process of running the tests.", "guessedname": "start", "guessedtype": "function"}, "_processResults": {"return": {"type": "Void", "description": ""}, "description": "Processes the results of a test page run, outputting log messages\nfor failed tests.", "private": "", "static": "", "guessedname": "_processResults", "guessedtype": "function"}, "_handleTestRunnerComplete": {"return": {"type": "Void", "description": ""}, "description": "Handles TestRunner.COMPLETE_EVENT, storing the results and beginning\nthe loop again.", "private": "", "static": "", "guessedname": "_handleTestRunnerComplete", "guessedtype": "function", "params": [{"type": "Object", "name": "data", "description": " Data about the event."}]}}, "static": "", "file": "TestManager.js", "guessedtype": "property", "shortname": "TestManager", "properties": {"_pages": {"type": "String[]", "static": "", "description": "Array of pages to load.", "private": ""}, "TEST_MANAGER_COMPLETE_EVENT": {"static": "", "type": "string", "description": "Constant for the testmanagercomplete custom event", "final": ""}, "_timeoutId": {"type": "int", "static": "", "description": "The timeout ID for the next iteration through the tests.", "private": ""}, "_logger": {"description": "The logger used to output results from the various tests.", "private": "", "static": "", "guessedname": "_logger", "guessedtype": "property", "type": "YAHOO.tool.TestLogger"}, "TEST_PAGE_BEGIN_EVENT": {"static": "", "type": "string", "description": "Constant for the testpagebegin custom event", "final": ""}, "TEST_PAGE_COMPLETE_EVENT": {"static": "", "type": "string", "description": "Constant for the testpagecomplete custom event", "final": ""}, "_curPage": {"type": "String", "static": "", "description": "The URL of the page currently being executed.", "private": ""}, "_results": {"description": "Aggregated results", "private": "", "static": "", "guessedname": "_results", "guessedtype": "property", "type": "Object"}, "TEST_MANAGER_BEGIN_EVENT": {"static": "", "type": "string", "description": "Constant for the testmanagerbegin custom event", "final": ""}, "_frame": {"type": "Window", "static": "", "description": "The frame used to load and run tests.", "private": ""}}, "description": "Runs pages containing test suite definitions."}, "YAHOO.util.Point": {"name": "YAHOO.util.Point", "constructors": [{"params": [{"type": "Int", "name": "x", "description": " The X position of the point"}, {"type": "Int", "name": "y", "description": " The Y position of the point"}], "description": "A point is a region that is special in that it represents a single point on \nthe grid."}], "namespace": "YAHOO.util", "module": "dom", "guessedname": "Point", "extends": "YAHOO.util.Region", "superclass": "YAHOO.util.Region", "file": "Region.js", "guessedtype": "function", "shortname": "Point", "description": "A point is a region that is special in that it represents a single point on \nthe grid."}, "YAHOO.widget.Tooltip": {"name": "YAHOO.widget.Tooltip", "configs": {"container": {"default": "document.body", "type": "HTMLElement/String", "description": "Specifies the container element that the Tooltip's markup \nshould be rendered into."}, "width": {"default": "null", "type": "String", "description": "String representing the width of the Tooltip.  <em>Please note:\n</em> As of version 2.3 if either no value or a value of \"auto\" \nis specified, and the Toolip's \"container\" configuration property\nis set to something other than <code>document.body</code> or \nits \"context\" element resides outside the immediately visible \nportion of the document, the width of the Tooltip will be \ncalculated based on the offsetWidth of its root HTML and set just \nbefore it is made visible.  The original value will be \nrestored when the Tooltip is hidden. This ensures the Tooltip is \nrendered at a usable width.  For more information see \nYUILibrary bug #1685496 and YUILibrary \nbug #1735423."}, "text": {"default": "null", "type": "String", "description": "Specifies the Tooltip's text."}, "showdelay": {"default": "200", "type": "Number", "description": "The number of milliseconds to wait before showing a Tooltip \non mouseover."}, "disabled": {"default": "false", "type": "Boolean", "description": "Specifies whether or not the tooltip is disabled. Disabled tooltips\nwill not be displayed. If the tooltip is driven by the title attribute\nof the context element, the title attribute will still be removed for \ndisabled tooltips, to prevent default tooltip behavior."}, "preventoverlap": {"default": "true", "type": "Boolean", "description": "Specifies whether the Tooltip should be kept from overlapping \nits context element."}, "context": {"default": "null", "type": "HTMLElement[]/String[]", "description": "Specifies the element or elements that the Tooltip should be \nanchored to on mouseover."}, "autodismissdelay": {"default": "5000", "type": "Number", "description": "The number of milliseconds to wait before automatically \ndismissing a Tooltip after the mouse has been resting on the \ncontext element."}, "xyoffset": {"default": "[0, 25]", "type": "Array", "description": "Specifies the XY offset from the mouse position, where the tooltip should be displayed, specified\nas a 2 element array (e.g. [10, 20]);"}, "hidedelay": {"default": "250", "type": "Number", "description": "The number of milliseconds to wait before hiding a Tooltip \nafter mouseout."}}, "constructors": [{"params": [{"type": "String", "name": "el", "description": " The element ID representing the Tooltip <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Tooltip"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal containing \nthe configuration that should be set for this Overlay. See configuration \ndocumentation for more details."}], "description": "Tooltip is an implementation of Overlay that behaves like an OS tooltip, \ndisplaying when the user mouses over a particular element, and \ndisappearing on mouse out."}], "namespace": "YAHOO.widget", "module": "container", "events": {"contextMouseOverEvent": {"params": [{"type": "HTMLElement", "name": "context", "description": " The context element which the user just moused over"}, {"type": "DOMEvent", "name": "e", "description": " The DOM event object, associated with the mouse over"}], "description": "CustomEvent fired when user mouses over a context element. Returning false from\na subscriber to this event will prevent the tooltip from being displayed for\nthe current context element.", "guessedname": "contextMouseOverEvent", "guessedtype": "property"}, "contextTriggerEvent": {"params": [{"type": "HTMLElement", "name": "context", "description": " The context element for which the tooltip is triggered"}], "description": "CustomEvent fired just before the tooltip is displayed for the current context.\n<p>\nYou can subscribe to this event if you need to set up the text for the \ntooltip based on the context element for which it is about to be displayed.\n</p>\n<p>This event differs from the beforeShow event in following respects:</p>\n<ol>\n<li>\nWhen moving from one context element to another, if the tooltip is not\nhidden (the <code>hidedelay</code> is not reached), the beforeShow and Show events will not\nbe fired when the tooltip is displayed for the new context since it is already visible.\nHowever the contextTrigger event is always fired before displaying the tooltip for\na new context.\n</li>\n<li>\nThe trigger event provides access to the context element, allowing you to \nset the text of the tooltip based on context element for which the tooltip is\ntriggered.\n</li>\n</ol>\n<p>\nIt is not possible to prevent the tooltip from being displayed\nusing this event. You can use the contextMouseOverEvent if you need to prevent\nthe tooltip from being displayed.\n</p>", "guessedname": "contextTriggerEvent", "guessedtype": "property"}, "contextMouseOutEvent": {"params": [{"type": "HTMLElement", "name": "context", "description": " The context element which the user just moused out of"}, {"type": "DOMEvent", "name": "e", "description": " The DOM event object, associated with the mouse out"}], "description": "CustomEvent fired when the user mouses out of a context element.", "guessedname": "contextMouseOutEvent", "guessedtype": "property"}}, "guessedname": "Tooltip", "methods": {"onContextMouseOver": {"params": [{"type": "DOMEvent", "name": "e", "description": " The current DOM event"}, {"type": "Object", "name": "obj", "description": " The object argument"}], "description": "The default event handler fired when the user mouses over the \ncontext element.", "guessedname": "onContextMouseOver", "guessedtype": "function"}, "onRender": {"params": [{"type": "String", "name": "p_sType", "description": " String representing the name of the event  \nthat was fired."}, {"type": "Array", "name": "p_aArgs", "description": " Array of arguments sent when the event \nwas fired."}], "description": "\"render\" event handler for the Tooltip.", "guessedname": "onRender", "guessedtype": "function"}, "doShow": {"return": {"type": "Number", "description": "The process ID of the timeout function associated \nwith doShow"}, "params": [{"type": "DOMEvent", "name": "e", "description": " The current DOM event"}, {"type": "HTMLElement", "name": "context", "description": " The current context element"}], "description": "Processes the showing of the Tooltip by setting the timeout delay \nand offset of the Tooltip.", "guessedname": "doShow", "guessedtype": "function"}, "initEvents": {"description": "Initializes the custom events for Tooltip", "guessedname": "initEvents", "guessedtype": "function"}, "_removeEventListeners": {"protected": "", "description": "Removes all of the DOM event handlers from the HTML\nelement(s) that trigger the display of the tooltip.", "guessedname": "_removeEventListeners", "guessedtype": "function"}, "configContext": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers,\nthis will usually equal the owner."}], "description": "The default event handler fired when the \"context\" property \nis changed.", "guessedname": "configContext", "guessedtype": "function"}, "doHide": {"description": "Sets the timeout for the auto-dismiss delay, which by default is 5 \nseconds, meaning that a tooltip will automatically dismiss itself \nafter 5 seconds of being displayed.", "guessedname": "doHide", "guessedtype": "function"}, "onContextMouseOut": {"params": [{"type": "DOMEvent", "name": "e", "description": " The current DOM event"}, {"type": "Object", "name": "obj", "description": " The object argument"}], "description": "The default event handler fired when the user mouses out of \nthe context element.", "guessedname": "onContextMouseOut", "guessedtype": "function"}, "forceUnderlayRedraw": {"description": "Forces the underlay element to be repainted, through the application/removal\nof a yui-force-redraw class to the underlay element.", "guessedname": "forceUnderlayRedraw", "guessedtype": "function"}, "configContainer": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For \nconfiguration handlers, args[0] will equal the newly applied value \nfor the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers,\nthis will usually equal the owner."}], "description": "The default event handler fired when the \"container\" property \nis changed.", "guessedname": "configContainer", "guessedtype": "function"}, "init": {"params": [{"type": "String", "name": "el", "description": " The element ID representing the Tooltip <em>OR</em>"}, {"type": "HTMLElement", "name": "el", "description": " The element representing the Tooltip"}, {"type": "Object", "name": "userConfig", "description": " The configuration object literal \ncontaining the configuration that should be set for this Tooltip. \nSee configuration documentation for more details."}], "description": "The Tooltip initialization method. This method is automatically \ncalled by the constructor. A Tooltip is automatically rendered by \nthe init method, and it also is set to be invisible by default, \nand constrained to viewport by default as well.", "guessedname": "init", "guessedtype": "function"}, "onContextMouseMove": {"params": [{"type": "DOMEvent", "name": "e", "description": " The current DOM event"}, {"type": "Object", "name": "obj", "description": " The object argument"}], "description": "The default event handler fired when the user moves the mouse while \nover the context element.", "guessedname": "onContextMouseMove", "guessedtype": "function"}, "configText": {"params": [{"type": "String", "name": "type", "description": " The CustomEvent type (usually the property name)"}, {"type": "Object[]", "name": "args", "description": " The CustomEvent arguments. For configuration \nhandlers, args[0] will equal the newly applied value for the property."}, {"type": "Object", "name": "obj", "description": " The scope object. For configuration handlers, \nthis will usually equal the owner."}], "description": "The default event handler fired when the \"text\" property is changed.", "guessedname": "configText", "guessedtype": "function"}, "preventOverlay": {"params": [{"type": "Number", "name": "pageX", "description": " The x coordinate position of the mouse pointer"}, {"type": "Number", "name": "pageY", "description": " The y coordinate position of the mouse pointer"}], "description": "Fired when the Tooltip is moved, this event handler is used to \nprevent the Tooltip from overlapping with its context element.", "guessedname": "preventOverlap", "guessedtype": "function"}, "destroy": {"description": "Removes the Tooltip element from the DOM and sets all child \nelements to null.", "guessedname": "destroy", "guessedtype": "function"}, "toString": {"return": {"type": "String", "description": "The string representation of the Tooltip"}, "description": "Returns a string representation of the object.", "guessedname": "toString", "guessedtype": "function"}, "initDefaultConfig": {"description": "Initializes the class's configurable properties which can be \nchanged using the Overlay's Config object (cfg).", "guessedname": "initDefaultConfig", "guessedtype": "function"}}, "extends": "YAHOO.widget.Overlay", "superclass": "YAHOO.widget.Overlay", "file": "Tooltip.js", "guessedtype": "function", "shortname": "Tooltip", "properties": {"showProcId": {"type": "int", "description": "The unique process ID associated with the thread responsible \nfor showing the Tooltip.", "guessedname": "showProcId", "guessedtype": "property"}, "YAHOO.widget.Tooltip.CSS_TOOLTIP": {"description": "Constant representing the Tooltip CSS class", "static": "", "guessedname": "CSS_TOOLTIP", "guessedtype": "property", "type": "String", "final": ""}, "EVENT_TYPES": {"description": "Constant representing the name of the Tooltip's events", "private": "", "guessedname": "EVENT_TYPES", "guessedtype": "property", "type": "Object", "final": ""}, "DEFAULT_CONFIG": {"description": "Constant representing the Tooltip's configuration properties", "private": "", "guessedname": "DEFAULT_CONFIG", "guessedtype": "property", "type": "Object", "final": ""}}, "description": "Tooltip is an implementation of Overlay that behaves like an OS tooltip, \ndisplaying when the user mouses over a particular element, and \ndisappearing on mouse out."}}, "version": "2.8.2r1", "namespaces": ["YAHOO.widget", "YAHOO.util", "YAHOO.util.Dom", "YAHOO.util.ImageLoader", "YAHOO.lang", "YAHOO.widget.Paginator.ui", "YAHOO.tool", "YAHOO.tool.TestCase", "YAHOO.tool.TestFormat"]}
\ No newline at end of file
diff --git a/docs/resize.js.html b/docs/resize.js.html
index 350093a..f78fee0 100644
--- a/docs/resize.js.html
+++ b/docs/resize.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>resize  <span class="subtitle">2.8.1</span></h3>
+        <h3>resize  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_resize.html" title="resize">resize</a>
                 
diff --git a/docs/simple-editor.js.html b/docs/simple-editor.js.html
index dfb1c91..ef154c1 100644
--- a/docs/simple-editor.js.html
+++ b/docs/simple-editor.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                 
diff --git a/docs/stylesheet.js.html b/docs/stylesheet.js.html
index 6d2d6f5..375a477 100644
--- a/docs/stylesheet.js.html
+++ b/docs/stylesheet.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>stylesheet  <span class="subtitle">2.8.1</span></h3>
+        <h3>stylesheet  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_stylesheet.html" title="stylesheet">stylesheet</a>
                 
diff --git a/docs/swf.js.html b/docs/swf.js.html
index 7b18b2b..e00c229 100644
--- a/docs/swf.js.html
+++ b/docs/swf.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>SWF Utility  <span class="subtitle">2.8.1</span></h3>
+        <h3>SWF Utility  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swf.html" title="swf">swf</a>
                 
diff --git a/docs/swfdetect.js.html b/docs/swfdetect.js.html
index b3bdf0a..cacd632 100644
--- a/docs/swfdetect.js.html
+++ b/docs/swfdetect.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>swfdetect  <span class="subtitle">2.8.1</span></h3>
+        <h3>swfdetect  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swfdetect.html" title="swfdetect">swfdetect</a>
                 
diff --git a/docs/swfobject.js.html b/docs/swfobject.js.html
index d120cad..334cbfb 100644
--- a/docs/swfobject.js.html
+++ b/docs/swfobject.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>Uploader  <span class="subtitle">2.8.1</span></h3>
+        <h3>Uploader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_uploader.html" title="uploader">uploader</a>
                 
diff --git a/docs/swfstore.js.html b/docs/swfstore.js.html
index cbb846c..977a6ca 100644
--- a/docs/swfstore.js.html
+++ b/docs/swfstore.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>swfstore  <span class="subtitle">2.8.1</span></h3>
+        <h3>swfstore  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_swfstore.html" title="swfstore">swfstore</a>
                 
diff --git a/docs/toolbar-button.js.html b/docs/toolbar-button.js.html
index 619f8d2..1002039 100644
--- a/docs/toolbar-button.js.html
+++ b/docs/toolbar-button.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                 
diff --git a/docs/toolbar.js.html b/docs/toolbar.js.html
index 087b0c0..3982551 100644
--- a/docs/toolbar.js.html
+++ b/docs/toolbar.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>editor  <span class="subtitle">2.8.1</span></h3>
+        <h3>editor  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_editor.html" title="editor">editor</a>
                 
diff --git a/docs/yuiloader.js.html b/docs/yuiloader.js.html
index 2501aed..d1b7abe 100644
--- a/docs/yuiloader.js.html
+++ b/docs/yuiloader.js.html
@@ -16,7 +16,7 @@
 <div id="doc3" class="yui-t2">
 	<div id="hd">
         <h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
-        <h3>yuiloader  <span class="subtitle">2.8.1</span></h3>
+        <h3>yuiloader  <span class="subtitle">2.8.2r1</span></h3>
         <a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a> 
             > <a href="./module_yuiloader.html" title="yuiloader">yuiloader</a>
                 
diff --git a/examples/animation/anim-chaining.html b/examples/animation/anim-chaining.html
index 74b9fca..8600cb9 100644
--- a/examples/animation/anim-chaining.html
+++ b/examples/animation/anim-chaining.html
@@ -176,12 +176,12 @@ YAHOO.util.Event.onAvailable("animator", function() {
 
 <p>This example has the following dependencies:</p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/button/assets/skins/sam/button.css"> 
+<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/button/assets/skins/sam/button.css"> 
 
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/button/button-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/animation/animation.js"></script></textarea>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/button/button-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/animation/animation.js"></script></textarea>
 
 <p>In this example, we begin with to page elements: a YUI Button that will actuate the animation sequence and a simple <code><div></code> that will animate in position and then in color.  Here's the markup for these elements:</p>
 
diff --git a/examples/animation/anim-chaining_log.html b/examples/animation/anim-chaining_log.html
index 03dbe50..19ae963 100644
--- a/examples/animation/anim-chaining_log.html
+++ b/examples/animation/anim-chaining_log.html
@@ -178,12 +178,12 @@ YAHOO.util.Event.onAvailable("animator", function() {
 
 <p>This example has the following dependencies:</p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/button/assets/skins/sam/button.css"> 
+<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/button/assets/skins/sam/button.css"> 
 
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/button/button-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/animation/animation.js"></script></textarea>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/button/button-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/animation/animation.js"></script></textarea>
 
 <p>In this example, we begin with to page elements: a YUI Button that will actuate the animation sequence and a simple <code><div></code> that will animate in position and then in color.  Here's the markup for these elements:</p>
 
diff --git a/examples/carousel/csl_circular.html b/examples/carousel/csl_circular.html
index 697a77d..72dfc11 100644
--- a/examples/carousel/csl_circular.html
+++ b/examples/carousel/csl_circular.html
@@ -90,10 +90,10 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 </p>
 
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement to build the Carousel
diff --git a/examples/carousel/csl_circular_log.html b/examples/carousel/csl_circular_log.html
index e97ffb8..21d56bf 100644
--- a/examples/carousel/csl_circular_log.html
+++ b/examples/carousel/csl_circular_log.html
@@ -92,10 +92,10 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 </p>
 
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement to build the Carousel
diff --git a/examples/carousel/csl_dynload2.html b/examples/carousel/csl_dynload2.html
index 3a3d0ad..f21d462 100644
--- a/examples/carousel/csl_dynload2.html
+++ b/examples/carousel/csl_dynload2.html
@@ -250,11 +250,11 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/connection/connection-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/connection/connection-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     Initially we use <a href="http://developer.yahoo.com/yui/connection/">YUI Connection Manager</a> to load the initial set of items as
diff --git a/examples/carousel/csl_dynload2_log.html b/examples/carousel/csl_dynload2_log.html
index fbbe1b9..3543107 100644
--- a/examples/carousel/csl_dynload2_log.html
+++ b/examples/carousel/csl_dynload2_log.html
@@ -252,11 +252,11 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/connection/connection-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/connection/connection-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     Initially we use <a href="http://developer.yahoo.com/yui/connection/">YUI Connection Manager</a> to load the initial set of items as
diff --git a/examples/carousel/csl_dynloadandreplace.html b/examples/carousel/csl_dynloadandreplace.html
index 0a37ac4..60c6bc7 100644
--- a/examples/carousel/csl_dynloadandreplace.html
+++ b/examples/carousel/csl_dynloadandreplace.html
@@ -269,11 +269,11 @@ YAHOO.util.Event.onDOMReady(function (ev) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/connection/connection-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/connection/connection-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     Initially we use <a href="http://developer.yahoo.com/yui/connection/">YUI Connection Manager</a> to load the initial set of items as
diff --git a/examples/carousel/csl_dynloadandreplace_log.html b/examples/carousel/csl_dynloadandreplace_log.html
index 2bb8bed..69e156b 100644
--- a/examples/carousel/csl_dynloadandreplace_log.html
+++ b/examples/carousel/csl_dynloadandreplace_log.html
@@ -271,11 +271,11 @@ YAHOO.util.Event.onDOMReady(function (ev) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/connection/connection-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/connection/connection-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     Initially we use <a href="http://developer.yahoo.com/yui/connection/">YUI Connection Manager</a> to load the initial set of items as
diff --git a/examples/carousel/csl_imagentext.html b/examples/carousel/csl_imagentext.html
index da96955..1ca68c7 100644
--- a/examples/carousel/csl_imagentext.html
+++ b/examples/carousel/csl_imagentext.html
@@ -90,11 +90,11 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/animation/animation-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/animation/animation-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement, creating the control from an ordered list.
diff --git a/examples/carousel/csl_imagentext_log.html b/examples/carousel/csl_imagentext_log.html
index 54a0e55..2d17cca 100644
--- a/examples/carousel/csl_imagentext_log.html
+++ b/examples/carousel/csl_imagentext_log.html
@@ -92,11 +92,11 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/animation/animation-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/animation/animation-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement, creating the control from an ordered list.
diff --git a/examples/carousel/csl_multirow.html b/examples/carousel/csl_multirow.html
index 2f848cd..aac4054 100644
--- a/examples/carousel/csl_multirow.html
+++ b/examples/carousel/csl_multirow.html
@@ -208,10 +208,10 @@ configuration setting now accepts an array, which instructs Carousel to organize
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is built from an existing ordered list.
diff --git a/examples/carousel/csl_multirow_log.html b/examples/carousel/csl_multirow_log.html
index 6832f1a..66e6beb 100644
--- a/examples/carousel/csl_multirow_log.html
+++ b/examples/carousel/csl_multirow_log.html
@@ -210,10 +210,10 @@ configuration setting now accepts an array, which instructs Carousel to organize
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is built from an existing ordered list.
diff --git a/examples/carousel/csl_pagination.html b/examples/carousel/csl_pagination.html
index d74bbc8..1e5b02c 100644
--- a/examples/carousel/csl_pagination.html
+++ b/examples/carousel/csl_pagination.html
@@ -289,11 +289,11 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/paginator/paginator-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/paginator/paginator-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is created
diff --git a/examples/carousel/csl_pagination_log.html b/examples/carousel/csl_pagination_log.html
index 58a0f17..afca36a 100644
--- a/examples/carousel/csl_pagination_log.html
+++ b/examples/carousel/csl_pagination_log.html
@@ -291,11 +291,11 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/paginator/paginator-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/paginator/paginator-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is created
diff --git a/examples/carousel/csl_paginationtemplate.html b/examples/carousel/csl_paginationtemplate.html
index f100425..20ec076 100644
--- a/examples/carousel/csl_paginationtemplate.html
+++ b/examples/carousel/csl_paginationtemplate.html
@@ -225,10 +225,10 @@ display pagination information.</p>
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is built from an existing ordered list.
diff --git a/examples/carousel/csl_paginationtemplate_log.html b/examples/carousel/csl_paginationtemplate_log.html
index 1fd443b..990cef3 100644
--- a/examples/carousel/csl_paginationtemplate_log.html
+++ b/examples/carousel/csl_paginationtemplate_log.html
@@ -227,10 +227,10 @@ display pagination information.</p>
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is built from an existing ordered list.
diff --git a/examples/carousel/csl_reveal.html b/examples/carousel/csl_reveal.html
index 85d4eb7..94d135f 100644
--- a/examples/carousel/csl_reveal.html
+++ b/examples/carousel/csl_reveal.html
@@ -102,10 +102,10 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is built from an existing ordered list.
diff --git a/examples/carousel/csl_reveal_log.html b/examples/carousel/csl_reveal_log.html
index 0ea333e..9ea5cce 100644
--- a/examples/carousel/csl_reveal_log.html
+++ b/examples/carousel/csl_reveal_log.html
@@ -104,10 +104,10 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is built from an existing ordered list.
diff --git a/examples/carousel/csl_selection.html b/examples/carousel/csl_selection.html
index 45eb589..b162d0f 100644
--- a/examples/carousel/csl_selection.html
+++ b/examples/carousel/csl_selection.html
@@ -204,10 +204,10 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is created
diff --git a/examples/carousel/csl_selection_log.html b/examples/carousel/csl_selection_log.html
index 566ea6f..538acba 100644
--- a/examples/carousel/csl_selection_log.html
+++ b/examples/carousel/csl_selection_log.html
@@ -206,10 +206,10 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
     This example has the following dependencies:
 </p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.1/build/carousel/assets/skins/sam/carousel.css">
-<script src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-dom-event.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script src="http://yui.yahooapis.com/2.8.1/build/carousel/carousel-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link type="text/css" rel="stylesheet" href="http://yui.yahooapis.com/2.8.2r1/build/carousel/assets/skins/sam/carousel.css">
+<script src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-dom-event.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script src="http://yui.yahooapis.com/2.8.2r1/build/carousel/carousel-min.js"></script></textarea>
 
 <p>
     This example uses progressive enhancement; the Carousel is created
diff --git a/examples/colorpicker/colorpicker-skinning.html b/examples/colorpicker/colorpicker-skinning.html
index f2be775..9ff37fb 100644
--- a/examples/colorpicker/colorpicker-skinning.html
+++ b/examples/colorpicker/colorpicker-skinning.html
@@ -108,7 +108,7 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 Copyright (c) 2007, Yahoo! Inc. All rights reserved.
 Code licensed under the BSD License:
 http://developer.yahoo.net/yui/license.txt
-version: 2.8.1*/
+version: 2.8.2r1*/
 
 .yui-picker-panel {
     background: #e3e3e3;
diff --git a/examples/get/get-css-basic.html b/examples/get/get-css-basic.html
index 03d950e..10247a5 100644
--- a/examples/get/get-css-basic.html
+++ b/examples/get/get-css-basic.html
@@ -278,11 +278,11 @@ var onSuccess = function(o) {
 
 <p>This example has the following dependencies:</p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/button/assets/skins/sam/button.css" />
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/button/button.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/get/get.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/button/assets/skins/sam/button.css" />
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/element/element.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/button/button.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/get/get.js"></script></textarea>
 
 <p>We start with a simple form on the page that will post to the <a href="http://news.search.yahoo.com/news/advanced">Yahoo! News Search engine</a>; if JavaScript is not enabled, the user will still be able to use the functionality of the News module.  A placeholder is added for the YUI Buttons that we'll add via script.  Those buttons do not need to be part of the page markup, because they aren't required for the core functionality of the page...they just control the CSS addition and removal, which in this case is cosmetic.</p>
 
diff --git a/examples/get/get-script-basic.html b/examples/get/get-script-basic.html
index 19d8fa7..a333d85 100644
--- a/examples/get/get-script-basic.html
+++ b/examples/get/get-script-basic.html
@@ -287,11 +287,11 @@ YAHOO.util.Event.onDOMReady(
 
 <p>This example has the following dependencies:</p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/button/assets/skins/sam/button.css" />
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/button/button.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/get/get.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/button/assets/skins/sam/button.css" />
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/element/element.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/button/button.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/get/get.js"></script></textarea>
 
 <p>First, we create a plain HTML form that will work for users who do not have JavaScript enabled:</p>
 
diff --git a/examples/layout/adv_layout_source.html b/examples/layout/adv_layout_source.html
index 40957ef..4260c6f 100644
--- a/examples/layout/adv_layout_source.html
+++ b/examples/layout/adv_layout_source.html
@@ -48,7 +48,7 @@
                 <li class="yws-flickr"><em></em><a href="#">yws-flickr</a></li>
                 <li class="yws-events"><em></em><a href="#">yws-events</a></li>
             </ul>
-            <div id="calBox"><span class="icon"></span><em id="calDateStr">05/04/2010</em></div>
+            <div id="calBox"><span class="icon"></span><em id="calDateStr">10/26/2010</em></div>
             <div id="calContainer"><div id="cal"></div></div>
         </div>
     </div>
diff --git a/examples/profilerviewer/pv-api.html b/examples/profilerviewer/pv-api.html
index a3b60fd..1483c90 100644
--- a/examples/profilerviewer/pv-api.html
+++ b/examples/profilerviewer/pv-api.html
@@ -98,17 +98,17 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 
 <p>This example has the following dependencies:</p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/container/assets/skins/sam/container.css"> 
-<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/menu/assets/skins/sam/menu.css"> 
-<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/profilerviewer/assets/skins/sam/profilerviewer.css">
+<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/container/assets/skins/sam/container.css"> 
+<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/menu/assets/skins/sam/menu.css"> 
+<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/profilerviewer/assets/skins/sam/profilerviewer.css">
 
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/utilities/utilities.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/container/container-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/menu/menu.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yuiloader/yuiloader-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profiler/profiler-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profilerviewer/profilerviewer-min.js"></script></textarea>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/utilities/utilities.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/container/container-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/menu/menu.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yuiloader/yuiloader-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profiler/profiler-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profilerviewer/profilerviewer-min.js"></script></textarea>
 
 
 <p>Here are some of the key features of this example:</p>
@@ -144,7 +144,7 @@ YAHOO.tool.Profiler.registerObject("YAHOO.util.Event", true);</textarea>
 
 <textarea name="code" class="JScript" cols="60" rows="1">// Instantiate ProfilerViewer, using its API to customize it a bit:
 var pv = new YAHOO.widget.ProfilerViewer("profiler", {
-    base: "http://yui.yahooapis.com/2.8.1/build/",
+    base: "http://yui.yahooapis.com/2.8.2r1/build/",
     visible: false, //default is false; this means only the
                     //ProfilerViewer launchbar will be displayed
                     //on initial render, and the rest of the console
@@ -162,7 +162,7 @@ var pv = new YAHOO.widget.ProfilerViewer("profiler", {
     //it takes up on the page:
     maxChartFunctions:8,
     tableHeight:"25em", //default: 15em
-    swfUrl:"http://yui.yahooapis.com/2.8.1/build/charts/assets/charts.swf"
+    swfUrl:"http://yui.yahooapis.com/2.8.2r1/build/charts/assets/charts.swf"
 });</textarea>
 
 <h3>3.  Use one of ProfilerViewer's "interesting moments" (custom events) to further customize the interaction</h3>
@@ -240,7 +240,7 @@ YAHOO.util.Event.onContentReady("productsandservices", function () {
     
     // Instantiate ProfilerViewer, using its API to customize it a bit:
     var pv = new YAHOO.widget.ProfilerViewer("profiler", {
-        base: "http://yui.yahooapis.com/2.8.1/build/",
+        base: "http://yui.yahooapis.com/2.8.2r1/build/",
         visible: false, //default is false; this means only the
                         //ProfilerViewer launchbar will be displayed
                         //on initial render, and the rest of the console
@@ -258,7 +258,7 @@ YAHOO.util.Event.onContentReady("productsandservices", function () {
         //it takes up on the page:
         maxChartFunctions:8,
         tableHeight:"25em", //default: 15em
-        swfUrl:"http://yui.yahooapis.com/2.8.1/build/charts/assets/charts.swf"
+        swfUrl:"http://yui.yahooapis.com/2.8.2r1/build/charts/assets/charts.swf"
     });
             
     //You can subscribe to "interesting moments" in the ProfilerViewer
diff --git a/examples/profilerviewer/pv-basic.html b/examples/profilerviewer/pv-basic.html
index ce912a2..8bee408 100644
--- a/examples/profilerviewer/pv-basic.html
+++ b/examples/profilerviewer/pv-basic.html
@@ -93,15 +93,15 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 
 <p>This example has the following dependencies:</p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/http://yui.yahooapis.com/2.8.1//build/calendar/assets/skins/sam/calendar.css"> 
-<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/profilerviewer/assets/skins/sam/profilerviewer.css">
-
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/utilities/utilities.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/calendar/calendar.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yuiloader/yuiloader-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profiler/profiler-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profilerviewer/profilerviewer-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/http://yui.yahooapis.com/2.8.2r1//build/calendar/assets/skins/sam/calendar.css"> 
+<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/profilerviewer/assets/skins/sam/profilerviewer.css">
+
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/utilities/utilities.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/calendar/calendar.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yuiloader/yuiloader-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profiler/profiler-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profilerviewer/profilerviewer-min.js"></script></textarea>
 
 <p>We begin with empty <code>div</code> elements for Calendar and Profiler to use:</p>
 
diff --git a/examples/profilerviewer/pv-bootstrap.html b/examples/profilerviewer/pv-bootstrap.html
index 3ad64d6..0e996b8 100644
--- a/examples/profilerviewer/pv-bootstrap.html
+++ b/examples/profilerviewer/pv-bootstrap.html
@@ -94,8 +94,8 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 
 <textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://developer.yahoo.com/yui/examples/profilerviewer/assets/dpSyntaxHighlighter.css"> 
 
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yuiloader/yuiloader-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profiler/profiler-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yuiloader/yuiloader-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profiler/profiler-min.js"></script>
 <script type="text/javascript" src="http://developer.yahoo.com/yui/examples/profilerviewer/assets/dpSyntaxHighlighter.js"></script></textarea>
 
 
diff --git a/examples/profilerviewer/pv-german.html b/examples/profilerviewer/pv-german.html
index 367a00c..6d20f5f 100644
--- a/examples/profilerviewer/pv-german.html
+++ b/examples/profilerviewer/pv-german.html
@@ -90,15 +90,15 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 
 <p>This example has the following dependencies:</p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/http://yui.yahooapis.com/2.8.1//build/calendar/assets/skins/sam/calendar.css"> 
-<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/profilerviewer/assets/skins/sam/profilerviewer.css">
-
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/utilities/utilities.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/calendar/calendar.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yuiloader/yuiloader-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profiler/profiler-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profilerviewer/profilerviewer-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/http://yui.yahooapis.com/2.8.2r1//build/calendar/assets/skins/sam/calendar.css"> 
+<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/profilerviewer/assets/skins/sam/profilerviewer.css">
+
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/utilities/utilities.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/calendar/calendar.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yuiloader/yuiloader-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profiler/profiler-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profilerviewer/profilerviewer-min.js"></script></textarea>
 
 <p>All of the interface's language strings live in the static member <code>YAHOO.widget.ProfilerViewer.STRINGS</code>.  Customizing the interface simply involves modifying or replacing that object prior to creating your ProfilerViewer instance.</p>
 
diff --git a/examples/profilerviewer/pv-spanish.html b/examples/profilerviewer/pv-spanish.html
index ce5200b..66726bb 100644
--- a/examples/profilerviewer/pv-spanish.html
+++ b/examples/profilerviewer/pv-spanish.html
@@ -90,15 +90,15 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 
 <p>This example has the following dependencies:</p>
 
-<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/http://yui.yahooapis.com/2.8.1//build/calendar/assets/skins/sam/calendar.css"> 
-<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.1/build/profilerviewer/assets/skins/sam/profilerviewer.css"> 
-
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/utilities/utilities.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/calendar/calendar.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yuiloader/yuiloader-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profiler/profiler-min.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/profilerviewer/profilerviewer-min.js"></script></textarea>
+<textarea name="code" class="HTML" cols="60" rows="1"><link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/http://yui.yahooapis.com/2.8.2r1//build/calendar/assets/skins/sam/calendar.css"> 
+<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.2r1/build/profilerviewer/assets/skins/sam/profilerviewer.css"> 
+
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/utilities/utilities.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/element/element-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/calendar/calendar.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yuiloader/yuiloader-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profiler/profiler-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/profilerviewer/profilerviewer-min.js"></script></textarea>
 
 <p>All of the interface's language strings live in the static member <code>YAHOO.widget.ProfilerViewer.STRINGS</code>.  Customizing the interface simply involves modifying or replacing that object prior to instantiating your ProfilerViewer instance.</p>
 
diff --git a/examples/slider/slider-simple.html b/examples/slider/slider-simple.html
index 8997b26..a6afaaa 100644
--- a/examples/slider/slider-simple.html
+++ b/examples/slider/slider-simple.html
@@ -237,7 +237,7 @@ value.  These techniques can help inform assistive technologies
 <p>Markup:</p>
 <textarea name="code" class="HTML" cols="60" rows="1">
 <div id="slider-bg" class="yui-v-slider" tabindex="-1" title="Slider">
-    <div id="slider-thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.1/build/slider/assets/thumb-bar.gif"></div>
+    <div id="slider-thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.2r1/build/slider/assets/thumb-bar.gif"></div>
 </div>
 <p>Pixel value: <span id="slider-value">0</span></p>
 
diff --git a/examples/slider/slider-simple_log.html b/examples/slider/slider-simple_log.html
index e8c1dec..c3a1580 100644
--- a/examples/slider/slider-simple_log.html
+++ b/examples/slider/slider-simple_log.html
@@ -239,7 +239,7 @@ value.  These techniques can help inform assistive technologies
 <p>Markup:</p>
 <textarea name="code" class="HTML" cols="60" rows="1">
 <div id="slider-bg" class="yui-v-slider" tabindex="-1" title="Slider">
-    <div id="slider-thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.1/build/slider/assets/thumb-bar.gif"></div>
+    <div id="slider-thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.2r1/build/slider/assets/thumb-bar.gif"></div>
 </div>
 <p>Pixel value: <span id="slider-value">0</span></p>
 
diff --git a/examples/slider/slider-ticks.html b/examples/slider/slider-ticks.html
index 2534901..361e4e3 100644
--- a/examples/slider/slider-ticks.html
+++ b/examples/slider/slider-ticks.html
@@ -249,7 +249,7 @@ value.  These techniques can help inform assistive technologies
 <p>CSS:</p>
 <textarea name="code" class="CSS" cols="60" rows="1">
 #slider-bg {
-    background:url(http://yui.yahooapis.com/2.8.1/build/slider/assets/bg-fader.gif) 5px 0 no-repeat;
+    background:url(http://yui.yahooapis.com/2.8.2r1/build/slider/assets/bg-fader.gif) 5px 0 no-repeat;
 }
 </textarea>
 
@@ -257,7 +257,7 @@ value.  These techniques can help inform assistive technologies
 <textarea name="code" class="HTML" cols="60" rows="1">
 
 <div id="slider-bg" class="yui-h-slider" tabindex="-1" title="Slider">
-    <div id="slider-thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.1/build/slider/assets/thumb-n.gif"></div>
+    <div id="slider-thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.2r1/build/slider/assets/thumb-n.gif"></div>
 </div>
 
 <p>Pixel value: <span id="slider-value">0</span></p>
diff --git a/examples/slider/slider-ticks_log.html b/examples/slider/slider-ticks_log.html
index 856fb73..6b68aad 100644
--- a/examples/slider/slider-ticks_log.html
+++ b/examples/slider/slider-ticks_log.html
@@ -251,7 +251,7 @@ value.  These techniques can help inform assistive technologies
 <p>CSS:</p>
 <textarea name="code" class="CSS" cols="60" rows="1">
 #slider-bg {
-    background:url(http://yui.yahooapis.com/2.8.1/build/slider/assets/bg-fader.gif) 5px 0 no-repeat;
+    background:url(http://yui.yahooapis.com/2.8.2r1/build/slider/assets/bg-fader.gif) 5px 0 no-repeat;
 }
 </textarea>
 
@@ -259,7 +259,7 @@ value.  These techniques can help inform assistive technologies
 <textarea name="code" class="HTML" cols="60" rows="1">
 
 <div id="slider-bg" class="yui-h-slider" tabindex="-1" title="Slider">
-    <div id="slider-thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.1/build/slider/assets/thumb-n.gif"></div>
+    <div id="slider-thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.2r1/build/slider/assets/thumb-n.gif"></div>
 </div>
 
 <p>Pixel value: <span id="slider-value">0</span></p>
diff --git a/examples/slider/slider_dual_thumb.html b/examples/slider/slider_dual_thumb.html
index 389dbea..efb8236 100644
--- a/examples/slider/slider_dual_thumb.html
+++ b/examples/slider/slider_dual_thumb.html
@@ -211,8 +211,8 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 <p>Markup:</p>
 <textarea name="code" class="HTML" cols="60" rows="1">
 <div id="demo_bg" class="yui-h-slider" title="Range slider">
-    <div id="demo_min_thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.1/build/slider/assets/left-thumb.png"></div>
-    <div id="demo_max_thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.1/build/slider/assets/right-thumb.png"></div>
+    <div id="demo_min_thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.2r1/build/slider/assets/left-thumb.png"></div>
+    <div id="demo_max_thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.2r1/build/slider/assets/right-thumb.png"></div>
 </div>
 
 <p>Raw values: 
diff --git a/examples/slider/slider_dual_thumb_log.html b/examples/slider/slider_dual_thumb_log.html
index 5a2a3eb..afac8eb 100644
--- a/examples/slider/slider_dual_thumb_log.html
+++ b/examples/slider/slider_dual_thumb_log.html
@@ -213,8 +213,8 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 <p>Markup:</p>
 <textarea name="code" class="HTML" cols="60" rows="1">
 <div id="demo_bg" class="yui-h-slider" title="Range slider">
-    <div id="demo_min_thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.1/build/slider/assets/left-thumb.png"></div>
-    <div id="demo_max_thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.1/build/slider/assets/right-thumb.png"></div>
+    <div id="demo_min_thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.2r1/build/slider/assets/left-thumb.png"></div>
+    <div id="demo_max_thumb" class="yui-slider-thumb"><img src="http://yui.yahooapis.com/2.8.2r1/build/slider/assets/right-thumb.png"></div>
 </div>
 
 <p>Raw values: 
diff --git a/examples/swf/index.html b/examples/swf/index.html
deleted file mode 100644
index c183884..0000000
--- a/examples/swf/index.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-	<title>YUI Library Examples: SWF Utility</title>
-    
-
-    <meta http-equiv="content-type" content="text/html; charset=utf-8">
-    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
-
-<style>
-/*Supplemental CSS for the YUI distribution*/
-#custom-doc { width: 95%; min-width: 950px; }
-#pagetitle {background-image: url(../../assets/bg_hd.gif);}
-</style>
-
-<!--Script and CSS includes for YUI dependencies on this page-->
-<script type="text/javascript" src="../../build/yuiloader/yuiloader-min.js"></script>
-<script type="text/javascript" src="../../build/yahoo-dom-event/yahoo-dom-event.js"></script>
-
-<script type="text/javascript">
-//enable passthrough of errors from YUI Event:
-if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
-	YAHOO.util.Event.throwErrors = true;
-}
-</script>
-</head>
-<body id="yahoo-com" class="">
-<div id="custom-doc" class="yui-t2">
-<div id="hd">
-	<div id="ygunav">
-		<p><em><a href="http://developer.yahoo.com/yui/">YUI Library Home</a></em></p>
-		<form action="http://search.yahoo.com/search" id="sitesearchform">
-		<input name="vs" type="hidden" value="developer.yahoo.com">
-		<input name="vs" type="hidden" value="yuiblog.com">
-		<div id="sitesearch">
-			<label for="searchinput">Site Search (YDN & YUIBlog): </label>
-			<input type="text" id="searchinput" name="p">
-			<input type="submit" value="Search" id="searchsubmit" class="ygbt">
-		</div>
-		</form>	</div>
-	<div id="ygma"><a href="../../"><img src="../../assets/yui.gif"  border="0" height="38"></a></div>
-	<div id="pagetitle"><h1>YUI Library Examples: SWF Utility</h1></div>
-</div>
-<div id="bd">
-
-<div id="yui-main">
-	<div class="yui-b">
-	  <div class="yui-ge">
-		  <div class="yui-u first">
-<h1 class="first-content">SWF Utility: Examples</h1>
-
-
-<p><p>The <a href='http://developer.yahoo.com/yui/swf/'>YUI SWF Utility</a> provides functionality for embedding and interacting with Flash applications in HTML pages.</p></p><ul><li><a href='swf-simple.html'>Simple SWF Utility Example</a>: A demonstration of core features of the SWF Utility. In this example, we create an instance of a SWF using a sample SWF file, and embed it into the page.</li><li><a href='swf-advanced.html'>Advanced SWF Utility Example With Flashvars and Javascript interaction</a>: This advanced SWF example shows how to use a corresponding YUIBridge library on the SWF side to call methods and receive events from the SWF</li></ul>
-
-		
-			</div>
-			<div class="yui-u">
-				
-				<div id="module">
-					<h3 class="first-content">SWF Utility:</h3>
-					<ul>
-						<li><a href="http://developer.yahoo.com/yui/swf/">User's Guide</a> (external)</li>
-						<li><a href="../../docs/module_swf.html">API Documentation</a></li>
-</ul>
-				</div>
-				
-				
-		  </div>
-	</div></div>
-</div>
-
-
-
-<div class="yui-b" id="tocWrapper">
-<!-- TABLE OF CONTENTS -->
-<div id="toc">
-	
-<ul>
-<li class="sect first">Yahoo! UI Library</li><li class="item"><a title="The Yahoo! User Interface Library (YUI)" href="http://developer.yahoo.com/yui/">Home (external)</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUIBlog (external)</a></li><li class="item"><a title="YUILibrary.com hosts the YUI community forums" href="http://yuilibrary.com/forum/">YUI Discussion Forum (external)</a></li><li class="item"><a title="The YUI Library source can be checked out from GitHub" href="http://github.com/yui/">YUI on GitHub</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../docs/index.html">API Documentation</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">Functional Examples</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License (external)</a></li><li class="sect">YUI Functional Examples</li><li class="item"><a title="The YUI Animation Utility - Functional Examples" href="../../examples/animation/index.html">Animation</a></li><li class="item"><a title="The YUI AutoComplete Control - Functional Examples" href="../../examples/autocomplete/index.html">AutoComplete</a></li><li class="item"><a title="The YUI Browser History Manager - Functional Examples" href="../../examples/history/index.html">Browser History Manager</a></li><li class="item"><a title="The YUI Button Control - Functional Examples" href="../../examples/button/index.html">Button</a></li><li class="item"><a title="The YUI Calendar Control - Functional Examples" href="../../examples/calendar/index.html">Calendar</a></li><li class="item"><a title="The YUI Carousel Control - Functional Examples" href="../../examples/carousel/index.html">Carousel</a></li><li class="item"><a title="The YUI Charts Control - Functional Examples" href="../../examples/charts/index.html">Charts</a></li><li class="item"><a title="The YUI Color Picker Control - Functional Examples" href="../../examples/colorpicker/index.html">Color Picker</a></li><li class="item"><a title="The YUI Cookie Utility - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="The YUI Connection Manager (AJAX) - Functional Examples" href="../../examples/connection/index.html">Connection Manager</a></li><li class="item"><a title="The YUI Container Family (Module, Overlay, Tooltip, Panel, Dialog, SimpleDialog) - Functional Examples" href="../../examples/container/index.html">Container</a></li><li class="item"><a title="The YUI DataTable Control - Functional Examples" href="../../examples/datatable/index.html">DataTable</a></li><li class="item"><a title="The YUI Dom Collection - Functional Examples" href="../../examples/dom/index.html">Dom</a></li><li class="item"><a title="The YUI Drag & Drop Utility - Functional Examples" href="../../examples/dragdrop/index.html">Drag & Drop</a></li><li class="item"><a title="The YUI Event Utility - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="The YUI Get Utility - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="The YUI ImageCropper Control - Functional Examples" href="../../examples/imagecropper/index.html">ImageCropper</a></li><li class="item"><a title="The YUI ImageLoader Utility - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="The YUI JSON Utility - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="The YUI Layout Manager - Functional Examples" href="../../examples/layout/index.html">Layout Manager</a></li><li class="item"><a title="The YUI Logger Control - Functional Examples" href="../../examples/logger/index.html">Logger</a></li><li class="item"><a title="The YUI Menu Control - Functional Examples" href="../../examples/menu/index.html">Menu</a></li><li class="item"><a title="The YUI Paginator - Functional Examples" href="../../examples/paginator/index.html">Paginator</a></li><li class="item"><a title="The YUI Profiler Utility - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="The YUI ProfileViewer Control - Functional Examples" href="../../examples/profilerviewer/index.html">ProfilerViewer</a></li><li class="item"><a title="The YUI ProgressBar Control - Functional Examples" href="../../examples/progressbar/index.html">ProgressBar</a></li><li class="item"><a title="The YUI Resize Utility - Functional Examples" href="../../examples/resize/index.html">Resize</a></li><li class="item"><a title="The YUI Rich Text Editor - Functional Examples" href="../../examples/editor/index.html">Rich Text Editor</a></li><li class="item"><a title="The YUI Selector Utility - Functional Examples" href="../../examples/selector/index.html">Selector</a></li><li class="item"><a title="The YUI Slider Control - Functional Examples" href="../../examples/slider/index.html">Slider</a></li><li class="item"><a title="The YUI Storage Utility - Functional Examples" href="../../examples/storage/index.html">Storage</a></li><li class="selected "><a title="The YUI SWF Utility - Functional Examples" href="../../examples/swf/index.html">SWF</a></li><li class="item"><a title="The YUI SWFStore Utility - Functional Examples" href="../../examples/swfstore/index.html">SWFStore</a></li><li class="item"><a title="The YUI Stylesheet Utility - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="item"><a title="The YUI TabView Control - Functional Examples" href="../../examples/tabview/index.html">TabView</a></li><li class="item"><a title="The YUI TreeView Control - Functional Examples" href="../../examples/treeview/index.html">TreeView</a></li><li class="item"><a title="The YUI Uploader Utility - Functional Examples" href="../../examples/uploader/index.html">Uploader (experimental)</a></li><li class="item"><a title="The YUI YAHOO Global Object - Functional Examples" href="../../examples/yahoo/index.html">YAHOO Global Object</a></li><li class="item"><a title="The YUI Loader Utility - Functional Examples" href="../../examples/yuiloader/index.html">YUI Loader</a></li><li class="item"><a title="The YUI Test Utility - Functional Examples" href="../../examples/yuitest/index.html">YUI Test</a></li><li class="item"><a title="YUI Reset CSS - Functional Examples" href="../../examples/reset/index.html">Reset CSS</a></li><li class="item"><a title="YUI Base CSS - Functional Examples" href="../../examples/base/index.html">Base CSS</a></li><li class="item"><a title="YUI Fonts CSS - Functional Examples" href="../../examples/fonts/index.html">Fonts CSS</a></li><li class="item"><a title="YUI Grids CSS - Functional Examples" href="../../examples/grids/index.html">Grids CSS</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li><li class="item"><a title="Best practices for working with web services while protecting user privacy" href="http://developer.yahoo.com/security/">Security Best Practices (external)</a></li></ul>
-</div>
-</div>
-	</div><!--closes bd-->
-
-	<div id="ft">
-        <p class="first">Copyright © 2010 Yahoo! Inc. All rights reserved.</p>
-        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
-            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
-            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
-            <a href="http://careers.yahoo.com/">Job Openings</a></p>
-	</div>
-</div>
-
-</body>
-</html>
diff --git a/examples/swf/swf-advanced.html b/examples/swf/swf-advanced.html
deleted file mode 100644
index e39becf..0000000
--- a/examples/swf/swf-advanced.html
+++ /dev/null
@@ -1,266 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-	<title>YUI Library Examples: SWF Utility: Advanced SWF Utility Example With Flashvars and Javascript interaction</title>
-    
-
-    <meta http-equiv="content-type" content="text/html; charset=utf-8">
-    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
-
-<style>
-/*Supplemental CSS for the YUI distribution*/
-#custom-doc { width: 95%; min-width: 950px; }
-#pagetitle {background-image: url(../../assets/bg_hd.gif);}
-</style>
-
-<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
-<!--Script and CSS includes for YUI dependencies on this page-->
-<link rel="stylesheet" type="text/css" href="../../build/logger/assets/skins/sam/logger.css" />
-<link rel="stylesheet" type="text/css" href="../../build/button/assets/skins/sam/button.css" />
-<script type="text/javascript" src="../../build/yuiloader/yuiloader-min.js"></script>
-<script type="text/javascript" src="../../build/event/event-min.js"></script>
-<script type="text/javascript" src="../../build/dom/dom-min.js"></script>
-<script type="text/javascript" src="../../build/logger/logger-min.js"></script>
-<script type="text/javascript" src="../../build/element/element-min.js"></script>
-<script type="text/javascript" src="../../build/swf/swf-debug.js"></script>
-<script type="text/javascript" src="../../build/button/button-min.js"></script>
-
-<!--there is no custom header content for this example-->
-
-
-<script type="text/javascript">
-//enable passthrough of errors from YUI Event:
-if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
-	YAHOO.util.Event.throwErrors = true;
-}
-</script>
-</head>
-<body id="yahoo-com" class="yui-skin-sam">
-<div id="custom-doc" class="yui-t2">
-<div id="hd">
-	<div id="ygunav">
-		<p><em><a href="http://developer.yahoo.com/yui/">YUI Library Home</a></em></p>
-		<form action="http://search.yahoo.com/search" id="sitesearchform">
-		<input name="vs" type="hidden" value="developer.yahoo.com">
-		<input name="vs" type="hidden" value="yuiblog.com">
-		<div id="sitesearch">
-			<label for="searchinput">Site Search (YDN & YUIBlog): </label>
-			<input type="text" id="searchinput" name="p">
-			<input type="submit" value="Search" id="searchsubmit" class="ygbt">
-		</div>
-		</form>	</div>
-	<div id="ygma"><a href="../../"><img src="../../assets/yui.gif"  border="0" height="38"></a></div>
-	<div id="pagetitle"><h1>YUI Library Examples: SWF Utility: Advanced SWF Utility Example With Flashvars and Javascript interaction</h1></div>
-</div>
-<div id="bd">
-	
-	<div id="yui-main">
-		<div class="yui-b">
-		  <div class="yui-ge">
-			  <div class="yui-u first example">
-
-    
-	<div class="promo">
-	<h1>SWF Utility: Advanced SWF Utility Example With Flashvars and Javascript interaction</h1>
-	
-	<div class="exampleIntro">
-	<p>This example is an advanced demonstration of the <a href="../../swf/">YUI SWF</a> utility features.</p>
-
-<p><strong>Note:</strong> This example of the YUI SWF Utility usage requires Flash Player 9.0.115 or higher. The latest version of Flash Player is available at the <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player Download Center</a>.</p>			
-	</div>	
-					
-	<div class="example-container module ">
-			<div class="hd exampleHd">
-			<p class="newWindowButton yui-skin-sam"><!--<span id="newWindowLinkx"><span class="first-child">--><a href="swf-advanced_clean.html" target="_blank">View example in new window.</a><!--</span></span>-->		
-		</div>		<div id="example-canvas" class="bd">
-	
-		
-	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
-	
-	<div id="swfContainer" style="width:400px;height:200px">
-	The version of the Flash player installed on your computer is outdated. Please download and install the newest version.
-</div>
-
-<script type="text/javascript">
-    
-    // Instantiate the parameters to pass to the SWF.
-	// Note the scale and salign parameters.
-	// The scale="noscale" specifies that the swf is to 
-	// be displayed as is, without shrinking it or stretching it.
-	// salign = "TL" specifies that the content of the swf
-	// should be aligned to the top left of the viewport.
-	// flashVars are the arbitrary variables passed to the SWF.
-	// In our case, the SWF will display the names and content
-	// of these variables.
-	
-	var params = {version: 9.115,
-		          useExpressInstall: false,
-		          allowScriptAccess: "always",
-		          fixedAttributes:
-				  {scale: "noscale", salign: "TL"},
-				  flashVars: 
-				  {foo: "One", bar: "Two"}
-				 };
-
-    // Create an instance of the swf and pass the parameters
-	var mySWF = new YAHOO.widget.SWF("swfContainer", "assets/SWFExampleAdvanced.swf", params);
-	
-	// Subscribe to the swfReady event, which fires when the SWF has been instantiated
-	// and becomes available for communication with Javascript
-	mySWF.subscribe("swfReady", testFlash);
-	
-	// Subscribe to the textAdded event, which the SWF dispatches when an addText method
-	// has been called on it.
-    mySWF.subscribe("textAdded", logTextAdded);
-
-	function testFlash () {
-		// call addText method on the swf, passing some strings to it as arguments.
-		mySWF.callSWF("addText", ["Sample text\n"]);
-		mySWF.callSWF("addText", ["Another sample text\n"]);
-	}
-	
-	// Handler for the textAdded event dispatched by SWF
-	function logTextAdded () {
-		YAHOO.log("Text has been added to the SWF");
-	}
-
-</script>	
-	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
-	
-		
-		</div>
-		
-	
-	</div>			
-	</div>
-		
-	<h2 class="first">Advanced SWF Utility Example</h2>
-
-<p>In this example, we demonstrate how to embed a SWF on a page, pass it configuration parameters, and interact with it via ExternalInterface and the corresponding YUIBridge library in Actionscript.</p>
-
-<p>First, include the following JS source files:</p>	
-<textarea name="code" class="html" cols="60" rows="5">
-<!-- Dependencies -->
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-
-<!-- Source files -->
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/swf/swf-min.js"></script>
-</textarea>
-
-<p>Next, create a container where the SWF will be placed. The size of the container will be the size of the SWF (in this case, we set it to 400 by 200 pixels). The current content of the container is what will be displayed if there is no Flash installed on the user's machine, or if the version of the Flash player installed does not match the minimum required.</p>
-
-<textarea name="code" class="html" cols="60" rows="5">
-<div id="swfContainer" style="width:400px;height:200px">
-	The version of the Flash player installed on your computer is outdated. Please download and install the newest version.
-</div>
-</textarea>
-
-<p>Now, create an object with the necessary parameters to pass to the SWF. In this case, we specify the minimum version of Flash player required, whether to use the ExpressInstall capability of the Flash player, and a few SWF-specific fixed attributes, namely the "scale" attribute, which specifies whether to shrink or stretch the Flash content to fit the viewport (in our case, no shrinking or stretching is allowed), and the "salign" attribute, which specifies how to align the content in the viewport (in our case, we align it to top left). We also specify the value for the "allowScriptAccess" parameter as "always", which allows the SWF to make calls to Javascript functions, and vice versa. In addition, we pass some FlashVars -- arbitrary variables which, in our example, will be displayed by the SWF:</p>
-<textarea name="code" class="html" cols="60" rows="5">
-var params = {version: 9.115,
-	          useExpressInstall: false,
-	          allowScriptAccess: "always",
-	          fixedAttributes:
-			  {scale: "noscale", salign: "TL"},
-			  flashVars: 
-			  {foo: "One", bar: "Two"}
-			 };
-</textarea>
-
-
-<p>Next, we create an instance of the swf and pass the parameters:</p>
-<textarea name="code" class="html" cols="60" rows="5">
-var mySWF = new YAHOO.widget.SWF("swfContainer", "assets/SWFExampleAdvanced.swf", params);
-</textarea>
-
-<p>Next, we subscribe to the swfReady event, which fires when the SWF has been instantiated and becomes available for communication with Javascript (if the swf is using the YUIBridge library):
-<textarea name="code" class="html" cols="60" rows="5">
-mySWF.subscribe("swfReady", testFlash);
-</textarea>
-
-<p>We also subscribe to the textAdded event, which the SWF dispatches when an addText method has been called on it:</p>
-<textarea name="code" class="html" cols="60" rows="5">
-mySWF.subscribe("textAdded", logTextAdded);
-</textarea>
-
-<p>Next, we specify the handler that is called when the "swfReady" event fires (because of the subscribe() call above). The handler calls a method on the swf called "addText", and passes a string value to it. (the method is exposed by the SWF using the YUIBridge library):
-<textarea name="code" class="html" cols="60" rows="5">
-function testFlash () {
-	mySWF.callSWF("addText", ["Some sample text\n"]);
-}
-</textarea>
-
-<p>Finally, we also add a handler for the "textAdded" event, which the SWF fires when its "addText" method has been called:</p>
-<textarea name="code" class="html" cols="60" rows="5">
-		function logTextAdded () {
-			YAHOO.log("Text has been added to the SWF");
-			alert("Text added!");
-		}
-</textarea>
-
-<p>You can download the source code for the sample swf and the YUIBridge library <a href="assets/YUIBridgeExample.zip">here</a>.</p>
-<h2>Configuration for This Example</h2>
-
-<p>You can load the necessary JavaScript and CSS for this example from Yahoo's servers.  <a href="http://developer.yahoo.com/yui/articles/hosting/?swf&MIN#configure">Click here to load the YUI Dependency Configurator with all of this example's dependencies preconfigured</a>.</p>
-
-				</div>
-				<div class="yui-u">
-						<div id="loggerModule" class="yui-skin-sam">
-						<h3 class="firstContent">YUI Logger Output:</h3>
-								<div id="loggerDiv"></div>
-						</div>
-					
-				
-					<div id="examples">
-						<h3>SWF Utility Examples:</h3>
-	
-						<div id="exampleToc">
-							<ul>
-								<li><a href='../swf/swf-simple.html'>Simple SWF Utility Example</a></li><li class='selected'><a href='../swf/swf-advanced.html'>Advanced SWF Utility Example With Flashvars and Javascript interaction</a></li>							</ul>
-						</div>
-					</div>
-					
-					<div id="module">
-						<h3>More SWF Utility Resources:</h3>
-						<ul>
-							<li><a href="http://developer.yahoo.com/yui/swf/">User's Guide</a> (external)</li>
-						<li><a href="../../docs/module_swf.html">API Documentation</a></li>
-</ul>
-					</div>
-			  </div>
-		</div>
-		
-		</div>
-	</div>
-
-
-<div class="yui-b" id="tocWrapper">
-<!-- TABLE OF CONTENTS -->
-<div id="toc">
-	
-<ul>
-<li class="sect first">Yahoo! UI Library</li><li class="item"><a title="The Yahoo! User Interface Library (YUI)" href="http://developer.yahoo.com/yui/">Home (external)</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUIBlog (external)</a></li><li class="item"><a title="YUILibrary.com hosts the YUI community forums" href="http://yuilibrary.com/forum/">YUI Discussion Forum (external)</a></li><li class="item"><a title="The YUI Library source can be checked out from GitHub" href="http://github.com/yui/">YUI on GitHub</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../docs/index.html">API Documentation</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">Functional Examples</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License (external)</a></li><li class="sect">YUI Functional Examples</li><li class="item"><a title="The YUI Animation Utility - Functional Examples" href="../../examples/animation/index.html">Animation</a></li><li class="item"><a title="The YUI AutoComplete Control - Functional Examples" href="../../examples/autocomplete/index.html">AutoComplete</a></li><li class="item"><a title="The YUI Browser History Manager - Functional Examples" href="../../examples/history/index.html">Browser History Manager</a></li><li class="item"><a title="The YUI Button Control - Functional Examples" href="../../examples/button/index.html">Button</a></li><li class="item"><a title="The YUI Calendar Control - Functional Examples" href="../../examples/calendar/index.html">Calendar</a></li><li class="item"><a title="The YUI Carousel Control - Functional Examples" href="../../examples/carousel/index.html">Carousel</a></li><li class="item"><a title="The YUI Charts Control - Functional Examples" href="../../examples/charts/index.html">Charts</a></li><li class="item"><a title="The YUI Color Picker Control - Functional Examples" href="../../examples/colorpicker/index.html">Color Picker</a></li><li class="item"><a title="The YUI Cookie Utility - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="The YUI Connection Manager (AJAX) - Functional Examples" href="../../examples/connection/index.html">Connection Manager</a></li><li class="item"><a title="The YUI Container Family (Module, Overlay, Tooltip, Panel, Dialog, SimpleDialog) - Functional Examples" href="../../examples/container/index.html">Container</a></li><li class="item"><a title="The YUI DataTable Control - Functional Examples" href="../../examples/datatable/index.html">DataTable</a></li><li class="item"><a title="The YUI Dom Collection - Functional Examples" href="../../examples/dom/index.html">Dom</a></li><li class="item"><a title="The YUI Drag & Drop Utility - Functional Examples" href="../../examples/dragdrop/index.html">Drag & Drop</a></li><li class="item"><a title="The YUI Event Utility - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="The YUI Get Utility - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="The YUI ImageCropper Control - Functional Examples" href="../../examples/imagecropper/index.html">ImageCropper</a></li><li class="item"><a title="The YUI ImageLoader Utility - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="The YUI JSON Utility - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="The YUI Layout Manager - Functional Examples" href="../../examples/layout/index.html">Layout Manager</a></li><li class="item"><a title="The YUI Logger Control - Functional Examples" href="../../examples/logger/index.html">Logger</a></li><li class="item"><a title="The YUI Menu Control - Functional Examples" href="../../examples/menu/index.html">Menu</a></li><li class="item"><a title="The YUI Paginator - Functional Examples" href="../../examples/paginator/index.html">Paginator</a></li><li class="item"><a title="The YUI Profiler Utility - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="The YUI ProfileViewer Control - Functional Examples" href="../../examples/profilerviewer/index.html">ProfilerViewer</a></li><li class="item"><a title="The YUI ProgressBar Control - Functional Examples" href="../../examples/progressbar/index.html">ProgressBar</a></li><li class="item"><a title="The YUI Resize Utility - Functional Examples" href="../../examples/resize/index.html">Resize</a></li><li class="item"><a title="The YUI Rich Text Editor - Functional Examples" href="../../examples/editor/index.html">Rich Text Editor</a></li><li class="item"><a title="The YUI Selector Utility - Functional Examples" href="../../examples/selector/index.html">Selector</a></li><li class="item"><a title="The YUI Slider Control - Functional Examples" href="../../examples/slider/index.html">Slider</a></li><li class="item"><a title="The YUI Storage Utility - Functional Examples" href="../../examples/storage/index.html">Storage</a></li><li class="selected "><a title="The YUI SWF Utility - Functional Examples" href="../../examples/swf/index.html">SWF</a></li><li class="item"><a title="The YUI SWFStore Utility - Functional Examples" href="../../examples/swfstore/index.html">SWFStore</a></li><li class="item"><a title="The YUI Stylesheet Utility - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="item"><a title="The YUI TabView Control - Functional Examples" href="../../examples/tabview/index.html">TabView</a></li><li class="item"><a title="The YUI TreeView Control - Functional Examples" href="../../examples/treeview/index.html">TreeView</a></li><li class="item"><a title="The YUI Uploader Utility - Functional Examples" href="../../examples/uploader/index.html">Uploader (experimental)</a></li><li class="item"><a title="The YUI YAHOO Global Object - Functional Examples" href="../../examples/yahoo/index.html">YAHOO Global Object</a></li><li class="item"><a title="The YUI Loader Utility - Functional Examples" href="../../examples/yuiloader/index.html">YUI Loader</a></li><li class="item"><a title="The YUI Test Utility - Functional Examples" href="../../examples/yuitest/index.html">YUI Test</a></li><li class="item"><a title="YUI Reset CSS - Functional Examples" href="../../examples/reset/index.html">Reset CSS</a></li><li class="item"><a title="YUI Base CSS - Functional Examples" href="../../examples/base/index.html">Base CSS</a></li><li class="item"><a title="YUI Fonts CSS - Functional Examples" href="../../examples/fonts/index.html">Fonts CSS</a></li><li class="item"><a title="YUI Grids CSS - Functional Examples" href="../../examples/grids/index.html">Grids CSS</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li><li class="item"><a title="Best practices for working with web services while protecting user privacy" href="http://developer.yahoo.com/security/">Security Best Practices (external)</a></li></ul>
-</div>
-</div>
-	</div><!--closes bd-->
-
-	<div id="ft">
-        <p class="first">Copyright © 2010 Yahoo! Inc. All rights reserved.</p>
-        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
-            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
-            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
-            <a href="http://careers.yahoo.com/">Job Openings</a></p>
-	</div>
-</div>
-<script src="../../assets/syntax.js"></script>
-<script src="../../assets/dpSyntaxHighlighter.js"></script>
-<script language="javascript"> 
-dp.SyntaxHighlighter.HighlightAll('code'); 
-</script>
-
-<script src='../../assets/YUIexamples.js'></script>
-
-
-</body>
-</html>
diff --git a/examples/swf/swf-advanced_clean.html b/examples/swf/swf-advanced_clean.html
deleted file mode 100644
index e3f2dbc..0000000
--- a/examples/swf/swf-advanced_clean.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-
-
-    <meta http-equiv="content-type" content="text/html; charset=utf-8">
-<title>Advanced SWF Utility Example With Flashvars and Javascript interaction</title>
-
-<style type="text/css">
-/*margin and padding on body element
-  can introduce errors in determining
-  element position and are not recommended;
-  we turn them off as a foundation for YUI
-  CSS treatments. */
-body {
-	margin:0;
-	padding:0;
-}
-</style>
-
-<link rel="stylesheet" type="text/css" href="../../build/fonts/fonts-min.css" />
-<script type="text/javascript" src="../../build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="../../build/element/element-min.js"></script>
-<script type="text/javascript" src="../../build/swf/swf-min.js"></script>
-
-<!--there is no custom header content for this example-->
-
-</head>
-
-<body class="yui-skin-sam">
-
-
-<h1>Advanced SWF Utility Example With Flashvars and Javascript interaction</h1>
-
-<div class="exampleIntro">
-	<p>This example is an advanced demonstration of the <a href="../../swf/">YUI SWF</a> utility features.</p>
-
-<p><strong>Note:</strong> This example of the YUI SWF Utility usage requires Flash Player 9.0.115 or higher. The latest version of Flash Player is available at the <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player Download Center</a>.</p>			
-</div>
-
-<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
-
-<div id="swfContainer" style="width:400px;height:200px">
-	The version of the Flash player installed on your computer is outdated. Please download and install the newest version.
-</div>
-
-<script type="text/javascript">
-    
-    // Instantiate the parameters to pass to the SWF.
-	// Note the scale and salign parameters.
-	// The scale="noscale" specifies that the swf is to 
-	// be displayed as is, without shrinking it or stretching it.
-	// salign = "TL" specifies that the content of the swf
-	// should be aligned to the top left of the viewport.
-	// flashVars are the arbitrary variables passed to the SWF.
-	// In our case, the SWF will display the names and content
-	// of these variables.
-	
-	var params = {version: 9.115,
-		          useExpressInstall: false,
-		          allowScriptAccess: "always",
-		          fixedAttributes:
-				  {scale: "noscale", salign: "TL"},
-				  flashVars: 
-				  {foo: "One", bar: "Two"}
-				 };
-
-    // Create an instance of the swf and pass the parameters
-	var mySWF = new YAHOO.widget.SWF("swfContainer", "assets/SWFExampleAdvanced.swf", params);
-	
-	// Subscribe to the swfReady event, which fires when the SWF has been instantiated
-	// and becomes available for communication with Javascript
-	mySWF.subscribe("swfReady", testFlash);
-	
-	// Subscribe to the textAdded event, which the SWF dispatches when an addText method
-	// has been called on it.
-    mySWF.subscribe("textAdded", logTextAdded);
-
-	function testFlash () {
-		// call addText method on the swf, passing some strings to it as arguments.
-		mySWF.callSWF("addText", ["Sample text\n"]);
-		mySWF.callSWF("addText", ["Another sample text\n"]);
-	}
-	
-	// Handler for the textAdded event dispatched by SWF
-	function logTextAdded () {
-		YAHOO.log("Text has been added to the SWF");
-	}
-
-</script>
-<!--END SOURCE CODE FOR EXAMPLE =============================== -->
-
-</body>
-</html>
diff --git a/examples/swf/swf-simple.html b/examples/swf/swf-simple.html
deleted file mode 100644
index 30ae718..0000000
--- a/examples/swf/swf-simple.html
+++ /dev/null
@@ -1,215 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-	<title>YUI Library Examples: SWF Utility: Simple SWF Utility Example</title>
-    
-
-    <meta http-equiv="content-type" content="text/html; charset=utf-8">
-    	<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
-
-<style>
-/*Supplemental CSS for the YUI distribution*/
-#custom-doc { width: 95%; min-width: 950px; }
-#pagetitle {background-image: url(../../assets/bg_hd.gif);}
-</style>
-
-<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
-<!--Script and CSS includes for YUI dependencies on this page-->
-<link rel="stylesheet" type="text/css" href="../../build/logger/assets/skins/sam/logger.css" />
-<link rel="stylesheet" type="text/css" href="../../build/button/assets/skins/sam/button.css" />
-<script type="text/javascript" src="../../build/yuiloader/yuiloader-min.js"></script>
-<script type="text/javascript" src="../../build/event/event-min.js"></script>
-<script type="text/javascript" src="../../build/dom/dom-min.js"></script>
-<script type="text/javascript" src="../../build/logger/logger-min.js"></script>
-<script type="text/javascript" src="../../build/element/element-min.js"></script>
-<script type="text/javascript" src="../../build/swf/swf-debug.js"></script>
-<script type="text/javascript" src="../../build/button/button-min.js"></script>
-
-<!--there is no custom header content for this example-->
-
-
-<script type="text/javascript">
-//enable passthrough of errors from YUI Event:
-if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
-	YAHOO.util.Event.throwErrors = true;
-}
-</script>
-</head>
-<body id="yahoo-com" class="yui-skin-sam">
-<div id="custom-doc" class="yui-t2">
-<div id="hd">
-	<div id="ygunav">
-		<p><em><a href="http://developer.yahoo.com/yui/">YUI Library Home</a></em></p>
-		<form action="http://search.yahoo.com/search" id="sitesearchform">
-		<input name="vs" type="hidden" value="developer.yahoo.com">
-		<input name="vs" type="hidden" value="yuiblog.com">
-		<div id="sitesearch">
-			<label for="searchinput">Site Search (YDN & YUIBlog): </label>
-			<input type="text" id="searchinput" name="p">
-			<input type="submit" value="Search" id="searchsubmit" class="ygbt">
-		</div>
-		</form>	</div>
-	<div id="ygma"><a href="../../"><img src="../../assets/yui.gif"  border="0" height="38"></a></div>
-	<div id="pagetitle"><h1>YUI Library Examples: SWF Utility: Simple SWF Utility Example</h1></div>
-</div>
-<div id="bd">
-	
-	<div id="yui-main">
-		<div class="yui-b">
-		  <div class="yui-ge">
-			  <div class="yui-u first example">
-
-    
-	<div class="promo">
-	<h1>SWF Utility: Simple SWF Utility Example</h1>
-	
-	<div class="exampleIntro">
-	<p>This is a simple example of the <a href="../../swf/">YUI SWF Utility's</a> features.</p>
-
-<p><strong>Note:</strong> This example of the YUI SWF Utility usage requires Flash Player 9.0.115 or higher. The latest version of Flash Player is available at the <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player Download Center</a>.</p>
-			
-	</div>	
-					
-	<div class="example-container module ">
-			<div class="hd exampleHd">
-			<p class="newWindowButton yui-skin-sam"><!--<span id="newWindowLinkx"><span class="first-child">--><a href="swf-simple_clean.html" target="_blank">View example in new window.</a><!--</span></span>-->		
-		</div>		<div id="example-canvas" class="bd">
-	
-		
-	<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
-	
-	<div id="swfContainer" style="width:400px;height:200px">
-	The version of the Flash player installed on your computer is outdated. Please download and install the newest version.
-</div>
-
-<script type="text/javascript">
-    
-    // Instantiate the parameters to pass to the SWF.
-	// Note the scale and salign parameters.
-	// The scale="noscale" specifies that the swf is to 
-	// be displayed as is, without shrinking it or stretching it.
-	// salign = "TL" specifies that the content of the swf
-	// should be aligned to the top left of the viewport.
-	
-	var params = {version: 9.115,
-		          useExpressInstall: false,
-		          fixedAttributes:
-				  {scale: "noscale", salign: "TL"}
-				 };
-
-	var newswf = new YAHOO.widget.SWF("swfContainer", "assets/SWFExampleSimple.swf", params);
-
-
-
-</script>	
-	<!--END SOURCE CODE FOR EXAMPLE =============================== -->
-	
-		
-		</div>
-		
-	
-	</div>			
-	</div>
-		
-	<h2 class="first">Simple SWF Utility Example</h2>
-
-<p>In this example, we demonstrate how to embed a SWF on a page and pass it some configuration parameters.</p>
-
-<p>First, include the following JS source files:</p>	
-<textarea name="code" class="html" cols="60" rows="5">
-<!-- Dependencies -->
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/element/element-min.js"></script>
-
-<!-- Source files -->
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/swf/swf-min.js"></script>
-</textarea>
-
-<p>Next, create a container where the SWF will be placed. The size of the container will be the size of the SWF (in this case, we set it to 400 by 200 pixels). The current (HTML) content of the container is what will be displayed if there is no Flash installed on the user's machine, or if the version of the Flash player installed does not match the minimum required.</p>
-
-<textarea name="code" class="html" cols="60" rows="5">
-<div id="swfContainer" style="width:400px;height:200px">
-  The version of the Flash player installed on your computer 
-  is outdated. Please download and install the latest version.
-</div>
-</textarea>
-
-<p>Now, create an object with the necessary parameters to pass to the SWF. In this case, we specify the minimum version of Flash player required, whether to use the ExpressInstall capability of the Flash player, and a few SWF-specific fixed attributes, namely the <code>scale</code> attribute (which specifies whether to shrink or stretch the Flash content to fit the viewport; in this case, no shrinking or stretching is allowed), and the <code>salign</code> attribute (which specifies how to align the content in the viewport; in this case, we align it to top left):</p>
-<textarea name="code" class="JScript" cols="60" rows="5">
-var params = {version: 9.115,
-              useExpressInstall: false,
-			  fixedAttributes:
-			  {scale: "noscale", salign: "TL"}
-			 };
-</textarea>
-
-<p>Finally, create an instance of the SWF, passing the name of the container in which to embed it, the URL of the SWF, and the parameter object created above:</p>
-
-<textarea name="code" class="JScript" cols="60" rows="5">
-var newswf = new YAHOO.widget.SWF("swfContainer", "assets/SWFExampleSimple.swf", params);
-</textarea>
-
-<h2>Configuration for This Example</h2>
-
-<p>You can load the necessary JavaScript and CSS for this example from Yahoo's servers.  <a href="http://developer.yahoo.com/yui/articles/hosting/?swf&MIN#configure">Click here to load the YUI Dependency Configurator with all of this example's dependencies preconfigured</a>.</p>
-
-				</div>
-				<div class="yui-u">
-						<div id="loggerModule" class="yui-skin-sam">
-						<h3 class="firstContent">YUI Logger Output:</h3>
-								<div id="loggerDiv"></div>
-						</div>
-					
-				
-					<div id="examples">
-						<h3>SWF Utility Examples:</h3>
-	
-						<div id="exampleToc">
-							<ul>
-								<li class='selected'><a href='../swf/swf-simple.html'>Simple SWF Utility Example</a></li><li><a href='../swf/swf-advanced.html'>Advanced SWF Utility Example With Flashvars and Javascript interaction</a></li>							</ul>
-						</div>
-					</div>
-					
-					<div id="module">
-						<h3>More SWF Utility Resources:</h3>
-						<ul>
-							<li><a href="http://developer.yahoo.com/yui/swf/">User's Guide</a> (external)</li>
-						<li><a href="../../docs/module_swf.html">API Documentation</a></li>
-</ul>
-					</div>
-			  </div>
-		</div>
-		
-		</div>
-	</div>
-
-
-<div class="yui-b" id="tocWrapper">
-<!-- TABLE OF CONTENTS -->
-<div id="toc">
-	
-<ul>
-<li class="sect first">Yahoo! UI Library</li><li class="item"><a title="The Yahoo! User Interface Library (YUI)" href="http://developer.yahoo.com/yui/">Home (external)</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUIBlog (external)</a></li><li class="item"><a title="YUILibrary.com hosts the YUI community forums" href="http://yuilibrary.com/forum/">YUI Discussion Forum (external)</a></li><li class="item"><a title="The YUI Library source can be checked out from GitHub" href="http://github.com/yui/">YUI on GitHub</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../docs/index.html">API Documentation</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">Functional Examples</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License (external)</a></li><li class="sect">YUI Functional Examples</li><li class="item"><a title="The YUI Animation Utility - Functional Examples" href="../../examples/animation/index.html">Animation</a></li><li class="item"><a title="The YUI AutoComplete Control - Functional Examples" href="../../examples/autocomplete/index.html">AutoComplete</a></li><li class="item"><a title="The YUI Browser History Manager - Functional Examples" href="../../examples/history/index.html">Browser History Manager</a></li><li class="item"><a title="The YUI Button Control - Functional Examples" href="../../examples/button/index.html">Button</a></li><li class="item"><a title="The YUI Calendar Control - Functional Examples" href="../../examples/calendar/index.html">Calendar</a></li><li class="item"><a title="The YUI Carousel Control - Functional Examples" href="../../examples/carousel/index.html">Carousel</a></li><li class="item"><a title="The YUI Charts Control - Functional Examples" href="../../examples/charts/index.html">Charts</a></li><li class="item"><a title="The YUI Color Picker Control - Functional Examples" href="../../examples/colorpicker/index.html">Color Picker</a></li><li class="item"><a title="The YUI Cookie Utility - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="The YUI Connection Manager (AJAX) - Functional Examples" href="../../examples/connection/index.html">Connection Manager</a></li><li class="item"><a title="The YUI Container Family (Module, Overlay, Tooltip, Panel, Dialog, SimpleDialog) - Functional Examples" href="../../examples/container/index.html">Container</a></li><li class="item"><a title="The YUI DataTable Control - Functional Examples" href="../../examples/datatable/index.html">DataTable</a></li><li class="item"><a title="The YUI Dom Collection - Functional Examples" href="../../examples/dom/index.html">Dom</a></li><li class="item"><a title="The YUI Drag & Drop Utility - Functional Examples" href="../../examples/dragdrop/index.html">Drag & Drop</a></li><li class="item"><a title="The YUI Event Utility - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="The YUI Get Utility - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="The YUI ImageCropper Control - Functional Examples" href="../../examples/imagecropper/index.html">ImageCropper</a></li><li class="item"><a title="The YUI ImageLoader Utility - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="The YUI JSON Utility - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="The YUI Layout Manager - Functional Examples" href="../../examples/layout/index.html">Layout Manager</a></li><li class="item"><a title="The YUI Logger Control - Functional Examples" href="../../examples/logger/index.html">Logger</a></li><li class="item"><a title="The YUI Menu Control - Functional Examples" href="../../examples/menu/index.html">Menu</a></li><li class="item"><a title="The YUI Paginator - Functional Examples" href="../../examples/paginator/index.html">Paginator</a></li><li class="item"><a title="The YUI Profiler Utility - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="The YUI ProfileViewer Control - Functional Examples" href="../../examples/profilerviewer/index.html">ProfilerViewer</a></li><li class="item"><a title="The YUI ProgressBar Control - Functional Examples" href="../../examples/progressbar/index.html">ProgressBar</a></li><li class="item"><a title="The YUI Resize Utility - Functional Examples" href="../../examples/resize/index.html">Resize</a></li><li class="item"><a title="The YUI Rich Text Editor - Functional Examples" href="../../examples/editor/index.html">Rich Text Editor</a></li><li class="item"><a title="The YUI Selector Utility - Functional Examples" href="../../examples/selector/index.html">Selector</a></li><li class="item"><a title="The YUI Slider Control - Functional Examples" href="../../examples/slider/index.html">Slider</a></li><li class="item"><a title="The YUI Storage Utility - Functional Examples" href="../../examples/storage/index.html">Storage</a></li><li class="selected "><a title="The YUI SWF Utility - Functional Examples" href="../../examples/swf/index.html">SWF</a></li><li class="item"><a title="The YUI SWFStore Utility - Functional Examples" href="../../examples/swfstore/index.html">SWFStore</a></li><li class="item"><a title="The YUI Stylesheet Utility - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="item"><a title="The YUI TabView Control - Functional Examples" href="../../examples/tabview/index.html">TabView</a></li><li class="item"><a title="The YUI TreeView Control - Functional Examples" href="../../examples/treeview/index.html">TreeView</a></li><li class="item"><a title="The YUI Uploader Utility - Functional Examples" href="../../examples/uploader/index.html">Uploader (experimental)</a></li><li class="item"><a title="The YUI YAHOO Global Object - Functional Examples" href="../../examples/yahoo/index.html">YAHOO Global Object</a></li><li class="item"><a title="The YUI Loader Utility - Functional Examples" href="../../examples/yuiloader/index.html">YUI Loader</a></li><li class="item"><a title="The YUI Test Utility - Functional Examples" href="../../examples/yuitest/index.html">YUI Test</a></li><li class="item"><a title="YUI Reset CSS - Functional Examples" href="../../examples/reset/index.html">Reset CSS</a></li><li class="item"><a title="YUI Base CSS - Functional Examples" href="../../examples/base/index.html">Base CSS</a></li><li class="item"><a title="YUI Fonts CSS - Functional Examples" href="../../examples/fonts/index.html">Fonts CSS</a></li><li class="item"><a title="YUI Grids CSS - Functional Examples" href="../../examples/grids/index.html">Grids CSS</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li><li class="item"><a title="Best practices for working with web services while protecting user privacy" href="http://developer.yahoo.com/security/">Security Best Practices (external)</a></li></ul>
-</div>
-</div>
-	</div><!--closes bd-->
-
-	<div id="ft">
-        <p class="first">Copyright © 2010 Yahoo! Inc. All rights reserved.</p>
-        <p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> - 
-            <a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> - 
-            <a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> - 
-            <a href="http://careers.yahoo.com/">Job Openings</a></p>
-	</div>
-</div>
-<script src="../../assets/syntax.js"></script>
-<script src="../../assets/dpSyntaxHighlighter.js"></script>
-<script language="javascript"> 
-dp.SyntaxHighlighter.HighlightAll('code'); 
-</script>
-
-<script src='../../assets/YUIexamples.js'></script>
-
-
-</body>
-</html>
diff --git a/examples/swf/swf-simple_clean.html b/examples/swf/swf-simple_clean.html
deleted file mode 100644
index c52e484..0000000
--- a/examples/swf/swf-simple_clean.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-
-
-    <meta http-equiv="content-type" content="text/html; charset=utf-8">
-<title>Simple SWF Utility Example</title>
-
-<style type="text/css">
-/*margin and padding on body element
-  can introduce errors in determining
-  element position and are not recommended;
-  we turn them off as a foundation for YUI
-  CSS treatments. */
-body {
-	margin:0;
-	padding:0;
-}
-</style>
-
-<link rel="stylesheet" type="text/css" href="../../build/fonts/fonts-min.css" />
-<script type="text/javascript" src="../../build/yahoo-dom-event/yahoo-dom-event.js"></script>
-<script type="text/javascript" src="../../build/element/element-min.js"></script>
-<script type="text/javascript" src="../../build/swf/swf-min.js"></script>
-
-<!--there is no custom header content for this example-->
-
-</head>
-
-<body class="yui-skin-sam">
-
-
-<h1>Simple SWF Utility Example</h1>
-
-<div class="exampleIntro">
-	<p>This is a simple example of the <a href="../../swf/">YUI SWF Utility's</a> features.</p>
-
-<p><strong>Note:</strong> This example of the YUI SWF Utility usage requires Flash Player 9.0.115 or higher. The latest version of Flash Player is available at the <a href="http://www.adobe.com/go/getflashplayer">Adobe Flash Player Download Center</a>.</p>
-			
-</div>
-
-<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
-
-<div id="swfContainer" style="width:400px;height:200px">
-	The version of the Flash player installed on your computer is outdated. Please download and install the newest version.
-</div>
-
-<script type="text/javascript">
-    
-    // Instantiate the parameters to pass to the SWF.
-	// Note the scale and salign parameters.
-	// The scale="noscale" specifies that the swf is to 
-	// be displayed as is, without shrinking it or stretching it.
-	// salign = "TL" specifies that the content of the swf
-	// should be aligned to the top left of the viewport.
-	
-	var params = {version: 9.115,
-		          useExpressInstall: false,
-		          fixedAttributes:
-				  {scale: "noscale", salign: "TL"}
-				 };
-
-	var newswf = new YAHOO.widget.SWF("swfContainer", "assets/SWFExampleSimple.swf", params);
-
-
-
-</script>
-<!--END SOURCE CODE FOR EXAMPLE =============================== -->
-
-</body>
-</html>
diff --git a/examples/yahoo/yahoo_augment_object.html b/examples/yahoo/yahoo_augment_object.html
index b068311..90d3a95 100644
--- a/examples/yahoo/yahoo_augment_object.html
+++ b/examples/yahoo/yahoo_augment_object.html
@@ -133,7 +133,7 @@ YAHOO.util.Event.on('demo_btn','click',
 <p><code>YAHOO.lang</code> comes bundled with the <a href="http://developer.yahoo.com/yui/yahoo/">YAHOO Global Object</a>.</p>
 
 <textarea name="code" class="HTML" cols="60" rows="1">
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-min.js"></script>
 
 </textarea>
 
diff --git a/examples/yahoo/yahoo_augment_proto.html b/examples/yahoo/yahoo_augment_proto.html
index 40e581d..f8da55a 100644
--- a/examples/yahoo/yahoo_augment_proto.html
+++ b/examples/yahoo/yahoo_augment_proto.html
@@ -159,7 +159,7 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 <p><code>YAHOO.lang</code> comes bundled with the <a href="http://developer.yahoo.com/yui/yahoo/">YAHOO Global Object</a>.  To add the YAHOO Global Object, include the following in your markup:</p>
 
 <textarea name="code" class="HTML" cols="60" rows="1">
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-min.js"></script>
 
 </textarea>
 
diff --git a/examples/yahoo/yahoo_extend.html b/examples/yahoo/yahoo_extend.html
index 6a80554..c7d31d8 100644
--- a/examples/yahoo/yahoo_extend.html
+++ b/examples/yahoo/yahoo_extend.html
@@ -140,7 +140,7 @@ var chicken = new Chicken();
 <p><code>YAHOO.lang</code> comes bundled with the <a href="http://developer.yahoo.com/yui/yahoo/">YAHOO Global Object</a>.  To add the YAHOO Global Object, include the following in your markup:</p>
 
 <textarea name="code" class="HTML" cols="60" rows="1">
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-min.js"></script>
 
 </textarea>
 
diff --git a/examples/yahoo/yahoo_merge.html b/examples/yahoo/yahoo_merge.html
index 8c8ce08..f4c8703 100644
--- a/examples/yahoo/yahoo_merge.html
+++ b/examples/yahoo/yahoo_merge.html
@@ -148,7 +148,7 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 <p><code>YAHOO.lang</code> comes bundled with the <a href="http://developer.yahoo.com/yui/yahoo/">YAHOO Global Object</a>.</p>
 
 <textarea name="code" class="HTML" cols="60" rows="1">
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-min.js"></script>
 
 </textarea>
 
diff --git a/examples/yahoo/yahoo_type_checking.html b/examples/yahoo/yahoo_type_checking.html
index 844487b..3d72d6f 100644
--- a/examples/yahoo/yahoo_type_checking.html
+++ b/examples/yahoo/yahoo_type_checking.html
@@ -202,7 +202,7 @@ if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
 <p><code>YAHOO.lang</code> comes bundled with the <a href="http://developer.yahoo.com/yui/yahoo/">YAHOO Global Object</a>.</p>
 
 <textarea name="code" class="HTML" cols="60" rows="1">
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-min.js"></script>
 
 </textarea>
 
diff --git a/examples/yahoo/yahoo_ua_detection.html b/examples/yahoo/yahoo_ua_detection.html
index 664ce03..0c70a82 100644
--- a/examples/yahoo/yahoo_ua_detection.html
+++ b/examples/yahoo/yahoo_ua_detection.html
@@ -221,7 +221,7 @@ if (YAHOO.env.ua.webkit) {} // Safari, Webkit
 <p>If you are using any other YUI component on your page, you should already have YAHOO.env available.  Otherwise, add the following:</p>
 
 <textarea name="code" class="HTML" cols="60" rows="1">
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-min.js"></script>
 
 </textarea>
 
diff --git a/examples/yahoo/yahoo_ua_detection_log.html b/examples/yahoo/yahoo_ua_detection_log.html
index 5e1f0b4..3a75c04 100644
--- a/examples/yahoo/yahoo_ua_detection_log.html
+++ b/examples/yahoo/yahoo_ua_detection_log.html
@@ -223,7 +223,7 @@ if (YAHOO.env.ua.webkit) {} // Safari, Webkit
 <p>If you are using any other YUI component on your page, you should already have YAHOO.env available.  Otherwise, add the following:</p>
 
 <textarea name="code" class="HTML" cols="60" rows="1">
-<script type="text/javascript" src="http://yui.yahooapis.com/2.8.1/build/yahoo/yahoo-min.js"></script>
+<script type="text/javascript" src="http://yui.yahooapis.com/2.8.2r1/build/yahoo/yahoo-min.js"></script>
 
 </textarea>
 
diff --git a/src/charts/as/Charts.as b/src/charts/as/Charts.as
new file mode 100644
index 0000000..da6ae23
--- /dev/null
+++ b/src/charts/as/Charts.as
@@ -0,0 +1,1661 @@
+package
+{
+	import com.adobe.serialization.json.JSON;
+	import com.yahoo.astra.fl.charts.*;
+	import com.yahoo.astra.fl.charts.events.ChartEvent;
+	import com.yahoo.astra.fl.charts.legend.Legend;
+	import com.yahoo.astra.fl.charts.series.*;
+	import com.yahoo.astra.fl.charts.skins.*;
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	import com.yahoo.astra.utils.InstanceFactory;
+	import com.yahoo.astra.utils.JavaScriptUtil;
+	import com.yahoo.yui.LoggerCategory;
+	import com.yahoo.yui.YUIAdapter;
+	import com.yahoo.yui.charts.*;
+	import com.yahoo.util.ImageExport;
+	
+	
+	import fl.core.UIComponent;
+	
+	import flash.display.DisplayObject;
+	import flash.display.Shape;
+	import flash.display.Sprite;
+	import flash.events.ErrorEvent;
+	import flash.events.MouseEvent;
+	import flash.external.ExternalInterface;
+	import flash.text.TextFormat;
+	import flash.utils.getDefinitionByName;
+	import flash.utils.getQualifiedClassName;
+	
+	import flash.system.Capabilities;
+
+	[SWF(backgroundColor=0xffffff)]
+	/**
+	 * A wrapper for the Astra Charts components to allow them to be used by the YUI library.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class Charts extends YUIAdapter
+	{
+				
+	/**
+	 * @private	
+	 * Path for all skin classes
+
+
+	 */
+	private static const SKIN_NAMESPACE:String = "com.yahoo.astra.fl.charts.skins::";
+				
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function Charts()
+		{
+			super();
+			this.setImageExport();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * A reference to the chart instance.
+		 */
+		protected var chart:Chart;
+		
+		/**
+		 * @private
+		 * The type of the chart specified by setType().
+		 */
+		protected var type:String;
+		
+		/**
+		 * @private
+		 * A reference to the legend instance.
+		 */
+		protected var legend:Legend;
+		
+		/**
+		 * @private
+		 * Storage for the legendDisplay property.
+		 */
+		protected var _legendDisplay:String = "none";
+		
+		/**
+		 * @private
+		 * Specifies the location of the legend, or "none" if the legend
+		 * is not to be displayed.
+		 */
+		public function get legendDisplay():String
+		{
+			return this._legendDisplay;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set legendDisplay(value:String):void
+		{
+			this._legendDisplay = value;
+			this.refreshComponentSize();
+		}
+		
+		/**
+		 * @private
+		 * Storage for the spacing property.
+		 */
+		protected var _spacing:Number = 6;
+		
+		/**
+		 * @private
+		 * The spacing between the chart and other objects, such as the legend.
+		 */
+		public function get spacing():Number
+		{
+			return this._spacing;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set spacing(value:Number):void
+		{
+			this._spacing = value;
+			this.refreshComponentSize();
+		}
+		
+		/**
+		 * @private
+		 * Storage for the padding property.
+		 */
+		protected var _padding:Number = 10;
+		
+		/**
+		 * @private
+		 * The padding around the chart, in pixels.
+		 */
+		public function get padding():Number
+		{
+			return this._padding;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set padding(value:Number):void
+		{
+			this._padding = value;
+		}
+		
+		/**
+		 * @private
+		 */
+		protected var backgroundAndBorder:BackgroundAndBorder;
+		
+		/**
+		 * @private
+		 */
+		override protected function get component():DisplayObject
+		{
+			//why do I have to do this? it's not ambiguous!
+			return super.component;
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function set component(value:DisplayObject):void
+		{
+			this.chart = Chart(value);
+			this.chart.addEventListener(ErrorEvent.ERROR, chartErrorHandler);
+			super.component = value;
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+		
+		/**
+		 * Creates a chart instance based on the specified type.
+		 */
+		public function setType(value:String):void
+		{
+			if(this.chart)
+			{
+				this.removeChild(this.chart);
+				this.chart.removeEventListener(ChartEvent.ITEM_CLICK, chartItemEventHandler);
+				this.chart.removeEventListener(ChartEvent.ITEM_DOUBLE_CLICK, chartItemEventHandler);
+				this.chart.removeEventListener(ChartEvent.ITEM_ROLL_OUT, chartItemEventHandler);
+				this.chart.removeEventListener(ChartEvent.ITEM_ROLL_OVER, chartItemEventHandler);
+				this.chart.removeEventListener(MouseEvent.MOUSE_DOWN, chartItemExtraEventHandler);
+			}
+			
+			this.type = value;
+			var ChartType:Class = ChartSerializer.getType(this.type);
+			var chart:Chart = new ChartType();
+			chart.setStyle("contentPadding", 0);
+			chart.setStyle("backgroundSkin", Sprite);
+			var backgroundFactory:InstanceFactory = this.createBorderBackgroundFactory();
+			backgroundFactory.properties.fillColor = 0xffffff;
+			backgroundFactory.properties.fillAlpha = 0.9;
+			backgroundFactory.properties.borderWeight = 1;
+			backgroundFactory.properties.borderColor = 0x000000;
+			chart.setStyle("dataTipBackgroundSkin", backgroundFactory);
+			chart.setStyle("seriesMarkerSkins", []);
+			this.addChildAt(chart, 1);
+			
+			this.component = chart;
+			this.chart.addEventListener(ChartEvent.ITEM_CLICK, chartItemEventHandler, false, 0, true);
+			this.chart.addEventListener(ChartEvent.ITEM_DOUBLE_CLICK, chartItemEventHandler, false, 0, true);
+			this.chart.addEventListener(ChartEvent.ITEM_ROLL_OUT, chartItemEventHandler, false, 0, true);
+			this.chart.addEventListener(ChartEvent.ITEM_ROLL_OVER, chartItemEventHandler, false, 0, true);
+			this.chart.addEventListener(MouseEvent.MOUSE_DOWN, chartItemExtraEventHandler, false, 0, true);
+			
+			this.chart.legend = this.legend;
+			
+			this.log("Type set to \"" + this.type + "\"");
+		}
+		
+		public function setDataProvider(value:Array):void
+		{
+			var dataProvider:Array = [];
+			var seriesCount:int = value.length;
+			var seriesStyles:Array = [];
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var dataFromJavaScript:Object = value[i];
+				var currentData:ISeries = this.chart.dataProvider[i] as ISeries;
+				var seriesType:Class = SeriesSerializer.shortNameToSeriesType(dataFromJavaScript.type ? dataFromJavaScript.type : this.type);
+				
+				var series:ISeries;
+				if(currentData && getDefinitionByName(getQualifiedClassName(currentData)) == seriesType)
+				{
+					//reuse the series if possible because we want animation
+					series = SeriesSerializer.readSeries(dataFromJavaScript, currentData);
+				}
+				else
+				{
+					series = SeriesSerializer.readSeries(dataFromJavaScript);
+				}
+				dataProvider[i] = series;
+			
+				//this is where we parse the individual series styles, and we convert them
+				//to the format the chart actually expects.
+				//we fill in with defaults for styles that have not been specified
+				if(dataFromJavaScript.style)
+				{
+					seriesStyles.push(dataFromJavaScript.style);
+				}
+				else seriesStyles.push(null);
+			}
+			
+			this.log("Displaying " + seriesCount + " series.");
+			
+			//set data provider and new styles
+			this.chart.dataProvider = dataProvider;
+			
+			//make sures the series are created!
+			this.chart.drawNow();
+			
+			//set the styles for the series
+			this.setSeriesStyles(seriesStyles);
+			
+			this.refreshComponentSize();
+		}
+		
+		/**
+		 * Returns the category names.
+		 */
+		public function getCategoryNames():Array
+		{
+			var categoryChart:ICategoryChart = this.chart as ICategoryChart;
+			if(categoryChart)
+			{
+				return categoryChart.categoryNames;
+			}
+			var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+			this.log("Cannot find categoryNames on a chart of type " + shortName, LoggerCategory.WARN);
+			return null;
+		}
+		
+		/**
+		 * Sets the category names used if the data requires a category axis.
+		 * This field should be used if the data does not define the category
+		 * values directly.
+		 */
+		public function setCategoryNames(value:Array):void
+		{
+			var categoryChart:ICategoryChart = this.chart as ICategoryChart;
+			if(categoryChart)
+			{
+				categoryChart.categoryNames = value;
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set categoryNames on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Returns the field used in complex objects to access data to be
+		 * displayed on the PieChart.
+		 */
+		public function getDataField():String
+		{
+			var pieChart:PieChart = this.chart as PieChart;
+			if(pieChart)
+			{
+				return pieChart.dataField;
+			}
+			
+			var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+			this.log("Unable to find dataField on a chart of type " + shortName, LoggerCategory.WARN);
+			return null;
+		}
+		
+		/**
+		 * Sets the field used in complex objects to access data to be displayed
+		 * on the PieChart.
+		 */
+		public function setDataField(value:String):void
+		{
+			var pieChart:PieChart = this.chart as PieChart;
+			if(pieChart)
+			{
+				pieChart.dataField = value;
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set dataField on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Returns the field used in complex objects to access categories to be
+		 * displayed on the PieChart.
+		 */
+		public function getCategoryField():String
+		{
+			var pieChart:PieChart = this.chart as PieChart;
+			if(pieChart)
+			{
+				return pieChart.categoryField;
+			}
+			
+			var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+			this.log("Unable to find categoryField on a chart of type " + shortName, LoggerCategory.WARN);
+			return null;
+		}
+		
+		/**
+		 * Sets the field used in complex objects to access categories to be displayed
+		 * on the PieChart.
+		 */
+		public function setCategoryField(value:String):void
+		{
+			var pieChart:PieChart = this.chart as PieChart;
+			if(pieChart)
+			{
+				pieChart.categoryField = value;
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set categoryField on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Returns the field used in complex objects to access data to be
+		 * displayed on the horizontal axis.
+		 */
+		public function getHorizontalField():String
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				return cartesianChart.horizontalField;
+			}
+			
+			var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+			this.log("Unable to find horizontalField on a chart of type " + shortName, LoggerCategory.WARN);
+			return null;
+		}
+		
+		/**
+		 * Sets the field used in complex objects to access data to be displayed
+		 * on the horizontal axis. If the input data is XML, and the field is an
+		 * attribute, be sure to include the "@" symbol at the beginning of the
+		 * field name.
+		 */
+		public function setHorizontalField(value:String):void
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				cartesianChart.horizontalField = value;
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set horizontalField on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Returns the field used in complex objects to access data to be
+		 * displayed on the vertical axis.
+		 */
+		public function getVerticalField():String
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				return cartesianChart.verticalField;
+			}
+			
+			var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+			this.log("Unable to find verticalField on a chart of type " + shortName, LoggerCategory.WARN);
+			return null;
+		}
+		
+		/**
+		 * Sets the field used in complex objects to access data to be displayed
+		 * on the vertical axis. If the input data is XML, and the field is an
+		 * attribute, be sure to include the "@" symbol at the beginning of the
+		 * field name.
+		 */
+		public function setVerticalField(value:String):void
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				cartesianChart.verticalField = value;
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set verticalField on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Returns the title displayed next to the vertical axis.
+		 */
+		public function getHorizontalAxisTitle():String
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				return cartesianChart.horizontalAxisTitle;
+			}
+			
+			var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+			this.log("Unable to find horizontalAxisTitle on a chart of type " + shortName, LoggerCategory.WARN);
+			return null;
+		}
+		
+		/**
+		 * Sets the title displayed next to the horizontal axis.
+		 */
+		public function setHorizontalAxisTitle(value:String):void
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				cartesianChart.horizontalAxisTitle = value;
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set horizontalAxisTitle on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Returns the title displayed next to the vertical axis.
+		 */
+		public function getVerticalAxisTitle():String
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				return cartesianChart.verticalAxisTitle;
+			}
+			
+			var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+			this.log("Unable to find verticalAxisTitle on a chart of type " + shortName, LoggerCategory.WARN);
+			return null;
+		}
+		
+		/**
+		 * Sets the title displayed next to the vertical axis.
+		 */
+		public function setVerticalAxisTitle(value:String):void
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				cartesianChart.verticalAxisTitle = value;
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set verticalAxisTitle on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Updates the horizontal axis with a new type.
+		 */
+		public function setHorizontalAxis(value:Object):void
+		{		
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				cartesianChart.horizontalAxis = AxisSerializer.readAxis(value);
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set horizontalAxis on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Updates the vertical axis with a new type.
+		 */
+		public function setVerticalAxis(value:Object):void
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			if(cartesianChart)
+			{
+				cartesianChart.verticalAxis = AxisSerializer.readAxis(value);
+			}
+			else
+			{
+				var shortName:String = ChartSerializer.getShortName(getQualifiedClassName(this.chart));
+				this.log("Unable to set verticalAxis on a chart of type " + shortName, LoggerCategory.WARN);
+			}
+		}
+		
+		/**
+		 * Sets the JavaScript function to call to generate the chart's data tip.
+		 */
+		public function setDataTipFunction(value:String):void
+		{
+			var delegate:Object = {dataTipFunction: JavaScriptUtil.createCallbackFunction(value).callback};
+			delegate.callback = function(item:Object, index:int, series:ISeries):String
+			{
+				return delegate.dataTipFunction(item, index, SeriesSerializer.writeSeries(series));
+			}
+			
+			this.chart.dataTipFunction = delegate.callback;
+		}
+		
+		/**
+		 * Sets the JavaScript function to call to format legend labels
+		 */
+		public function setLegendLabelFunction(value:String):void
+		{
+			var delegate:Object = {legendLabelFunction: JavaScriptUtil.createCallbackFunction(value).callback};
+			delegate.callback = function(value:String):String
+			{
+				return delegate.legendLabelFunction(value);
+			}
+			
+			this.chart.legendLabelFunction = delegate.callback;
+		}
+		
+		/**
+		 * Determines whether the viewport is constrained
+		 */
+		public function setConstrainViewport(value:Boolean):void
+		{
+			if(this.chart is CartesianChart) (this.chart as CartesianChart).constrainViewport = value; 
+		}
+		
+		/**
+		 * Accepts a JSON-encoded set of styles for the chart itself.
+		 * Flash Player versions below 9.0.60 don't encode ExternalInterface
+		 * calls correctly!
+		 */
+		public function setStyles(styles:String):void
+		{ 
+			if(!styles) return;
+			var parsedStyles:Object = JSON.decode(styles);
+			for(var styleName:String in parsedStyles)
+			{
+				this.setStyle(styleName, parsedStyles[styleName], false);
+			}
+		}
+		
+		public function setStyle(name:String, value:Object, json:Boolean = true):void
+		{
+			if(json && value)
+			{
+				//by default, we assume it's json data, only setStyles will send false
+				value = JSON.decode(value as String);
+			}
+			
+			var needsSizingRefresh:Boolean = false;
+			
+			switch(name)
+			{
+				case "padding":
+					this.padding = value as Number;
+					needsSizingRefresh = true;
+					break;
+				case "spacing":
+					this.spacing = value as Number;
+					needsSizingRefresh = true;
+					break;
+				case "animationEnabled":
+					this.chart.setStyle("animationEnabled", value);
+					break;
+				case "border":
+					if(value.color != null)
+					{
+						this.backgroundAndBorder.borderColor = this.parseColor(value.color);
+					}
+					
+					if(value.size != null)
+					{
+						this.backgroundAndBorder.borderWeight = value.size;
+						needsSizingRefresh = true;
+					}
+					break;
+				case "background":
+					if(value.color != null)
+					{
+						this.backgroundAndBorder.fillColor = this.parseColor(value.color);
+					}
+					
+					if(value.image)
+					{
+						this.backgroundAndBorder.image = value.image;
+					}
+					
+					if(value.alpha != null)
+					{
+						this.backgroundAndBorder.fillAlpha = value.alpha;
+					}
+					if(value.mode)
+					{
+						this.backgroundAndBorder.imageMode = value.mode;
+					}
+					break;
+				case "font":
+					if(value.color) value.color = this.parseColor(value.color);
+					var textFormat:TextFormat = TextFormatSerializer.readTextFormat(value);
+					this.chart.setStyle("textFormat", textFormat);
+					break;
+				case "dataTip":
+					this.setDataTipStyles(value);
+					break;
+				case "xAxis":
+					this.setAxisStyles(value, "horizontal");
+					break;
+				case "yAxis":
+					this.setAxisStyles(value, "vertical");
+					break;
+				case "secondaryXAxis" : 
+					this.setAxisStyles(value, "secondaryHorizontal");
+					break;
+				case "secondaryYAxis" :
+					this.setAxisStyles(value, "secondaryVertical");
+				case "legend":
+					this.setLegendStyles(value);
+					break;
+				case "seriesItemSpacing":
+					if(this.chart is BarChart || this.chart is ColumnChart)
+					{
+						this.chart.setStyle("seriesItemSpacing", Number(value));
+					}
+					else
+					{
+						this.log("The " + name + " style is only supported by Column and Bar Charts.");
+					}
+					break;
+				default:
+					this.log("Unknown style: " + name, LoggerCategory.WARN);
+			}
+			
+			if(needsSizingRefresh)
+			{
+				this.refreshComponentSize();
+			}
+		}
+		
+		public function setSeriesStyles(styles:Array):void
+		{
+			var defaultSeriesColors:Array =
+					[0x00b8bf, 0x8dd5e7, 0xedff9f, 0xffa928, 0xc0fff6, 0xd00050,
+					0xc6c6c6, 0xc3eafb, 0xfcffad, 0xcfff83, 0x444444, 0x4d95dd,
+					0xb8ebff, 0x60558f, 0x737d7e, 0xa64d9a, 0x8e9a9b, 0x803e77];
+					
+			//will be filled based on the defaults or the series style definition, if present.
+			var seriesColors:Array = [];
+			var seriesBorderColors:Array = [];
+			var seriesFillColors:Array = [];
+			var seriesLineColors:Array = [];
+			var seriesBorderAlphas:Array = [];
+			var seriesFillAlphas:Array = [];
+			var seriesLineAlphas:Array = [];
+			var seriesCount:int = Math.min(this.chart.dataProvider.length, styles.length);
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:ISeries = ISeries(this.chart.dataProvider[i]);
+				var style:Object = styles[i];
+				if(style)
+				{
+					style = JSON.decode(style as String);
+				}
+				
+				//defaults
+				var defaultColors:Array = defaultSeriesColors.concat();
+				if(series is PieSeries)
+				{
+					defaultColors = [defaultColors];
+				}
+				
+				var defaultSize:Number = 10;
+				if(series is ColumnSeries || series is BarSeries)
+				{
+					defaultSize = 20;
+				}
+				
+				var defaultSkin:Object = RectangleSkin;
+				if(series is LineSeries)
+				{
+					defaultSkin = CircleSkin;
+				}
+				else if(series is PieSeries)
+				{
+					defaultSkin = [defaultSkin];
+				}
+			
+				//initialize styles with defaults
+				var color:Object = defaultColors[i % defaultColors.length];
+				var borderColor:Object = null;
+				var fillColor:Object= null;
+				var lineColor:Object = null;
+				var lineAlpha:Number = 1;
+				var borderAlpha:Number = 1;
+				var fillAlpha:Number = 1;
+				var skin:Object = defaultSkin;
+				var mode:Object = "repeat";
+				if(style)
+				{
+					for(var styleName:String in style)
+					{
+						switch(styleName)
+						{
+							case "images":
+								if(!(series is PieSeries))
+								{
+									this.log(styleName + " style is only supported by series of type 'pie'.", LoggerCategory.WARN);
+									break;
+								}
+								var images:Array = style.images as Array;
+								var imageCount:int = images.length;
+								for(var j:int = 0; j < imageCount; j++)
+								{
+									images[j] = this.createMarkerSkin(String(images[j]), series);
+								}
+								skin = images;
+								break;
+							case "image":
+								skin = this.createMarkerSkin(style.image, series);
+								if(!(series is LineSeries))
+								{
+									skin.properties.fillColor = color;
+									skin.properties.fillAlpha = 1;
+								}
+								break;
+							case "mode":
+								mode = style.mode;
+								break;
+							case "colors":
+								if(!(series is PieSeries))
+								{
+									this.log(styleName + " style is only supported by series of type 'pie'.", LoggerCategory.WARN);
+									break;
+								}
+								var colors:Array = style.colors;
+								var colorCount:int = colors.length;
+								for(j = 0; j < colorCount; j++)
+								{
+									colors[j] = this.parseColor(colors[j]);
+								}
+								color = colors;
+								break;
+							case "color":
+								color = this.parseColor(style.color);
+								if(skin is InstanceFactory && !(series is LineSeries))
+								{
+									skin.properties.fillColor = color;
+									skin.properties.fillAlpha = 1;
+								}
+								break;
+							case "borderColor":
+								borderColor = this.parseColor(style.borderColor);
+								break;
+							case "borderAlpha":
+								borderAlpha = style.borderAlpha;
+								break;
+							case "fillColor":
+								fillColor = this.parseColor(style.fillColor);
+								break;
+							case "fillAlpha":
+								fillAlpha = style.fillAlpha;
+							case "size":
+								UIComponent(series).setStyle("markerSize", style.size);
+								break;
+							case "lineColor": //LineSeries only
+								if(!(series is LineSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'line'.", LoggerCategory.WARN);
+								}
+								lineColor = this.parseColor(style.lineColor);
+								break;
+							case "lineAlpha":
+								if(!(series is LineSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'line'.", LoggerCategory.WARN);
+								}
+								lineAlpha = style.lineAlpha;
+								break;
+							case "alpha":
+								UIComponent(series).setStyle("markerAlpha", style.alpha);
+								break;
+							case "showAreaFill": //LineSeries only
+								if(!(series is LineSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'line'.", LoggerCategory.WARN);
+								}
+								UIComponent(series).setStyle("showAreaFill", style.showAreaFill);
+								break;
+							case "areaFillAlpha": //LineSeries only
+								if(!(series is LineSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'line'.", LoggerCategory.WARN);
+								}
+								UIComponent(series).setStyle("areaFillAlpha", style.areaFillAlpha);
+								break;
+							case "lineSize": //LineSeries only
+								if(!(series is LineSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'line'.", LoggerCategory.WARN);
+								}
+								UIComponent(series).setStyle("lineWeight", style.lineSize);
+								break;
+							case "connectPoints": //LineSeries only
+								if(!(series is LineSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'line'.", LoggerCategory.WARN);
+								}
+								UIComponent(series).setStyle("connectPoints", style.connectPoints);
+								break;
+							case "connectDiscontinuousPoints": //LineSeries only
+								if(!(series is LineSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'line'.", LoggerCategory.WARN);
+								}
+								UIComponent(series).setStyle("connectDiscontinuousPoints", style.connectDiscontinuousPoints);
+								break;
+							case "discontinuousDashLength": //LineSeries only
+								if(!(series is LineSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'line'.", LoggerCategory.WARN);
+								}
+								UIComponent(series).setStyle("discontinuousDashLength", style.discontinuousDashLength);
+								break;
+							case "showLabels": //PieSeries only
+								if(!(series is PieSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'pie'.", LoggerCategory.WARN);
+								}
+								UIComponent(series).setStyle("showLabels", style.showLabels);
+								break;
+							case "hideOverlappingLabels": //PieSeries only
+								if(!(series is PieSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'pie'.", LoggerCategory.WARN);
+								}
+								UIComponent(series).setStyle("hideOverlappingLabels", style.showLabels);
+								break;
+							case "font": //PieSeries only
+								if(!(series is PieSeries))
+								{
+									this.log("The style " + styleName + " is only supported by series of type 'pie'.", LoggerCategory.WARN);
+								}
+								if(style.font.color) style.font.color = this.parseColor(style.font.color); 
+								UIComponent(series).setStyle("textFormat", TextFormatSerializer.readTextFormat(style.font))
+								break;	
+							case "visibility":
+								if(!(series is PieSeries))
+								{
+									UIComponent(series).setStyle("visibility", style.visibility);
+								}
+								break;
+							case "skin":
+								if(series is LineSeries)
+								{
+									try
+									{
+										skin = getDefinitionByName(SKIN_NAMESPACE + style.skin) as Class;	
+									}
+									catch(e:Error)
+									{
+										this.log(style.skin + " is not a valid skin class", LoggerCategory.WARN);
+									}
+								}
+								break;
+		
+							default:
+								this.log("Unknown series style: " + styleName, LoggerCategory.WARN);
+						}
+					}
+				}
+				if(mode)
+				{
+					if(skin is InstanceFactory)
+					{
+						skin.properties.imageMode = mode;
+					}
+					else if(skin is Array)
+					{
+						var skinCount:int = (skin as Array).length;
+						for(j = 0; j < skinCount; j++)
+						{
+							var subSkin:InstanceFactory = skin[j] as InstanceFactory;
+							if(subSkin)
+							{
+								subSkin.properties.imageMode = mode;
+							}
+						}
+					}
+				}
+				
+				if(series is PieSeries)
+				{
+					PieSeries(series).setStyle("markerSkins", skin);
+				}
+				else UIComponent(series).setStyle("markerSkin", skin);
+				
+				seriesColors[i] = color;
+				seriesBorderColors[i] = borderColor!=null?borderColor:color;
+				seriesFillColors[i] = fillColor!=null?fillColor:color;
+				seriesLineColors[i] = lineColor!=null?lineColor:color;
+				seriesBorderAlphas[i] = borderAlpha;
+				seriesFillAlphas[i] = fillAlpha;
+				seriesLineAlphas[i] = lineAlpha;
+			}			
+
+			this.chart.setStyle("seriesColors", seriesColors);
+			this.chart.setStyle("seriesBorderColors", seriesBorderColors);
+			this.chart.setStyle("seriesFillColors", seriesFillColors);
+			this.chart.setStyle("seriesBorderAlphas", seriesBorderAlphas);
+			this.chart.setStyle("seriesFillAlphas", seriesFillAlphas);
+			if(series is LineSeries)
+			{
+				this.chart.setStyle("seriesLineColors", seriesLineColors);
+				this.chart.setStyle("seriesLineAlphas", seriesLineAlphas);
+			}
+			this.chart.drawNow();
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private (protected)
+		 * Initialize the functions that may be called by JavaScript through ExternalInterface.
+		 */
+		override protected function initializeComponent():void
+		{
+			super.initializeComponent();
+			
+			try
+			{
+				ExternalInterface.addCallback("setType", setType);
+				ExternalInterface.addCallback("setStyle", setStyle);
+				ExternalInterface.addCallback("setStyles", setStyles);
+				ExternalInterface.addCallback("setSeriesStyles", setSeriesStyles);
+				ExternalInterface.addCallback("setDataProvider", setDataProvider);
+				ExternalInterface.addCallback("getCategoryNames", getCategoryNames);
+				ExternalInterface.addCallback("setCategoryNames", setCategoryNames);
+				ExternalInterface.addCallback("setDataTipFunction", setDataTipFunction);
+				ExternalInterface.addCallback("getCategoryNames", getCategoryNames);
+				ExternalInterface.addCallback("setCategoryNames", setCategoryNames);
+				ExternalInterface.addCallback("setLegendLabelFunction", setLegendLabelFunction);
+				
+				//CartesianChart
+				ExternalInterface.addCallback("getHorizontalField", getHorizontalField);
+				ExternalInterface.addCallback("setHorizontalField", setHorizontalField);
+				ExternalInterface.addCallback("getVerticalField", getVerticalField);
+				ExternalInterface.addCallback("setVerticalField", setVerticalField);
+				ExternalInterface.addCallback("setHorizontalAxis", setHorizontalAxis);
+				ExternalInterface.addCallback("setVerticalAxis", setVerticalAxis);
+				ExternalInterface.addCallback("setConstrainViewport", setConstrainViewport);
+				ExternalInterface.addCallback("setSeriesStylesByIndex", setSeriesStylesByIndex);
+				
+				//PieChart
+				ExternalInterface.addCallback("getDataField", getDataField);
+				ExternalInterface.addCallback("setDataField", setDataField);
+				ExternalInterface.addCallback("getCategoryField", getCategoryField);
+				ExternalInterface.addCallback("setCategoryField", setCategoryField);
+			}
+			catch(error:SecurityError)
+			{
+				//do nothing. it will be caught by the YUIAdapter.
+			}
+
+			this.backgroundAndBorder = new BackgroundAndBorder();
+			this.backgroundAndBorder.width = this.stage.stageWidth;
+			this.backgroundAndBorder.height = this.stage.stageHeight;
+			this.backgroundAndBorder.addEventListener(ErrorEvent.ERROR, chartErrorHandler);
+			this.addChild(this.backgroundAndBorder);
+			
+			this.legend = new Legend();
+			this.legend.setStyle("backgroundSkin", Shape);
+			this.addChild(this.legend);
+		}
+		
+		/** 
+		 * @private (protected)
+		 * Since Chart is a Flash CS3 component, we should call drawNow() to be sure it updates properly.
+		 */
+		override protected function refreshComponentSize():void
+		{
+			super.refreshComponentSize();
+			
+			if(this.backgroundAndBorder)
+			{
+				this.backgroundAndBorder.width = this.stage.stageWidth;
+				this.backgroundAndBorder.height = this.stage.stageHeight;
+				this.backgroundAndBorder.drawNow();
+			}
+			
+			if(this.chart)
+			{
+				this.chart.x = this.chart.y = this.backgroundAndBorder.borderWeight + this.padding;
+				this.chart.width -= 2 * (this.backgroundAndBorder.borderWeight + this.padding);
+				this.chart.height -= 2 * (this.backgroundAndBorder.borderWeight + this.padding);
+				if(this.legend && this.legendDisplay != "none")
+				{
+					this.legend.visible = true;
+					
+					if(this.legendDisplay == "left" || this.legendDisplay == "right")
+					{
+						this.legend.maxHeight = this.component.height;
+						this.legend.drawNow();
+						if(this.legendDisplay == "left")
+						{
+							this.legend.x = this.backgroundAndBorder.borderWeight + this.padding;
+							this.chart.x = this.legend.x + this.legend.width + this.spacing;
+						}
+						else //right
+						{
+							this.legend.x = this.stage.stageWidth - this.backgroundAndBorder.borderWeight - this.legend.width - padding;
+						}
+						//center vertically
+						this.legend.y = Math.max(0, (this.stage.stageHeight - this.legend.height) / 2);
+						this.chart.width -= (this.legend.width + this.spacing);
+					}
+					else //top or bottom
+					{
+						this.legend.maxWidth = this.component.width;
+						this.legend.drawNow();
+						if(this.legendDisplay == "top")
+						{
+							this.legend.y = this.backgroundAndBorder.borderWeight + this.padding;
+							this.chart.y = this.legend.y + this.legend.height + this.spacing;
+						}
+						else //bottom
+						{
+							this.legend.y = this.stage.stageHeight - this.backgroundAndBorder.borderWeight - this.legend.height - padding;
+						}
+						//center horizontally
+						this.legend.x = Math.max(0, (this.stage.stageWidth - this.legend.width) / 2);
+						this.chart.height -= (this.legend.height + this.spacing);
+					}
+						
+					//we disable animation temporarily because we don't want the markers
+					//sliding around because the legend resized
+					if(this.legend && this.legendDisplay != "none")
+					{
+						var oldAnimationEnabled:Boolean = UIComponentUtil.getStyleValue(this.chart, "animationEnabled");
+						this.chart.setStyle("animationEnabled", false);
+						this.chart.drawNow();
+						this.chart.setStyle("animationEnabled", oldAnimationEnabled);
+					}
+				}
+				else
+				{
+					this.legend.visible = false;
+				}
+				this.chart.drawNow();
+			}
+		}
+		
+		/**
+		 * @private (protected)
+		 * Logs errors.
+		 */
+		protected function chartErrorHandler(event:ErrorEvent):void
+		{
+			this.log(event.text, LoggerCategory.ERROR);
+		}
+		
+		/**
+		 * @private (protected)
+		 * 
+		 * Receives chart item mouse events and passes them out to JavaScript.
+		 */
+		protected function chartItemEventHandler(event:ChartEvent):void
+		{
+			var type:String = event.type.replace("Roll", "Mouse");
+			type += "Event";
+			var seriesIndex:int = (this.chart.dataProvider as Array).indexOf(event.series);
+			var itemEvent:Object = {type: type, seriesIndex: seriesIndex, index: event.index, item: event.item, x: this.mouseX, y: this.mouseY};
+			this.dispatchEventToJavaScript(itemEvent);
+		}
+		
+		private var _lastMouseItem:ISeriesItemRenderer;
+		
+		protected function chartItemExtraEventHandler(event:MouseEvent):void
+		{
+			var dragEventType:String = "itemDragEvent";
+			var renderer:ISeriesItemRenderer = this._lastMouseItem;
+			this._lastMouseItem = null;
+			if(event.type == MouseEvent.MOUSE_DOWN)
+			{
+				//crawl up until we get to the chart or an item renderer
+				var displayObject:DisplayObject = event.target as DisplayObject;
+				while(!(displayObject is ISeriesItemRenderer) && !(displayObject is Chart))
+				{
+					displayObject = displayObject.parent;
+				}
+				
+				if(displayObject is ISeriesItemRenderer)
+				{
+					renderer = ISeriesItemRenderer(displayObject);
+				
+					this.stage.addEventListener(MouseEvent.MOUSE_MOVE, chartItemExtraEventHandler);
+					this.stage.addEventListener(MouseEvent.MOUSE_UP, chartItemExtraEventHandler);
+				}
+				else
+				{
+					renderer = null;
+				}
+				dragEventType = "itemDragStartEvent";
+			}
+			else if(event.type == MouseEvent.MOUSE_UP)
+			{
+				dragEventType = "itemDragEndEvent";
+				this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, chartItemExtraEventHandler);
+				this.stage.removeEventListener(MouseEvent.MOUSE_UP, chartItemExtraEventHandler);
+			}
+			
+			//if we've found an item renderer, dispatch the event
+			if(renderer is ISeriesItemRenderer)
+			{
+				var seriesIndex:int = (this.chart.dataProvider as Array).indexOf(renderer.series);
+				var itemIndex:int = renderer.series.dataProvider.indexOf(renderer.data)
+				var itemEvent:Object = {type: dragEventType, seriesIndex: seriesIndex, index: itemIndex, item: renderer.data, x: this.mouseX, y: this.mouseY};
+				this.dispatchEventToJavaScript(itemEvent);
+				this._lastMouseItem = renderer;
+			}
+		}
+		
+		protected function setDataTipStyles(styles:Object):void
+		{
+			var contentPadding:Number = 6;
+			if(styles.padding >= 0)
+			{
+				contentPadding = styles.padding;
+			}
+			
+			if(styles.border || styles.background)
+			{
+				//defaults
+				var backgroundFactory:InstanceFactory = this.createBorderBackgroundFactory();
+				backgroundFactory.properties.fillColor = 0xffffff;
+				backgroundFactory.properties.fillAlpha = 0.9;
+				backgroundFactory.properties.borderWeight = 1;
+				backgroundFactory.properties.borderColor = 0x000000;
+				var border:Object = styles.border;
+				if(border)
+				{
+					if(border.color != null)
+					{
+						backgroundFactory.properties.borderColor = this.parseColor(border.color)
+					}
+					if(border.size != null)
+					{
+						backgroundFactory.properties.borderWeight = border.size;
+						contentPadding += border.size;
+					}
+				}
+				var background:Object = styles.background;
+				if(background)
+				{
+					if(background.color != null)
+					{
+						backgroundFactory.properties.fillColor = this.parseColor(background.color);
+					}
+					if(background.image)
+					{
+						backgroundFactory.properties.image = background.image;
+					}
+					if(background.alpha != null)
+					{
+						backgroundFactory.properties.fillAlpha = background.alpha;
+					}
+					if(background.mode)
+					{
+						backgroundFactory.properties.imageMode = background.mode;
+					}
+				}
+				this.chart.setStyle("dataTipBackgroundSkin", backgroundFactory);
+			}
+			
+			this.chart.setStyle("dataTipContentPadding", contentPadding);
+			
+			if(styles.font)
+			{
+				if(styles.font.color) styles.font.color = this.parseColor(styles.font.color);
+				var textFormat:TextFormat = TextFormatSerializer.readTextFormat(styles.font);
+				this.chart.setStyle("dataTipTextFormat", textFormat);
+			}
+		}
+		
+		protected function setAxisStyles(styles:Object, axisName:String):void
+		{
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			var axisStyle:String = axisName + "AxisStyles";
+			var gridLineStyle:String = axisName + "AxisGridLinesStyles";
+			if(styles.color != null)
+			{
+				cartesianChart.setComplexStyle(axisStyle, "axisColor", this.parseColor(styles.color));
+			}
+			
+			if(styles.size != null)
+			{
+				cartesianChart.setComplexStyle(axisStyle, "axisWeight", Number(styles.size));
+				cartesianChart.setComplexStyle(axisStyle, "showAxis", styles.size > 0);
+			}
+
+			if(styles.showLabels != null)
+			{
+				cartesianChart.setComplexStyle(axisStyle, "showLabels", styles.showLabels);
+			}
+			
+			if(styles.hideOverlappingLabels != null)
+			{
+				cartesianChart.setComplexStyle(axisStyle, "hideOverlappingLabels", styles.hideOverlappingLabels);
+			}
+			
+			if(styles.labelRotation != null)
+			{
+				if(!isNaN(Number(styles.labelRotation)))
+				{
+					cartesianChart.setComplexStyle(axisStyle, "labelRotation", Number(styles.labelRotation));
+				}
+				else
+				{
+					this.log("The " + axisName + " labelRotation style must be of type Number.", LoggerCategory.WARN);
+				}
+			}
+			
+			if(styles.labelSpacing != null)
+			{
+				cartesianChart.setComplexStyle(axisStyle, "labelSpacing", Number(styles.labelSpacing));
+			}
+			
+			if(styles.labelDistance != null)
+			{
+				cartesianChart.setComplexStyle(axisStyle, "labelDistance", Number(styles.labelDistance));
+			}
+			
+			if(styles.titleRotation != null)
+			{
+				cartesianChart.setComplexStyle(axisStyle, "titleRotation", Number(styles.titleRotation));
+			}
+			
+			if(styles.titleDistance != null)
+			{
+				cartesianChart.setComplexStyle(axisStyle, "titleDistance", Number(styles.titleDistance));
+			}
+			
+			if(styles.titleFont != null)
+			{
+				if(styles.titleFont.color) styles.titleFont.color = this.parseColor(styles.titleFont.color);
+				var titleTextFormat:TextFormat = TextFormatSerializer.readTextFormat(styles.titleFont);
+				cartesianChart.setComplexStyle(axisStyle, "titleTextFormat", titleTextFormat);			
+			}
+			
+			if(styles.majorGridLines)
+			{
+				var majorGridLines:Object = styles.majorGridLines;
+				if(majorGridLines.color != null)
+				{
+					cartesianChart.setComplexStyle(gridLineStyle, "lineColor", this.parseColor(majorGridLines.color));
+				}
+				if(majorGridLines.size != null)
+				{
+					cartesianChart.setComplexStyle(gridLineStyle, "lineWeight", majorGridLines.size);
+					cartesianChart.setComplexStyle(gridLineStyle, "showLines", majorGridLines.size > 0);
+				}
+			}
+			
+			if(styles.minorGridLines)
+			{
+				var minorGridLines:Object = styles.minorGridLines;
+				if(minorGridLines.color != null)
+				{
+					cartesianChart.setComplexStyle(gridLineStyle, "minorLineColor", this.parseColor(minorGridLines.color));
+				}
+				if(minorGridLines.size != null)
+				{
+					cartesianChart.setComplexStyle(gridLineStyle, "minorLineWeight", minorGridLines.size);
+					cartesianChart.setComplexStyle(gridLineStyle, "showMinorLines", minorGridLines.size > 0);
+				}
+			}
+			
+			if(styles.zeroGridLine)
+			{
+				var zeroGridLine:Object = styles.zeroGridLine;
+				if(zeroGridLine.color != null)
+				{
+					cartesianChart.setComplexStyle(gridLineStyle, "zeroGridLineColor", zeroGridLine.color);
+				}
+				if(zeroGridLine.size != null)
+				{
+					cartesianChart.setComplexStyle(gridLineStyle, "zeroGridLineWeight", zeroGridLine.size);
+					cartesianChart.setComplexStyle(gridLineStyle, "showZeroGridLine", zeroGridLine.size > 0);
+				}
+			}
+			
+			if(styles.majorTicks)
+			{
+				var majorTicks:Object = styles.majorTicks;
+				if(majorTicks.color != null)
+				{
+					cartesianChart.setComplexStyle(axisStyle, "tickColor", this.parseColor(majorTicks.color));
+				}
+				if(majorTicks.size != null)
+				{
+					cartesianChart.setComplexStyle(axisStyle, "tickWeight", majorTicks.size);
+				}
+				if(majorTicks.length != null)
+				{
+					cartesianChart.setComplexStyle(axisStyle, "tickLength", majorTicks.length);
+				}
+				if(majorTicks.display)
+				{
+					cartesianChart.setComplexStyle(axisStyle, "showTicks", majorTicks.display != "none" && majorTicks.size != 0);
+					if(majorTicks.display != "none")
+					{
+						cartesianChart.setComplexStyle(axisStyle, "tickPosition", majorTicks.display);
+					}
+				}
+			}
+			
+			if(styles.minorTicks)
+			{
+				var minorTicks:Object = styles.minorTicks;
+				if(minorTicks.color != null)
+				{
+					cartesianChart.setComplexStyle(axisStyle, "minorTickColor", this.parseColor(minorTicks.color));
+				}
+				if(minorTicks.size != null)
+				{
+					cartesianChart.setComplexStyle(axisStyle, "minorTickWeight", minorTicks.size);
+				}
+				if(minorTicks.length != null)
+				{
+					cartesianChart.setComplexStyle(axisStyle, "minorTickLength", minorTicks.length);
+				}
+				if(minorTicks.display)
+				{
+					cartesianChart.setComplexStyle(axisStyle, "showMinorTicks", minorTicks.display != "none" && minorTicks.size != 0);
+					if(minorTicks.display != "none")
+					{
+						cartesianChart.setComplexStyle(axisStyle, "minorTickPosition", minorTicks.display);
+					}
+				}
+			}
+		}
+		
+		protected function setLegendStyles(styles:Object):void
+		{
+			if(styles.font)
+			{
+				if(styles.font.color) styles.font.color = this.parseColor(styles.font.color); 
+				var textFormat:TextFormat = TextFormatSerializer.readTextFormat(styles.font);
+				this.legend.setStyle("textFormat", textFormat);
+			}
+			
+			if(styles.spacing != null)
+			{
+				this.legend.setStyle("gap", styles.spacing);
+			}
+			
+			if(styles.display)
+			{
+				switch(styles.display)
+				{
+					case "left":
+					case "right":
+						this.legend.setStyle("direction", "vertical");
+						break;
+					default: //top, bottom
+						this.legend.setStyle("direction", "horizontal");
+				}
+				this.legendDisplay = styles.display;
+			}
+			
+			var contentPadding:Number = 6;
+			if(styles.padding != null)
+			{
+				contentPadding = styles.padding;
+			}
+			
+			if(styles.border || styles.background)
+			{
+				var backgroundFactory:InstanceFactory = this.createBorderBackgroundFactory();
+				var border:Object = styles.border;
+				if(border)
+				{
+					if(border.color != null)
+					{
+						backgroundFactory.properties.borderColor = this.parseColor(border.color)
+					}
+					if(border.size != null)
+					{
+						backgroundFactory.properties.borderWeight = border.size;
+						contentPadding += border.size;
+					}
+				}
+				var background:Object = styles.background;
+				if(background)
+				{
+					if(background.color != null)
+					{
+						backgroundFactory.properties.fillColor = this.parseColor(background.color);
+					}
+					if(background.image)
+					{
+						backgroundFactory.properties.image = background.image;
+					}
+					if(background.alpha != null)
+					{
+						backgroundFactory.properties.fillAlpha = background.alpha;
+					}
+					if(background.mode)
+					{
+						backgroundFactory.properties.imageMode = background.mode;
+					}
+				}
+				this.legend.setStyle("backgroundSkin", backgroundFactory);
+			}
+			
+			this.legend.setStyle("contentPadding", contentPadding);
+		}
+		
+		public function setSeriesStylesByIndex(index:int, style:Object):void
+		{
+			var series:ISeries = this.chart.indexToSeries(index) as ISeries;
+			var seriesComponent:UIComponent = UIComponent(series);
+			if(style)
+			{
+				style = JSON.decode(style as String);
+			}
+
+			//parse color styles
+			if(style.borderColor) seriesComponent.setStyle("borderColor", this.parseColor(style.borderColor));
+			if(style.fillColor) seriesComponent.setStyle("fillColor", this.parseColor(style.fillColor));
+			if(series is LineSeries && style.lineColor) seriesComponent.setStyle("lineColor", this.parseColor(style.lineColor));
+
+			//cascade color styles by setting the color style to more specific styles when the specific styles are not present
+			if(style.color)
+			{
+				style.color = this.parseColor(style.color);
+				seriesComponent.setStyle("color", style.color);
+				if(!style.borderColor) seriesComponent.setStyle("borderColor", style.color);
+				if(!style.fillColor) seriesComponent.setStyle("fillColor", style.color);
+				if(series is LineSeries && !style.lineColor) seriesComponent.setStyle("lineColor", style.color);
+			}
+			
+			//parse external image skin
+			if(style.image)
+			{
+				var skin:Object = this.createMarkerSkin(style.image, series);
+				if(!(series is LineSeries))
+				{
+					skin.properties.fillColor = style.color ? style.color : UIComponentUtil.getStyleValue(seriesComponent, "color");
+					skin.properties.fillAlpha = 1;
+				}	
+				if(style.mode) skin.properties.imageMode = style.mode; 
+				seriesComponent.setStyle("markerSkin", skin);			
+			}
+			else if(style.mode)
+			{
+				var oldSkin:Object = UIComponentUtil.getStyleValue(seriesComponent, "markerSkin");
+				if(oldSkin is InstanceFactory)
+				{
+					skin = this.createMarkerSkin(oldSkin.properties.image, series);
+					if(!(series is LineSeries))
+					{
+						skin.properties.fillColor = style.color ? style.color : UIComponentUtil.getStyleValue(seriesComponent, "color");
+						skin.properties.fillAlpha = 1;
+					}					
+					skin.properties.imageMode = style.mode;
+					seriesComponent.setStyle("markerSkin", skin);
+				}
+			}
+			
+			//map external styles to the series equivalent
+			var availableStyles:Object =
+			{
+				alpha:"markerAlpha",
+				size:"markerSize",
+				borderAlpha:"borderAlpha",
+				fillAlpha:"fillAlpha",
+				visibility:"visibility"
+			}
+			
+			if(series is LineSeries)
+			{
+				//add line only style mappings
+				availableStyles.lineAlpha = "lineAlpha";
+				availableStyles.connectPoints = "connectPoints";
+				availableStyles.connectDiscontinuousPoints = "connectDiscontinuousPoints";
+				availableStyles.discontinuousDashLength = "discontinuousDashLength";
+				availableStyles.showAreaFill = "showAreaFill";
+				availableStyles.areaFillAlpha = "areaFillAlpha";
+				availableStyles.lineSize = "lineWeight";
+				
+				//handle specified marker class
+				if(style.skin)
+				{
+					try
+					{
+						skin = getDefinitionByName(SKIN_NAMESPACE + style.skin) as Class;
+						seriesComponent.setStyle("markerSkin", skin);	
+					}
+					catch(e:Error)
+					{
+						this.log(style.skin + " is not a valid skin class", LoggerCategory.WARN);
+					}					
+				}
+			}	
+			
+			var len:int = availableStyles.length;
+			//set mapped styles
+			for(var i:String in availableStyles)
+			{
+				if(style[i] != null) seriesComponent.setStyle(availableStyles[i], style[i]);
+			}
+			seriesComponent.drawNow();
+		}
+		
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------	
+		
+		/**
+		 * @private
+		 * Creates a pseudo-class to instantiate a BackgroundAndBorder object.
+		 */
+		private function createBorderBackgroundFactory():InstanceFactory
+		{
+			var factory:InstanceFactory = new InstanceFactory(BackgroundAndBorder);
+			factory.properties =
+			{
+				fillColor: 0xffffff,
+				fillAlpha: 1,
+				borderColor: 0x000000,
+				borderWeight: 0,
+				image: null,
+				imageMode: BackgroundImageMode.REPEAT
+			};
+			factory.methods =
+			{
+				addEventListener: [ErrorEvent.ERROR, backgroundLoadErrorHandler, false, 0, true]
+			};
+			return factory;
+		}
+		
+		private function backgroundLoadErrorHandler(event:ErrorEvent):void
+		{
+			this.log(event.text, LoggerCategory.ERROR);
+		}
+		
+		private function createMarkerSkin(imagePath:String, series:ISeries):InstanceFactory
+		{
+			//a simple UILoader would be enough, but we want tiling
+			var skin:InstanceFactory = this.createBorderBackgroundFactory();
+			//turn off the border
+			skin.properties.borderWeight = 0;
+			//turn off the fill
+			skin.properties.fillAlpha = 0;
+			skin.properties.image = imagePath;
+			skin.properties.imageMode = BackgroundImageMode.REPEAT;
+			if(series is LineSeries)
+			{
+				//make points fit to size and maintain their aspect ratio
+				skin.properties.imageMode = BackgroundImageMode.STRETCH_AND_MAINTAIN_ASPECT_RATIO;
+			}
+			return skin;
+		}
+		
+		private function parseColor(value:Object):uint
+		{
+			if(!(value is Number))
+			{
+				var valueAsString:String = value.toString().replace("#", "");
+				if(valueAsString.indexOf("0x") != 0)
+				{
+					valueAsString = "0x" + valueAsString;
+				}
+				return parseInt(String(valueAsString), 16);
+			}
+			return uint(value);
+		}
+		
+		/**
+		 * @private
+		 */
+		private function setImageExport():void
+		{
+			try
+			{
+				var versionString:String = Capabilities.version;		
+				var version:Number = Number(/\w*.\w*/.exec((versionString.replace(/MAC|UNIX|PC|WIN\s/gi, "")).replace(/,0,/g, ".")));
+				if(version >= 10) 
+				{
+					var imageExport:ImageExport = new ImageExport(this);
+					imageExport.addImageType("jpg", "Chart");
+					imageExport.addImageType("png", "Chart");
+				}
+			}
+			catch(e:Error)
+			{
+				//just trapping potential error
+			}
+		}		
+	}
+}
diff --git a/src/charts/as/com/adobe/images/BitString.as b/src/charts/as/com/adobe/images/BitString.as
new file mode 100644
index 0000000..b5c2b84
--- /dev/null
+++ b/src/charts/as/com/adobe/images/BitString.as
@@ -0,0 +1,39 @@
+/*
+  Copyright (c) 2008, Adobe Systems Incorporated
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without 
+  modification, are permitted provided that the following conditions are
+  met:
+
+  * Redistributions of source code must retain the above copyright notice, 
+    this list of conditions and the following disclaimer.
+  
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the 
+    documentation and/or other materials provided with the distribution.
+  
+  * Neither the name of Adobe Systems Incorporated nor the names of its 
+    contributors may be used to endorse or promote products derived from 
+    this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
+  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+package com.adobe.images
+{
+	public class BitString
+	{
+		public var len:int = 0;
+		public var val:int = 0;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/adobe/images/JPGEncoder.as b/src/charts/as/com/adobe/images/JPGEncoder.as
new file mode 100644
index 0000000..100d7e9
--- /dev/null
+++ b/src/charts/as/com/adobe/images/JPGEncoder.as
@@ -0,0 +1,648 @@
+/*
+  Copyright (c) 2008, Adobe Systems Incorporated
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without 
+  modification, are permitted provided that the following conditions are
+  met:
+
+  * Redistributions of source code must retain the above copyright notice, 
+    this list of conditions and the following disclaimer.
+  
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the 
+    documentation and/or other materials provided with the distribution.
+  
+  * Neither the name of Adobe Systems Incorporated nor the names of its 
+    contributors may be used to endorse or promote products derived from 
+    this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
+  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+package com.adobe.images
+{
+	import flash.geom.*;
+	import flash.display.*;
+	import flash.utils.*;
+	
+	/**
+	 * Class that converts BitmapData into a valid JPEG
+	 */		
+	public class JPGEncoder
+	{
+
+		// Static table initialization
+	
+		private var ZigZag:Array = [
+			 0, 1, 5, 6,14,15,27,28,
+			 2, 4, 7,13,16,26,29,42,
+			 3, 8,12,17,25,30,41,43,
+			 9,11,18,24,31,40,44,53,
+			10,19,23,32,39,45,52,54,
+			20,22,33,38,46,51,55,60,
+			21,34,37,47,50,56,59,61,
+			35,36,48,49,57,58,62,63
+		];
+	
+		private var YTable:Array = new Array(64);
+		private var UVTable:Array = new Array(64);
+		private var fdtbl_Y:Array = new Array(64);
+		private var fdtbl_UV:Array = new Array(64);
+	
+		private function initQuantTables(sf:int):void
+		{
+			var i:int;
+			var t:Number;
+			var YQT:Array = [
+				16, 11, 10, 16, 24, 40, 51, 61,
+				12, 12, 14, 19, 26, 58, 60, 55,
+				14, 13, 16, 24, 40, 57, 69, 56,
+				14, 17, 22, 29, 51, 87, 80, 62,
+				18, 22, 37, 56, 68,109,103, 77,
+				24, 35, 55, 64, 81,104,113, 92,
+				49, 64, 78, 87,103,121,120,101,
+				72, 92, 95, 98,112,100,103, 99
+			];
+			for (i = 0; i < 64; i++) {
+				t = Math.floor((YQT[i]*sf+50)/100);
+				if (t < 1) {
+					t = 1;
+				} else if (t > 255) {
+					t = 255;
+				}
+				YTable[ZigZag[i]] = t;
+			}
+			var UVQT:Array = [
+				17, 18, 24, 47, 99, 99, 99, 99,
+				18, 21, 26, 66, 99, 99, 99, 99,
+				24, 26, 56, 99, 99, 99, 99, 99,
+				47, 66, 99, 99, 99, 99, 99, 99,
+				99, 99, 99, 99, 99, 99, 99, 99,
+				99, 99, 99, 99, 99, 99, 99, 99,
+				99, 99, 99, 99, 99, 99, 99, 99,
+				99, 99, 99, 99, 99, 99, 99, 99
+			];
+			for (i = 0; i < 64; i++) {
+				t = Math.floor((UVQT[i]*sf+50)/100);
+				if (t < 1) {
+					t = 1;
+				} else if (t > 255) {
+					t = 255;
+				}
+				UVTable[ZigZag[i]] = t;
+			}
+			var aasf:Array = [
+				1.0, 1.387039845, 1.306562965, 1.175875602,
+				1.0, 0.785694958, 0.541196100, 0.275899379
+			];
+			i = 0;
+			for (var row:int = 0; row < 8; row++)
+			{
+				for (var col:int = 0; col < 8; col++)
+				{
+					fdtbl_Y[i]  = (1.0 / (YTable [ZigZag[i]] * aasf[row] * aasf[col] * 8.0));
+					fdtbl_UV[i] = (1.0 / (UVTable[ZigZag[i]] * aasf[row] * aasf[col] * 8.0));
+					i++;
+				}
+			}
+		}
+	
+		private var YDC_HT:Array;
+		private var UVDC_HT:Array;
+		private var YAC_HT:Array;
+		private var UVAC_HT:Array;
+	
+		private function computeHuffmanTbl(nrcodes:Array, std_table:Array):Array
+		{
+			var codevalue:int = 0;
+			var pos_in_table:int = 0;
+			var HT:Array = new Array();
+			for (var k:int=1; k<=16; k++) {
+				for (var j:int=1; j<=nrcodes[k]; j++) {
+					HT[std_table[pos_in_table]] = new BitString();
+					HT[std_table[pos_in_table]].val = codevalue;
+					HT[std_table[pos_in_table]].len = k;
+					pos_in_table++;
+					codevalue++;
+				}
+				codevalue*=2;
+			}
+			return HT;
+		}
+	
+		private var std_dc_luminance_nrcodes:Array = [0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0];
+		private var std_dc_luminance_values:Array = [0,1,2,3,4,5,6,7,8,9,10,11];
+		private var std_ac_luminance_nrcodes:Array = [0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d];
+		private var std_ac_luminance_values:Array = [
+			0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,
+			0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,
+			0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,
+			0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,
+			0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,
+			0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28,
+			0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,
+			0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,
+			0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
+			0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
+			0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,
+			0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
+			0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
+			0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,
+			0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,
+			0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,
+			0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,
+			0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,
+			0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,
+			0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+			0xf9,0xfa
+		];
+	
+		private var std_dc_chrominance_nrcodes:Array = [0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0];
+		private var std_dc_chrominance_values:Array = [0,1,2,3,4,5,6,7,8,9,10,11];
+		private var std_ac_chrominance_nrcodes:Array = [0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77];
+		private var std_ac_chrominance_values:Array = [
+			0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,
+			0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,
+			0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91,
+			0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,
+			0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,
+			0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,
+			0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,
+			0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,
+			0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,
+			0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,
+			0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,
+			0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,
+			0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,
+			0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,
+			0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,
+			0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,
+			0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,
+			0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,
+			0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,
+			0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,
+			0xf9,0xfa
+		];
+	
+		private function initHuffmanTbl():void
+		{
+			YDC_HT = computeHuffmanTbl(std_dc_luminance_nrcodes,std_dc_luminance_values);
+			UVDC_HT = computeHuffmanTbl(std_dc_chrominance_nrcodes,std_dc_chrominance_values);
+			YAC_HT = computeHuffmanTbl(std_ac_luminance_nrcodes,std_ac_luminance_values);
+			UVAC_HT = computeHuffmanTbl(std_ac_chrominance_nrcodes,std_ac_chrominance_values);
+		}
+	
+		private var bitcode:Array = new Array(65535);
+		private var category:Array = new Array(65535);
+	
+		private function initCategoryNumber():void
+		{
+			var nrlower:int = 1;
+			var nrupper:int = 2;
+			var nr:int;
+			for (var cat:int=1; cat<=15; cat++) {
+				//Positive numbers
+				for (nr=nrlower; nr<nrupper; nr++) {
+					category[32767+nr] = cat;
+					bitcode[32767+nr] = new BitString();
+					bitcode[32767+nr].len = cat;
+					bitcode[32767+nr].val = nr;
+				}
+				//Negative numbers
+				for (nr=-(nrupper-1); nr<=-nrlower; nr++) {
+					category[32767+nr] = cat;
+					bitcode[32767+nr] = new BitString();
+					bitcode[32767+nr].len = cat;
+					bitcode[32767+nr].val = nrupper-1+nr;
+				}
+				nrlower <<= 1;
+				nrupper <<= 1;
+			}
+		}
+	
+		// IO functions
+	
+		private var byteout:ByteArray;
+		private var bytenew:int = 0;
+		private var bytepos:int = 7;
+	
+		private function writeBits(bs:BitString):void
+		{
+			var value:int = bs.val;
+			var posval:int = bs.len-1;
+			while ( posval >= 0 ) {
+				if (value & uint(1 << posval) ) {
+					bytenew |= uint(1 << bytepos);
+				}
+				posval--;
+				bytepos--;
+				if (bytepos < 0) {
+					if (bytenew == 0xFF) {
+						writeByte(0xFF);
+						writeByte(0);
+					}
+					else {
+						writeByte(bytenew);
+					}
+					bytepos=7;
+					bytenew=0;
+				}
+			}
+		}
+	
+		private function writeByte(value:int):void
+		{
+			byteout.writeByte(value);
+		}
+	
+		private function writeWord(value:int):void
+		{
+			writeByte((value>>8)&0xFF);
+			writeByte((value   )&0xFF);
+		}
+	
+		// DCT & quantization core
+	
+		private function fDCTQuant(data:Array, fdtbl:Array):Array
+		{
+			var tmp0:Number, tmp1:Number, tmp2:Number, tmp3:Number, tmp4:Number, tmp5:Number, tmp6:Number, tmp7:Number;
+			var tmp10:Number, tmp11:Number, tmp12:Number, tmp13:Number;
+			var z1:Number, z2:Number, z3:Number, z4:Number, z5:Number, z11:Number, z13:Number;
+			var i:int;
+			/* Pass 1: process rows. */
+			var dataOff:int=0;
+			for (i=0; i<8; i++) {
+				tmp0 = data[dataOff+0] + data[dataOff+7];
+				tmp7 = data[dataOff+0] - data[dataOff+7];
+				tmp1 = data[dataOff+1] + data[dataOff+6];
+				tmp6 = data[dataOff+1] - data[dataOff+6];
+				tmp2 = data[dataOff+2] + data[dataOff+5];
+				tmp5 = data[dataOff+2] - data[dataOff+5];
+				tmp3 = data[dataOff+3] + data[dataOff+4];
+				tmp4 = data[dataOff+3] - data[dataOff+4];
+	
+				/* Even part */
+				tmp10 = tmp0 + tmp3;	/* phase 2 */
+				tmp13 = tmp0 - tmp3;
+				tmp11 = tmp1 + tmp2;
+				tmp12 = tmp1 - tmp2;
+	
+				data[dataOff+0] = tmp10 + tmp11; /* phase 3 */
+				data[dataOff+4] = tmp10 - tmp11;
+	
+				z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
+				data[dataOff+2] = tmp13 + z1; /* phase 5 */
+				data[dataOff+6] = tmp13 - z1;
+	
+				/* Odd part */
+				tmp10 = tmp4 + tmp5; /* phase 2 */
+				tmp11 = tmp5 + tmp6;
+				tmp12 = tmp6 + tmp7;
+	
+				/* The rotator is modified from fig 4-8 to avoid extra negations. */
+				z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
+				z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
+				z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
+				z3 = tmp11 * 0.707106781; /* c4 */
+	
+				z11 = tmp7 + z3;	/* phase 5 */
+				z13 = tmp7 - z3;
+	
+				data[dataOff+5] = z13 + z2;	/* phase 6 */
+				data[dataOff+3] = z13 - z2;
+				data[dataOff+1] = z11 + z4;
+				data[dataOff+7] = z11 - z4;
+	
+				dataOff += 8; /* advance pointer to next row */
+			}
+	
+			/* Pass 2: process columns. */
+			dataOff = 0;
+			for (i=0; i<8; i++) {
+				tmp0 = data[dataOff+ 0] + data[dataOff+56];
+				tmp7 = data[dataOff+ 0] - data[dataOff+56];
+				tmp1 = data[dataOff+ 8] + data[dataOff+48];
+				tmp6 = data[dataOff+ 8] - data[dataOff+48];
+				tmp2 = data[dataOff+16] + data[dataOff+40];
+				tmp5 = data[dataOff+16] - data[dataOff+40];
+				tmp3 = data[dataOff+24] + data[dataOff+32];
+				tmp4 = data[dataOff+24] - data[dataOff+32];
+	
+				/* Even part */
+				tmp10 = tmp0 + tmp3;	/* phase 2 */
+				tmp13 = tmp0 - tmp3;
+				tmp11 = tmp1 + tmp2;
+				tmp12 = tmp1 - tmp2;
+	
+				data[dataOff+ 0] = tmp10 + tmp11; /* phase 3 */
+				data[dataOff+32] = tmp10 - tmp11;
+	
+				z1 = (tmp12 + tmp13) * 0.707106781; /* c4 */
+				data[dataOff+16] = tmp13 + z1; /* phase 5 */
+				data[dataOff+48] = tmp13 - z1;
+	
+				/* Odd part */
+				tmp10 = tmp4 + tmp5; /* phase 2 */
+				tmp11 = tmp5 + tmp6;
+				tmp12 = tmp6 + tmp7;
+	
+				/* The rotator is modified from fig 4-8 to avoid extra negations. */
+				z5 = (tmp10 - tmp12) * 0.382683433; /* c6 */
+				z2 = 0.541196100 * tmp10 + z5; /* c2-c6 */
+				z4 = 1.306562965 * tmp12 + z5; /* c2+c6 */
+				z3 = tmp11 * 0.707106781; /* c4 */
+	
+				z11 = tmp7 + z3;	/* phase 5 */
+				z13 = tmp7 - z3;
+	
+				data[dataOff+40] = z13 + z2; /* phase 6 */
+				data[dataOff+24] = z13 - z2;
+				data[dataOff+ 8] = z11 + z4;
+				data[dataOff+56] = z11 - z4;
+	
+				dataOff++; /* advance pointer to next column */
+			}
+	
+			// Quantize/descale the coefficients
+			for (i=0; i<64; i++) {
+				// Apply the quantization and scaling factor & Round to nearest integer
+				data[i] = Math.round((data[i]*fdtbl[i]));
+			}
+			return data;
+		}
+	
+		// Chunk writing
+	
+		private function writeAPP0():void
+		{
+			writeWord(0xFFE0); // marker
+			writeWord(16); // length
+			writeByte(0x4A); // J
+			writeByte(0x46); // F
+			writeByte(0x49); // I
+			writeByte(0x46); // F
+			writeByte(0); // = "JFIF",'\0'
+			writeByte(1); // versionhi
+			writeByte(1); // versionlo
+			writeByte(0); // xyunits
+			writeWord(1); // xdensity
+			writeWord(1); // ydensity
+			writeByte(0); // thumbnwidth
+			writeByte(0); // thumbnheight
+		}
+	
+		private function writeSOF0(width:int, height:int):void
+		{
+			writeWord(0xFFC0); // marker
+			writeWord(17);   // length, truecolor YUV JPG
+			writeByte(8);    // precision
+			writeWord(height);
+			writeWord(width);
+			writeByte(3);    // nrofcomponents
+			writeByte(1);    // IdY
+			writeByte(0x11); // HVY
+			writeByte(0);    // QTY
+			writeByte(2);    // IdU
+			writeByte(0x11); // HVU
+			writeByte(1);    // QTU
+			writeByte(3);    // IdV
+			writeByte(0x11); // HVV
+			writeByte(1);    // QTV
+		}
+	
+		private function writeDQT():void
+		{
+			writeWord(0xFFDB); // marker
+			writeWord(132);	   // length
+			writeByte(0);
+			var i:int;
+			for (i=0; i<64; i++) {
+				writeByte(YTable[i]);
+			}
+			writeByte(1);
+			for (i=0; i<64; i++) {
+				writeByte(UVTable[i]);
+			}
+		}
+	
+		private function writeDHT():void
+		{
+			writeWord(0xFFC4); // marker
+			writeWord(0x01A2); // length
+			var i:int;
+	
+			writeByte(0); // HTYDCinfo
+			for (i=0; i<16; i++) {
+				writeByte(std_dc_luminance_nrcodes[i+1]);
+			}
+			for (i=0; i<=11; i++) {
+				writeByte(std_dc_luminance_values[i]);
+			}
+	
+			writeByte(0x10); // HTYACinfo
+			for (i=0; i<16; i++) {
+				writeByte(std_ac_luminance_nrcodes[i+1]);
+			}
+			for (i=0; i<=161; i++) {
+				writeByte(std_ac_luminance_values[i]);
+			}
+	
+			writeByte(1); // HTUDCinfo
+			for (i=0; i<16; i++) {
+				writeByte(std_dc_chrominance_nrcodes[i+1]);
+			}
+			for (i=0; i<=11; i++) {
+				writeByte(std_dc_chrominance_values[i]);
+			}
+	
+			writeByte(0x11); // HTUACinfo
+			for (i=0; i<16; i++) {
+				writeByte(std_ac_chrominance_nrcodes[i+1]);
+			}
+			for (i=0; i<=161; i++) {
+				writeByte(std_ac_chrominance_values[i]);
+			}
+		}
+	
+		private function writeSOS():void
+		{
+			writeWord(0xFFDA); // marker
+			writeWord(12); // length
+			writeByte(3); // nrofcomponents
+			writeByte(1); // IdY
+			writeByte(0); // HTY
+			writeByte(2); // IdU
+			writeByte(0x11); // HTU
+			writeByte(3); // IdV
+			writeByte(0x11); // HTV
+			writeByte(0); // Ss
+			writeByte(0x3f); // Se
+			writeByte(0); // Bf
+		}
+	
+		// Core processing
+		private var DU:Array = new Array(64);
+	
+		private function processDU(CDU:Array, fdtbl:Array, DC:Number, HTDC:Array, HTAC:Array):Number
+		{
+			var EOB:BitString = HTAC[0x00];
+			var M16zeroes:BitString = HTAC[0xF0];
+			var i:int;
+	
+			var DU_DCT:Array = fDCTQuant(CDU, fdtbl);
+			//ZigZag reorder
+			for (i=0;i<64;i++) {
+				DU[ZigZag[i]]=DU_DCT[i];
+			}
+			var Diff:int = DU[0] - DC; DC = DU[0];
+			//Encode DC
+			if (Diff==0) {
+				writeBits(HTDC[0]); // Diff might be 0
+			} else {
+				writeBits(HTDC[category[32767+Diff]]);
+				writeBits(bitcode[32767+Diff]);
+			}
+			//Encode ACs
+			var end0pos:int = 63;
+			for (; (end0pos>0)&&(DU[end0pos]==0); end0pos--) {
+			};
+			//end0pos = first element in reverse order !=0
+			if ( end0pos == 0) {
+				writeBits(EOB);
+				return DC;
+			}
+			i = 1;
+			while ( i <= end0pos ) {
+				var startpos:int = i;
+				for (; (DU[i]==0) && (i<=end0pos); i++) {
+				}
+				var nrzeroes:int = i-startpos;
+				if ( nrzeroes >= 16 ) {
+					for (var nrmarker:int=1; nrmarker <= nrzeroes/16; nrmarker++) {
+						writeBits(M16zeroes);
+					}
+					nrzeroes = int(nrzeroes&0xF);
+				}
+				writeBits(HTAC[nrzeroes*16+category[32767+DU[i]]]);
+				writeBits(bitcode[32767+DU[i]]);
+				i++;
+			}
+			if ( end0pos != 63 ) {
+				writeBits(EOB);
+			}
+			return DC;
+		}
+	
+		private var YDU:Array = new Array(64);
+		private var UDU:Array = new Array(64);
+		private var VDU:Array = new Array(64);
+	
+		private function RGB2YUV(img:BitmapData, xpos:int, ypos:int):void
+		{
+			var pos:int=0;
+			for (var y:int=0; y<8; y++) {
+				for (var x:int=0; x<8; x++) {
+					var P:uint = img.getPixel32(xpos+x,ypos+y);
+					var R:Number = Number((P>>16)&0xFF);
+					var G:Number = Number((P>> 8)&0xFF);
+					var B:Number = Number((P    )&0xFF);
+					YDU[pos]=((( 0.29900)*R+( 0.58700)*G+( 0.11400)*B))-128;
+					UDU[pos]=(((-0.16874)*R+(-0.33126)*G+( 0.50000)*B));
+					VDU[pos]=((( 0.50000)*R+(-0.41869)*G+(-0.08131)*B));
+					pos++;
+				}
+			}
+		}
+	
+		/**
+		 * Constructor for JPEGEncoder class
+		 *
+		 * @param quality The quality level between 1 and 100 that detrmines the
+		 * level of compression used in the generated JPEG
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */		
+		public function JPGEncoder(quality:Number = 50)
+		{
+			if (quality <= 0) {
+				quality = 1;
+			}
+			if (quality > 100) {
+				quality = 100;
+			}
+			var sf:int = 0;
+			if (quality < 50) {
+				sf = int(5000 / quality);
+			} else {
+				sf = int(200 - quality*2);
+			}
+			// Create tables
+			initHuffmanTbl();
+			initCategoryNumber();
+			initQuantTables(sf);
+		}
+	
+		/**
+		 * Created a JPEG image from the specified BitmapData
+		 *
+		 * @param image The BitmapData that will be converted into the JPEG format.
+		 * @return a ByteArray representing the JPEG encoded image data.
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */	
+		public function encode(image:BitmapData):ByteArray
+		{
+			// Initialize bit writer
+			byteout = new ByteArray();
+			bytenew=0;
+			bytepos=7;
+	
+			// Add JPEG headers
+			writeWord(0xFFD8); // SOI
+			writeAPP0();
+			writeDQT();
+			writeSOF0(image.width,image.height);
+			writeDHT();
+			writeSOS();
+
+	
+			// Encode 8x8 macroblocks
+			var DCY:Number=0;
+			var DCU:Number=0;
+			var DCV:Number=0;
+			bytenew=0;
+			bytepos=7;
+			for (var ypos:int=0; ypos<image.height; ypos+=8) {
+				for (var xpos:int=0; xpos<image.width; xpos+=8) {
+					RGB2YUV(image, xpos, ypos);
+					DCY = processDU(YDU, fdtbl_Y, DCY, YDC_HT, YAC_HT);
+					DCU = processDU(UDU, fdtbl_UV, DCU, UVDC_HT, UVAC_HT);
+					DCV = processDU(VDU, fdtbl_UV, DCV, UVDC_HT, UVAC_HT);
+				}
+			}
+	
+			// Do the bit alignment of the EOI marker
+			if ( bytepos >= 0 ) {
+				var fillbits:BitString = new BitString();
+				fillbits.len = bytepos+1;
+				fillbits.val = (1<<(bytepos+1))-1;
+				writeBits(fillbits);
+			}
+	
+			writeWord(0xFFD9); //EOI
+			return byteout;
+		}
+	}
+}
diff --git a/src/charts/as/com/adobe/images/PNGEncoder.as b/src/charts/as/com/adobe/images/PNGEncoder.as
new file mode 100644
index 0000000..83c95f6
--- /dev/null
+++ b/src/charts/as/com/adobe/images/PNGEncoder.as
@@ -0,0 +1,141 @@
+/*
+  Copyright (c) 2008, Adobe Systems Incorporated
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without 
+  modification, are permitted provided that the following conditions are
+  met:
+
+  * Redistributions of source code must retain the above copyright notice, 
+    this list of conditions and the following disclaimer.
+  
+  * Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the 
+    documentation and/or other materials provided with the distribution.
+  
+  * Neither the name of Adobe Systems Incorporated nor the names of its 
+    contributors may be used to endorse or promote products derived from 
+    this software without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+  IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
+  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+package com.adobe.images
+{
+	import flash.geom.*;
+	import flash.display.Bitmap;
+	import flash.display.BitmapData;
+	import flash.utils.ByteArray;
+
+	/**
+	 * Class that converts BitmapData into a valid PNG
+	 */	
+	public class PNGEncoder
+	{
+		/**
+		 * Created a PNG image from the specified BitmapData
+		 *
+		 * @param image The BitmapData that will be converted into the PNG format.
+		 * @return a ByteArray representing the PNG encoded image data.
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */			
+	    public static function encode(img:BitmapData):ByteArray {
+	        // Create output byte array
+	        var png:ByteArray = new ByteArray();
+	        // Write PNG signature
+	        png.writeUnsignedInt(0x89504e47);
+	        png.writeUnsignedInt(0x0D0A1A0A);
+	        // Build IHDR chunk
+	        var IHDR:ByteArray = new ByteArray();
+	        IHDR.writeInt(img.width);
+	        IHDR.writeInt(img.height);
+	        IHDR.writeUnsignedInt(0x08060000); // 32bit RGBA
+	        IHDR.writeByte(0);
+	        writeChunk(png,0x49484452,IHDR);
+	        // Build IDAT chunk
+	        var IDAT:ByteArray= new ByteArray();
+	        for(var i:int=0;i < img.height;i++) {
+	            // no filter
+	            IDAT.writeByte(0);
+	            var p:uint;
+	            var j:int;
+	            if ( !img.transparent ) {
+	                for(j=0;j < img.width;j++) {
+	                    p = img.getPixel(j,i);
+	                    IDAT.writeUnsignedInt(
+	                        uint(((p&0xFFFFFF) << 8)|0xFF));
+	                }
+	            } else {
+	                for(j=0;j < img.width;j++) {
+	                    p = img.getPixel32(j,i);
+	                    IDAT.writeUnsignedInt(
+	                        uint(((p&0xFFFFFF) << 8)|
+	                        (p>>>24)));
+	                }
+	            }
+	        }
+	        IDAT.compress();
+	        writeChunk(png,0x49444154,IDAT);
+	        // Build IEND chunk
+	        writeChunk(png,0x49454E44,null);
+	        // return PNG
+	        return png;
+	    }
+	
+	    private static var crcTable:Array;
+	    private static var crcTableComputed:Boolean = false;
+	
+	    private static function writeChunk(png:ByteArray, 
+	            type:uint, data:ByteArray):void {
+	        if (!crcTableComputed) {
+	            crcTableComputed = true;
+	            crcTable = [];
+	            var c:uint;
+	            for (var n:uint = 0; n < 256; n++) {
+	                c = n;
+	                for (var k:uint = 0; k < 8; k++) {
+	                    if (c & 1) {
+	                        c = uint(uint(0xedb88320) ^ 
+	                            uint(c >>> 1));
+	                    } else {
+	                        c = uint(c >>> 1);
+	                    }
+	                }
+	                crcTable[n] = c;
+	            }
+	        }
+	        var len:uint = 0;
+	        if (data != null) {
+	            len = data.length;
+	        }
+	        png.writeUnsignedInt(len);
+	        var p:uint = png.position;
+	        png.writeUnsignedInt(type);
+	        if ( data != null ) {
+	            png.writeBytes(data);
+	        }
+	        var e:uint = png.position;
+	        png.position = p;
+	        c = 0xffffffff;
+	        for (var i:int = 0; i < (e-p); i++) {
+	            c = uint(crcTable[
+	                (c ^ png.readUnsignedByte()) & 
+	                uint(0xff)] ^ uint(c >>> 8));
+	        }
+	        c = uint(c^uint(0xffffffff));
+	        png.position = e;
+	        png.writeUnsignedInt(c);
+	    }
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/adobe/serialization/json/JSON.as b/src/charts/as/com/adobe/serialization/json/JSON.as
new file mode 100644
index 0000000..1d2477e
--- /dev/null
+++ b/src/charts/as/com/adobe/serialization/json/JSON.as
@@ -0,0 +1,88 @@
+/*
+Adobe Systems Incorporated(r) Source Code License Agreement
+Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
+	
+Please read this Source Code License Agreement carefully before using
+the source code.
+	
+Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable copyright license, to reproduce,
+prepare derivative works of, publicly display, publicly perform, and
+distribute this source code and such derivative works in source or
+object code form without any attribution requirements.
+	
+The name "Adobe Systems Incorporated" must not be used to endorse or promote products
+derived from the source code without prior written permission.
+	
+You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
+against any loss, damage, claims or lawsuits, including attorney's
+fees that arise or result from your use or distribution of the source
+code.
+	
+THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
+ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
+NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
+OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package com.adobe.serialization.json {
+
+	/**
+	 * This class provides encoding and decoding of the JSON format.
+	 *
+	 * Example usage:
+	 * <code>
+	 * 		// create a JSON string from an internal object
+	 * 		JSON.encode( myObject );
+	 *
+	 *		// read a JSON string into an internal object
+	 *		var myObject:Object = JSON.decode( jsonString );
+	 *	</code>
+	 */
+	public class JSON {
+	
+	
+		/**
+		 * Encodes a object into a JSON string.
+		 *
+		 * @param o The object to create a JSON string for
+		 * @return the JSON string representing o
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public static function encode( o:Object ):String {
+			
+			var encoder:JSONEncoder = new JSONEncoder( o );
+			return encoder.getString();
+		
+		}
+		
+		/**
+		 * Decodes a JSON string into a native object.
+		 * 
+		 * @param s The JSON string representing the object
+		 * @return A native object as specified by s
+		 * @throw JSONParseError
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public static function decode( s:String ):* {
+			
+			var decoder:JSONDecoder = new JSONDecoder( s )
+			return decoder.getValue();
+			
+		}
+	
+	}
+
+}
\ No newline at end of file
diff --git a/src/charts/as/com/adobe/serialization/json/JSONDecoder.as b/src/charts/as/com/adobe/serialization/json/JSONDecoder.as
new file mode 100644
index 0000000..ba35ebb
--- /dev/null
+++ b/src/charts/as/com/adobe/serialization/json/JSONDecoder.as
@@ -0,0 +1,224 @@
+/*
+Adobe Systems Incorporated(r) Source Code License Agreement
+Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
+	
+Please read this Source Code License Agreement carefully before using
+the source code.
+	
+Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable copyright license, to reproduce,
+prepare derivative works of, publicly display, publicly perform, and
+distribute this source code and such derivative works in source or
+object code form without any attribution requirements.
+	
+The name "Adobe Systems Incorporated" must not be used to endorse or promote products
+derived from the source code without prior written permission.
+	
+You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
+against any loss, damage, claims or lawsuits, including attorney's
+fees that arise or result from your use or distribution of the source
+code.
+	
+THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
+ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
+NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
+OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package com.adobe.serialization.json {
+
+	public class JSONDecoder {
+		
+		/** The value that will get parsed from the JSON string */
+		private var value:*;
+		
+		/** The tokenizer designated to read the JSON string */
+		private var tokenizer:JSONTokenizer;
+		
+		/** The current token from the tokenizer */
+		private var token:JSONToken;
+		
+		/**
+		 * Constructs a new JSONDecoder to parse a JSON string 
+		 * into a native object.
+		 *
+		 * @param s The JSON string to be converted
+		 *		into a native object
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function JSONDecoder( s:String ) {
+			
+			tokenizer = new JSONTokenizer( s );
+			
+			nextToken();
+			value = parseValue();
+		}
+		
+		/**
+		 * Gets the internal object that was created by parsing
+		 * the JSON string passed to the constructor.
+		 *
+		 * @return The internal object representation of the JSON
+		 * 		string that was passed to the constructor
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function getValue():* {
+			return value;
+		}
+		
+		/**
+		 * Returns the next token from the tokenzier reading
+		 * the JSON string
+		 */
+		private function nextToken():JSONToken {
+			return token = tokenizer.getNextToken();
+		}
+		
+		/**
+		 * Attempt to parse an array
+		 */
+		private function parseArray():Array {
+			// create an array internally that we're going to attempt
+			// to parse from the tokenizer
+			var a:Array = new Array();
+			
+			// grab the next token from the tokenizer to move
+			// past the opening [
+			nextToken();
+			
+			// check to see if we have an empty array
+			if ( token.type == JSONTokenType.RIGHT_BRACKET ) {
+				// we're done reading the array, so return it
+				return a;
+			}
+			
+			// deal with elements of the array, and use an "infinite"
+			// loop because we could have any amount of elements
+			while ( true ) {
+				// read in the value and add it to the array
+				a.push ( parseValue() );
+			
+				// after the value there should be a ] or a ,
+				nextToken();
+				
+				if ( token.type == JSONTokenType.RIGHT_BRACKET ) {
+					// we're done reading the array, so return it
+					return a;
+				} else if ( token.type == JSONTokenType.COMMA ) {
+					// move past the comma and read another value
+					nextToken();
+				} else {
+					tokenizer.parseError( "Expecting ] or , but found " + token.value );
+				}
+			}
+            return null;
+		}
+		
+		/**
+		 * Attempt to parse an object
+		 */
+		private function parseObject():Object {
+			// create the object internally that we're going to
+			// attempt to parse from the tokenizer
+			var o:Object = new Object();
+						
+			// store the string part of an object member so
+			// that we can assign it a value in the object
+			var key:String
+			
+			// grab the next token from the tokenizer
+			nextToken();
+			
+			// check to see if we have an empty object
+			if ( token.type == JSONTokenType.RIGHT_BRACE ) {
+				// we're done reading the object, so return it
+				return o;
+			}
+			
+			// deal with members of the object, and use an "infinite"
+			// loop because we could have any amount of members
+			while ( true ) {
+			
+				if ( token.type == JSONTokenType.STRING ) {
+					// the string value we read is the key for the object
+					key = String( token.value );
+					
+					// move past the string to see what's next
+					nextToken();
+					
+					// after the string there should be a :
+					if ( token.type == JSONTokenType.COLON ) {
+						
+						// move past the : and read/assign a value for the key
+						nextToken();
+						o[key] = parseValue();	
+						
+						// move past the value to see what's next
+						nextToken();
+						
+						// after the value there's either a } or a ,
+						if ( token.type == JSONTokenType.RIGHT_BRACE ) {
+							// // we're done reading the object, so return it
+							return o;
+							
+						} else if ( token.type == JSONTokenType.COMMA ) {
+							// skip past the comma and read another member
+							nextToken();
+						} else {
+							tokenizer.parseError( "Expecting } or , but found " + token.value );
+						}
+					} else {
+						tokenizer.parseError( "Expecting : but found " + token.value );
+					}
+				} else {
+					tokenizer.parseError( "Expecting string but found " + token.value );
+				}
+			}
+            return null;
+		}
+		
+		/**
+		 * Attempt to parse a value
+		 */
+		private function parseValue():Object
+		{
+			// Catch errors when the input stream ends abruptly
+			if ( token == null )
+			{
+				tokenizer.parseError( "Unexpected end of input" );
+			}
+					
+			switch ( token.type ) {
+				case JSONTokenType.LEFT_BRACE:
+					return parseObject();
+					
+				case JSONTokenType.LEFT_BRACKET:
+					return parseArray();
+					
+				case JSONTokenType.STRING:
+				case JSONTokenType.NUMBER:
+				case JSONTokenType.TRUE:
+				case JSONTokenType.FALSE:
+				case JSONTokenType.NULL:
+					return token.value;
+
+				default:
+					tokenizer.parseError( "Unexpected " + token.value );
+					
+			}
+            return null;
+		}
+	}
+}
diff --git a/src/charts/as/com/adobe/serialization/json/JSONEncoder.as b/src/charts/as/com/adobe/serialization/json/JSONEncoder.as
new file mode 100644
index 0000000..f371a17
--- /dev/null
+++ b/src/charts/as/com/adobe/serialization/json/JSONEncoder.as
@@ -0,0 +1,302 @@
+/*
+Adobe Systems Incorporated(r) Source Code License Agreement
+Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
+	
+Please read this Source Code License Agreement carefully before using
+the source code.
+	
+Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable copyright license, to reproduce,
+prepare derivative works of, publicly display, publicly perform, and
+distribute this source code and such derivative works in source or
+object code form without any attribution requirements.
+	
+The name "Adobe Systems Incorporated" must not be used to endorse or promote products
+derived from the source code without prior written permission.
+	
+You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
+against any loss, damage, claims or lawsuits, including attorney's
+fees that arise or result from your use or distribution of the source
+code.
+	
+THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
+ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
+NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
+OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package com.adobe.serialization.json 
+{
+
+	import flash.utils.describeType;
+
+	public class JSONEncoder {
+	
+		/** The string that is going to represent the object we're encoding */
+		private var jsonString:String;
+		
+		/**
+		 * Creates a new JSONEncoder.
+		 *
+		 * @param o The object to encode as a JSON string
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function JSONEncoder( value:* ) {
+			jsonString = convertToString( value );
+		
+		}
+		
+		/**
+		 * Gets the JSON string from the encoder.
+		 *
+		 * @return The JSON string representation of the object
+		 * 		that was passed to the constructor
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function getString():String {
+			return jsonString;
+		}
+		
+		/**
+		 * Converts a value to it's JSON string equivalent.
+		 *
+		 * @param value The value to convert.  Could be any 
+		 *		type (object, number, array, etc)
+		 */
+		private function convertToString( value:* ):String {
+			
+			// determine what value is and convert it based on it's type
+			if ( value is String ) {
+				
+				// escape the string so it's formatted correctly
+				return escapeString( value as String );
+				
+			} else if ( value is Number ) {
+				
+				// only encode numbers that finate
+				return isFinite( value as Number) ? value.toString() : "null";
+
+			} else if ( value is Boolean ) {
+				
+				// convert boolean to string easily
+				return value ? "true" : "false";
+
+			} else if ( value is Array ) {
+			
+				// call the helper method to convert an array
+				return arrayToString( value as Array );
+			
+			} else if ( value is Object && value != null ) {
+			
+				// call the helper method to convert an object
+				return objectToString( value );
+			}
+            return "null";
+		}
+		
+		/**
+		 * Escapes a string accoding to the JSON specification.
+		 *
+		 * @param str The string to be escaped
+		 * @return The string with escaped special characters
+		 * 		according to the JSON specification
+		 */
+		private function escapeString( str:String ):String {
+			// create a string to store the string's jsonstring value
+			var s:String = "";
+			// current character in the string we're processing
+			var ch:String;
+			// store the length in a local variable to reduce lookups
+			var len:Number = str.length;
+			
+			// loop over all of the characters in the string
+			for ( var i:int = 0; i < len; i++ ) {
+			
+				// examine the character to determine if we have to escape it
+				ch = str.charAt( i );
+				switch ( ch ) {
+				
+					case '"':	// quotation mark
+						s += "\\\"";
+						break;
+						
+					//case '/':	// solidus
+					//	s += "\\/";
+					//	break;
+						
+					case '\\':	// reverse solidus
+						s += "\\\\";
+						break;
+						
+					case '\b':	// bell
+						s += "\\b";
+						break;
+						
+					case '\f':	// form feed
+						s += "\\f";
+						break;
+						
+					case '\n':	// newline
+						s += "\\n";
+						break;
+						
+					case '\r':	// carriage return
+						s += "\\r";
+						break;
+						
+					case '\t':	// horizontal tab
+						s += "\\t";
+						break;
+						
+					default:	// everything else
+						
+						// check for a control character and escape as unicode
+						if ( ch < ' ' ) {
+							// get the hex digit(s) of the character (either 1 or 2 digits)
+							var hexCode:String = ch.charCodeAt( 0 ).toString( 16 );
+							
+							// ensure that there are 4 digits by adjusting
+							// the # of zeros accordingly.
+							var zeroPad:String = hexCode.length == 2 ? "00" : "000";
+							
+							// create the unicode escape sequence with 4 hex digits
+							s += "\\u" + zeroPad + hexCode;
+						} else {
+						
+							// no need to do any special encoding, just pass-through
+							s += ch;
+							
+						}
+				}	// end switch
+				
+			}	// end for loop
+						
+			return "\"" + s + "\"";
+		}
+		
+		/**
+		 * Converts an array to it's JSON string equivalent
+		 *
+		 * @param a The array to convert
+		 * @return The JSON string representation of <code>a</code>
+		 */
+		private function arrayToString( a:Array ):String {
+			// create a string to store the array's jsonstring value
+			var s:String = "";
+			
+			// loop over the elements in the array and add their converted
+			// values to the string
+			for ( var i:int = 0; i < a.length; i++ ) {
+				// when the length is 0 we're adding the first element so
+				// no comma is necessary
+				if ( s.length > 0 ) {
+					// we've already added an element, so add the comma separator
+					s += ","
+				}
+				
+				// convert the value to a string
+				s += convertToString( a[i] );	
+			}
+			
+			// KNOWN ISSUE:  In ActionScript, Arrays can also be associative
+			// objects and you can put anything in them, ie:
+			//		myArray["foo"] = "bar";
+			//
+			// These properties aren't picked up in the for loop above because
+			// the properties don't correspond to indexes.  However, we're
+			// sort of out luck because the JSON specification doesn't allow
+			// these types of array properties.
+			//
+			// So, if the array was also used as an associative object, there
+			// may be some values in the array that don't get properly encoded.
+			//
+			// A possible solution is to instead encode the Array as an Object
+			// but then it won't get decoded correctly (and won't be an
+			// Array instance)
+						
+			// close the array and return it's string value
+			return "[" + s + "]";
+		}
+		
+		/**
+		 * Converts an object to it's JSON string equivalent
+		 *
+		 * @param o The object to convert
+		 * @return The JSON string representation of <code>o</code>
+		 */
+		private function objectToString( o:Object ):String
+		{
+			// create a string to store the object's jsonstring value
+			var s:String = "";
+			
+			// determine if o is a class instance or a plain object
+			var classInfo:XML = describeType( o );
+			if ( classInfo. at name.toString() == "Object" )
+			{
+				// the value of o[key] in the loop below - store this 
+				// as a variable so we don't have to keep looking up o[key]
+				// when testing for valid values to convert
+				var value:Object;
+				
+				// loop over the keys in the object and add their converted
+				// values to the string
+				for ( var key:String in o )
+				{
+					// assign value to a variable for quick lookup
+					value = o[key];
+					
+					// don't add function's to the JSON string
+					if ( value is Function )
+					{
+						// skip this key and try another
+						continue;
+					}
+					
+					// when the length is 0 we're adding the first item so
+					// no comma is necessary
+					if ( s.length > 0 ) {
+						// we've already added an item, so add the comma separator
+						s += ","
+					}
+					
+					s += escapeString( key ) + ":" + convertToString( value );
+				}
+			}
+			else // o is a class instance
+			{
+				// Loop over all of the variables and accessors in the class and 
+				// serialize them along with their values.
+				for each ( var v:XML in classInfo..*.( name() == "variable" || name() == "accessor" ) )
+				{
+					// When the length is 0 we're adding the first item so
+					// no comma is necessary
+					if ( s.length > 0 ) {
+						// We've already added an item, so add the comma separator
+						s += ","
+					}
+					
+					s += escapeString( v. at name.toString() ) + ":" 
+							+ convertToString( o[ v. at name ] );
+				}
+				
+			}
+			
+			return "{" + s + "}";
+		}
+
+		
+	}
+	
+}
diff --git a/src/charts/as/com/adobe/serialization/json/JSONParseError.as b/src/charts/as/com/adobe/serialization/json/JSONParseError.as
new file mode 100644
index 0000000..b8c0ecf
--- /dev/null
+++ b/src/charts/as/com/adobe/serialization/json/JSONParseError.as
@@ -0,0 +1,90 @@
+/*
+Adobe Systems Incorporated(r) Source Code License Agreement
+Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
+	
+Please read this Source Code License Agreement carefully before using
+the source code.
+	
+Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable copyright license, to reproduce,
+prepare derivative works of, publicly display, publicly perform, and
+distribute this source code and such derivative works in source or
+object code form without any attribution requirements.
+	
+The name "Adobe Systems Incorporated" must not be used to endorse or promote products
+derived from the source code without prior written permission.
+	
+You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
+against any loss, damage, claims or lawsuits, including attorney's
+fees that arise or result from your use or distribution of the source
+code.
+	
+THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
+ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
+NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
+OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package com.adobe.serialization.json {
+
+	/**
+	 *
+	 *
+	 */
+	public class JSONParseError extends Error 	{
+	
+		/** The location in the string where the error occurred */
+		private var _location:int;
+		
+		/** The string in which the parse error occurred */
+		private var _text:String;
+	
+		/**
+		 * Constructs a new JSONParseError.
+		 *
+		 * @param message The error message that occured during parsing
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function JSONParseError( message:String = "", location:int = 0, text:String = "") {
+			super( message );
+			//name = "JSONParseError";
+			_location = location;
+			_text = text;
+		}
+
+		/**
+		 * Provides read-only access to the location variable.
+		 *
+		 * @return The location in the string where the error occurred
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function get location():int {
+			return _location;
+		}
+		
+		/**
+		 * Provides read-only access to the text variable.
+		 *
+		 * @return The string in which the error occurred
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function get text():String {
+			return _text;
+		}
+	}
+	
+}
\ No newline at end of file
diff --git a/src/charts/as/com/adobe/serialization/json/JSONToken.as b/src/charts/as/com/adobe/serialization/json/JSONToken.as
new file mode 100644
index 0000000..51e3714
--- /dev/null
+++ b/src/charts/as/com/adobe/serialization/json/JSONToken.as
@@ -0,0 +1,107 @@
+/*
+Adobe Systems Incorporated(r) Source Code License Agreement
+Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
+	
+Please read this Source Code License Agreement carefully before using
+the source code.
+	
+Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable copyright license, to reproduce,
+prepare derivative works of, publicly display, publicly perform, and
+distribute this source code and such derivative works in source or
+object code form without any attribution requirements.
+	
+The name "Adobe Systems Incorporated" must not be used to endorse or promote products
+derived from the source code without prior written permission.
+	
+You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
+against any loss, damage, claims or lawsuits, including attorney's
+fees that arise or result from your use or distribution of the source
+code.
+	
+THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
+ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
+NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
+OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package com.adobe.serialization.json {
+
+	public class JSONToken {
+	
+		private var _type:int;
+		private var _value:Object;
+		
+		/**
+		 * Creates a new JSONToken with a specific token type and value.
+		 *
+		 * @param type The JSONTokenType of the token
+		 * @param value The value of the token
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function JSONToken( type:int = -1 /* JSONTokenType.UNKNOWN */, value:Object = null ) {
+			_type = type;
+			_value = value;
+		}
+		
+		/**
+		 * Returns the type of the token.
+		 *
+		 * @see com.adobe.serialization.json.JSONTokenType
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function get type():int {
+			return _type;	
+		}
+		
+		/**
+		 * Sets the type of the token.
+		 *
+		 * @see com.adobe.serialization.json.JSONTokenType
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function set type( value:int ):void {
+			_type = value;	
+		}
+		
+		/**
+		 * Gets the value of the token
+		 *
+		 * @see com.adobe.serialization.json.JSONTokenType
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function get value():Object {
+			return _value;	
+		}
+		
+		/**
+		 * Sets the value of the token
+		 *
+		 * @see com.adobe.serialization.json.JSONTokenType
+		 * @langversion ActionScript 3.0
+		 * @playerversion Flash 9.0
+		 * @tiptext
+		 */
+		public function set value ( v:Object ):void {
+			_value = v;	
+		}
+
+	}
+	
+}
\ No newline at end of file
diff --git a/src/charts/as/com/adobe/serialization/json/JSONTokenType.as b/src/charts/as/com/adobe/serialization/json/JSONTokenType.as
new file mode 100644
index 0000000..398a0f4
--- /dev/null
+++ b/src/charts/as/com/adobe/serialization/json/JSONTokenType.as
@@ -0,0 +1,70 @@
+/*
+Adobe Systems Incorporated(r) Source Code License Agreement
+Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
+	
+Please read this Source Code License Agreement carefully before using
+the source code.
+	
+Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable copyright license, to reproduce,
+prepare derivative works of, publicly display, publicly perform, and
+distribute this source code and such derivative works in source or
+object code form without any attribution requirements.
+	
+The name "Adobe Systems Incorporated" must not be used to endorse or promote products
+derived from the source code without prior written permission.
+	
+You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
+against any loss, damage, claims or lawsuits, including attorney's
+fees that arise or result from your use or distribution of the source
+code.
+	
+THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
+ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
+NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
+OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package com.adobe.serialization.json {
+
+	/**
+	 * Class containing constant values for the different types
+	 * of tokens in a JSON encoded string.
+	 */
+	public class JSONTokenType {
+	
+		public static const UNKNOWN:int = -1;
+		
+		public static const COMMA:int = 0;
+		
+		public static const LEFT_BRACE:int = 1;
+		
+		public static const RIGHT_BRACE:int = 2;
+		
+		public static const LEFT_BRACKET:int = 3;
+		
+		public static const RIGHT_BRACKET:int = 4;
+		
+		public static const COLON:int = 6;
+		
+		public static const TRUE:int = 7;
+		
+		public static const FALSE:int = 8;
+		
+		public static const NULL:int = 9;
+		
+		public static const STRING:int = 10;
+		
+		public static const NUMBER:int = 11;
+		
+	}
+	
+}
\ No newline at end of file
diff --git a/src/charts/as/com/adobe/serialization/json/JSONTokenizer.as b/src/charts/as/com/adobe/serialization/json/JSONTokenizer.as
new file mode 100644
index 0000000..6e765a0
--- /dev/null
+++ b/src/charts/as/com/adobe/serialization/json/JSONTokenizer.as
@@ -0,0 +1,550 @@
+/*
+Adobe Systems Incorporated(r) Source Code License Agreement
+Copyright(c) 2005 Adobe Systems Incorporated. All rights reserved.
+	
+Please read this Source Code License Agreement carefully before using
+the source code.
+	
+Adobe Systems Incorporated grants to you a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable copyright license, to reproduce,
+prepare derivative works of, publicly display, publicly perform, and
+distribute this source code and such derivative works in source or
+object code form without any attribution requirements.
+	
+The name "Adobe Systems Incorporated" must not be used to endorse or promote products
+derived from the source code without prior written permission.
+	
+You agree to indemnify, hold harmless and defend Adobe Systems Incorporated from and
+against any loss, damage, claims or lawsuits, including attorney's
+fees that arise or result from your use or distribution of the source
+code.
+	
+THIS SOURCE CODE IS PROVIDED "AS IS" AND "WITH ALL FAULTS", WITHOUT
+ANY TECHNICAL SUPPORT OR ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ALSO, THERE IS NO WARRANTY OF
+NON-INFRINGEMENT, TITLE OR QUIET ENJOYMENT. IN NO EVENT SHALL MACROMEDIA
+OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOURCE CODE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+package com.adobe.serialization.json {
+
+	public class JSONTokenizer {
+	
+		/** The object that will get parsed from the JSON string */
+		private var obj:Object;
+		
+		/** The JSON string to be parsed */
+		private var jsonString:String;
+		
+		/** The current parsing location in the JSON string */
+		private var loc:int;
+		
+		/** The current character in the JSON string during parsing */
+		private var ch:String;
+		
+		/**
+		 * Constructs a new JSONDecoder to parse a JSON string 
+		 * into a native object.
+		 *
+		 * @param s The JSON string to be converted
+		 *		into a native object
+		 */
+		public function JSONTokenizer( s:String ) {
+			jsonString = s;
+			loc = 0;
+			
+			// prime the pump by getting the first character
+			nextChar();
+		}
+		
+		/**
+		 * Gets the next token in the input sting and advances
+		* the character to the next character after the token
+		 */
+		public function getNextToken():JSONToken {
+			var token:JSONToken = new JSONToken();
+			
+			// skip any whitespace / comments since the last 
+			// token was read
+			skipIgnored();
+						
+			// examine the new character and see what we have...
+			switch ( ch ) {
+				
+				case '{':
+					token.type = JSONTokenType.LEFT_BRACE;
+					token.value = '{';
+					nextChar();
+					break
+					
+				case '}':
+					token.type = JSONTokenType.RIGHT_BRACE;
+					token.value = '}';
+					nextChar();
+					break
+					
+				case '[':
+					token.type = JSONTokenType.LEFT_BRACKET;
+					token.value = '[';
+					nextChar();
+					break
+					
+				case ']':
+					token.type = JSONTokenType.RIGHT_BRACKET;
+					token.value = ']';
+					nextChar();
+					break
+				
+				case ',':
+					token.type = JSONTokenType.COMMA;
+					token.value = ',';
+					nextChar();
+					break
+					
+				case ':':
+					token.type = JSONTokenType.COLON;
+					token.value = ':';
+					nextChar();
+					break;
+					
+				case 't': // attempt to read true
+					var possibleTrue:String = "t" + nextChar() + nextChar() + nextChar();
+					
+					if ( possibleTrue == "true" ) {
+						token.type = JSONTokenType.TRUE;
+						token.value = true;
+						nextChar();
+					} else {
+						parseError( "Expecting 'true' but found " + possibleTrue );
+					}
+					
+					break;
+					
+				case 'f': // attempt to read false
+					var possibleFalse:String = "f" + nextChar() + nextChar() + nextChar() + nextChar();
+					
+					if ( possibleFalse == "false" ) {
+						token.type = JSONTokenType.FALSE;
+						token.value = false;
+						nextChar();
+					} else {
+						parseError( "Expecting 'false' but found " + possibleFalse );
+					}
+					
+					break;
+					
+				case 'n': // attempt to read null
+				
+					var possibleNull:String = "n" + nextChar() + nextChar() + nextChar();
+					
+					if ( possibleNull == "null" ) {
+						token.type = JSONTokenType.NULL;
+						token.value = null;
+						nextChar();
+					} else {
+						parseError( "Expecting 'null' but found " + possibleNull );
+					}
+					
+					break;
+					
+				case '"': // the start of a string
+					token = readString();
+					break;
+					
+				default: 
+					// see if we can read a number
+					if ( isDigit( ch ) || ch == '-' ) {
+						token = readNumber();
+					} else if ( ch == '' ) {
+						// check for reading past the end of the string
+						return null;
+					} else {						
+						// not sure what was in the input string - it's not
+						// anything we expected
+						parseError( "Unexpected " + ch + " encountered" );
+					}
+			}
+			
+			return token;
+		}
+		
+		/**
+		 * Attempts to read a string from the input string.  Places
+		 * the character location at the first character after the
+		 * string.  It is assumed that ch is " before this method is called.
+		 *
+		 * @return the JSONToken with the string value if a string could
+		 *		be read.  Throws an error otherwise.
+		 */
+		private function readString():JSONToken {
+			// the token for the string we'll try to read
+			var token:JSONToken = new JSONToken();
+			token.type = JSONTokenType.STRING;
+			
+			// the string to store the string we'll try to read
+			var string:String = "";
+			
+			// advance past the first "
+			nextChar();
+			
+			while ( ch != '"' && ch != '' ) {
+								
+				// unescape the escape sequences in the string
+				if ( ch == '\\' ) {
+					
+					// get the next character so we know what
+					// to unescape
+					nextChar();
+					
+					switch ( ch ) {
+						
+						case '"': // quotation mark
+							string += '"';
+							break;
+						
+						case '/':	// solidus
+							string += "/";
+							break;
+							
+						case '\\':	// reverse solidus
+							string += '\\';
+							break;
+							
+						case 'b':	// bell
+							string += '\b';
+							break;
+							
+						case 'f':	// form feed
+							string += '\f';
+							break;
+							
+						case 'n':	// newline
+							string += '\n';
+							break;
+							
+						case 'r':	// carriage return
+							string += '\r';
+							break;
+							
+						case 't':	// horizontal tab
+							string += '\t'
+							break;
+						
+						case 'u':
+							// convert a unicode escape sequence
+							// to it's character value - expecting
+							// 4 hex digits
+							
+							// save the characters as a string we'll convert to an int
+							var hexValue:String = "";
+							
+							// try to find 4 hex characters
+							for ( var i:int = 0; i < 4; i++ ) {
+								// get the next character and determine
+								// if it's a valid hex digit or not
+								if ( !isHexDigit( nextChar() ) ) {
+									parseError( " Excepted a hex digit, but found: " + ch );
+								}
+								// valid, add it to the value
+								hexValue += ch;
+							}
+							
+							// convert hexValue to an integer, and use that
+							// integrer value to create a character to add
+							// to our string.
+							string += String.fromCharCode( parseInt( hexValue, 16 ) );
+							
+							break;
+					
+						default:
+							// couldn't unescape the sequence, so just
+							// pass it through
+							string += '\\' + ch;
+						
+					}
+					
+				} else {
+					// didn't have to unescape, so add the character to the string
+					string += ch;
+					
+				}
+				
+				// move to the next character
+				nextChar();
+				
+			}
+			
+			// we read past the end of the string without closing it, which
+			// is a parse error
+			if ( ch == '' ) {
+				parseError( "Unterminated string literal" );
+			}
+			
+			// move past the closing " in the input string
+			nextChar();
+			
+			// attach to the string to the token so we can return it
+			token.value = string;
+			
+			return token;
+		}
+		
+		/**
+		 * Attempts to read a number from the input string.  Places
+		 * the character location at the first character after the
+		 * number.
+		 * 
+		 * @return The JSONToken with the number value if a number could
+		 * 		be read.  Throws an error otherwise.
+		 */
+		private function readNumber():JSONToken {
+			// the token for the number we'll try to read
+			var token:JSONToken = new JSONToken();
+			token.type = JSONTokenType.NUMBER;
+			
+			// the string to accumulate the number characters
+			// into that we'll convert to a number at the end
+			var input:String = "";
+			
+			// check for a negative number
+			if ( ch == '-' ) {
+				input += '-';
+				nextChar();
+			}
+			
+			// the number must start with a digit
+			if ( !isDigit( ch ) )
+			{
+				parseError( "Expecting a digit" );
+			}
+			
+			// 0 can only be the first digit if it
+			// is followed by a decimal point
+			if ( ch == '0' )
+			{
+				input += ch;
+				nextChar();
+				
+				// make sure no other digits come after 0
+				if ( isDigit( ch ) )
+				{
+					parseError( "A digit cannot immediately follow 0" );
+				}
+			}
+			else
+			{
+				// read numbers while we can
+				while ( isDigit( ch ) ) {
+					input += ch;
+					nextChar();
+				}
+			}
+			
+			// check for a decimal value
+			if ( ch == '.' ) {
+				input += '.';
+				nextChar();
+				
+				// after the decimal there has to be a digit
+				if ( !isDigit( ch ) )
+				{
+					parseError( "Expecting a digit" );
+				}
+				
+				// read more numbers to get the decimal value
+				while ( isDigit( ch ) ) {
+					input += ch;
+					nextChar();
+				}
+			}
+			
+			// check for scientific notation
+			if ( ch == 'e' || ch == 'E' )
+			{
+				input += "e"
+				nextChar();
+				// check for sign
+				if ( ch == '+' || ch == '-' )
+				{
+					input += ch;
+					nextChar();
+				}
+				
+				// require at least one number for the exponent
+				// in this case
+				if ( !isDigit( ch ) )
+				{
+					parseError( "Scientific notation number needs exponent value" );
+				}
+							
+				// read in the exponent
+				while ( isDigit( ch ) )
+				{
+					input += ch;
+					nextChar();
+				}
+			}
+			
+			// convert the string to a number value
+			var num:Number = Number( input );
+			
+			if ( isFinite( num ) && !isNaN( num ) ) {
+				token.value = num;
+				return token;
+			} else {
+				parseError( "Number " + num + " is not valid!" );
+			}
+            return null;
+		}
+
+		/**
+		 * Reads the next character in the input
+		 * string and advances the character location.
+		 *
+		 * @return The next character in the input string, or
+		 *		null if we've read past the end.
+		 */
+		private function nextChar():String {
+			return ch = jsonString.charAt( loc++ );
+		}
+		
+		/**
+		 * Advances the character location past any
+		 * sort of white space and comments
+		 */
+		private function skipIgnored():void {
+			skipWhite();
+			skipComments();
+			skipWhite();
+		}
+		
+		/**
+		 * Skips comments in the input string, either
+		 * single-line or multi-line.  Advances the character
+		 * to the first position after the end of the comment.
+		 */
+		private function skipComments():void {
+			if ( ch == '/' ) {
+				// Advance past the first / to find out what type of comment
+				nextChar();
+				switch ( ch ) {
+					case '/': // single-line comment, read through end of line
+						
+						// Loop over the characters until we find
+						// a newline or until there's no more characters left
+						do {
+							nextChar();
+						} while ( ch != '\n' && ch != '' )
+						
+						// move past the \n
+						nextChar();
+						
+						break;
+					
+					case '*': // multi-line comment, read until closing */
+
+						// move past the opening *
+						nextChar();
+						
+						// try to find a trailing */
+						while ( true ) {
+							if ( ch == '*' ) {
+								// check to see if we have a closing /
+								nextChar();
+								if ( ch == '/') {
+									// move past the end of the closing */
+									nextChar();
+									break;
+								}
+							} else {
+								// move along, looking if the next character is a *
+								nextChar();
+							}
+							
+							// when we're here we've read past the end of 
+							// the string without finding a closing */, so error
+							if ( ch == '' ) {
+								parseError( "Multi-line comment not closed" );
+							}
+						}
+
+						break;
+					
+					// Can't match a comment after a /, so it's a parsing error
+					default:
+						parseError( "Unexpected " + ch + " encountered (expecting '/' or '*' )" );
+				}
+			}
+			
+		}
+		
+		
+		/**
+		 * Skip any whitespace in the input string and advances
+		 * the character to the first character after any possible
+		 * whitespace.
+		 */
+		private function skipWhite():void {
+			
+			// As long as there are spaces in the input 
+			// stream, advance the current location pointer
+			// past them
+			while ( isWhiteSpace( ch ) ) {
+				nextChar();
+			}
+			
+		}
+		
+		/**
+		 * Determines if a character is whitespace or not.
+		 *
+		 * @return True if the character passed in is a whitespace
+		 *	character
+		 */
+		private function isWhiteSpace( ch:String ):Boolean {
+			return ( ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r' );
+		}
+		
+		/**
+		 * Determines if a character is a digit [0-9].
+		 *
+		 * @return True if the character passed in is a digit
+		 */
+		private function isDigit( ch:String ):Boolean {
+			return ( ch >= '0' && ch <= '9' );
+		}
+		
+		/**
+		 * Determines if a character is a digit [0-9].
+		 *
+		 * @return True if the character passed in is a digit
+		 */
+		private function isHexDigit( ch:String ):Boolean {
+			// get the uppercase value of ch so we only have
+			// to compare the value between 'A' and 'F'
+			var uc:String = ch.toUpperCase();
+			
+			// a hex digit is a digit of A-F, inclusive ( using
+			// our uppercase constraint )
+			return ( isDigit( ch ) || ( uc >= 'A' && uc <= 'F' ) );
+		}
+	
+		/**
+		 * Raises a parsing error with a specified message, tacking
+		 * on the error location and the original string.
+		 *
+		 * @param message The message indicating why the error occurred
+		 */
+		public function parseError( message:String ):void {
+			throw new JSONParseError( message, loc, jsonString );
+		}
+	}
+	
+}
diff --git a/src/charts/as/com/yahoo/astra/animation/Animation.as b/src/charts/as/com/yahoo/astra/animation/Animation.as
new file mode 100644
index 0000000..c6232b2
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/animation/Animation.as
@@ -0,0 +1,555 @@
+package com.yahoo.astra.animation
+{
+	import flash.events.EventDispatcher;
+	import flash.events.TimerEvent;
+	import flash.utils.Dictionary;
+	import flash.utils.Timer;
+	import flash.utils.getTimer;
+
+	//--------------------------------------
+	//  Events
+	//--------------------------------------
+	
+	/**
+	 * Dispatched when the Animation instance starts.
+	 * 
+	 * @eventType com.yahoo.astra.animation.AnimationEvent.START
+	 */
+	[Event(name="start", type="com.yahoo.astra.animation.AnimationEvent")]
+
+	/**
+	 * Dispatched when the Animation instance has changed.
+	 * 
+	 * @eventType com.yahoo.astra.animation.AnimationEvent.UPDATE
+	 */
+	[Event(name="update", type="com.yahoo.astra.animation.AnimationEvent")]
+
+	/**
+	 * Dispatched when the Animation instance has finished.
+	 * 
+	 * @eventType com.yahoo.astra.animation.AnimationEvent.COMPLETE
+	 */
+	[Event(name="complete", type="com.yahoo.astra.animation.AnimationEvent")]
+
+	/**
+	 * Dispatched when the Animation instance is paused.
+	 * 
+	 * @eventType com.yahoo.astra.animation.AnimationEvent.PAUSE
+	 */
+	[Event(name="pause", type="com.yahoo.astra.animation.AnimationEvent")]
+	
+	/**
+	 * An ultra lightweight animation engine.
+	 * 
+	 * @example The following code animates a Shape from its current location to a new location over a period of two seconds:
+	 * <listing version="3.0">
+	 * // create the square
+	 * var square:Shape = new Shape();
+	 * square.graphics.beginFill( 0xcccccc );
+	 * square.graphics.drawRect( 0, 0, 20, 20 );
+	 * square.graphics.endFill();
+	 * square.x = 20;
+	 * square.y = 20;
+	 * this.addChild( square );
+	 * 
+	 * // animate the square's position
+	 * var animation:Animation = Animation.create( square, 2000, { x: 100, y: 200 } );
+	 * </listing>
+	 * 
+	 * @example The following code will draw a circle and use an Animation instance
+	 * 	to change its alpha property from 0.0 to 1.0 over a period of 1.5 seconds.
+	 * 	It will set the easingFunction property to <code>Back.easeOut</code>, which
+	 *	is an easing function included with Flash CS3. In order to implement this 
+	 *	example, you will need to save this code as a class file and set it as the   
+	 *	Document Class of your flash application.
+	 * 
+	 * <listing version="3.0">
+	 * 	package
+	 * 	{
+	 * 		import fl.motion.easing.Back;
+	 * 		import flash.display.Shape; 
+	 * 		import flash.display.Sprite;
+	 * 		import com.yahoo.astra.animation.Animation;
+	 * 		import com.yahoo.astra.animation.AnimationEvent;
+	 * 	
+	 * 		public class AnimationExample extends Sprite
+	 * 		{
+	 * 			public function AnimationExample()
+	 * 			{
+	 * 				// Create a simple circular display object
+	 * 				this.circle = new Shape();
+	 * 				this.circle.graphics.beginFill(0xcccccc);
+	 * 				this.circle.graphics.drawEllipse(0, 0, 50, 50);
+	 * 				this.circle.graphics.endFill();
+	 * 				this.addChild(circle);
+	 * 	
+	 * 				// Create the instance animating over 1500ms from 0 to 1
+	 * 				this.animation = new Animation( 1500, { alpha: 0.0 }, { alpha: 1.0 } );
+	 * 	
+	 * 				// Use an easing equation
+	 * 				this.animation.easingFunction = Back.easeOut;
+	 * 	
+	 * 				// Listen for events to update our circle's values
+	 * 				this.animation.addEventListener( AnimationEvent.UPDATE, animationUpdateHandler );
+	 * 				this.animation.addEventListener( AnimationEvent.COMPLETE, animationCompleteHandler );
+	 * 			}
+	 * 	
+	 * 			// Should be a member variable so that the garbage collector doesn't
+	 * 			// remove the instance from memory before it finishes
+	 * 			private var animation:Animation;
+	 * 	
+	 * 			// The display object whose properties we will animate
+	 * 			private var circle:Shape;
+	 * 	
+	 * 			private function animationUpdateHandler(event:AnimationEvent):void
+	 * 			{
+	 * 				this.circle.alpha = event.parameters.alpha;
+	 * 			}
+	 * 	
+	 * 			private function animationCompleteHandler(event:AnimationEvent):void
+	 * 			{
+	 * 				this.animationUpdateHandler(event);
+	 * 	
+	 * 				// Set the animation instance to null to ensure garbage collection
+	 * 				this.animation = null;
+	 * 			}
+	 * 		}
+	 * 	}
+	 * </listing>
+	 * @author Josh Tynjala
+	 */
+	public class Animation extends EventDispatcher
+	{
+		
+	//--------------------------------------
+	//  Class Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Hash to get an Animation's target.
+		 */
+		private static var animationToTarget:Dictionary = new Dictionary();
+		
+		/**
+		 * @private
+		 * Hash to get the a target's Animation.
+		 */
+		private static var targetToAnimations:Dictionary = new Dictionary();
+	
+		/**
+		 * @private
+		 * The main timer shared by all Animation instances.
+		 */
+		private static var mainTimer:Timer = new Timer(10);
+	
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+		
+		/**
+		 * Animates one or more properties of a target object. Uses the current values
+		 * of these properties as the starting values.
+		 *
+		 * @param target			the object whose properties will be animated.
+		 * @param duration			the time in milliseconds over which the properties will be animated.		 
+		 * @param parameters		an object containing keys of property names on the object and the ending values.
+		 * @param autoStart			if true (the default), the animation will begin automatically.
+		 *							if false, the returned Animation object will not automatically begin, and
+		 *							one must call the <code>start()</code> function to make it run.
+		 * @param clearAllRunning	If true, all other animations started with <code>create()</code> for this target will be cleared.
+		 * 
+		 * @return					The newly-created Animation instance
+		 */
+		public static function create(target:Object, duration:int, parameters:Object, autoStart:Boolean = true, clearAllRunning:Boolean = false):Animation
+		{
+			var animations:Array = targetToAnimations[target] as Array;
+			if(!animations)
+			{
+				animations = [];
+				targetToAnimations[target] = animations;
+			}
+			
+			//if requested, stop all other animations running for this target
+			if(clearAllRunning && animations.length > 0)
+			{
+				var animationCount:int = animations.length;
+				for(var i:int = 0; i < animationCount; i++)
+				{
+					var oldAnimation:Animation = Animation(animations[i]);
+					//stop it at the current position
+					oldAnimation.pause();
+					removeAnimation(oldAnimation);
+				}
+			}
+			
+			//create the start parameters from the existing properties
+			var startParameters:Object = {};
+			for(var prop:String in parameters)
+			{
+				if(target.hasOwnProperty(prop))
+				{
+					startParameters[prop] = target[prop];
+				}
+				else startParameters[prop] = 0;
+			}
+			
+			//create the Animation instance
+			var animation:Animation = new Animation(duration, startParameters, parameters, autoStart);
+			animation.addEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+			animation.addEventListener(AnimationEvent.COMPLETE, tweenCompleteHandler);
+			animations.push(animation);
+			
+			//reference the target so that we may remove the animation later
+			animationToTarget[animation] = target;
+			
+			return animation;
+		}
+		
+		/**
+		 * Immediately destroys an animation instantiated with <code>create()</code>.
+		 */
+		public static function kill(animation:Animation):void
+		{
+			if(!animation)
+			{
+				return;
+			}
+		
+			if(animation.active)
+			{
+				animation.pause();
+			}
+			removeAnimation(animation);
+		}
+		
+		/**
+		 * @private
+		 * Handles updating the properties on a Animation target.
+		 */
+		private static function tweenUpdateHandler(event:AnimationEvent):void
+		{
+			var animation:Animation = Animation(event.target);
+			var target:Object = animationToTarget[animation];
+			var updatedParameters:Object = event.parameters;
+			for(var prop:String in updatedParameters)
+			{
+				if(target.hasOwnProperty(prop))
+				{
+					target[prop] = updatedParameters[prop];
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Completes a tween for a Animation target.
+		 */
+		private static function tweenCompleteHandler(event:AnimationEvent):void
+		{
+			tweenUpdateHandler(event);
+			
+			var animation:Animation = Animation(event.target);
+			//if the animation is active, that means it has been restarted
+			//and we can leave it running. our listeners will still be valid. 
+			if(!animation.active)
+			{
+				removeAnimation(animation);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Removes an Animation and its target from management.
+		 */
+		private static function removeAnimation(animation:Animation):void
+		{
+			if(!animation)
+			{
+				return;
+			}
+			
+			var target:Object = animationToTarget[animation];
+			animationToTarget[animation] = null;
+			
+			if(target)
+			{
+				//remove the reference to the animation
+				var animations:Array = targetToAnimations[target] as Array;
+				var index:int = animations.indexOf(animation); 
+				animations.splice(index, 1);
+			}
+			
+			animation.removeEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+			animation.removeEventListener(AnimationEvent.COMPLETE, tweenCompleteHandler);
+		}
+		
+		/**
+		 * @private
+		 * Animation uses a single global Timer to save CPU time. This function lets each
+		 * individual instance listen for the timer's events.
+		 */
+		private static function startListenToTimer(handler:Function):void
+		{
+			Animation.mainTimer.addEventListener(TimerEvent.TIMER, handler, false, 0, true);
+			//if this is the first listener, start the timer
+			if(!Animation.mainTimer.running)
+			{
+				Animation.mainTimer.start();
+			}
+		}
+		
+
+		/**
+		 * @private
+		 * Animation uses a single global Timer to save CPU time. This function lets each
+		 * individual instance stop listening for the timer's events.
+		 */
+		private static function stopListenToTimer(handler:Function):void
+		{
+			Animation.mainTimer.removeEventListener(TimerEvent.TIMER, handler);
+			//if the timer doesn't have any more listeners, we don't need to keep it running
+			if(!Animation.mainTimer.hasEventListener(TimerEvent.TIMER))
+			{
+				Animation.mainTimer.stop();
+			}
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+		
+		/**
+		 * Constructor.
+		 * 
+		 * @param duration		the time in milliseconds that the tween will run
+		 * @param start			the starting values of the tween
+		 * @param end			the ending values of the tween
+		 * @param autoStart		if false, the tween will not run until start() is called
+		 */
+		public function Animation(duration:int, start:Object, end:Object, autoStart:Boolean = true)
+		{
+			super();
+			this._duration = duration;
+			this._startParameters = start;
+			this.endParameters = end;
+			
+			if(autoStart)
+			{
+				this.start();
+			}
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Storage for the active property.
+		 */
+		private var _active:Boolean = false;
+		
+		/**
+		 * If true, the animation is currently running.
+		 */
+		public function get active():Boolean
+		{
+			return this._active;
+		}
+		
+		/**
+		 * @private
+		 * The time at which the animation last started running. If it has been paused
+		 * one or more times, this value is reset to the restart time.
+		 */
+		private var _startTime:int;
+		
+		/**
+		 * @private
+		 * If the animation is paused, the running time is saved here.
+		 */
+		private var _savedRuntime:int;
+		
+		/**
+		 * @private
+		 * Storage for the duration property.
+		 */
+		private var _duration:int;
+		
+		/**
+		 * The duration in milliseconds that the animation will run.
+		 */
+		public function get duration():int
+		{
+			return this._duration;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the starting values.
+		 */
+		private var _startParameters:Object;
+		
+		/**
+		 * @private
+		 * Storage for the ending values.
+		 */
+		private var _endParameters:Object;
+		
+		/**
+		 * @private
+		 * Used to determine the "ranges" between starting and ending values.
+		 */
+		protected function get endParameters():Object
+		{
+			return this._endParameters;
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function set endParameters(value:Object):void
+		{
+			this._ranges = {};
+			for(var prop:String in value)
+			{
+				var startValue:Number = Number(this._startParameters[prop]);
+				var endValue:Number = Number(value[prop]);
+				var range:Number = endValue - startValue;
+				this._ranges[prop] = range;
+			}
+			this._endParameters = value;
+		}
+		
+		/**
+		 * @private
+		 * The difference between the startParameters and endParameters values.
+		 */
+		private var _ranges:Object;
+		
+		/**
+		 * @private
+		 * Storage for the easingFunction property.
+		 */
+		private var _easingFunction:Function = function(t:Number, b:Number, c:Number, d:Number):Number
+		{
+			return c * t / d + b;
+		}
+		
+		/**
+     	 * The easing function which is used with the tween.
+		 */
+		public function get easingFunction():Function
+		{
+			return this._easingFunction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set easingFunction(value:Function):void
+		{
+			this._easingFunction = value;
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+
+		/**
+		 * Starts the tween. Should be used to restart a paused tween, or to
+		 * start a new tween with autoStart disabled.
+		 */
+		public function start():void
+		{
+			Animation.startListenToTimer(this.timerUpdateHandler);
+			this._startTime = getTimer();
+			this._active = true;
+			this.dispatchEvent(new AnimationEvent(AnimationEvent.START, this._startParameters));
+			this.dispatchEvent(new AnimationEvent(AnimationEvent.UPDATE, this._startParameters));
+		}
+		
+		/**
+		 * Pauses a tween so that it may be restarted again with the same
+		 * timing.
+		 */
+		public function pause():void
+		{
+			Animation.stopListenToTimer(this.timerUpdateHandler);
+			this._savedRuntime += getTimer() - this._startTime;
+			this._active = false;
+			
+			this.dispatchEvent(new AnimationEvent(AnimationEvent.PAUSE, update(this._savedRuntime)));
+		}
+		
+		/**
+		 * Swaps the start and end parameters and restarts the animation.
+		 */
+		public function yoyo():void
+		{
+			this.pause();
+			this._savedRuntime = 0;
+			
+			var temp:Object = this._startParameters;
+			this._startParameters = this.endParameters;
+			this.endParameters = temp;
+			this.start();
+		}
+		
+		/**
+		 * Forces a tween to its completion values.
+		 */
+		public function end():void
+		{
+			Animation.stopListenToTimer(this.timerUpdateHandler);
+			this._active = false;
+			this.dispatchEvent(new AnimationEvent(AnimationEvent.COMPLETE, this.endParameters));
+		}
+		
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		private function timerUpdateHandler(event:TimerEvent):void
+		{
+			var runtime:int = this._savedRuntime + getTimer() - this._startTime;
+			if(runtime >= this._duration)
+			{
+				this.end();
+				return;
+			}
+			
+			this.dispatchEvent(new AnimationEvent(AnimationEvent.UPDATE, this.update(runtime)));
+		}
+	
+		/**
+		 * @private
+		 * Generates updated values for the animation based on the current time.
+		 */
+		private function update(runtime:int):Object
+		{
+			//can easily handle parameters as hashes or Arrays.
+			var updated:Object;
+			if(this._startParameters is Array)
+			{
+				updated = [];
+			}
+			else
+			{
+				updated = {};
+			}
+			for(var prop:String in this._ranges)
+			{
+				var startValue:Number = this._startParameters[prop] as Number;
+				var range:Number = this._ranges[prop];
+				updated[prop] = this._easingFunction(runtime, startValue, range, this._duration);
+			}
+			return updated;
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/animation/AnimationEvent.as b/src/charts/as/com/yahoo/astra/animation/AnimationEvent.as
new file mode 100644
index 0000000..14b80f5
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/animation/AnimationEvent.as
@@ -0,0 +1,148 @@
+package com.yahoo.astra.animation
+{
+	import flash.events.Event;
+
+	/**
+	 * The AnimationEvent class represents events that are broadcast by the com.yahoo.astra.animation.Animation class.
+	 *
+	 * @see com.yahoo.astra.animation.Animation
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class AnimationEvent extends Event
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		/**
+		 * Indicates that the animation has started playing.
+		 *  <p>The properties of the event object have the following values:</p>
+		 *  <table class="innertable">
+		 *     <tr><th>Property</th><th>Value</th></tr>
+		 *     <tr><td><code>bubbles</code></td><td>false</td></tr>
+		 *     <tr><td><code>cancelable</code></td><td>false</td></tr>
+		 *     <tr><td><code>currentTarget</code></td><td>The object that defines the 
+		 *       event listener that handles the event. For example, if you use 
+		 *       <code>myButton.addEventListener()</code> to register an event listener, 
+		 *       <code>myButton</code> is the value of the <code>currentTarget</code> property.</td></tr>
+		 *     <tr><td><code>target</code></td><td>The object that dispatched the event; 
+		 *       it is not always the object listening for the event. 
+		 *       Use the <code>currentTarget</code> property to always access the 
+		 *       object listening for the event.</td></tr>
+		 *     <tr><td><code>parameters</code></td><td>The values of the properties controlled by the animation,
+		 *		 when the event occurred.</td></tr>
+		 *  </table>
+		 *
+		 * @eventType animationStart
+		 */
+		public static const START:String = "animationStart";
+
+		/**
+		 * Indicates that the animation has changed and the screen has been updated.
+		 *  <p>The properties of the event object have the following values:</p>
+		 *  <table class="innertable">
+		 *     <tr><th>Property</th><th>Value</th></tr>
+		 *     <tr><td><code>bubbles</code></td><td>false</td></tr>
+		 *     <tr><td><code>cancelable</code></td><td>false</td></tr>
+		 *     <tr><td><code>currentTarget</code></td><td>The object that defines the 
+		 *       event listener that handles the event. For example, if you use 
+		 *       <code>myButton.addEventListener()</code> to register an event listener, 
+		 *       <code>myButton</code> is the value of the <code>currentTarget</code> property.</td></tr>
+		 *     <tr><td><code>target</code></td><td>The object that dispatched the event; 
+		 *       it is not always the object listening for the event. 
+		 *       Use the <code>currentTarget</code> property to always access the 
+		 *       object listening for the event.</td></tr>
+		 *     <tr><td><code>parameters</code></td><td>The values of the properties controlled by the animation,
+		 *		 when the event occurred.</td></tr>
+		 *  </table>
+		 *
+		 * @eventType animationUpdate
+		 */
+		public static const UPDATE:String = "animationUpdate";
+
+		/**
+		 * Indicates that the animation has reached the end and finished.
+		 *  <p>The properties of the event object have the following values:</p>
+		 *  <table class="innertable">
+		 *     <tr><th>Property</th><th>Value</th></tr>
+		 *     <tr><td><code>bubbles</code></td><td>false</td></tr>
+		 *     <tr><td><code>cancelable</code></td><td>false</td></tr>
+		 *     <tr><td><code>currentTarget</code></td><td>The object that defines the 
+		 *       event listener that handles the event. For example, if you use 
+		 *       <code>myButton.addEventListener()</code> to register an event listener, 
+		 *       <code>myButton</code> is the value of the <code>currentTarget</code> property.</td></tr>
+		 *     <tr><td><code>target</code></td><td>The object that dispatched the event; 
+		 *       it is not always the object listening for the event. 
+		 *       Use the <code>currentTarget</code> property to always access the 
+		 *       object listening for the event.</td></tr>
+		 *     <tr><td><code>parameters</code></td><td>The values of the properties controlled by the animation,
+		 *		 when the event occurred.</td></tr>
+		 *  </table>
+		 *
+		 * @eventType animationComplete
+		 */
+		public static const COMPLETE:String = "animationComplete";
+		
+		/**
+		 * Indicates that the animation has been paused.
+		 *  <p>The properties of the event object have the following values:</p>
+		 *  <table class="innertable">
+		 *     <tr><th>Property</th><th>Value</th></tr>
+		 *     <tr><td><code>bubbles</code></td><td>false</td></tr>
+		 *     <tr><td><code>cancelable</code></td><td>false</td></tr>
+		 *     <tr><td><code>currentTarget</code></td><td>The object that defines the 
+		 *       event listener that handles the event. For example, if you use 
+		 *       <code>myButton.addEventListener()</code> to register an event listener, 
+		 *       <code>myButton</code> is the value of the <code>currentTarget</code> property.</td></tr>
+		 *     <tr><td><code>target</code></td><td>The object that dispatched the event; 
+		 *       it is not always the object listening for the event. 
+		 *       Use the <code>currentTarget</code> property to always access the 
+		 *       object listening for the event.</td></tr>
+		 *     <tr><td><code>parameters</code></td><td>The values of the properties controlled by the animation,
+		 *		 when the event occurred.</td></tr>
+		 *  </table>
+		 *
+		 * @eventType animationPause
+		 */
+		public static const PAUSE:String = "animationPause";
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 *
+		 * @param type			The event type; indicates the action that caused the event.
+		 * @param parameters	The current values of the properties controlled by the animation.
+		 */    
+		public function AnimationEvent(type:String, parameters:Object)
+		{
+			super(type, false, false);
+			this.parameters = parameters;
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The values of the properties controlled by the animation, when the event occurred.
+		 */
+		public var parameters:Object;
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override public function clone():Event
+		{
+			return new AnimationEvent(this.type, this.parameters);
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/display/BitmapText.as b/src/charts/as/com/yahoo/astra/display/BitmapText.as
new file mode 100644
index 0000000..aa96b11
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/display/BitmapText.as
@@ -0,0 +1,373 @@
+package com.yahoo.astra.display
+{
+	import flash.display.Sprite;
+	import flash.text.*;
+	import flash.display.Bitmap;
+	import flash.display.BitmapData;
+	import flash.display.PixelSnapping;
+	import flash.geom.Matrix;
+	
+	/**
+	 * BitmapText is a class that can be used to create rotating text fields with
+	 * device fonts. When the rotation property is set to a value other than 0
+	 * and the <code>embedFonts</code> is false, the text field will be replaced
+	 * by a Sprite containing a bitmap.
+	 *
+	 * @author Tripp Bridges
+	 */
+	public class BitmapText extends Sprite
+	{
+		/**
+		 * Constructor
+		 */
+		public function BitmapText()
+		{
+			super();
+			this.addChild(_bitmapContainer);
+			this.addChild(this.textField);
+		}
+		
+		/**
+		 * @private
+		 * Used to hold the bitmap object
+		 */
+		private var _bitmap:Bitmap = null;
+		
+		/**
+		 * @private
+		 * Sprite that holds the bitmap container
+		 */
+		private var _bitmapContainer:Sprite = new Sprite();
+		
+		public function get bitmapContainer():Sprite
+		{
+			return _bitmapContainer;
+		}
+	
+		/**
+		 * @private
+		 * Placeholder for the width value. Equals the width of a bitmap when the bitmap
+		 * displays text and the text field when it displays text. Since the text field and
+		 * bitmap sprite are always present, the returned dimensions would always be innacurate.
+		 */
+		private var _width:Number = 0;
+
+
+		/**
+		 * @private
+		 * Placeholder for the height value. Equals the height of a bitmap when the bitmap
+		 * displays text and the text field when it displays text. Since the text field and
+		 * bitmap sprite are always present, the returned dimensions would always be innacurate.
+		 */
+		private var _height:Number = 0;	
+	
+
+		/**
+		 * @private 
+		 * Placeholder for the text field
+		 */
+		private var _textField:TextField = new TextField();
+		
+		/**
+		 * Specifies the format applied to newly inserted text, such as text inserted with the 
+		 * <code>replaceSelectedText()</code> method or text entered by a user.
+		 */
+		public function get defaultTextFormat():TextFormat
+		{
+			return this.textField.defaultTextFormat;
+		}
+		
+		/**
+		 * @private (setter)
+		 */		
+		public function set defaultTextFormat(value:TextFormat):void
+		{
+			this.textField.defaultTextFormat = value; 
+		}
+		
+		/**
+		 * Specifies whether to render by using embedded font outlines.
+		 */
+		public function get embedFonts():Boolean
+		{
+			return this.textField.embedFonts;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set embedFonts(value:Boolean):void
+		{
+			this.textField.embedFonts = value;
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for the rotation property of the text field
+		 */
+		private var _rotation:Number = 0;
+
+		/**
+		 * @inheritDoc
+		 */
+		override public function get rotation():Number
+		{
+			return _rotation;
+		}
+		
+		/**
+		 * @private (setter)
+		 */		
+		override public function set rotation(value:Number):void
+		{
+			super.rotation = 0;
+			_rotation = value;
+			setTextRotation(value);
+			super.rotation = value;
+		}
+	
+		/**
+		 * A string that is the current text in the text field.
+		 */
+		public function get text():String
+		{
+			return this.textField.text;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set text(value:String):void
+		{
+			this.textField.text = value;
+			this.textField.visible = true;
+			this.contentWidth = _width = this.textField.width;
+			this.contentHeight = _height = this.textField.height;
+		}
+		
+		/**
+		 * A Boolean value that indicates whether the text field is selectable.
+		 */
+		public function get selectable():Boolean
+		{
+			return this.textField.selectable;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set selectable(value:Boolean):void
+		{
+			this.textField.selectable = value;
+		}
+
+		/**
+		 * Controls automatic sizing and alignment of text fields.
+		 */
+		public function get autoSize():String
+		{
+			return this.textField.autoSize;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set autoSize(value:String):void
+		{
+			this.textField.autoSize = value;
+		}
+		
+		/**
+		 * Reference to the text field
+		 */
+		public function get textField():TextField
+		{
+			return _textField;
+		}
+		
+		/**
+		 * @private (setter)
+		 */		
+		public function set textField(value:TextField):void
+		{
+			_textField = value;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set border(value:Boolean):void
+		{
+			this.textField.border = value;
+		}	
+		
+		/**
+		 * Gets the minimum distance for placement of labels of the same rotation on the x axis
+		 */
+		public function get rotationWidth():Number
+		{
+			var adjustedWidth:Number = this.contentHeight / (Math.sin((Math.abs(this.rotation))*Math.PI/180));
+			adjustedWidth = Math.min(adjustedWidth, this.width);
+			if(this.contentWidth > this.contentHeight) adjustedWidth = Math.min(adjustedWidth, this.contentWidth);
+			if(this.rotation == 0 || Math.abs(this.rotation) == 90)
+			{
+				adjustedWidth = this.width;
+			}
+			return Math.round(adjustedWidth);
+		}
+
+		/**
+		 * Gets the minimum distance for placement of labels of the same rotation on the y axis
+		 */
+		public function get rotationHeight():Number
+		{
+			var adjustedHeight:Number =  (this.contentHeight / (Math.cos((Math.abs(this.rotation))*Math.PI/180)));
+			adjustedHeight = Math.min(adjustedHeight, this.height);
+			if(this.contentWidth > this.contentHeight) adjustedHeight = Math.min(adjustedHeight, this.contentWidth);
+			if(this.rotation == 0 || Math.abs(this.rotation) == 90)
+			{
+				adjustedHeight = this.height;
+			}
+			return Math.round(adjustedHeight);
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for contentWidth
+		 */
+		private var _contentWidth:Number = 0;
+		
+		/** 
+		 * Width of the text field without rotation.
+		 */
+		public function get contentWidth():Number
+		{
+			return _contentWidth;
+		}
+		
+		/** 
+		 * @private (setter)
+		 */
+		public function set contentWidth(value:Number):void
+		{
+			_contentWidth = value;
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for contentHeight
+		 */
+		private var _contentHeight:Number = 0;
+		
+		/**
+		 * Height of the text field without rotation.
+		 */
+		public function get contentHeight():Number
+		{
+			return _contentHeight;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set contentHeight(value:Number):void
+		{
+			_contentHeight = value;
+		}
+		
+		/**
+		 * The width of the text in pixels
+		 */
+		public function get textWidth():Number
+		{
+			return this.textField.textWidth;
+		}
+		
+		/**
+		 * The height of the text in pixels
+		 */		
+		public function get textHeight():Number
+		{
+			return this.textField.textHeight;
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		override public function get width():Number
+		{
+			var width:Number = super.width;
+			var rotation:Number = Math.abs(this.rotation);
+			var radians:Number = rotation * Math.PI/180;
+			if(rotation == 90)
+			{
+				width = this.contentHeight;
+			}
+			else if(rotation > 0)
+			{
+				width = (this.contentWidth * Math.cos(radians)) + (this.contentHeight * Math.sin(radians));				
+			}
+			return width;
+		}	
+		
+		/**
+		 * @inheritDoc
+		 */		
+		override public function get height():Number
+		{
+			var height:Number = super.height;
+			var rotation:Number = Math.abs(this.rotation);
+			var radians:Number = rotation * Math.PI/180;
+			if(rotation == 90)
+			{
+				height = this.contentWidth;
+			}
+			else if(rotation > 0)
+			{
+				height = (this.contentWidth * Math.sin(radians)) + (this.contentHeight * Math.cos(radians));
+			}
+			return height;
+		}		
+		
+		/**
+		 * @private
+		 *
+		 * Sets the rotation of the text. When the value is 0 or <code>embedFonts</code>
+		 * is set to true, rotate the text field. Otherwise, draw the text field into a bitmap
+		 * and rotate its container sprite.
+		 */
+		private function setTextRotation(value:Number):void
+		{
+			if(this.text == null || this.text == "") return;
+			if(value == 0 || this.embedFonts) 
+			{
+				this.contentWidth = this.textField.width;
+				this.contentHeight = this.textField.height;
+				this.textField.visible = true;
+				this.textField.x = 0;
+				this.textField.y = 0;
+				_bitmapContainer.visible = false;
+			}
+			else
+			{
+				var smoothing:Boolean = Math.abs(value)%90 != 0;
+				var matrix:Matrix = new Matrix();
+				//Have to move text over if it is right-aligned. Need to add an extra 5 pixels to the x value. We will also add 5 pixels to 
+				//the width argument of the bitmap data. Depending on the letters, the left-most letters get cut-off. The additional 5 pixels
+				//prevents this from happening.
+				if(this.autoSize == TextFieldAutoSize.RIGHT) matrix.translate(-Math.ceil(this.textField.x)+5, -Math.ceil(this.textField.y));
+				var wid:Number = this.autoSize == TextFieldAutoSize.RIGHT ? (this.textField.width) + 5 : this.textField.width; 
+				var bitmapDataText:BitmapData = new BitmapData(Math.ceil(wid), Math.ceil(this.textField.height), true, 0x000000);
+				bitmapDataText.draw(textField, matrix, null, null, null, smoothing);
+				_bitmap = new Bitmap(bitmapDataText);
+				_bitmap.smoothing = smoothing;
+				if(_bitmapContainer.numChildren > 0) _bitmapContainer.removeChildAt(0);
+				this.textField.visible = false;
+				_bitmapContainer.addChild(_bitmap);
+				this.contentWidth = _bitmapContainer.width;
+				this.contentHeight = _bitmapContainer.height;		
+				_bitmapContainer.visible = true;	
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/BarChart.as b/src/charts/as/com/yahoo/astra/fl/charts/BarChart.as
new file mode 100644
index 0000000..8f0e0c6
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/BarChart.as
@@ -0,0 +1,91 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.axes.CategoryAxis;
+	import com.yahoo.astra.fl.charts.axes.NumericAxis;
+	import com.yahoo.astra.fl.charts.series.BarSeries;
+	
+	/**
+	 * The amount of space between items within a series
+	 * @default 0
+	 */	
+	[Style(name="seriesItemSpacing", type="Number")]
+	
+	/**
+	 * A chart that displays its data points with horizontal bars.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class BarChart extends CartesianChart
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{	
+			showHorizontalAxisGridLines: true,
+			showHorizontalAxisTicks: true,
+			showHorizontalAxisMinorTicks: true,
+			showVerticalAxisGridLines: false,
+			showVerticalAxisTicks: false,
+			showVerticalAxisMinorTicks: false,
+			seriesItemSpacing:0
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, CartesianChart.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function BarChart()
+		{
+			super();
+			this.defaultSeriesType = BarSeries;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function configUI():void
+		{
+			if(!this.horizontalAxis)
+			{
+				var numericAxis:NumericAxis = new NumericAxis();
+				numericAxis.stackingEnabled = true;
+				this.horizontalAxis = numericAxis;
+			}
+			
+			if(!this.verticalAxis)
+			{
+				var categoryAxis:CategoryAxis = new CategoryAxis();
+				this.verticalAxis = categoryAxis;
+			}
+			
+			super.configUI();
+		}
+		
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/CartesianChart.as b/src/charts/as/com/yahoo/astra/fl/charts/CartesianChart.as
new file mode 100644
index 0000000..30aa8e2
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/CartesianChart.as
@@ -0,0 +1,2247 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.axes.AxisOrientation;
+	import com.yahoo.astra.fl.charts.axes.AxisLabelData;
+	import com.yahoo.astra.fl.charts.axes.CategoryAxis;
+	import com.yahoo.astra.fl.charts.axes.DefaultAxisRenderer;
+	import com.yahoo.astra.fl.charts.axes.HorizontalAxisRenderer;
+	import com.yahoo.astra.fl.charts.axes.VerticalAxisRenderer;
+	import com.yahoo.astra.fl.charts.axes.DefaultGridLinesRenderer;
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.axes.ICartesianAxisRenderer;
+	import com.yahoo.astra.fl.charts.axes.IGridLinesRenderer;
+	import com.yahoo.astra.fl.charts.axes.IStackingAxis;
+	import com.yahoo.astra.fl.charts.axes.NumericAxis;
+	import com.yahoo.astra.fl.charts.axes.TimeAxis;
+	import com.yahoo.astra.fl.charts.axes.IOriginAxis;
+	import com.yahoo.astra.fl.charts.series.CartesianSeries;
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.series.IStackedSeries;
+	import com.yahoo.astra.fl.charts.events.*;
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	import com.yahoo.astra.utils.AxisLabelUtil;
+	import com.yahoo.astra.display.BitmapText;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	
+	import flash.display.DisplayObject;
+	import flash.display.Sprite;
+	import flash.geom.Point;
+	import flash.geom.Rectangle;
+	import flash.text.TextFormat;
+	import flash.text.TextFormatAlign;
+	import flash.text.TextFieldAutoSize;
+	import flash.utils.Dictionary;
+	
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+	
+	/**
+	 * An object containing style values to be passed to the vertical axis
+	 * renderer. The available styles are listed with the class that is used as the
+	 * axis renderer.
+	 * 
+	 * @example
+	 * <listing version="3.0">
+	 * {
+	 * 	showTicks: true,
+	 * 	tickWeight: 1,
+	 * 	tickColor: 0x999999,
+	 * 	showMinorTicks: true,
+	 * 	minorTickWeight: 1,
+	 * 	minorTickColor: 0xcccccc
+	 * }
+	 * </listing>
+	 * 
+	 * <p><strong>Note:</strong> Previously, all styles for the axis renderers
+	 * were listed as individual styles on the chart, but since it is possible
+	 * to use a renderer class that has completely different styles than the
+	 * default renderer, we need to deprecate the previous method to allow
+	 * maximum flexibility when new or custom renderers are added.</p>
+	 * 
+	 * <p>The old styles still exist, and legacy code will continue to work
+	 * for the time being. However, it is recommended that you begin porting
+	 * code to the new system as soon as possible.</p>
+	 * 
+	 * <p>For the vertical axis, you should use the following method to set
+	 * styles at runtime:</p>
+	 * 
+	 * @example
+	 * <listing version="3.0">
+	 * chart.setVerticalAxisStyle("showTicks", false);
+	 * </listing>
+	 * 
+	 * @see setVerticalAxisStyle()
+	 * @see com.yahoo.astra.fl.charts.axes.DefaultAxisRenderer
+	 */
+	[Style(name="verticalAxisStyles", type="Object")]
+    
+	/**
+	 * The class used to instantiate the visual representation of the vertical
+	 * axis.
+	 * 
+	 * @default VerticalAxisRenderer
+	 * @see com.yahoo.astra.fl.charts.axes.VerticalAxisRenderer
+	 */
+	[Style(name="verticalAxisRenderer", type="Class")]
+	
+	/**
+	 * An object containing style values to be passed to the horizontal axis
+	 * renderer. The available styles are listed with the class that is used as the
+	 * axis renderer.
+	 * 
+	 * @example
+	 * <listing version="3.0">
+	 * {
+	 * 	showTicks: true,
+	 * 	tickWeight: 1,
+	 * 	tickColor: 0x999999,
+	 * 	showMinorTicks: true,
+	 * 	minorTickWeight: 1,
+	 * 	minorTickColor: 0xcccccc
+	 * }
+	 * </listing>
+	 * 
+	 * <p><strong>Note:</strong> Previously, all styles for the grid lines
+	 * renderer were listed as individual styles on the chart, but since it is
+	 * possible to use a renderer class that has completely different styles
+	 * than the default renderer, we need to deprecate the previous
+	 * method to allow maximum flexibility when new or custom renderers are
+	 * added.</p>
+	 * 
+	 * <p>The old styles still exist, and legacy code will continue to work
+	 * for the time being. However, it is recommended that you begin porting
+	 * code to the new system as soon as possible.</p>
+	 * 
+	 * <p>For the horizontal axis, you should use the following method to set
+	 * styles at runtime:</p>
+	 * 
+	 * @example
+	 * <listing version="3.0">
+	 * chart.setHorizontalAxisStyle("showTicks", false);
+	 * </listing>
+	 * 
+	 * @see setHorizontalAxisStyle()
+	 * @see com.yahoo.astra.fl.charts.axes.DefaultAxisRenderer
+	 */
+	[Style(name="horizontalAxisStyles", type="Object")]
+    
+	/**
+	 * The class used to instantiate the visual representation of the horizontal
+	 * axis.
+	 * 
+	 * @default HorizontalAxisRenderer
+	 * @see com.yahoo.astra.fl.charts.axes.HorizontalAxisRenderer
+	 */
+	[Style(name="horizontalAxisRenderer", type="Class")]
+	
+	/**
+	 * An object containing style values to be passed to the vertical axis grid
+	 * lines renderer. The available styles are listed with the class that is used as the
+	 * grid lines renderer.
+	 * 
+	 * @example
+	 * <listing version="3.0">
+	 * {
+	 * 	showLines: true,
+	 * 	lineWeight: 1,
+	 * 	lineColor: 0x999999,
+	 * 	showMinorLines: false
+	 * }
+	 * </listing>
+	 * 
+	 * <p><strong>Note:</strong> Previously, all styles for the grid lines were listed as individual
+	 * styles on the chart, but since it is possible to use a renderer class
+	 * that has completely different styles, we need to deprecate the previous
+	 * method to allow maximum flexibility when new or custom renderers are
+	 * added.</p>
+	 * 
+	 * <p>The old styles still exist, and legacy code will continue to work
+	 * for the time being. However, it is recommended that you begin porting
+	 * code to the new system as soon as possible.</p>
+	 * 
+	 * <p>For the vertical axis grid lines, you should use the following method to set
+	 * styles at runtime:</p>
+	 * 
+	 * @example
+	 * <listing version="3.0">
+	 * chart.setVerticalAxisGridLinesStyle("lineColor", 0x999999);
+	 * </listing>
+	 * 
+	 * @see setVerticalAxisGridLinesStyle()
+	 * @see com.yahoo.astra.fl.charts.axes.DefaultGridLinesRenderer
+	 */
+	[Style(name="verticalAxisGridLinesStyles", type="Object")]
+    
+	/**
+	 * The class used to instantiate the vertical axis grid lines.
+	 * 
+	 * @default DefaultGridLinesRenderer
+	 * @see com.yahoo.astra.fl.charts.axes.DefaultGridLinesRenderer
+	 */
+	[Style(name="verticalAxisGridLinesRenderer", type="Class")]
+	
+	/**
+	 * An object containing style values to be passed to the horizontal axis grid
+	 * lines renderer. The available styles are listed with the class that is used as the
+	 * grid lines renderer.
+	 * 
+	 * @example
+	 * <listing version="3.0">
+	 * {
+	 * 	showLines: true,
+	 * 	lineWeight: 1,
+	 * 	lineColor: 0x999999,
+	 * 	showMinorLines: false
+	 * }
+	 * </listing>
+	 * 
+	 * <p><strong>Note:</strong> Previously, all styles for the grid lines were listed as individual
+	 * styles on the chart, but since it is possible to use a renderer class
+	 * that has completely different styles, we need to deprecate the previous
+	 * method to allow maximum flexibility when new or custom renderers are
+	 * added.</p>
+	 * 
+	 * <p>The old styles still exist, and legacy code will continue to work
+	 * for the time being. However, it is recommended that you begin porting
+	 * code to the new system as soon as possible.</p>
+	 * 
+	 * <p>For the horizontal axis grid lines, you should use the following method to set
+	 * styles at runtime:</p>
+	 * 
+	 * @example
+	 * <listing version="3.0">
+	 * chart.setHorizontalAxisGridLinesStyle("lineColor", 0x999999);
+	 * </listing>
+	 * 
+	 * @see setHorizontalAxisGridLinesStyle()
+	 * @see com.yahoo.astra.fl.charts.axes.DefaultGridLinesRenderer
+	 */
+	[Style(name="horizontalAxisGridLinesStyles", type="Object")]
+    
+	/**
+	 * The class used to instantiate the horizontal axis grid lines.
+	 * 
+	 * @default DefaultGridLinesRenderer
+	 */
+	[Style(name="horizontalAxisGridLinesRenderer", type="Class")]
+	
+	//-- DEPRECATED Vertical Axis styles
+    
+	/**
+	 * If false, the vertical axis is not drawn. Titles, labels, ticks, and grid
+	 * lines may still be drawn, however, so you must specifically hide each
+	 * item if nothing should be drawn.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="showVerticalAxis", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the vertical axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisWeight", type="int")]
+    
+	/**
+	 * The line color for the vertical axis.
+	 * 
+	 * @default #888a85
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisColor", type="uint")]
+    
+    //-- Labels - Vertical Axis
+    
+	/**
+	 * If true, labels will be displayed on the vertical axis.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="showVerticalAxisLabels", type="Boolean")]
+    
+	/**
+	 * The distance, in pixels, between a label and the vertical axis.
+	 * 
+	 * @default 2
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisLabelDistance", type="Number")]
+    
+	/**
+	 * Defines the TextFormat used by labels on the vertical axis. If null,
+	 * the <code>textFormat</code> style will be used.
+	 * 
+	 * @default null
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisTextFormat", type="TextFormat")]
+    
+	/** 
+	 * If true, labels that overlap previously drawn labels on the axis will be
+	 * hidden. The first and last labels on the axis will always be drawn.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisHideOverlappingLabels", type="Boolean")]
+    
+	/** 
+	 * The angle, in degrees, of the labels on the vertical axis. May be a value
+	 * between <code>-90</code> and <code>90</code>. The font must be embedded
+	 * in the SWF and the <code>embedFonts</code> style on the chart must be set
+	 * to <code>true</code> before labels may be rotated. If these conditions
+	 * aren't met, the labels will not be rotated.
+	 * 
+	 * @default 0
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisLabelRotation", type="Number")]
+    
+    //-- Grid - Vertical Axis
+    
+	/**
+	 * An Array of <code>uint</code> color values that is used to draw
+	 * alternating fills between the vertical axis' grid lines.
+	 * 
+	 * @default []
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisGridFillColors", type="Array")]
+    
+	/**
+	 * An Array of alpha values (in the range of 0 to 1) that is used to draw
+	 * alternating fills between the vertical axis' grid lines.
+	 * 
+	 * @default []
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisGridFillAlphas", type="Array")]
+    
+    //-- DEPRECATED Grid Lines styles - Vertical Axis
+    
+	/**
+	 * If true, grid lines will be displayed on the vertical axis.
+	 * 
+	 * @default false
+	 * @deprecated
+	 */
+	[Style(name="showVerticalAxisGridLines", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the grid lines on the vertical axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisGridLineWeight", type="int")]
+    
+	/**
+	 * The line color for the grid lines on the vertical axis.
+	 * 
+	 * @default #babdb6
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisGridLineColor", type="uint")]
+    
+    //-- Minor Grid Lines - Vertical Axis
+    
+	/**
+	 * If true, minor grid lines will be displayed on the vertical axis.
+	 * 
+	 * @default false
+	 * @deprecated
+	 */
+	[Style(name="showVerticalAxisMinorGridLines", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the minor grid lines on the vertical axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisMinorGridLineWeight", type="int")]
+    
+	/**
+	 * The line color for the minor grid lines on the vertical axis.
+	 * 
+	 * @default #eeeeec
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisMinorGridLineColor", type="uint")]
+    
+	//-- Ticks - Vertical Axis
+    
+	/**
+	 * If true, ticks will be displayed on the vertical axis.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="showVerticalAxisTicks", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the ticks on the vertical axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisTickWeight", type="int")]
+    
+	/**
+	 * The line color for the ticks on the vertical axis.
+	 * 
+	 * @default #888a85
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisTickColor", type="uint")]
+    
+	/**
+	 * The length, in pixels, of the ticks on the vertical axis.
+	 * 
+	 * @default 4
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisTickLength", type="Number")]
+	
+	/**
+	 * The position of the ticks on the vertical axis.
+	 * 
+	 * @default "cross"
+	 * @see com.yahoo.astra.fl.charts.axes.TickPosition
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisTickPosition", type="String")]
+    
+    //-- Minor ticks - Vertical Axis
+    
+	/**
+	 * If true, ticks will be displayed on the vertical axis at minor positions.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="showVerticalAxisMinorTicks", type="Boolean")]
+	
+	/**
+	 * The line weight, in pixels, for the minor ticks on the vertical axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisMinorTickWeight", type="int")]
+    
+	/**
+	 * The line color for the minor ticks on the vertical axis.
+	 * 
+	 * @default #888a85
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisMinorTickColor", type="uint")]
+    
+	/**
+	 * The length of the minor ticks on the vertical axis.
+	 * 
+	 * @default 3
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisMinorTickLength", type="Number")]
+	
+	/**
+	 * The position of the minor ticks on the vertical axis.
+	 * 
+	 * @default "outside"
+	 * @see com.yahoo.astra.fl.charts.axes.TickPosition
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisMinorTickPosition", type="String")]
+	
+	//-- Title - Vertical Axis
+	
+	/**
+	 * If true, the vertical axis title will be displayed.
+	 * 
+	 * @default 2
+	 * @deprecated
+	 */
+	[Style(name="showVerticalAxisTitle", type="Boolean")]
+	
+	/**
+	 * The TextFormat object to use to render the vertical axis title label.
+     *
+     * @default TextFormat("_sans", 11, 0x000000, false, false, false, '', '', TextFormatAlign.LEFT, 0, 0, 0, 0)
+	 * @deprecated
+	 */
+	[Style(name="verticalAxisTitleTextFormat", type="TextFormat")]
+	
+	//-- DEPRECATED Horizontal Axis styles
+    
+	/**
+	 * If false, the horizontal axis is not drawn. Titles, labels, ticks, and grid
+	 * lines may still be drawn, however, so you must specifically hide each
+	 * item if nothing should be drawn.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="showHorizontalAxis", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the horizontal axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisWeight", type="int")]
+    
+	/**
+	 * The line color for the horizontal axis.
+	 * 
+	 * @default #888a85
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisColor", type="uint")]
+    
+    //-- Labels - Horizontal Axis
+    
+	/**
+	 * If true, labels will be displayed on the horizontal axis.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="showHorizontalAxisLabels", type="Boolean")]
+    
+	/**
+	 * The distance, in pixels, between a label and the horizontal axis.
+	 * 
+	 * @default 2
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisLabelDistance", type="Number")]
+    
+	/**
+	 * Defines the TextFormat used by labels on the horizontal axis. If null,
+	 * the <code>textFormat</code> style will be used.
+	 * 
+	 * @default null
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisTextFormat", type="TextFormat")]
+    
+	/** 
+	 * If true, labels that overlap previously drawn labels on the axis will be
+	 * hidden. The first and last labels on the axis will always be drawn.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisHideOverlappingLabels", type="Boolean")]
+    
+	/** 
+	 * The angle, in degrees, of the labels on the horizontal axis. May be a value
+	 * between <code>-90</code> and <code>90</code>. The font must be embedded
+	 * in the SWF and the <code>embedFonts</code> style on the chart must be set
+	 * to <code>true</code> before labels may be rotated. If these conditions
+	 * aren't met, the labels will not be rotated.
+	 * 
+	 * @default 0
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisLabelRotation", type="Number")]
+    
+    //-- Grid - Horizontal Axis
+    
+	/**
+	 * An Array of <code>uint</code> color values that is used to draw
+	 * alternating fills between the horizontal axis' grid lines.
+	 * 
+	 * @default []
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisGridFillColors", type="Array")]
+    
+	/**
+	 * An Array of alpha values (in the range of 0 to 1) that is used to draw
+	 * alternating fills between the horizontal axis' grid lines.
+	 * 
+	 * @default []
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisGridFillAlphas", type="Array")]
+    
+    //-- DEPRECATED Grid Lines - Horizontal Axis
+    
+	/**
+	 * If true, grid lines will be displayed on the horizontal axis.
+	 * 
+	 * @default false
+	 * @deprecated
+	 */
+	[Style(name="showHorizontalAxisGridLines", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the grid lines on the horizontal axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisGridLineWeight", type="int")]
+    
+	/**
+	 * The line color for the grid lines on the horizontal axis.
+	 * 
+	 * @default #babdb6
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisGridLineColor", type="uint")]
+    
+    //-- Minor Grid Lines - Horizontal Axis
+    
+	/**
+	 * If true, minor grid lines will be displayed on the horizontal axis.
+	 * 
+	 * @default false
+	 * @deprecated
+	 */
+	[Style(name="showHorizontalAxisMinorGridLines", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the minor grid lines on the horizontal axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisMinorGridLineWeight", type="int")]
+    
+	/**
+	 * The line color for the minor grid lines on the horizontal axis.
+	 * 
+	 * @default #eeeeec
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisMinorGridLineColor", type="uint")]
+    
+	//-- Ticks - Horizontal Axis
+    
+	/**
+	 * If true, ticks will be displayed on the horizontal axis.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="showHorizontalAxisTicks", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the ticks on the horizontal axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisTickWeight", type="int")]
+    
+	/**
+	 * The line color for the ticks on the horizontal axis.
+	 * 
+	 * @default #888a85
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisTickColor", type="uint")]
+    
+	/**
+	 * The length, in pixels, of the ticks on the horizontal axis.
+	 * 
+	 * @default 4
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisTickLength", type="Number")]
+	
+	/**
+	 * The position of the ticks on the horizontal axis.
+	 * 
+	 * @default "cross"
+	 * @see com.yahoo.astra.fl.charts.axes.TickPosition
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisTickPosition", type="String")]
+    
+    //-- Minor ticks - Horizontal Axis
+    
+	/**
+	 * If true, ticks will be displayed on the horizontal axis at minor positions.
+	 * 
+	 * @default true
+	 * @deprecated
+	 */
+	[Style(name="showHorizontalAxisMinorTicks", type="Boolean")]
+	
+	/**
+	 * The line weight, in pixels, for the minor ticks on the horizontal axis.
+	 * 
+	 * @default 1
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisMinorTickWeight", type="int")]
+    
+	/**
+	 * The line color for the minor ticks on the horizontal axis.
+	 * 
+	 * @default #888a85
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisMinorTickColor", type="uint")]
+    
+	/**
+	 * The length of the minor ticks on the horizontal axis.
+	 * 
+	 * @default 3
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisMinorTickLength", type="Number")]
+	
+	/**
+	 * The position of the minor ticks on the horizontal axis.
+	 * 
+	 * @default "outside"
+	 * @see com.yahoo.astra.fl.charts.axes.TickPosition
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisMinorTickPosition", type="String")]
+	
+	//-- Title - Horizontal Axis
+	
+	/**
+	 * If true, the horizontal axis title will be displayed.
+	 * 
+	 * @default 2
+	 * @deprecated
+	 */
+	[Style(name="showHorizontalAxisTitle", type="Boolean")]
+	
+	/**
+	 * The TextFormat object to use to render the horizontal axis title label.
+     *
+     * @default TextFormat("_sans", 11, 0x000000, false, false, false, '', '', TextFormatAlign.LEFT, 0, 0, 0, 0)
+	 * @deprecated
+	 */
+	[Style(name="horizontalAxisTitleTextFormat", type="TextFormat")]
+	
+	/**
+	 * The border color of the markers in a series. When not specified, the border color 
+	 * is determined by the color style. 
+	 * 
+	 * @default []
+	 */
+	[Style(name="seriesBorderColors", type="Array")]
+	
+	/** 
+	 * The border alpha of the markers in a series. 
+	 * 
+	 * @default [1]
+	 */
+	[Style(name="seriesBorderAlphas", type="Array")]
+	
+	/** 
+	 * The fill color of the markers in a series. When not specified, the fill color
+	 * is determined by the color style.
+	 *
+	 * @default []
+	 */
+	[Style(name="seriesFillColors", type="Array")]
+	
+	/** 
+	 * The fill alpha of the markers in a series. 
+	 *
+	 * @default [1]
+	 */
+	[Style(name="seriesFillAlphas", type="Array")]
+	
+	/**
+	 * A chart based on the cartesian coordinate system (x, y).
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class CartesianChart extends Chart implements IChart, ICategoryChart
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Exists simply to reference dependencies that aren't used
+		 * anywhere else by this component.
+		 */
+		private static const DEPENDENCIES:Array = [TimeAxis];
+	
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{
+			horizontalAxisStyles: {},
+			secondaryHorizontalAxisStyles: {},
+			horizontalAxisGridLinesStyles: {},
+			horizontalAxisRenderer: HorizontalAxisRenderer,
+			secondaryHorizontalAxisRenderer: HorizontalAxisRenderer,
+			secondaryVerticalAxisRenderer: VerticalAxisRenderer,
+			horizontalAxisGridLinesRenderer: DefaultGridLinesRenderer,
+			
+			verticalAxisStyles: {},
+			secondaryVerticalAxisStyles: {},
+			verticalAxisGridLinesStyles: {},
+			verticalAxisRenderer: VerticalAxisRenderer,
+			verticalAxisGridLinesRenderer: DefaultGridLinesRenderer,
+			
+			//DEPRECATED BELOW THIS POINT!
+			//(to be removed in a future version)
+			
+			//axis
+			showHorizontalAxis: true,
+			horizontalAxisWeight: 1,
+			horizontalAxisColor: 0x888a85,
+			
+			//title
+			showHorizontalAxisTitle: true,
+			horizontalAxisTitleTextFormat: new TextFormat("_sans", 11, 0x000000, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0),
+			horizontalAxisTitleRotation: 0,
+			horizontalAxisTitleDistance: 2,
+			
+			//labels
+			showHorizontalAxisLabels: true,
+			horizontalAxisTextFormat: null,
+			horizontalAxisLabelDistance: 2,
+			horizontalAxisHideOverlappingLabels: true,
+			horizontalAxisLabelRotation: 0,
+			horizontalAxisLabelSpacing: 2,
+			
+			//grid lines
+			horizontalAxisGridLineWeight: 1,
+			horizontalAxisGridLineColor: 0xbabdb6,
+			showHorizontalAxisGridLines: false,
+			horizontalAxisMinorGridLineWeight: 1,
+			horizontalAxisMinorGridLineColor: 0xeeeeec,
+			showHorizontalAxisMinorGridLines: false,
+			horizontalAxisGridFillColors: [],
+			horizontalAxisGridFillAlphas: [],
+			showHorizontalZeroGridLine: false,
+			horizontalZeroGridLineWeight: 2,
+			horizontalZeroGridLineColor: 0xbabdb6,				
+			
+			//ticks
+			showHorizontalAxisTicks: false,
+			horizontalAxisTickWeight: 1,
+			horizontalAxisTickColor: 0x888a85,
+			horizontalAxisTickLength: 4,
+			horizontalAxisTickPosition: "cross",
+			showHorizontalAxisMinorTicks: false,
+			horizontalAxisMinorTickWeight: 1,
+			horizontalAxisMinorTickColor: 0x888a85,
+			horizontalAxisMinorTickLength: 3,
+			horizontalAxisMinorTickPosition: "outside",
+			
+			//axis
+			showVerticalAxis: true,
+			verticalAxisWeight: 1,
+			verticalAxisColor: 0x888a85,
+			
+			//title
+			showVerticalAxisTitle: true,
+			verticalAxisTitleTextFormat: new TextFormat("_sans", 11, 0x000000, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0),
+			verticalAxisTitleRotation: 0,
+			verticalAxisTitleDistance: 2,
+			
+			//labels
+			showVerticalAxisLabels: true,
+			verticalAxisTextFormat: null,
+			verticalAxisLabelDistance: 2,
+			verticalAxisHideOverlappingLabels: true,
+			verticalAxisLabelRotation: 0,
+			verticalAxisLabelSpacing: 2,
+			
+			//grid lines
+			showVerticalAxisGridLines: true,
+			verticalAxisGridLineWeight: 1,
+			verticalAxisGridLineColor: 0xbabdb6,
+			verticalAxisMinorGridLineWeight: 1,
+			verticalAxisMinorGridLineColor: 0xeeeeec,
+			showVerticalAxisMinorGridLines: false,
+			verticalAxisGridFillColors: [],
+			verticalAxisGridFillAlphas: [],
+			showVerticalZeroGridLine: false,
+			verticalZeroGridLineWeight: 2,
+			verticalZeroGridLineColor: 0xbabdb6,			
+			
+			//ticks
+			showVerticalAxisTicks: true,
+			verticalAxisTickWeight: 1,
+			verticalAxisTickColor: 0x888a85,
+			verticalAxisTickLength: 4,
+			verticalAxisTickPosition: "cross",
+			showVerticalAxisMinorTicks: true,
+			verticalAxisMinorTickWeight: 1,
+			verticalAxisMinorTickColor: 0x888a85,
+			verticalAxisMinorTickLength: 3,
+			verticalAxisMinorTickPosition: "outside"
+		};
+		
+		/**
+		 * @private
+		 * The chart styles that correspond to styles on the horizontal axis.
+		 */
+		private static const HORIZONTAL_AXIS_STYLES:Object = 
+		{
+			showAxis: "showHorizontalAxis",
+			axisWeight: "horizontalAxisWeight",
+			axisColor: "horizontalAxisColor",
+			
+			textFormat: "textFormat",
+			embedFonts: "embedFonts",
+			hideOverlappingLabels: "horizontalAxisHideOverlappingLabels",
+			labelRotation: "horizontalAxisLabelRotation",
+			labelDistance: "horizontalAxisLabelDistance",
+			showLabels: "showHorizontalAxisLabels",
+			labelSpacing: "horizontalAxisLabelSpacing",
+			titleRotation: "horizontalAxisTitleRotation", 
+			titleDistance: "horizontalAxisTitleDistance",
+			
+			showTitle: "showHorizontalAxisTitle",
+			titleTextFormat: "horizontalAxisTitleTextFormat",
+			
+			tickWeight: "horizontalAxisTickWeight",
+			tickColor: "horizontalAxisTickColor",
+			tickLength: "horizontalAxisTickLength",
+			tickPosition: "horizontalAxisTickPosition",
+			showTicks: "showHorizontalAxisTicks",
+
+			minorTickWeight: "horizontalAxisMinorTickWeight",
+			minorTickColor: "horizontalAxisMinorTickColor",
+			minorTickLength: "horizontalAxisMinorTickLength",
+			minorTickPosition: "horizontalAxisMinorTickPosition",
+			showMinorTicks: "showHorizontalAxisMinorTicks"
+		};
+		
+		/**
+		 * @private
+		 * The chart styles that correspond to styles on the horizontal axis
+		 * grid lines.
+		 */
+		private static const HORIZONTAL_GRID_LINES_STYLES:Object =
+		{
+			lineWeight: "horizontalAxisGridLineWeight",
+			lineColor: "horizontalAxisGridLineColor",
+			showLines: "showHorizontalAxisGridLines",
+			
+			minorLineWeight: "horizontalAxisMinorGridLineWeight",
+			minorLineColor: "horizontalAxisMinorGridLineColor",
+			showMinorLines: "showHorizontalAxisMinorGridLines",
+			
+			showZeroGridLine: "showHorizontalZeroGridLine",
+			zeroGridLineWeight: "horizontalZeroGridLineWeight",
+			zeroGridLineColor: "horizontalZeroGridLineColor", 
+			
+			fillColors: "horizontalAxisGridFillColors",
+			fillAlphas: "horizontalAxisGridFillAlphas"
+		}
+		
+		/**
+		 * @private
+		 * The chart styles that correspond to styles on the vertical axis.
+		 */
+		private static const VERTICAL_AXIS_STYLES:Object = 
+		{
+			showAxis: "showVerticalAxis",
+			axisWeight: "verticalAxisWeight",
+			axisColor: "verticalAxisColor",
+			
+			textFormat: "textFormat",
+			embedFonts: "embedFonts",
+			hideOverlappingLabels: "verticalAxisHideOverlappingLabels",
+			labelRotation: "verticalAxisLabelRotation",
+			labelDistance: "verticalAxisLabelDistance",
+			showLabels: "showVerticalAxisLabels",
+			labelSpacing: "verticalAxisLabelSpacing",
+			titleRotation: "verticalAxisTitleRotation", 
+			titleDistance: "verticalAxisTitleDistance",
+			
+			showTitle: "showVerticalAxisTitle",
+			titleTextFormat: "verticalAxisTitleTextFormat",
+			
+			tickWeight: "verticalAxisTickWeight",
+			tickColor: "verticalAxisTickColor",
+			tickLength: "verticalAxisTickLength",
+			tickPosition: "verticalAxisTickPosition",
+			showTicks: "showVerticalAxisTicks",
+			
+			minorTickWeight: "verticalAxisMinorTickWeight",
+			minorTickColor: "verticalAxisMinorTickColor",
+			minorTickLength: "verticalAxisMinorTickLength",
+			minorTickPosition: "verticalAxisMinorTickPosition",
+			showMinorTicks: "showVerticalAxisMinorTicks"
+		};
+		
+		/**
+		 * @private
+		 * The chart styles that correspond to styles on the vertical axis
+		 * grid lines.
+		 */
+		private static const VERTICAL_GRID_LINES_STYLES:Object =
+		{
+			lineWeight: "verticalAxisGridLineWeight",
+			lineColor: "verticalAxisGridLineColor",
+			showLines: "showVerticalAxisGridLines",
+			
+			minorLineWeight: "verticalAxisMinorGridLineWeight",
+			minorLineColor: "verticalAxisMinorGridLineColor",
+			showMinorLines: "showVerticalAxisMinorGridLines",
+			
+			showZeroGridLine: "showVerticalZeroGridLine",
+			zeroGridLineWeight: "verticalZeroGridLineWeight",
+			zeroGridLineColor: "verticalZeroGridLineColor",			
+			
+			fillColors: "verticalAxisGridFillColors",
+			fillAlphas: "verticalAxisGridFillAlphas"
+		}
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, Chart.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function CartesianChart()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Storage for the contentBounds property.
+		 */
+		protected var _contentBounds:Rectangle = new Rectangle();
+	
+		/**
+		 * The rectangular bounds where the cartesian chart's data is drawn.
+		 */
+		public function get contentBounds():Rectangle
+		{
+			return this._contentBounds;
+		}
+		
+		/**
+		 * @private (protected)
+		 * Storage for the axisLayer property.
+		 */
+		protected var _axisLayer:Sprite = new Sprite();		
+		
+		/**
+		 * Container for all axis elements of the chart.
+		 */
+		public function get axisLayer():Sprite
+		{
+			return this._axisLayer;
+		}
+		
+		/**
+		 * @private
+		 */
+		protected var horizontalGridLines:IGridLinesRenderer;
+		
+		/**
+		 * @private
+		 */
+		protected var verticalGridLines:IGridLinesRenderer;
+		
+		/**
+		 * @private
+		 */
+		protected var verticalMinorGridLines:Sprite;
+		
+		/**
+		 * @private
+		 * The visual representation of the horizontal axis.
+		 */
+		protected var horizontalAxisRenderer:ICartesianAxisRenderer;
+		
+		/**
+		 * @private 
+		 * The visual representation of the secondary horizontal axis.
+		 */
+		protected var secondaryHorizontalAxisRenderer:ICartesianAxisRenderer;
+		
+		/**
+		 * @private
+		 * Storage for the horizontalAxis property.
+		 */
+		private var _horizontalAxis:IAxis;
+		
+		/**
+		 * The axis representing the horizontal range.
+		 */
+		public function get horizontalAxis():IAxis
+		{
+			return this._horizontalAxis;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalAxis(axis:IAxis):void
+		{
+			if(axis.position != "bottom" && axis.position != "top") axis.position = "bottom";
+			axis.addEventListener(AxisEvent.AXIS_FAILED, recalculateChart);
+			if(this._secondaryHorizontalAxis != axis && axis is NumericAxis && (axis as NumericAxis).order == "secondary")
+			{
+				this.secondaryHorizontalAxis = axis;
+			}
+			else if(this._horizontalAxis != axis)
+			{
+				this._horizontalAxis = axis;
+				this._horizontalAxis.chart = this;
+				if(this._horizontalAxis is NumericAxis) 
+				{
+					(this._horizontalAxis as NumericAxis).order = "primary";
+				}
+				this.invalidate("axes");
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the horizontalAxis property.
+		 */
+		private var _secondaryHorizontalAxis:IAxis;
+		
+		/**
+		 * The axis representing the horizontal range.
+		 */
+		public function get secondaryHorizontalAxis():IAxis
+		{
+			return this._secondaryHorizontalAxis;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set secondaryHorizontalAxis(axis:IAxis):void
+		{
+			if(axis.position != "bottom" && axis.position != "top") axis.position = "bottom";
+			axis.addEventListener(AxisEvent.AXIS_FAILED, recalculateChart);
+			if(this._secondaryHorizontalAxis != axis)
+			{
+				this._secondaryHorizontalAxis = axis;
+				this._secondaryHorizontalAxis.chart = this;
+				if(this._secondaryHorizontalAxis is NumericAxis) 
+				{
+					(this._secondaryHorizontalAxis as NumericAxis).order = "secondary";		
+				}
+				this.invalidate("axes");
+			}
+		}		
+		
+		/**
+		 * @private
+		 * The visual representation of the vertical axis.
+		 */
+		protected var verticalAxisRenderer:ICartesianAxisRenderer;
+		
+		/** 
+		 * @private 
+		 * The visual representation of the secondary vertical axis.
+		 */
+		protected var secondaryVerticalAxisRenderer:ICartesianAxisRenderer;
+		
+		/**
+		 * @private
+		 * Storage for the verticalAxis property.
+		 */
+		private var _verticalAxis:IAxis;
+		
+		/**
+		 * The axis representing the vertical range.
+		 */
+		public function get verticalAxis():IAxis
+		{
+			return this._verticalAxis;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalAxis(axis:IAxis):void
+		{
+			if(axis.position != "left" && axis.position != "right") axis.position = "left";
+			axis.addEventListener(AxisEvent.AXIS_FAILED, recalculateChart);
+			if(this._verticalAxis != axis && axis is NumericAxis && (axis as NumericAxis).order == "secondary")
+			{
+				this.secondaryVerticalAxis = axis;
+			}
+			else if(this._verticalAxis != axis)
+			{
+				this._verticalAxis = axis;
+				this._verticalAxis.chart = this;
+				if(this._verticalAxis is NumericAxis)
+				{
+					(this._verticalAxis as NumericAxis).order = "primary";
+				}
+				this.invalidate("axes");
+			}
+		}
+	
+		/**
+		 * @private
+		 * Storage for the verticalAxis property.
+		 */
+		private var _secondaryVerticalAxis:IAxis;
+		
+		/**
+		 * The axis representing the vertical range.
+		 */
+		public function get secondaryVerticalAxis():IAxis
+		{
+			return this._secondaryVerticalAxis;
+		}
+	
+		/**
+		 * @private
+		 */
+		public function set secondaryVerticalAxis(axis:IAxis):void
+		{
+			if(axis.position != "left" && axis.position != "right") axis.position = "left";
+			axis.addEventListener(AxisEvent.AXIS_FAILED, recalculateChart);
+			if(this._secondaryVerticalAxis != axis)
+			{
+				this._secondaryVerticalAxis = axis;
+				this._secondaryVerticalAxis.chart = this;
+				if(this._secondaryVerticalAxis is NumericAxis)
+				{
+					(this._secondaryVerticalAxis as NumericAxis).order = "secondary";
+				}
+				this.invalidate("axes");
+			}
+		}	
+		
+		/**
+		 * @private (protected)
+		 * Contains all horizontal axes used in chart
+		 */
+		protected var _horizontalAxes:Array = [];
+		
+		/**
+		 * @private (protected)
+		 * Contains all vertical axes used in the chart
+		 */
+		protected var _verticalAxes:Array = [];
+
+	//-- Data
+		
+		/**
+		 * @private
+		 * Storage for the horizontalField property.
+		 */
+		private var _horizontalField:String = "category";
+		
+		[Inspectable(defaultValue="category",verbose=1)]
+		/**
+		 * If the items displayed on the chart are complex objects, the horizontalField string
+		 * defines the property to access when determining the x value.
+		 */
+		public function get horizontalField():String
+		{
+			return this._horizontalField;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalField(value:String):void
+		{
+			if(this._horizontalField != value)
+			{
+				this._horizontalField = value;
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalField property.
+		 */
+		private var _verticalField:String = "value";
+		
+		[Inspectable(defaultValue="value",verbose=1)]
+		/**
+		 * If the items displayed on the chart are complex objects, the verticalField string
+		 * defines the property to access when determining the y value.
+		 */
+		public function get verticalField():String
+		{
+			return this._verticalField;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalField(value:String):void
+		{
+			if(this._verticalField != value)
+			{
+				this._verticalField = value;
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+		
+	//-- Titles
+		
+		/**
+		 * @private
+		 * Storage for the horizontalAxisTitle property.
+		 */
+		private var _horizontalAxisTitle:String = "";
+		
+		[Inspectable(defaultValue="")]
+		/**
+		 * The title text displayed on the horizontal axis.
+		 */
+		public function get horizontalAxisTitle():String
+		{
+			return this._horizontalAxisTitle;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalAxisTitle(value:String):void
+		{
+			if(this._horizontalAxisTitle != value)
+			{
+				this._horizontalAxisTitle = value;
+				this.invalidate(InvalidationType.DATA);
+				this.invalidate("axes");
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalAxisTitle property.
+		 */
+		private var _verticalAxisTitle:String = "";
+		
+		[Inspectable(defaultValue="")]
+		/**
+		 * The title text displayed on the horizontal axis.
+		 */
+		public function get verticalAxisTitle():String
+		{
+			return this._verticalAxisTitle;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalAxisTitle(value:String):void
+		{
+			if(this._verticalAxisTitle != value)
+			{
+				this._verticalAxisTitle = value;
+				this.invalidate(InvalidationType.DATA);
+				this.invalidate("axes");
+			}
+		}
+		
+	//-- Category names
+		
+		/**
+		 * @private
+		 * Storage for the categoryNames property.
+		 */
+		private var _explicitCategoryNames:Array;
+		
+		[Inspectable]
+		/**
+		 * The names of the categories displayed on the category axis. If the
+		 * chart does not have a category axis, this value will be ignored.
+		 */
+		public function get categoryNames():Array
+		{
+			if(this._explicitCategoryNames && this._explicitCategoryNames.length > 0)
+			{
+				return this._explicitCategoryNames;
+			}
+			else if(this.horizontalAxis is CategoryAxis)
+			{
+				return CategoryAxis(this.horizontalAxis).categoryNames;
+			}
+			else if(this.verticalAxis is CategoryAxis)
+			{
+				return CategoryAxis(this.verticalAxis).categoryNames;
+			}
+			return null;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set categoryNames(value:Array):void
+		{
+			if(this._explicitCategoryNames != value)
+			{
+				this._explicitCategoryNames = value;
+				this.invalidate(InvalidationType.DATA);
+				this.invalidate("axes");
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the overflowEnabled property.
+		 */
+		private var _overflowEnabled:Boolean = false;
+		
+		[Inspectable(defaultValue=false,verbose=1)]
+		/**
+		 * If false, which is the default, the axes will be resized to fit within the defined
+		 * bounds of the plot area. However, if set to true, the axes themselves will grow to
+		 * fit the plot area bounds and the labels and other items that normally cause the
+		 * resize will be drawn outside.
+		 */
+		public function get overflowEnabled():Boolean
+		{
+			return this._overflowEnabled;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set overflowEnabled(value:Boolean):void
+		{
+			if(this._overflowEnabled != value)
+			{
+				this._overflowEnabled = value;
+				this.invalidate("axes");
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for constrainViewport property.
+		 */
+		private var _constrainViewport:Boolean = true;
+		
+		/**
+		 * Determines whether a scrollRect is set on a series to constrain the viewport
+		 */
+		public function get constrainViewport():Boolean
+		{
+			return this._constrainViewport;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set constrainViewport(value:Boolean):void
+		{
+			this._constrainViewport = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for recalculations
+		 */
+		private var _recalculations:int = 0;
+		
+		/**
+		 * Number of times label width is recalculated for all axes
+		 */
+		public function get recalculations():int
+		{
+			return _recalculations;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set recalculations(value:int):void
+		{
+			_recalculations = value;
+		}
+
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		public function itemToPosition(series:ISeries, itemIndex:int):Point
+		{
+			var hAxis:IAxis = this.horizontalAxis;
+			var vAxis:IAxis = this.verticalAxis;
+			if(series is CartesianSeries && CartesianSeries(series).axis == "secondary")
+			{
+				if(this.horizontalAxis is IOriginAxis && this.secondaryHorizontalAxis != null) hAxis = this.secondaryHorizontalAxis;
+				if(this.verticalAxis is IOriginAxis && this.secondaryVerticalAxis != null) vAxis = this.secondaryVerticalAxis;
+			}
+			var horizontalValue:Object = this.itemToAxisValue(series, itemIndex, hAxis);
+			var xPosition:Number = hAxis.valueToLocal(horizontalValue);
+			
+			var verticalValue:Object = this.itemToAxisValue(series, itemIndex, vAxis);
+			var yPosition:Number = vAxis.valueToLocal(verticalValue);
+			
+			return new Point(xPosition, yPosition);
+		}
+		
+		/**
+		 * @private
+		 */
+		public function itemToAxisValue(series:ISeries, itemIndex:int, axis:IAxis, stack:Boolean = true):Object
+		{
+			if(!stack || !ChartUtil.isStackingAllowed(axis, series))
+			{
+				var item:Object = series.dataProvider[itemIndex];
+				var valueField:String = this.axisAndSeriesToField(axis, series);
+				return item[valueField];
+			}
+			
+			var type:Class = UIComponentUtil.getClassDefinition(series);
+			var stackAxis:IStackingAxis = IStackingAxis(axis);
+			var stackValue:Object;
+			var allSeriesOfType:Array = ChartUtil.findSeriesOfType(series, this);
+			var seriesIndex:int = allSeriesOfType.indexOf(series);
+			var values:Array = [];
+			for(var i:int = 0; i <= seriesIndex; i++)
+			{
+				var stackedSeries:IStackedSeries = IStackedSeries(allSeriesOfType[i]);
+				item = stackedSeries.dataProvider[itemIndex];
+				valueField = this.axisAndSeriesToField(stackAxis, stackedSeries);
+				values.unshift(item[valueField]);
+			}
+			
+			if(values.length > 0) stackValue = stackAxis.stack.apply(stackAxis, values);
+			return stackValue;
+		}
+		
+		/**
+		 * Used to retrieve an axis style
+		 */
+		public function getAxisStyle(axisName:String, name:String):Object
+		{
+			var obj:Object = this.getStyleValue(axisName + "AxisStyles");
+			var style:Object;
+			if(obj[name] != null)
+			{
+				style =  obj[name];
+			}
+			else
+			{
+				var defaultStyles:Object = (axisName).toLowerCase().indexOf("horizontal") > -1 ? HORIZONTAL_AXIS_STYLES : VERTICAL_AXIS_STYLES;
+				style = this.getStyleValue(defaultStyles[name]);
+			}
+			return style;
+		}
+				
+		/**
+		 * Sets a style on the horizontal axis grid lines.
+		 */
+		public function setHorizontalAxisGridLinesStyle(name:String, value:Object):void
+		{
+			this.setComplexStyle("horizontalAxisGridLinesStyles", name, value);
+		}
+		
+		/**
+		 * Sets a style on the vertical axis grid lines.
+		 */
+		public function setVerticalAxisGridLinesStyle(name:String, value:Object):void
+		{
+			this.setComplexStyle("verticalAxisGridLinesStyles", name, value);
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+
+		/**
+		 * @private
+		 * Redraws chart after an axis label overflows
+		 */		
+		private function recalculateChart(event:AxisEvent):void
+		{
+			this.recalculations++;
+			if(this.recalculations < 8)
+			{
+				this.drawAxes();
+				this.drawSeries();
+				this.updateLegend();
+			}
+			else
+			{
+				this.dispatchEvent(new AxisEvent(AxisEvent.AXIS_READY));
+			}
+			
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			var dataInvalid:Boolean = this.isInvalid(InvalidationType.DATA);
+			var stylesInvalid:Boolean = this.isInvalid(InvalidationType.STYLES);
+			var sizeInvalid:Boolean = this.isInvalid(InvalidationType.SIZE);
+			var axesInvalid:Boolean = this.isInvalid("axes");
+			
+			super.draw();
+			
+			if(stylesInvalid || axesInvalid)
+			{
+				this.updateRenderers();
+			}
+
+			if((sizeInvalid || dataInvalid || stylesInvalid || axesInvalid) && this.width > 0 && this.height > 0)
+			{
+				this.recalculations = 0;
+				var allAxes:Array = this._horizontalAxes.concat(this._verticalAxes);
+				var len:int = allAxes.length;
+				var i:int;
+				for(i = 0; i < len; i++)
+				{
+					(allAxes[i] as IAxis).maxLabel = "";
+				}
+								
+				this.drawAxes();
+					
+				//the series display objects are dependant on the axes, so all series redraws must
+				//happen after the axes have redrawn
+				this.drawSeries();	
+			}
+			
+			this.updateLegend();
+		}
+		
+		/**
+		 * @private
+		 * Make sure no numeric points exist. Convert to objects compatible with the axes.
+		 */
+		//Should be ok, only using horizontalAxis and verticalAxis to determine where the categoryAxis is
+		override protected function refreshSeries():void
+		{
+			super.refreshSeries();
+			var numericAxis:IAxis = this.horizontalAxis;
+			var otherAxis:IAxis = this.verticalAxis;
+			if(this.verticalAxis is NumericAxis)
+			{
+				numericAxis = this.verticalAxis;
+				otherAxis = this.horizontalAxis;
+			}
+						
+			var seriesCount:int = this.series.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var currentSeries:ISeries = this.series[i] as ISeries;
+				
+				var numericField:String = this.axisAndSeriesToField(numericAxis, currentSeries);
+				var otherField:String = this.axisAndSeriesToField(otherAxis, currentSeries);
+				
+				var seriesLength:int = currentSeries.length;
+				for(var j:int = 0; j < seriesLength; j++)
+				{
+					var item:Object = currentSeries.dataProvider[j];
+					if(item is Number || !isNaN(Number(item)))
+					{
+						//if we only have a number, then it is safe to convert
+						//to a default type for a category chart.
+						//if it's not a number, then the user is expected to update
+						//the x and y fields so that the plot area knows how to handle it.
+						var point:Object = {};
+						point[numericField] = item;
+						
+						//we assume it's a category axis
+						if(this._explicitCategoryNames && this._explicitCategoryNames.length > 0)
+						{
+							point[otherField] = this.categoryNames[j];
+						}
+						else point[otherField] = j;
+						currentSeries.dataProvider[j] = point;
+					}
+				}                 	
+				combineDuplicateCategoryNames(otherAxis);
+			}						
+		}
+			
+		/**
+		 * @private
+		 *
+		 * Combines duplicate category labels
+		 */
+		private function combineDuplicateCategoryNames(categoryAxis:IAxis):void
+		{
+			if(!(categoryAxis is CategoryAxis)) return;
+			var seriesCount:int = this.series.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var currentSeries:ISeries = this.series[i] as ISeries;
+				var categoryField:String = this.axisAndSeriesToField(categoryAxis, currentSeries);
+				var dict:Dictionary = new Dictionary();
+				var seriesLength:int = currentSeries.length;
+				var newDataProvider:Array = [];
+				for(var j:int = 0; j < seriesLength; j++)
+				{	
+					var item:Object = currentSeries.dataProvider[j];
+
+					if(item.hasOwnProperty(categoryField)) 
+					{
+						//Combine items that share the same "categoryField" property
+						if(!dict.hasOwnProperty(item[categoryField]))
+						{
+							dict[item[categoryField]] = item;
+							newDataProvider.push(dict[item[categoryField]]);
+						}
+						else
+						{
+							for(var z:String in item)
+							{
+								if(z != categoryField && item[z] != null)
+								{
+									dict[item[categoryField]][z] = item[z];
+								}
+							}
+						}
+					}
+					else
+					{
+						dict[item] = item;
+						newDataProvider.push(dict[item]);
+					}
+				}	
+				currentSeries.dataProvider = newDataProvider.concat();				
+			}
+		}
+		
+		/**
+		 * @private
+		 * Creates the default axes. Without user intervention, the x-axis is a category
+		 * axis and the y-axis is a numeric axis.
+		 */
+		override protected function configUI():void
+		{
+			super.configUI();
+			this.addChild(this.axisLayer);
+			
+			//by default, the x axis is for categories. other types of charts will need
+			//to override this if they need a numeric or other type of axis
+			if(!this.horizontalAxis)
+			{
+				var categoryAxis:CategoryAxis = new CategoryAxis();
+				this.horizontalAxis = categoryAxis;
+			}
+			
+			if(!this.horizontalAxisRenderer)
+			{
+				var RendererClass:Class = this.getStyleValue("horizontalAxisRenderer") as Class;
+				this.horizontalAxisRenderer = new RendererClass();
+				this.horizontalAxisRenderer.position = "bottom";
+				this.axisLayer.addChild(DisplayObject(this.horizontalAxisRenderer));
+				this.horizontalAxis.renderer = this.horizontalAxisRenderer;
+			}
+			
+			if(!this.verticalAxis)
+			{
+				var numericAxis:NumericAxis = new NumericAxis();
+				numericAxis.stackingEnabled = true;
+				this.verticalAxis = numericAxis;
+			}
+			
+			if(!this.verticalAxisRenderer)
+			{
+				RendererClass = this.getStyleValue("verticalAxisRenderer") as Class;
+				this.verticalAxisRenderer = new RendererClass();
+				this.verticalAxisRenderer.position = "left";
+				this.axisLayer.addChild(DisplayObject(this.verticalAxisRenderer));
+				this.verticalAxis.renderer = this.verticalAxisRenderer;
+			}
+			
+			this._horizontalAxes.push(this.horizontalAxis);
+			this._verticalAxes.push(this.verticalAxis);
+		}
+		
+		/**
+		 * @private
+		 * Determines the text that will appear on the data tip.
+		 */
+		//Should be ok, only using horizontalAxis and verticalAxis to determine where the categoryAxis is
+		override protected function defaultDataTipFunction(item:Object, index:int, series:ISeries):String
+		{
+			var text:String = super.defaultDataTipFunction(item, index, series);
+			if(text.length > 0)
+			{
+				text += "\n";
+			}
+			
+			var categoryAxis:CategoryAxis = this.verticalAxis as CategoryAxis;
+			var otherAxis:IAxis = this.horizontalAxis;
+			if(!categoryAxis)
+			{
+				categoryAxis = this.horizontalAxis as CategoryAxis;
+				otherAxis = this.verticalAxis;
+			}
+			
+			//if we have a category axis, the category is always displayed first
+			if(categoryAxis)
+			{
+				var categoryValue:Object = this.itemToAxisValue(series, index, categoryAxis, false);
+				text += categoryAxis.valueToLabel(categoryValue) + "\n";
+				
+				var otherValue:Object = this.itemToAxisValue(series, index, otherAxis, false);
+				text += otherAxis.valueToLabel(otherValue) + "\n";
+			}
+			//otherwise, display the horizontal axis value first
+			else
+			{
+				var horizontalValue:Object = this.itemToAxisValue(series, index, this.horizontalAxis, false);
+				text += horizontalAxis.valueToLabel(horizontalValue) + "\n";
+				
+				var verticalValue:Object = this.itemToAxisValue(series, index, this.verticalAxis, false);
+				text += verticalAxis.valueToLabel(verticalValue) + "\n";
+			}
+			return text;
+		}
+	
+		/**
+		 * @private
+		 * Positions and updates the series objects.
+		 */
+		protected function drawSeries():void
+		{
+			var contentPadding:Number = this.getStyleValue("contentPadding") as Number;
+			var seriesWidth:Number = this._contentBounds.width - (contentPadding * 2);
+			var seriesHeight:Number = this._contentBounds.height - (contentPadding *2);
+			
+			if(this.constrainViewport)
+			{
+				var contentScrollRect:Rectangle = new Rectangle(0, 0, seriesWidth, seriesHeight);
+				this.content.scrollRect = contentScrollRect;
+			}
+			else
+			{
+				this.content.scrollRect = null;
+			}
+			
+			this.content.x = contentPadding + this._contentBounds.x;
+			this.content.y = contentPadding + this._contentBounds.y;
+			
+			var seriesCount:int = this.series.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:UIComponent = this.series[i] as UIComponent;
+				series.width = seriesWidth;
+				series.height = seriesHeight;
+				series.drawNow();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Removes the old axis renderers and create new instances.
+		 */
+		protected function updateRenderers():void
+		{
+			this._horizontalAxes = [];
+			this._verticalAxes = [];
+			
+			//create axis renderers
+			if(this.horizontalAxisRenderer)
+			{
+				this.axisLayer.removeChild(DisplayObject(this.horizontalAxisRenderer));
+				this.horizontalAxisRenderer = null;
+			}
+			
+			var RendererClass:Class = this.getStyleValue("horizontalAxisRenderer") as Class;
+			this.horizontalAxisRenderer = new RendererClass();
+			this.horizontalAxisRenderer.position = this.horizontalAxis.position;
+			this.axisLayer.addChild(DisplayObject(this.horizontalAxisRenderer));
+			this.copyStylesToChild(UIComponent(this.horizontalAxisRenderer), CartesianChart.HORIZONTAL_AXIS_STYLES);
+			this.copyStyleObjectToChild(UIComponent(this.horizontalAxisRenderer), this.getStyleValue("horizontalAxisStyles"));
+			var horizontalAxisTextFormat:TextFormat = this.getAxisStyle("horizontal", "textFormat") as TextFormat;
+			
+			if(horizontalAxisTextFormat)
+			{
+				UIComponent(this.horizontalAxisRenderer).setStyle("textFormat", horizontalAxisTextFormat);
+			}
+			
+			this.horizontalAxis.renderer = this.horizontalAxisRenderer;
+			this._horizontalAxes.push(this.horizontalAxis);
+		
+			if(this.verticalAxisRenderer)
+			{
+				this.axisLayer.removeChild(DisplayObject(this.verticalAxisRenderer));
+				this.verticalAxisRenderer = null;
+			}
+			
+			RendererClass = this.getStyleValue("verticalAxisRenderer") as Class;
+			this.verticalAxisRenderer = new RendererClass();
+			this.verticalAxisRenderer.position = this.verticalAxis.position;
+			this.axisLayer.addChild(DisplayObject(this.verticalAxisRenderer));
+			this.copyStylesToChild(UIComponent(verticalAxisRenderer), CartesianChart.VERTICAL_AXIS_STYLES);
+			this.copyStyleObjectToChild(UIComponent(this.verticalAxisRenderer), this.getStyleValue("verticalAxisStyles"));
+			var verticalAxisTextFormat:TextFormat = this.getAxisStyle("vertical", "textFormat") as TextFormat;
+			if(verticalAxisTextFormat)
+			{
+				UIComponent(this.verticalAxisRenderer).setStyle("textFormat", verticalAxisTextFormat);
+			}
+			
+			this.verticalAxis.renderer = this.verticalAxisRenderer;
+			this._verticalAxes.push(this.verticalAxis);			
+			
+			if(this.secondaryHorizontalAxisRenderer)
+			{
+				this.axisLayer.removeChild(DisplayObject(this.secondaryHorizontalAxisRenderer));
+				this.secondaryHorizontalAxisRenderer = null;
+			}
+			
+			if(this.secondaryHorizontalAxis != null)
+			{
+				RendererClass = this.getStyleValue("secondaryHorizontalAxisRenderer") as Class;
+				this.secondaryHorizontalAxisRenderer = new RendererClass();
+	
+				this.secondaryHorizontalAxisRenderer.position = this.secondaryHorizontalAxis.position;
+				this.axisLayer.addChild(DisplayObject(this.secondaryHorizontalAxisRenderer));
+				this.copyStylesToChild(UIComponent(this.secondaryHorizontalAxisRenderer), CartesianChart.HORIZONTAL_AXIS_STYLES);
+				this.copyStyleObjectToChild(UIComponent(this.secondaryHorizontalAxisRenderer), this.getStyleValue("horizontalAxisStyles"));
+				this.copyStyleObjectToChild(UIComponent(this.secondaryHorizontalAxisRenderer), this.getStyleValue("secondaryHorizontalAxisStyles"));
+				var secondaryHorizontalAxisTextFormat:TextFormat = this.getAxisStyle("secondaryHorizontal", "textFormat") as TextFormat;
+				if(!secondaryHorizontalAxisTextFormat) secondaryHorizontalAxisTextFormat = this.getAxisStyle("horizontal", "textFormat") as TextFormat;
+				if(secondaryHorizontalAxisTextFormat)
+				{
+					UIComponent(this.secondaryHorizontalAxisRenderer).setStyle("textFormat", secondaryHorizontalAxisTextFormat);
+				}
+				this.secondaryHorizontalAxis.renderer = this.secondaryHorizontalAxisRenderer;
+				this._horizontalAxes.push(this.secondaryHorizontalAxis);
+			}			
+			if(this.secondaryVerticalAxisRenderer)
+			{
+				this.axisLayer.removeChild(DisplayObject(this.secondaryVerticalAxisRenderer));
+				this.secondaryVerticalAxisRenderer = null;
+			}
+			
+			if(this.secondaryVerticalAxis != null)
+			{
+				RendererClass = this.getStyleValue("secondaryVerticalAxisRenderer") as Class;			
+				this.secondaryVerticalAxisRenderer = new RendererClass();
+				this.secondaryVerticalAxisRenderer.position = this.secondaryVerticalAxis.position;
+				this.axisLayer.addChild(DisplayObject(this.secondaryVerticalAxisRenderer));
+				this.copyStylesToChild(UIComponent(this.secondaryVerticalAxisRenderer), CartesianChart.VERTICAL_AXIS_STYLES);
+				this.copyStyleObjectToChild(UIComponent(this.secondaryVerticalAxisRenderer), this.getStyleValue("verticalAxisStyles"));
+				this.copyStyleObjectToChild(UIComponent(this.secondaryVerticalAxisRenderer), this.getStyleValue("secondaryVerticalAxisStyles"));
+				var secondaryVerticalAxisTextFormat:TextFormat = this.getAxisStyle("secondaryVertical", "textFormat") as TextFormat;
+				if(!secondaryVerticalAxisTextFormat) secondaryVerticalAxisTextFormat = this.getAxisStyle("vertical", "textFormat") as TextFormat;
+				if(secondaryVerticalAxisTextFormat)
+				{
+					UIComponent(this.secondaryVerticalAxisRenderer).setStyle("textFormat", secondaryVerticalAxisTextFormat);
+				}
+				this.secondaryVerticalAxis.renderer = this.secondaryVerticalAxisRenderer;
+				this._verticalAxes.push(this.secondaryVerticalAxis);
+			}
+			//create grid lines renderers
+			
+			if(this.horizontalGridLines)
+			{
+				this.removeChild(DisplayObject(this.horizontalGridLines));
+			}
+			RendererClass = this.getStyleValue("horizontalAxisGridLinesRenderer") as Class;
+			this.horizontalGridLines = new RendererClass();
+			this.horizontalGridLines.axisRenderer = this.horizontalAxisRenderer;
+			this.addChild(DisplayObject(this.horizontalGridLines));
+			this.copyStylesToChild(UIComponent(this.horizontalGridLines), CartesianChart.HORIZONTAL_GRID_LINES_STYLES);
+			this.copyStyleObjectToChild(UIComponent(this.horizontalGridLines), this.getStyleValue("horizontalAxisGridLinesStyles")); 
+			
+			if(this.verticalGridLines)
+			{
+				this.removeChild(DisplayObject(this.verticalGridLines));
+			}
+			RendererClass = this.getStyleValue("verticalAxisGridLinesRenderer") as Class;
+			this.verticalGridLines = new RendererClass();
+			this.verticalGridLines.axisRenderer = this.verticalAxisRenderer;
+			this.addChild(DisplayObject(this.verticalGridLines));
+			this.copyStylesToChild(UIComponent(this.verticalGridLines), CartesianChart.VERTICAL_GRID_LINES_STYLES);
+			this.copyStyleObjectToChild(UIComponent(this.verticalGridLines), this.getStyleValue("verticalAxisGridLinesStyles")); 
+			
+		}
+		
+		/**
+		 * @private
+		 * Positions and sizes the axes based on their edge metrics.
+		 */
+		protected function drawAxes():void
+		{	
+			var horizontalAxisLabelData:AxisLabelData = new AxisLabelData();
+			var verticalAxisLabelData:AxisLabelData = new AxisLabelData();
+						
+			var contentPadding:Number = this.getStyleValue("contentPadding") as Number;
+			var axisWidth:Number = this.width - (2 * contentPadding);
+			var axisHeight:Number = this.height - (2 * contentPadding);
+			
+			var topBuffer:Number = 0;
+			var rightBuffer:Number = 0;
+			var bottomBuffer:Number = 0;
+			var leftBuffer:Number = 0;
+			
+			var allAxes:Array = this._horizontalAxes.concat(this._verticalAxes);
+			var len:int = allAxes.length;
+			var i:int;
+			for(i = 0; i < len; i++)
+			{
+				var axis:IAxis = allAxes[i] as IAxis;
+				if(axis is CategoryAxis && this._explicitCategoryNames && this._explicitCategoryNames.length > 0)
+				{
+					CategoryAxis(axis).categoryNames = this._explicitCategoryNames;
+				}
+				var axisRenderer:UIComponent = UIComponent(axis.renderer);
+				var cartesianAxisRenderer:ICartesianAxisRenderer = axis.renderer as ICartesianAxisRenderer;
+				axisRenderer.setSize(axisWidth, axisHeight);
+				cartesianAxisRenderer.title = axis.title;
+				this.axisLayer.setChildIndex(axisRenderer, this.axisLayer.numChildren - 1);			
+				cartesianAxisRenderer.ticks = [];
+				cartesianAxisRenderer.minorTicks = [];
+			
+				cartesianAxisRenderer.outerTickOffset = this.getAxisTickOffset(cartesianAxisRenderer) as Number;
+				
+				axis.labelData = (cartesianAxisRenderer.orientation == AxisOrientation.VERTICAL) ? verticalAxisLabelData : horizontalAxisLabelData;	
+				axis.dataProvider = this.series;
+				
+				switch(axis.position)
+				{
+					case "top" :
+						topBuffer += axis.height;
+					break;
+					case "left" :
+						leftBuffer += axis.width;
+					break;
+					case "right" :
+						rightBuffer += axis.width;
+					break;
+					case "bottom" :
+						bottomBuffer += axis.height;
+					break;	
+				}						
+			}
+			
+			this._contentBounds = new Rectangle();			
+			
+			this.contentBounds.x = Math.ceil(Math.max(leftBuffer, horizontalAxisLabelData.leftLabelOffset));
+			this.contentBounds.y = Math.ceil(verticalAxisLabelData.topLabelOffset);
+			this.contentBounds.width = Math.floor(this.width - (this.contentBounds.x + Math.max(rightBuffer, horizontalAxisLabelData.rightLabelOffset)));
+			this.contentBounds.y = Math.ceil(Math.max(topBuffer, verticalAxisLabelData.topLabelOffset));	
+			this.contentBounds.height = Math.floor(this.height - (this.contentBounds.y + Math.max(bottomBuffer, verticalAxisLabelData.bottomLabelOffset)));			
+			
+			for(i = 0; i < len; i++)
+			{
+				axis = allAxes[i] as IAxis;
+				cartesianAxisRenderer = axis.renderer as ICartesianAxisRenderer;
+				cartesianAxisRenderer.contentBounds.width = this.contentBounds.width - (contentPadding * 2);
+				cartesianAxisRenderer.contentBounds.height = this.contentBounds.height - (contentPadding * 2);
+				cartesianAxisRenderer.contentBounds.x = contentPadding + this.contentBounds.x;
+				cartesianAxisRenderer.contentBounds.y = contentPadding + this.contentBounds.y;				
+				axis.updateScale();
+				cartesianAxisRenderer.updateAxis();				
+			}
+			
+			this.drawGridLines();
+		}
+		
+		/**
+		 * @private
+		 * Returns the amount of distance ticks extend over the edge of the content bounds
+		 */
+		public function getAxisTickOffset(axis:ICartesianAxisRenderer):Number
+		{
+			var showTicks:Boolean = (axis as UIComponent).getStyle("showTicks") as Boolean;
+			var showMinorTicks:Boolean = (axis as UIComponent).getStyle("showMinorTicks") as Boolean;
+			var tickPosition:String = (axis as UIComponent).getStyle("tickPosition") as String;
+			var minorTickPosition:String = (axis as UIComponent).getStyle("minorTickPosition") as String;
+			var tickLength:Number = (axis as UIComponent).getStyle("tickLength") as Number;
+			var minorTickLength:Number = (axis as UIComponent).getStyle("minorTickLength") as Number;
+			var tickBuffer:Number = 0;
+			var minorTickBuffer:Number = 0;
+			
+			if(showTicks)
+			{
+				if(tickPosition == "outside")
+				{
+					tickBuffer = tickLength;
+				}
+				else if(tickPosition == "cross")
+				{
+					tickBuffer = tickLength/2;
+				}
+			}
+			
+			if(showMinorTicks)
+			{
+				if(minorTickPosition == "outside")
+				{
+					minorTickBuffer = minorTickLength;
+				}
+				else if(minorTickPosition == "cross")
+				{
+					minorTickBuffer = minorTickLength/2;
+				}								
+			}			
+			
+			return Math.max(tickBuffer, minorTickBuffer);
+		}
+		
+		/**
+		 * @private
+		 * Draws the axis grid lines, if they exist.
+		 */
+		protected function drawGridLines():void
+		{
+			var contentPadding:Number = this.getStyleValue("contentPadding") as Number;
+			var horizontalAxisRenderer:UIComponent = this.horizontalAxisRenderer as UIComponent;
+			var verticalAxisRenderer:UIComponent = this.verticalAxisRenderer as UIComponent;
+			
+			var index:int = 0;
+			if(this.background)
+			{
+				index++;
+			}
+			
+			if(this.horizontalGridLines)
+			{
+				var horizontalGridLines:UIComponent = this.horizontalGridLines as UIComponent;
+				this.setChildIndex(horizontalGridLines, index++);
+				horizontalGridLines.x = contentPadding + this.contentBounds.x;
+				horizontalGridLines.y = contentPadding + this.contentBounds.y;
+				horizontalGridLines.drawNow();
+			}
+			
+			if(this.verticalGridLines)
+			{
+				var verticalGridLines:UIComponent = this.verticalGridLines as UIComponent;
+				this.setChildIndex(verticalGridLines, index++);
+				verticalGridLines.x = contentPadding + this.contentBounds.x;
+				verticalGridLines.y = contentPadding + this.contentBounds.y;
+				verticalGridLines.drawNow();
+			}
+		}
+		 
+		 /**
+		  * @private
+		  */
+		 public function setComplexStyle(complexName:String, subStyleName:String, subStyleValue:Object):void
+		 {
+			var container:Object = this.getStyleValue(complexName);
+			var copy:Object = {};
+			for(var prop:String in container)
+			{
+				copy[prop] = container[prop];
+			}
+			copy[subStyleName] = subStyleValue;
+			this.setStyle(complexName, copy);
+		 } 
+		
+		/**
+		 * @private
+		 */
+		protected function copyStyleObjectToChild(child:UIComponent, styles:Object):void
+		{
+			if(!child)
+			{
+				return;
+			}
+			
+			for(var prop:String in styles)
+			{
+				child.setStyle(prop, styles[prop]);
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function axisAndSeriesToField(axis:IAxis, series:ISeries):String
+		{
+			var cartesianSeries:CartesianSeries = series as CartesianSeries;
+			var field:String = this.axisToField(axis);
+			var renderer:ICartesianAxisRenderer = this.axisToAxisRenderer(axis);
+			if(renderer.orientation == AxisOrientation.VERTICAL && cartesianSeries.verticalField)
+			{
+				field = cartesianSeries.verticalField;
+			}
+			else if(renderer.orientation == AxisOrientation.HORIZONTAL && cartesianSeries.horizontalField)
+			{
+				field = cartesianSeries.horizontalField;
+			}
+			
+			return field;
+		}
+	
+		/**
+		 * @private
+		 */
+		protected function axisToField(axis:IAxis):String
+		{
+			if(axis == this.horizontalAxis || axis == this.secondaryHorizontalAxis)
+			{
+				return this.horizontalField;
+			}
+			else if(axis == this.verticalAxis || axis == this.secondaryVerticalAxis)
+			{
+				return this.verticalField;
+			}
+			return null;
+		}
+		
+		
+		/**
+		 * @private
+		 * Finds the renderer for the specified axis.
+		 */
+		protected function axisToAxisRenderer(axis:IAxis):ICartesianAxisRenderer
+		{
+			if(axis == this.horizontalAxis)
+			{
+				return this.horizontalAxisRenderer;
+			}
+			else if(axis == this.verticalAxis)
+			{
+				return this.verticalAxisRenderer;
+			}
+			else if(axis == this.secondaryHorizontalAxis)
+			{
+				return this.secondaryHorizontalAxisRenderer;
+			}
+			else if(axis == this.secondaryVerticalAxis)
+			{
+				return this.secondaryVerticalAxisRenderer;
+			}
+			return null;
+		}
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/Chart.as b/src/charts/as/com/yahoo/astra/fl/charts/Chart.as
new file mode 100644
index 0000000..e751409
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/Chart.as
@@ -0,0 +1,890 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.events.ChartEvent;
+	import com.yahoo.astra.fl.charts.legend.ILegend;
+	import com.yahoo.astra.fl.charts.legend.LegendItemData;
+	import com.yahoo.astra.fl.charts.series.ICategorySeries;
+	import com.yahoo.astra.fl.charts.series.ILegendItemSeries;
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.series.ISeriesItemRenderer;
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	
+	import flash.accessibility.AccessibilityProperties;
+	import flash.display.DisplayObject;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.events.MouseEvent;
+	import flash.geom.Point;
+	import flash.text.TextFormat;
+	import flash.text.TextFormatAlign;
+	import flash.utils.getDefinitionByName;
+	import flash.events.ErrorEvent;
+		
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+	
+	/**
+     * The padding that separates the border of the component from its contents,
+     * in pixels.
+     *
+     * @default 10
+     */
+    [Style(name="contentPadding", type="Number")]
+	
+	/**
+     * Name of the class to use as the skin for the background and border of the
+     * component.
+     *
+     * @default ChartBackgroundSkin
+     */
+    [Style(name="backgroundSkin", type="Class")]
+	
+	/**
+     * The default colors for each series. These colors are used for markers,
+     * in most cases, but they may apply to lines, fills, or other graphical
+     * items.
+     * 
+     * <p>An Array of values that correspond to series indices in the data
+     * provider. If the number of values in the Array is less than the number
+     * of series, then the next series will restart at index zero in the style
+     * Array. If the value of this style is an empty Array, then each individual series
+     * will use the default or modified value set on the series itself.</p> 
+     *
+     * <p>Example: If the seriesColors style is equal to [0xffffff, 0x000000] and there
+     * are three series in the chart's data provider, then the series at index 0
+     * will have a color of 0xffffff, index 1 will have a color of 0x000000, and
+     * index 2 will have a color of 0xffffff (starting over from the beginning).</p>
+     * 
+     * @default [0x00b8bf, 0x8dd5e7, 0xedff9f, 0xffa928, 0xc0fff6, 0xd00050, 0xc6c6c6, 0xc3eafb, 0xfcffad, 0xcfff83, 0x444444, 0x4d95dd, 0xb8ebff, 0x60558f, 0x737d7e, 0xa64d9a, 0x8e9a9b, 0x803e77]
+     */
+    [Style(name="seriesColors", type="Array")]
+	
+	/**
+     * The default size of the markers in pixels. The actual drawn size of the
+     * markers could end up being different in some cases. For example, bar charts
+     * and column charts display markers side-by-side, and a chart may need to make
+     * the bars or columns smaller to fit within the required region.
+     *
+     * <p>An Array of values that correspond to series indices in the data
+     * provider. If the number of values in the Array is less than the number
+     * of series, then the next series will restart at index zero in the style
+     * Array. If the value of this style is an empty Array, then each individual series
+     * will use the default or modified value set on the series itself.</p>
+     * 
+     * <p>Example: If the seriesMarkerSizes style is equal to [10, 15] and there
+     * are three series in the chart's data provider, then the series at index 0
+     * will have a marker size of 10, index 1 will have a marker size of 15, and
+     * index 2 will have a marker size of 10 (starting over from the beginning).</p>
+     * 
+     * @default []
+     */
+    [Style(name="seriesMarkerSizes", type="Array")]
+	
+	/**
+     * An Array containing the default skin classes for each series. These classes
+     * are used to instantiate the marker skins. The values may be fully-qualified
+     * package and class strings or a reference to the classes themselves.
+     *
+     * <p>An Array of values that correspond to series indices in the data
+     * provider. If the number of values in the Array is less than the number
+     * of series, then the next series will restart at index zero in the style
+     * Array. If the value of this style is an empty Array, then each individual series
+     * will use the default or modified value set on the series itself.</p> 
+     * 
+     * <p>Example: If the seriesMarkerSkins style is equal to [CircleSkin, DiamondSkin] and there
+     * are three series in the chart's data provider, then the series at index 0
+     * will have a marker skin of CircleSkin, index 1 will have a marker skin of DiamondSkin, and
+     * index 2 will have a marker skin of CircleSkin (starting over from the beginning).</p>
+     * 
+     * @default []
+     */
+    [Style(name="seriesMarkerSkins", type="Array")]
+	
+	/**
+	 * The TextFormat object to use to render data tips.
+     *
+     * @default TextFormat("_sans", 11, 0x000000, false, false, false, '', '', TextFormatAlign.LEFT, 0, 0, 0, 0)
+     */
+    [Style(name="dataTipTextFormat", type="TextFormat")]
+	
+	/**
+     * Name of the class to use as the skin for the background and border of the
+     * chart's data tip.
+     *
+     * @default ChartDataTipBackground
+     */
+    [Style(name="dataTipBackgroundSkin", type="Class")]
+	
+	/**
+	 * If the datatip's content padding is customizable, it will use this value.
+	 * The padding that separates the border of the component from its contents,
+     * in pixels.
+     *
+     * @default 6
+     */
+    [Style(name="dataTipContentPadding", type="Number")]
+	
+	/**
+	 * Determines if data changes should be displayed with animation.
+     *
+     * @default true
+     */
+    [Style(name="animationEnabled", type="Boolean")]
+	
+	/**
+	 * Indicates whether embedded font outlines are used to render the text
+	 * field. If this value is true, Flash Player renders the text field by
+	 * using embedded font outlines. If this value is false, Flash Player
+	 * renders the text field by using device fonts.
+	 * 
+	 * If you set the embedFonts property to true for a text field, you must
+	 * specify a font for that text by using the font property of a TextFormat
+	 * object that is applied to the text field. If the specified font is not
+	 * embedded in the SWF file, the text is not displayed.
+	 * 
+	 * @default false
+     */
+    [Style(name="embedFonts", type="Boolean")]
+    
+	/**
+	 * Functionality common to most charts. Generally, a <code>Chart</code> object
+	 * shouldn't be instantiated directly. Instead, a subclass with a concrete
+	 * implementation should be used. That subclass generally should implement the
+	 * <code>IPlotArea</code> interface.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class Chart extends UIComponent
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{
+			seriesMarkerSizes: null,
+			seriesMarkerSkins: null,
+			seriesColors:
+			[
+				0x00b8bf, 0x8dd5e7, 0xedff9f, 0xffa928, 0xc0fff6, 0xd00050,
+				0xc6c6c6, 0xc3eafb, 0xfcffad, 0xcfff83, 0x444444, 0x4d95dd,
+				0xb8ebff, 0x60558f, 0x737d7e, 0xa64d9a, 0x8e9a9b, 0x803e77
+			],
+			seriesBorderColors:[],
+			seriesFillColors:[],
+			seriesLineColors:[],
+			seriesBorderAlphas:[1],
+			seriesFillAlphas:[1],
+			seriesLineAlphas:[1],
+			contentPadding: 10,
+			backgroundSkin: "ChartBackground",
+			backgroundColor: 0xffffff,
+			dataTipBackgroundSkin: "ChartDataTipBackground",
+			dataTipContentPadding: 6,
+			dataTipTextFormat: new TextFormat("_sans", 11, 0x000000, false, false, false, '', '', TextFormatAlign.LEFT, 0, 0, 0, 0),
+			animationEnabled: true,
+			embedFonts: false
+		};
+		
+		/**
+		 * @private
+		 */
+		private static const ALL_SERIES_STYLES:Object = 
+		{
+			color: "seriesColors",
+			markerSize: "seriesMarkerSizes",
+			markerSkin: "seriesMarkerSkins",
+			borderColor: "seriesBorderColors",
+			fillColor: "seriesFillColors",
+			lineColor: "seriesLineColors",
+			borderAlpha: "seriesBorderAlphas",
+			fillAlpha: "seriesFillAlphas",
+			lineAlpha: "seriesLineAlphas"
+		};
+		
+		/**
+		 * @private
+		 */
+		private static const SHARED_SERIES_STYLES:Object = 
+		{
+			animationEnabled: "animationEnabled"
+		};
+		
+		private static const DATA_TIP_STYLES:Object = 
+		{
+			backgroundSkin: "dataTipBackgroundSkin",
+			contentPadding: "dataTipContentPadding",
+			textFormat: "dataTipTextFormat",
+			embedFonts: "embedFonts"
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, UIComponent.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function Chart()
+		{
+			super();
+			this.accessibilityProperties = new AccessibilityProperties();
+			this.accessibilityProperties.forceSimple = true;
+			this.accessibilityProperties.description = "Chart";
+		}
+		
+	//--------------------------------------
+	//  Variables and Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * The display object representing the chart background.
+		 */
+		protected var background:DisplayObject;
+		
+		/**
+		 * @private
+		 * The area where series are drawn.
+		 */
+		protected var content:Sprite;
+		
+		/**
+		 * @private
+		 * The mouse over data tip that displays information about an item on the chart.
+		 */
+		protected var dataTip:DisplayObject;
+		
+		/**
+		 * @private
+		 * Storage for the data property. Saves a copy of the unmodified data.
+		 */
+		private var _dataProvider:Object;
+		
+		/**
+		 * @private
+		 * Modified version of the stored data.
+		 */
+		protected var series:Array = [];
+		
+		[Inspectable(type=Array)]
+		/**
+		 * @copy com.yahoo.astra.fl.charts.IChart#dataProvider
+		 */
+		public function get dataProvider():Object
+		{
+			return this.series;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set dataProvider(value:Object):void
+		{
+			if(this._dataProvider != value)
+			{
+				this._dataProvider = value;
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the defaultSeriesType property.
+		 */
+		private var _defaultSeriesType:Class;
+		
+		/**
+		 * When raw data (like an Array of Numbers) is encountered where an
+		 * ISeries instance is expected, it will be converted to this default
+		 * type. Accepts either a Class instance or a String referencing a
+		 * fully-qualified class name.
+		 */
+		public function get defaultSeriesType():Object
+		{
+			return this._defaultSeriesType;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set defaultSeriesType(value:Object):void
+		{
+			if(!value) return;
+			var classDefinition:Class = null;
+			if(value is Class)
+			{
+				classDefinition = value as Class;
+			}
+			else
+			{
+				// borrowed from fl.core.UIComponent#getDisplayObjectInstance()
+				try
+				{
+					classDefinition = getDefinitionByName(value.toString()) as Class;
+				}
+				catch(e:Error)
+				{
+					try
+					{
+						classDefinition = this.loaderInfo.applicationDomain.getDefinition(value.toString()) as Class;
+					}
+					catch (e:Error)
+					{
+						// Nothing
+					}
+				}
+			}
+			
+			this._defaultSeriesType = classDefinition;
+			//no need to redraw.
+			//if the series have already been created, the user probably wanted it that way.
+			//we have no way to tell if the user chose a particular series' type or not anyway.
+		}
+		
+		private var _lastDataTipRenderer:ISeriesItemRenderer;
+		
+		/**
+		 * @private
+		 * Storage for the dataTipFunction property.
+		 */
+		private var _dataTipFunction:Function = defaultDataTipFunction;
+		
+		/**
+		 * If defined, the chart will call the input function to determine the
+		 * text displayed in the chart's data tip. The function uses the following
+		 * signature:
+		 * 
+		 * <p><code>function dataTipFunction(item:Object, index:int, series:ISeries):String</code></p>
+		 */
+		public function get dataTipFunction():Function
+		{
+			return this._dataTipFunction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set dataTipFunction(value:Function):void
+		{
+			this._dataTipFunction = value;
+		}
+	
+		/**
+		 * @private
+		 * Storage for the legend property.
+		 */
+		private var _legend:ILegend;
+				
+		/**
+		 * The component that will display a human-readable legend for the chart. 
+		 */
+		public function get legend():ILegend
+		{
+			return this._legend;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set legend(value:ILegend):void
+		{
+			this._legend = value;
+			this.invalidate();
+		}
+		
+		/**
+		 * @private 
+		 * Storage for legendLabelFunction
+		 */
+		private var _legendLabelFunction:Function;
+		
+		/**
+		 * If defined, the chart will call the input function to determine the text displayed in 
+		 * in the chart's legend.
+		 */
+		public function get legendLabelFunction():Function
+		{
+			return this._legendLabelFunction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set legendLabelFunction(value:Function):void
+		{
+			this._legendLabelFunction = value;
+		}
+	
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * Returns the index within this plot area of the input ISeries object.
+		 * 
+		 * @param series	a series that is displayed in this plot area.
+		 * @return			the index of the input series
+		 */
+		public function seriesToIndex(series:ISeries):int
+		{
+			return this.series.indexOf(series);
+		}
+		
+		/**
+		 * Returns the ISeries object at the specified index.
+		 * 
+		 * @param index		the index of the series to return
+		 * @return			the series that appears at the input index or null if out of bounds 
+		 */
+		public function indexToSeries(index:int):ISeries
+		{
+			if(index < 0 || index >= this.series.length) return null;
+			return this.series[index];
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function configUI():void
+		{
+			super.width = 400;
+			super.height = 300;
+			
+			super.configUI();
+			
+			this.content = new Sprite();
+			this.addChild(this.content);
+			
+			this.dataTip = new DataTipRenderer();
+			this.dataTip.visible = false;
+			this.addChild(this.dataTip);
+		}
+	
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			var dataInvalid:Boolean = this.isInvalid(InvalidationType.DATA);
+			var stylesInvalid:Boolean = this.isInvalid(InvalidationType.STYLES);
+			var sizeInvalid:Boolean = this.isInvalid(InvalidationType.SIZE);
+			
+			if(stylesInvalid || dataInvalid)
+			{
+				this.refreshSeries();
+			}
+			
+			//update the background if needed
+			if(stylesInvalid)
+			{
+				if(this.background)
+				{
+					this.removeChild(this.background);
+				}
+				var skinClass:Object = this.getStyleValue("backgroundSkin");
+				this.background = UIComponentUtil.getDisplayObjectInstance(this, skinClass);
+				this.addChildAt(this.background, 0);
+			}
+			
+			if(this.background && (stylesInvalid || sizeInvalid))
+			{
+				this.background.width = this.width;
+				this.background.height = this.height;
+			
+				//force the background to redraw if it is a UIComponent
+				if(this.background is UIComponent)
+				{
+					(this.background as UIComponent).drawNow();
+				}
+			}
+			
+			if(this.dataTip is UIComponent)
+			{
+				var dataTip:UIComponent = UIComponent(this.dataTip);
+				this.copyStylesToChild(dataTip, DATA_TIP_STYLES);
+				dataTip.drawNow();
+			}
+			
+			super.draw();
+		}
+	
+		/**
+		 * Analyzes the input data and smartly converts it to the correct ISeries type
+		 * required for drawing. Adds new ISeries objects to the display list and removes
+		 * unused series objects that no longer need to be drawn.
+		 */
+		protected function refreshSeries():void
+		{
+			var modifiedData:Object = this._dataProvider;
+			
+			//loop through each series and convert it to the correct data type
+			if(modifiedData is Array)
+			{
+				var arrayData:Array = (modifiedData as Array).concat();
+				var seriesCount:int = arrayData.length;
+				var foundIncompatibleData:Boolean = false;
+				for(var i:int = 0; i < seriesCount; i++)
+				{
+					var currentItem:Object = arrayData[i];
+					if(currentItem is Array || currentItem is XMLList)
+					{
+						var itemSeries:ISeries = new this.defaultSeriesType();
+						if(currentItem is Array)
+						{
+							itemSeries.dataProvider = (currentItem as Array).concat();
+						}
+						else if(currentItem is XMLList)
+						{
+							itemSeries.dataProvider = (currentItem as XMLList).copy();
+						}
+						arrayData[i] = itemSeries;
+					}
+					else if(!(currentItem is ISeries))
+					{
+						//we only support Array, XMLList, and ISeries
+						//anything else means that we should restore the original data
+						var originalData:Array = (modifiedData as Array).concat();
+						modifiedData = new this.defaultSeriesType(originalData);
+						foundIncompatibleData = true;
+						break;
+					}
+				}
+				if(!foundIncompatibleData)
+				{
+					modifiedData = arrayData;
+				}
+			}
+			
+			//attempt to turn a string into XML
+			if(modifiedData is String)
+			{
+				try
+				{
+					modifiedData = new XML(modifiedData);
+				}
+				catch(error:Error)
+				{
+					//this isn't a valid xml string, so ignore it
+					return;
+				}
+			}
+			
+			//we need an XMLList, so get the elements
+			if(modifiedData is XML)
+			{
+				modifiedData = (modifiedData as XML).elements();
+			}
+			
+			//convert the XMLList to a series
+			if(modifiedData is XMLList)
+			{
+				modifiedData = new this.defaultSeriesType(modifiedData);
+			}
+		
+			//we should have an ISeries object by now, so put it in an Array
+			if(modifiedData is ISeries)
+			{
+				//if the main data is a series, put it in an array
+				modifiedData = [modifiedData];
+			}
+			
+			//if it's not an array, we have bad data, so ignore it
+			if(!(modifiedData is Array))
+			{
+				return;
+			}
+			
+			arrayData = modifiedData as Array;
+			
+			seriesCount = this.series.length;
+			for(i = 0; i < seriesCount; i++)
+			{
+				var currentSeries:ISeries = this.series[i] as ISeries;
+				if(arrayData.indexOf(currentSeries) < 0)
+				{
+					//if the series no longer exists, remove it from the display list and stop listening to it
+					this.content.removeChild(DisplayObject(currentSeries));
+					currentSeries.removeEventListener("dataChange", seriesDataChangeHandler);
+					currentSeries.removeEventListener(ChartEvent.ITEM_ROLL_OVER, chartItemRollOver);
+					currentSeries.removeEventListener(ChartEvent.ITEM_ROLL_OUT, chartItemRollOut);
+					currentSeries.chart = null;
+				}
+			}
+			
+			//rebuild the series Array
+			this.series = [];
+			seriesCount = arrayData.length;
+			for(i = 0; i < seriesCount; i++)
+			{
+				currentSeries = arrayData[i] as ISeries;
+				this.series.push(currentSeries);
+				if(!this.contains(DisplayObject(currentSeries)))
+				{
+					//if this is a new series, add it to the display list and listen for events
+					currentSeries.addEventListener("dataChange", seriesDataChangeHandler, false, 0, true);
+					currentSeries.addEventListener(ChartEvent.ITEM_ROLL_OVER, chartItemRollOver, false, 0, true);
+					currentSeries.addEventListener(ChartEvent.ITEM_ROLL_OUT, chartItemRollOut, false, 0, true);
+					currentSeries.chart = this;
+					this.content.addChild(DisplayObject(currentSeries));
+				}
+				
+				DisplayObject(currentSeries).x = 0;
+				DisplayObject(currentSeries).y = 0;
+				
+				//make sure the series are displayed in the correct order
+				this.content.setChildIndex(DisplayObject(currentSeries), this.content.numChildren - 1);
+				
+				//update the series styles
+				this.copyStylesToSeries(currentSeries, ALL_SERIES_STYLES);
+				if(currentSeries is UIComponent)
+				{
+					this.copyStylesToChild(UIComponent(currentSeries), SHARED_SERIES_STYLES);
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Refreshes the legend's data provider.
+		 */
+		protected function updateLegend():void
+		{
+			if(!this.legend) return;
+			
+			var legendData:Array = [];
+			var seriesCount:int = this.series.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:ISeries = ISeries(this.series[i]);
+				if(series is ILegendItemSeries)
+				{
+					if(!(series as ILegendItemSeries).showInLegend) continue;
+					var itemData:LegendItemData = ILegendItemSeries(series).createLegendItemData();
+					itemData.label = itemData.label ? itemData.label : i.toString();
+					if(series.legendLabelFunction != null && series.legendLabelFunction is Function)
+					{
+						try
+						{
+							itemData.label = series.legendLabelFunction(itemData.label);
+						}
+						catch(e:Error)
+						{
+							var message:String = "There is an error in the series level legendLabelFunction.";
+							this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, message));
+						}
+					}
+					else if(this.legendLabelFunction != null && this.legendLabelFunction is Function)
+					{
+						try
+						{
+							message = "There is an error in the legendLabelFunction.";
+							itemData.label = this.legendLabelFunction(itemData.label);
+						}
+						catch(e:Error)
+						{
+							this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, message));
+						}
+					}
+					legendData.push(itemData);
+				}
+				else if(series is ICategorySeries)
+				{
+					legendData = legendData.concat(ICategorySeries(series).createLegendItemData());
+				}
+			}
+			
+			this.legend.dataProvider = legendData;
+			
+			if(UIComponent.inCallLaterPhase)
+			{
+				UIComponent(this.legend).drawNow();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Tranfers the chart's styles to the ISeries components it contains. These styles
+		 * must be of the type Array, and the series index determines the index of the value
+		 * to use from that Array. If the chart contains more ISeries components than there
+		 * are values in the Array, the indices are reused starting from zero.
+		 */
+		protected function copyStylesToSeries(child:ISeries, styleMap:Object):void
+		{
+			var index:int = this.series.indexOf(child);
+			var childComponent:UIComponent = child as UIComponent;
+			for(var n:String in styleMap)
+			{
+				var styleValues:Array = this.getStyleValue(styleMap[n]) as Array;
+				
+				//if it doesn't exist, ignore it and go with the defaults for this series
+				if(styleValues == null || styleValues.length == 0) continue;
+				childComponent.setStyle(n, styleValues[index % styleValues.length])
+			}
+		} 
+		
+		/**
+		 * @private
+		 */
+		protected function defaultDataTipFunction(item:Object, index:int, series:ISeries):String
+		{
+			if(series.displayName)
+			{
+				return series.displayName;
+			}
+			return "";
+		}
+		
+		/**
+		 * @private
+		 * Passes data to the data tip.
+		 */
+		protected function refreshDataTip():void
+		{
+			var item:Object = this._lastDataTipRenderer.data;
+			var series:ISeries = this._lastDataTipRenderer.series;
+			var index:int = series.itemRendererToIndex(this._lastDataTipRenderer);
+			
+			var dataTipText:String = "";
+			if(series.dataTipFunction != null)
+			{
+				try
+				{
+					dataTipText = series.dataTipFunction(item, index, series);
+				}
+				catch(e:Error)
+				{
+					var message:String = "There is an error in your series level dataTipFunction";
+					this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, message));
+				}
+			}
+			else if(this.dataTipFunction != null)
+			{
+				try
+				{
+					dataTipText = this.dataTipFunction(item, index, series);
+				}
+				catch(e:Error)
+				{
+					message = "There is an error in your dataTipFunction";
+					this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, message));
+				}
+			}
+			
+			var dataTipRenderer:IDataTipRenderer = this.dataTip as IDataTipRenderer;
+			dataTipRenderer.text = dataTipText;
+			dataTipRenderer.data = item;
+			
+			this.setChildIndex(this.dataTip, this.numChildren - 1);
+			if(this.dataTip is UIComponent)
+			{
+				UIComponent(this.dataTip).drawNow();
+			}
+		}
+		
+	//--------------------------------------
+	//  Protected Event Handlers
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Display the data tip when the user moves the mouse over a chart marker.
+		 */
+		protected function chartItemRollOver(event:ChartEvent):void
+		{	
+			this._lastDataTipRenderer = event.itemRenderer;
+			this.refreshDataTip();
+			
+			var position:Point = this.mousePositionToDataTipPosition();
+			this.dataTip.x = position.x;
+			this.dataTip.y = position.y;
+			this.dataTip.visible = true;
+			
+			this.stage.addEventListener(MouseEvent.MOUSE_MOVE, stageMouseMoveHandler, false, 0 ,true);
+		}
+		
+		/**
+		 * @private
+		 * Hide the data tip when the user moves the mouse off a chart marker.
+		 */
+		protected function chartItemRollOut(event:ChartEvent):void
+		{
+			this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, stageMouseMoveHandler);
+			this.dataTip.visible = false;
+		}
+		
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Determines the position for the data tip based on the mouse position
+		 * and the bounds of the chart. Attempts to keep the data tip within the
+		 * chart bounds so that it isn't hidden by any other display objects.
+		 */
+		private function mousePositionToDataTipPosition():Point
+		{
+			var position:Point = new Point();
+			position.x = this.mouseX + 2;
+			position.x = Math.min(this.width - this.dataTip.width, position.x);
+			position.y = this.mouseY - this.dataTip.height - 2;
+			position.y = Math.max(0, position.y);
+			return position;
+		}
+		
+	//--------------------------------------
+	//  Private Event Handlers
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * The plot area needs to redraw the axes if series data changes.
+		 */
+		private function seriesDataChangeHandler(event:Event):void
+		{
+			this.invalidate(InvalidationType.DATA);
+			if(this.dataTip.visible)
+			{
+				this.refreshDataTip();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Make the data tip follow the mouse.
+		 */
+		private function stageMouseMoveHandler(event:MouseEvent):void
+		{
+			var position:Point = this.mousePositionToDataTipPosition();
+			this.dataTip.x = position.x;
+			this.dataTip.y = position.y;
+		}
+	
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/ChartUtil.as b/src/charts/as/com/yahoo/astra/fl/charts/ChartUtil.as
new file mode 100644
index 0000000..0e19a0a
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/ChartUtil.as
@@ -0,0 +1,48 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.axes.IStackingAxis;
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.series.IStackedSeries;
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	
+	/**
+	 * Utility functions used throughout the charting framework.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class ChartUtil
+	{
+		
+	//--------------------------------------
+	//  Public Static Methods
+	//--------------------------------------
+	
+		/**
+		 * Determines if a series may be stacked on an axis. The series must
+		 * implement the IStackedSeries type, the axis must implement the
+		 * IStackingAxis type and the axis must have stackingEnabled set to
+		 * true.
+		 */
+		public static function isStackingAllowed(axis:IAxis, series:ISeries):Boolean
+		{
+			return (series is IStackedSeries) && (axis is IStackingAxis) && IStackingAxis(axis).stackingEnabled;
+		}
+		
+		/**
+		 * Retreives every the series of the same type of the input series from the
+		 * chart's data provider.
+		 */
+		public static function findSeriesOfType(series:ISeries, chart:IChart):Array
+		{
+			var type:Class = UIComponentUtil.getClassDefinition(series);
+			var filteredSeries:Array = chart.dataProvider.filter(function(item:ISeries, index:int, source:Array):Boolean
+			{
+				var itemType:Class = UIComponentUtil.getClassDefinition(item);
+				return itemType == type;
+			});
+			return filteredSeries;
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/ColumnChart.as b/src/charts/as/com/yahoo/astra/fl/charts/ColumnChart.as
new file mode 100644
index 0000000..2865275
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/ColumnChart.as
@@ -0,0 +1,51 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.series.ColumnSeries;
+	
+	/**
+	 * The amount of space between items within a series
+	 * @default 0
+	 */
+	[Style(name="seriesItemSpacing", type="Number")]
+	
+	/**
+	 * A chart that displays its data points with vertical columns.
+	 * 
+	 * @author Josh Tynjala
+	 */	
+	public class ColumnChart extends CartesianChart
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function ColumnChart()
+		{
+			super();
+			this.defaultSeriesType = ColumnSeries;
+		}
+
+        /**
+         * @private
+         *
+         * @langversion 3.0
+         * @playerversion Flash 9.0.28.0
+         */
+		private static var defaultStyles:Object = {
+			seriesItemSpacing:0
+		}
+		
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, CartesianChart.getStyleDefinition());
+		}				
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/DataTipRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/DataTipRenderer.as
new file mode 100644
index 0000000..7477586
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/DataTipRenderer.as
@@ -0,0 +1,216 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	
+	import flash.display.DisplayObject;
+	import flash.text.TextField;
+	import flash.text.TextFieldAutoSize;
+	import flash.text.TextFormat;
+
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+	
+	/**
+     * The padding that separates the border of the component from its contents,
+     * in pixels.
+     *
+     * @default 6
+     */
+    [Style(name="contentPadding", type="Number")]
+	
+	/**
+     * The DisplayObject subclass used to display the background.
+     */
+    [Style(name="backgroundSkin", type="Class")]
+    
+	/**
+	 * The default renderer for mouse-over data tips.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class DataTipRenderer extends UIComponent implements IDataTipRenderer
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{
+			contentPadding: 6,
+			backgroundSkin: "ChartDataTipBackground",
+			embedFonts: false
+		}
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, UIComponent.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function DataTipRenderer()
+		{
+			super();
+			this.mouseEnabled = false;
+			this.mouseChildren = false;
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		protected var label:TextField;
+		
+		/**
+		 * @private
+		 */
+		protected var background:DisplayObject;
+		
+		/**
+		 * @private
+		 * Storage for the text property.
+		 */
+		private var _text:String = "";
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.IDataTipRenderer#text
+		 */
+		public function get text():String
+		{
+			return this._text;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set text(value:String):void
+		{
+			if(value == null) value = "";
+			if(this._text != value)
+			{
+				this._text = value;
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the data property.
+		 */
+		private var _data:Object;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.IDataTipRenderer#data
+		 */
+		public function get data():Object
+		{
+			return this._data;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set data(value:Object):void
+		{
+			if(this._data != value)
+			{
+				this._data = value;
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function configUI():void
+		{
+			super.configUI();
+			this.label = new TextField();
+			this.label.autoSize = TextFieldAutoSize.LEFT;
+			this.label.selectable = false;
+			this.addChild(this.label);
+		}
+	
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			var stylesInvalid:Boolean = this.isInvalid(InvalidationType.STYLES);
+			var dataInvalid:Boolean = this.isInvalid(InvalidationType.DATA);
+			
+			var contentPadding:Number = this.getStyleValue("contentPadding") as Number;
+				
+			if(stylesInvalid)
+			{
+				if(this.background)
+				{
+					this.removeChild(this.background);
+					this.background = null;
+				}
+				var skinClass:Object = this.getStyleValue("backgroundSkin");
+				this.background = UIComponentUtil.getDisplayObjectInstance(this, skinClass);
+				this.addChildAt(this.background, 0);
+				
+				var format:TextFormat = this.getStyleValue("textFormat") as TextFormat;
+				var embedFonts:Boolean = this.getStyleValue("embedFonts") as Boolean;
+				this.label.defaultTextFormat = format;
+				this.label.embedFonts = embedFonts;
+				
+				this.label.x = contentPadding;
+				this.label.y = contentPadding;
+			}
+			
+			if(dataInvalid)
+			{
+				this.label.text = this.text;
+			}
+			
+			//the datatip sizes itself!
+			this._width = this.label.width + 2 * contentPadding;
+			this._height = this.label.height + 2 * contentPadding;
+			
+			if(this.background)
+			{
+				this.background.width = this._width;
+				this.background.height = this._height;
+				
+				if(this.background is UIComponent)
+				{
+					UIComponent(this.background).drawNow();
+				}
+			}
+			
+			super.draw();
+		}
+	
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/ICategoryChart.as b/src/charts/as/com/yahoo/astra/fl/charts/ICategoryChart.as
new file mode 100644
index 0000000..f84573c
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/ICategoryChart.as
@@ -0,0 +1,26 @@
+package com.yahoo.astra.fl.charts
+{
+	/**
+	 * A type of chart that displays its data in categories.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface ICategoryChart
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * The names of the categories displayed on the category axis. If the
+		 * chart does not have a category axis, this value will be ignored.
+		 */
+		function get categoryNames():Array
+		
+		/**
+		 * @private
+		 */
+		function set categoryNames(value:Array):void
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/IChart.as b/src/charts/as/com/yahoo/astra/fl/charts/IChart.as
new file mode 100644
index 0000000..891effe
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/IChart.as
@@ -0,0 +1,76 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	
+	import flash.events.IEventDispatcher;
+	import flash.geom.Point;
+	
+	/**
+	 * Methods and properties expected to be defined by all charts.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IChart extends IEventDispatcher
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The data to be displayed by the chart. Accepted data types include
+		 * all of the following:
+		 * 
+		 * <ul>
+		 * 	<li>An ISeries instance with its own data provider.</li>
+		 * 	<li>An Array containing ISeries instances</li>
+		 * 	<li>An Array containing Numbers.</li>
+		 * 	<li>An Array containing complex objects.</li>
+		 * 	<li>An XMLList</li>
+		 * 	<li>An Array containing Arrays of Numbers or complex objects.</li>
+		 * </ul>
+		 * 
+		 * <p>Note: When complex objects or XML is used in the data provider,
+		 * developers must define "fields" used to access data used by the chart.
+		 * For instance, CartesianChart exposes <code>horizontalField</code> and
+		 * <code>verticalField</code> properties. PieChart exposes <code>dataField</code>
+		 * and <code>categoryField</code> properties.
+		 * 
+		 * <p>The chart will automatically convert the input data to an Array of
+		 * ISeries objects. Don't access <code>dataProvider</code> if you intend
+		 * to retreive the data in its original form.
+		 * 
+		 * @see com.yahoo.astra.fl.charts.series.ISeries
+		 */
+		function get dataProvider():Object;
+		
+		/**
+		 * @private
+		 */
+		function set dataProvider(value:Object):void;
+		
+	//--------------------------------------
+	//  Methods
+	//--------------------------------------
+	
+		/**
+		 * Calculates the position of a data point along the axis.
+		 * 
+		 * @param series		The series in which the data appears.
+		 * @param itemIndex		The index of the item within the series.
+		 * @return				The display position in pixels on the axis
+		 */
+		function itemToPosition(series:ISeries, itemIndex:int):Point;
+		
+		/**
+		 * Retreives the value of an item on one of the chart's axes.
+		 * 
+		 * @param series		The series in which the item appears.
+		 * @param itemIndex		The index of the item within the series.
+		 * @param axis			The axis for which to extract the value.
+		 * @return				The value of the item on the axis. Most likely a field on the axis.
+		 */
+		function itemToAxisValue(series:ISeries, itemIndex:int, axis:IAxis, stack:Boolean = true):Object;
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/IDataTipRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/IDataTipRenderer.as
new file mode 100644
index 0000000..16749bf
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/IDataTipRenderer.as
@@ -0,0 +1,43 @@
+package com.yahoo.astra.fl.charts
+{
+	import flash.events.IEventDispatcher;
+	
+	/**
+	 * A renderer for a mouse-over datatip on a chart.
+	 * 
+	 * <p>Important: Must be a subclass of <code>DisplayObject</code></p>
+	 * 
+	 * @see flash.display.DisplayObject
+	 * @author Josh Tynjala
+	 */
+	public interface IDataTipRenderer extends IEventDispatcher
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The text that appears in the data tip's label.
+		 */
+		function get text():String;
+		
+		/**
+		 * @private
+		 */
+		function set text(value:String):void;
+		
+		/**
+		 * The data for the item that this data tip represents.
+		 * Custom implementations of <code>IDataTipRenderer</code>
+		 * may use this property to render additional information for
+		 * the user.
+		 */
+		function get data():Object;
+		
+		/**
+		 * @private
+		 */
+		function set data(value:Object):void;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/LineChart.as b/src/charts/as/com/yahoo/astra/fl/charts/LineChart.as
new file mode 100644
index 0000000..e158135
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/LineChart.as
@@ -0,0 +1,129 @@
+package com.yahoo.astra.fl.charts
+{
+	import fl.core.UIComponent;
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.series.LineSeries;
+	import com.yahoo.astra.fl.charts.skins.*;
+	
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+	
+	/**
+     * The weight, in pixels, of the line drawn between points in each series.
+     * 
+     * <p>An Array of values that correspond to series indices in the data
+     * provider. If the number of values in the Array is less than the number
+     * of series, then the next series will restart at index zero in the style
+     * Array. If the value of this style is an empty Array, then each individual series
+     * will use the default or modified value set on the series itself.</p> 
+     * 
+     * <p>Example: If the seriesLineWeights style is equal to [2, 3] and there
+     * are three series in the chart's data provider, then the series at index 0
+     * will have a line weight of 2, index 1 will have a line weight of 3, and
+     * index 2 will have a line weight of 2 (starting over from the beginning).</p>
+     *
+     * @default null
+     */
+    [Style(name="seriesLineWeights", type="Array")]
+
+	/**
+	 * The color of the line drawn between points in each series. When not specified,
+	 * the line color is determined by the color style.
+	 * 
+	 * @default []
+	 */
+	[Style(name="seriesLineColors", type="Array")]
+	
+	/**
+	 * The alpha of the line drawn between points in each series. 
+	 *
+	 * @default [1]
+	 */
+	[Style(name="seriesLineAlphas", type="Array")]
+
+	/**
+	 * A chart that displays its data points with connected line segments.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class LineChart extends CartesianChart
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{	
+			seriesLineWeights: [],
+			seriesMarkerSkins: [CircleSkin, DiamondSkin, RectangleSkin, TriangleSkin]
+		};
+			
+		/**
+		 * @private
+		 * The chart styles that correspond to styles on each series.
+		 */
+		private static const LINE_SERIES_STYLES:Object = 
+		{
+			lineWeight: "seriesLineWeights"
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, CartesianChart.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function LineChart()
+		{
+			super();
+			this.defaultSeriesType = LineSeries;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function refreshSeries():void
+		{
+			super.refreshSeries();
+			
+			var seriesCount:int = this.series.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var currentSeries:ISeries = this.series[i] as ISeries;
+				this.copyStylesToSeries(currentSeries, LINE_SERIES_STYLES);
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function configUI():void
+		{
+			super.configUI();
+			this.setChildIndex(this.axisLayer, this.getChildIndex(this.content))
+		}
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/PieChart.as b/src/charts/as/com/yahoo/astra/fl/charts/PieChart.as
new file mode 100644
index 0000000..91651e3
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/PieChart.as
@@ -0,0 +1,368 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.axes.IRadialAxisRenderer;
+	import com.yahoo.astra.fl.charts.axes.NumericAxis;
+	import com.yahoo.astra.fl.charts.axes.RadialAxisRenderer;
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.series.PieSeries;
+	import com.yahoo.astra.utils.GeomUtil;
+	import com.yahoo.astra.utils.NumberUtil;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	
+	import flash.display.DisplayObject;
+	import flash.geom.Point;
+	import flash.text.TextField;
+	import flash.text.TextFieldAutoSize;
+	import flash.text.TextFormat;
+	
+	/**
+     * An Array containing the default colors for each series. These colors are
+     * used for markers in most cases, but they may apply to lines, fills, or
+     * other graphical items.
+	 * 
+	 * <p>Important: In the PieChart, a series uses multiple colors. The <code>seriesColors</code>
+	 * style is designed to work with multiple series where the index in the Array
+	 * corresponds to the series index. As a result, to set the colors on a PieChart,
+	 * an Array of color values should appear at each index in the outer Array.</p>
+     *
+     * @default [ [ 0xfcaf3e, 0x73d216, 0x729fcf, 0xfce94f, 0xad7fa8, 0x3465a4 ], [ 0x3465a4, 0xad7fa8, 0xfce94f, 0x729fcf, 0x73d216, 0xfcaf3e ] ]
+     */
+    [Style(name="seriesColors", type="Array")]
+	
+	/**
+	 * A chart that displays its data points with pie-like wedges.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class PieChart extends Chart implements ICategoryChart
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{
+			seriesColors: [],
+			seriesMarkerSkins: []
+		};
+		
+		/**
+		 * @private
+		 * The chart styles that correspond to styles on each series.
+		 */
+		private static const PIE_SERIES_STYLES:Object = 
+		{
+			markerSkins: "seriesMarkerSkins",
+			fillColors: "seriesColors"
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, Chart.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function PieChart()
+		{
+			super();
+			this.defaultSeriesType = PieSeries;
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Displays a message in live preview mode when there is no dataProvider.
+		 */
+		protected var livePreviewMessage:TextField;
+		
+		/**
+		 * @private
+		 * Storage for the dataField property.
+		 */
+		private var _dataField:String;
+		
+		/**
+		 * The field used to access data for this series.
+		 */
+		public function get dataField():String
+		{
+			return this._dataField;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set dataField(value:String):void
+		{
+			if(this._dataField != value)
+			{
+				this._dataField = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the categoryField property.
+		 */
+		private var _categoryField:String;
+		
+		/**
+		 * The field used to access categories for this series.
+		 */
+		public function get categoryField():String
+		{
+			return this._categoryField;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set categoryField(value:String):void
+		{
+			if(this._categoryField != value)
+			{
+				this._categoryField = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Flag indicating that the category names have been set manually,
+		 * and they should not be auto-generated by the chart.
+		 */
+		private var _categoryNamesSetByUser:Boolean = false;
+		
+		/**
+		 * @private
+		 * Storage for the categoryNames property.
+		 */
+		private var _categoryNames:Array;
+		
+		[Inspectable]
+		/**
+		 * The names of the categories used by each series.
+		 */
+		public function get categoryNames():Array
+		{
+			return this._categoryNames;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set categoryNames(value:Array):void
+		{
+			if(this._categoryNames != value)
+			{
+				this._categoryNames = value;
+				this._categoryNamesSetByUser = value != null;
+				this.invalidate();
+			}
+		}
+	
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+		
+		/**
+		 * Determines the data field used by the series. Either the chart's
+		 * default data field or a data field explicitly defined for the series.
+		 */
+		public function seriesToDataField(series:PieSeries):String
+		{
+			var field:String = this.dataField;
+			if(series.dataField)
+			{
+				field = series.dataField;
+			}
+			
+			return field;
+		}
+		
+		/**
+		 * Determines the category field used by the series. Either the chart's
+		 * default category field or a category field explicitly defined for the
+		 * series.
+		 */
+		public function seriesToCategoryField(series:PieSeries):String
+		{
+			var field:String = this.categoryField;
+			if(series.categoryField)
+			{
+				field = series.categoryField;
+			}
+			
+			return field;
+		}
+	
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function configUI():void
+		{
+			super.configUI();
+			if(this.isLivePreview)
+			{
+				//special case for live previews with no data.
+				this.livePreviewMessage = new TextField();
+				this.livePreviewMessage.autoSize = TextFieldAutoSize.LEFT;
+				this.livePreviewMessage.defaultTextFormat = this.getStyleValue("textFormat") as TextFormat;
+				this.livePreviewMessage.text = "No live preview data";
+				this.addChild(this.livePreviewMessage);
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			if(this.isLivePreview)
+			{
+				//special case for live previews with no data.
+				this.livePreviewMessage.visible = !this.dataProvider || this.dataProvider.length == 0;
+				this.livePreviewMessage.x = (this.width - this.livePreviewMessage.width) / 2;
+				this.livePreviewMessage.y = (this.height - this.livePreviewMessage.height) / 2;
+			}
+			
+			this.generateCategories(this.series);
+			
+			var stylesInvalid:Boolean = this.isInvalid(InvalidationType.STYLES);
+			
+			super.draw();
+			
+			var contentPadding:Number = this.getStyleValue("contentPadding") as Number;
+			var seriesWidth:Number = this.width - 2 * contentPadding;
+			var seriesHeight:Number = this.height - 2 * contentPadding;
+			this.drawSeries(contentPadding, seriesWidth, seriesHeight);
+			this.updateLegend();
+		}
+		
+		/**
+		 * @private
+		 * Positions and sizes each series.
+		 */
+		protected function drawSeries(contentPadding:Number, width:Number, height:Number):void
+		{
+			this.content.x = this.content.y = contentPadding;
+			
+			var seriesCount:int = this.series.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:UIComponent = this.series[i] as UIComponent;
+				this.copyStylesToSeries(ISeries(series), PIE_SERIES_STYLES);
+				
+				PieSeries(series).categoryNames = this.categoryNames;
+				
+				//if a pie chart contains more than one series, each additional series should be
+				//a little bit smaller so that they can all be visible to the viewer.				
+				series.width = width - i * width / seriesCount;
+				series.height = height - i * height / seriesCount;
+				
+				//reposition the series based on the calculated dimensions
+				series.x = (width - series.width) / 2;
+				series.y = (height - series.height) / 2;
+				series.drawNow();
+			}
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		override protected function defaultDataTipFunction(item:Object, index:int, series:ISeries):String
+		{
+			//get the series display name first
+			var text:String = super.defaultDataTipFunction(item, index, series);
+			if(text.length > 0) text += "\n";
+			
+			var pieSeries:PieSeries = PieSeries(series);
+			
+			var category:String = pieSeries.itemToCategory(item, index);
+			text += category + "\n";
+			
+			var data:Number = pieSeries.itemToData(item);
+			text += data + "\n";
+			
+			var percentage:Number = pieSeries.itemToPercentage(item);
+			text += (percentage < 0.01 ? "< 0.01" : NumberUtil.roundToPrecision(percentage, 2)) + "%";
+			
+			return text;
+		}
+	
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Analyzes the data to determine the category names.
+		 */
+		private function generateCategories(data:Array):void
+		{
+			if(this._categoryNamesSetByUser)
+			{
+				return;
+			}
+			
+			//auto-detect the category labels
+			var maxSeriesLength:int = 0;
+			var seriesCount:int = data.length;
+			var uniqueCategoryValues:Array = [];
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:PieSeries = data[i] as PieSeries;
+				var seriesLength:int = series.length;
+				maxSeriesLength = Math.max(seriesLength, maxSeriesLength);
+				
+				// determine the field for this axis
+				var currentCategoryField:String = this.seriesToCategoryField(series);
+				
+				for(var j:int = 0; j < seriesLength; j++)
+				{
+					var item:Object = series.dataProvider[j];
+					var category:String = j.toString();
+					if(item.hasOwnProperty(currentCategoryField))
+					{
+						category = item[currentCategoryField];
+					}
+					if(uniqueCategoryValues.indexOf(category) < 0)
+					{
+						uniqueCategoryValues.push(category);
+					}
+				}
+			}
+			this._categoryNames = uniqueCategoryValues;
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/StackedBarChart.as b/src/charts/as/com/yahoo/astra/fl/charts/StackedBarChart.as
new file mode 100644
index 0000000..73c30ef
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/StackedBarChart.as
@@ -0,0 +1,28 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.series.StackedBarSeries;
+	
+	/**
+	 * A chart that displays its data points with horizontal bars
+	 * that are stacked horizontally.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class StackedBarChart extends BarChart
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function StackedBarChart()
+		{
+			super();
+			this.defaultSeriesType = StackedBarSeries;
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/StackedColumnChart.as b/src/charts/as/com/yahoo/astra/fl/charts/StackedColumnChart.as
new file mode 100644
index 0000000..bb3bfa2
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/StackedColumnChart.as
@@ -0,0 +1,27 @@
+package com.yahoo.astra.fl.charts
+{
+	import com.yahoo.astra.fl.charts.series.StackedColumnSeries;
+	
+	/**
+	 * A chart that displays its data points with vertical columns
+	 * that are stacked vertically.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class StackedColumnChart extends CartesianChart
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function StackedColumnChart()
+		{
+			super();
+			this.defaultSeriesType = StackedColumnSeries;
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisData.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisData.as
new file mode 100644
index 0000000..382c7d8
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisData.as
@@ -0,0 +1,47 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	/**
+	 * Positioning and other data used by an IAxisRenderer to draw
+	 * items like ticks. This data is created by an IAxis instance.
+	 * 
+	 * @author Josh Tynjala
+	 * @see IAxis
+	 * @see IAxisRenderer
+	 */
+	public class AxisData
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+		
+		/**
+		 * Constructor.
+		 */
+		public function AxisData(position:Number, value:Object, label:String)
+		{
+			this.position = position;
+			this.value = value;
+			this.label = label;
+		}
+
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The position of the item on the axis renderer.
+		 */
+		public var position:Number;
+		
+		/**
+		 * The value of the item.
+		 */
+		public var value:Object;
+		
+		/**
+		 * The label value of the item.
+		 */
+		public var label:String;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisLabelData.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisLabelData.as
new file mode 100644
index 0000000..52c4504
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisLabelData.as
@@ -0,0 +1,120 @@
+package com.yahoo.astra.fl.charts.axes
+{	
+	/**
+	 * Dimension data shared by axes of the same type
+	 */
+	public class AxisLabelData
+	{	
+		/**
+		 * Constructor
+		 */
+		public function AxisLabelData()
+		{
+		}
+		
+		/**
+		 * Maximum number of labels that can appear on a given axis
+		 */
+		public var maxLabels:Number = 2;
+		
+		/**
+		 * Height of the largest possible axis label based on series data, rotation and text formatting
+		 */
+		public var maxLabelHeight:Number = 0;
+		
+		/**
+		 * Width of the largest possible axis label based on the series data, rotation and text formatting
+		 */
+		public var maxLabelWidth:Number = 0;
+		
+		/**
+		 * @private
+		 * Placeholder for the leftLabelOffset
+		 */
+		private var _leftLabelOffset:Number = 0;
+		
+		/**
+		 * Maximum possible overflow on the left side of the axis
+		 */
+		public function get leftLabelOffset():Number
+		{
+			return _leftLabelOffset;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set leftLabelOffset(value:Number):void
+		{
+			_leftLabelOffset = Math.max(_leftLabelOffset, value);
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for the rightLabelOffset
+		 */	
+		private var _rightLabelOffset:Number = 0;
+		
+		/**
+		 * Maximum possible overflow on the right side of the axis
+		 */
+		public function get rightLabelOffset():Number
+		{
+			return _rightLabelOffset;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set rightLabelOffset(value:Number):void
+		{
+			_rightLabelOffset = Math.max(_rightLabelOffset, value);
+		}
+		
+		/**
+		 * @private 
+		 * Placeholder for the topLabelOffset
+		 */
+		private var _topLabelOffset:Number = 0;
+		
+		/**
+		 * Maximum possible overflow on the top side of the axis
+		 */
+		public function get topLabelOffset():Number
+		{
+			return _topLabelOffset;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set topLabelOffset(value:Number):void
+		{
+			_topLabelOffset = Math.max(_topLabelOffset, value);
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for the bottomLabelOffset
+		 */
+		private var _bottomLabelOffset:Number = 0;
+		
+		/**
+		 * Maximum possible overflow on the bottom side of the axis
+		 */
+		public function get bottomLabelOffset():Number
+		{
+			return _bottomLabelOffset;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set bottomLabelOffset(value:Number):void
+		{
+			_bottomLabelOffset = Math.max(_bottomLabelOffset, value);
+		}
+		
+	}
+}
+
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisOrientation.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisOrientation.as
new file mode 100644
index 0000000..077c286
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/AxisOrientation.as
@@ -0,0 +1,27 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	/**
+	 * Orientation values available to <code>IAxis</code> objects.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class AxisOrientation
+	{
+		
+	//--------------------------------------
+	//  Constants
+	//--------------------------------------
+	
+		/**
+		 * The AxisOrientation.VERTICAL constant specifies that a chart axis
+		 * should be displayed vertically.
+		 */
+		public static const VERTICAL:String = "vertical";
+		
+		/**
+		 * The AxisOrientation.VERTICAL constant specifies that a chart axis
+		 * should be displayed horizontally.
+		 */
+		public static const HORIZONTAL:String = "horizontal";
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/BaseAxis.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/BaseAxis.as
new file mode 100644
index 0000000..9f4e925
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/BaseAxis.as
@@ -0,0 +1,527 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.fl.charts.IChart;
+	import com.yahoo.astra.display.BitmapText;
+	import fl.core.UIComponent;
+	import flash.text.TextFormat;
+	import flash.text.TextFieldAutoSize;
+	import flash.events.ErrorEvent;
+	import com.yahoo.astra.fl.charts.CartesianChart;
+	import com.yahoo.astra.utils.AxisLabelUtil;
+	import flash.events.EventDispatcher;
+	
+	/**
+	 * Implements some of the most common axis functionality
+	 * to prevent duplicate code in IAxis implementations.
+	 * 
+	 * <p>This class is not meant to be instantiated directly! It is an abstract base class.</p>
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class BaseAxis extends EventDispatcher
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function BaseAxis()
+		{
+		}
+
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		/**
+		 * @private
+		 * Placeholder for width
+		 */
+		private var _width:Number = 0;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#width
+		 */
+		public function get width():Number
+		{
+			return this._width;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set width(value:Number):void
+		{
+			this._width = value;
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for height
+		 */ 
+		private var _height:Number = 0;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#height
+		 */
+		public function get height():Number
+		{
+			return this._height;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set height(value:Number):void
+		{
+			this._height = value;
+		}
+
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#order
+		 */ 
+		public var order:String = "primary";
+		
+		/**
+		 * @private
+		 * Storage for the chart property.
+		 */
+		private var _chart:IChart;
+	
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#chart
+	     */
+		public function get chart():IChart
+		{
+			return this._chart;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set chart(value:IChart):void
+		{
+			this._chart = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the renderer property.
+		 */
+		private var _renderer:IAxisRenderer;
+		
+		//TODO: Consider having the renderer know about the axis
+		//rather than the axis knowing about the renderer. This
+		//change will allow multiple views to this model.
+		//if this is implemented, a separate controller will be
+		//needed too.
+		/**
+		 * The visual renderer applied to this axis.
+		 */
+		public function get renderer():IAxisRenderer
+		{
+			return this._renderer;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set renderer(value:IAxisRenderer):void
+		{
+			this._renderer = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the labelFunction property.
+		 */
+		private var _labelFunction:Function;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#labelFunction
+		 */
+		public function get labelFunction():Function
+		{
+			return this._labelFunction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set labelFunction(value:Function):void
+		{
+			this._labelFunction = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the reverse property.
+		 */
+		private var _reverse:Boolean = false;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#reverse
+		 */
+		public function get reverse():Boolean
+		{
+			return this._reverse;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set reverse(value:Boolean):void
+		{
+			this._reverse = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the title property.
+		 */
+		private var _title:String = "";
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#title
+		 */
+		public function get title():String
+		{
+			return this._title;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set title(value:String):void
+		{
+			this._title = value;
+		}
+		
+		/**
+		 * @private
+		 * placeholder for maximum label width 
+		 */
+		protected var _maxLabelWidth:Number;		
+		
+		/**
+		 * Gets or sets the maximum width of a label
+		 */
+		public function get maxLabelWidth():Number
+		{
+			return _maxLabelWidth;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set maxLabelWidth(value:Number):void
+		{
+			_maxLabelWidth = value;
+		}
+		
+		/**
+		 * @private
+		 * placeholder for maximum label width 
+		 */
+		protected var _maxLabelHeight:Number;		
+		
+		/**
+		 * Gets or sets the maximum height of a label
+		 */
+		public function get maxLabelHeight():Number
+		{
+			return _maxLabelHeight;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set maxLabelHeight(value:Number):void
+		{
+			_maxLabelHeight = value;
+		}
+		
+		/**
+		 * @private
+		 */
+		protected var _dataProvider:Array;
+		
+		/**
+		 * Data provider for the axis
+		 */
+		public function get dataProvider():Array
+		{
+			return _dataProvider;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set dataProvider(value:Array):void
+		{
+			_dataProvider = value;
+			this.parseDataProvider();
+		}
+		
+		/**
+		 * @private
+		 */
+		private var _labelSpacing:Number = 2; 
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#labelSpacing
+		 */
+		public function get labelSpacing():Number
+		{
+			return _labelSpacing;	
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set labelSpacing(value:Number):void
+		{
+			if(value != _labelSpacing) _labelSpacing = value;
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for labelData object
+		 */
+		private var _labelData:AxisLabelData;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#labelData
+		 */
+		public function get labelData():AxisLabelData
+		{
+			return _labelData;
+		}
+		
+		/** 
+		 * @private (setter)
+		 */
+		public function set labelData(value:AxisLabelData):void
+		{
+			if(value != null && value !== this.labelData) _labelData = value;
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for position property
+		 */
+		private var _position:String = "left";
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#position
+		 */
+		public function get position():String
+		{
+			return this._position;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set position(value:String):void
+		{
+			this._position = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for maxLabel property.
+		 */
+		private var _maxLabel:String = "";
+		
+		/**
+		 * Gets or sets the largest possible label.
+		 */
+		public function get maxLabel():String
+		{
+			return _maxLabel;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set maxLabel(value:String):void
+		{
+			_maxLabel = value;
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#valueToLabel()
+		 */
+		public function valueToLabel(value:Object):String
+		{
+			if(value == null)
+			{
+				return "";
+			}
+			
+			var text:String = value.toString();
+			if(this._labelFunction != null)
+			{
+				try
+				{
+					text = this._labelFunction(value);
+				}
+				catch(e:Error)
+				{
+					//dispatch error event from the chart
+					var message:String = "There is an error in your ";
+					message += (ICartesianAxisRenderer(this.renderer).orientation == AxisOrientation.VERTICAL)?"y":"x";
+					message += "-axis labelFunction.";
+					this.chart.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, message));
+				}
+			}
+			
+			if(text == null)
+			{
+				text = "";
+			}
+			return text;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------		
+		/**
+		 * @private
+		 */
+		protected function parseDataProvider():void
+		{
+			var labelData:Object = getLabelData();
+			for(var i:String in labelData)
+			{	
+				this.labelData[i] = labelData[i];
+			}
+		}
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.IAxis#getMaxLabel
+		 */
+		public function getMaxLabel():String
+		{
+			return "";
+		}
+
+		/**
+		 * @private (protected)
+		 */
+		protected function getLabelData():Object
+		{
+			var labelData:Object = new Object();
+			var label:BitmapText = new BitmapText();
+			var renderer:UIComponent = UIComponent(this.renderer);			
+			label.embedFonts = renderer.getStyle("embedFonts") as Boolean;
+			var rotation:Number = renderer.getStyle("labelRotation") as Number;
+			var titleRotation:Number = renderer.getStyle("titleRotation") as Number;
+			var textFormat:TextFormat = renderer.getStyle("textFormat") as TextFormat;
+			rotation = Math.max(-90, Math.min(rotation, 90));			
+			label.selectable = false;
+			label.autoSize = TextFieldAutoSize.LEFT;			
+			if(textFormat != null) label.defaultTextFormat = textFormat;
+			label.text = this.getMaxLabel() as String;
+			label.rotation = rotation;			
+			var rad:Number;
+			
+			//vertical
+			if(ICartesianAxisRenderer(this.renderer).orientation == AxisOrientation.VERTICAL)
+			{
+				var topTextOverflow:Number;
+				var bottomTextOverflow:Number;
+
+				if(rotation == 0 || Math.abs(rotation) == 90)
+				{
+					topTextOverflow = label.height/2;
+					bottomTextOverflow = label.height/2;
+					this.maxLabelWidth = label.width;
+				}
+				else
+				{
+					rad = Math.abs(rotation) * Math.PI/180;
+					if(rotation > 0 && this.position == "left" || rotation < 0 && this.position == "right")
+					{
+						topTextOverflow = label.height - .5 * Math.abs(label.contentHeight*Math.cos(rotation*Math.PI/180));
+						bottomTextOverflow = label.contentHeight/2  * Math.cos((Math.abs(rotation)) * Math.PI/180);
+					}
+					else
+					{
+						topTextOverflow = label.contentHeight/2  * Math.cos((Math.abs(rotation)) * Math.PI/180);
+						bottomTextOverflow = label.height - .5 * Math.abs(label.contentHeight*Math.cos(rotation*Math.PI/180));
+					}		
+					this.maxLabelWidth = label.width - ((label.contentHeight * (1 - Math.abs(rotation)/90)) * Math.sin(Math.abs(rad)));		
+				}
+				 
+				labelData.topLabelOffset = topTextOverflow;
+				labelData.bottomLabelOffset = bottomTextOverflow;
+				this.labelData.maxLabelHeight = Math.max(label.rotationHeight, this.labelData.maxLabelHeight);
+			
+				labelData.leftLabelOffset = 0;
+				labelData.rightLabelOffset = 0;	
+				
+				this.width = this.maxLabelWidth;
+				if(this.title != null && this.title != "") 
+				{
+					this.width += AxisLabelUtil.getTextWidth(this.title, textFormat, titleRotation);
+					this.width += renderer.getStyle("titleDistance") as Number;
+				}
+				
+				this.width += (this.chart as CartesianChart).getAxisTickOffset(this.renderer as ICartesianAxisRenderer);
+				this.width += renderer.getStyle("labelDistance") as Number;				
+			}
+			else //horizontal
+			{
+				var leftTextOverflow:Number;
+				var rightTextOverflow:Number;
+
+				if(rotation == 0 || Math.abs(rotation) == 90)
+				{
+					leftTextOverflow = label.width/2;
+					rightTextOverflow = label.width/2;
+					this.maxLabelHeight = label.height;
+				}
+				else
+				{
+					rad = rotation * Math.PI/180;
+					if(rotation > 0 && this.position == "bottom" || rotation < 0 && this.position == "top")
+					{
+						leftTextOverflow = label.contentHeight * Math.sin(rotation * Math.PI/180)/2;
+						rightTextOverflow = (Math.cos(Math.abs(rad)) * label.contentWidth) + (label.contentHeight * Math.sin(Math.abs(rad)))/2;
+					}
+					else
+					{
+						leftTextOverflow = Math.cos(Math.abs(rad)) * label.contentWidth;
+						rightTextOverflow = label.contentHeight * Math.abs(Math.sin(rotation * Math.PI/180)/2);	
+					}
+					this.maxLabelHeight = label.height - (Math.cos(Math.abs(rad)) * (label.contentHeight * rotation/90));			
+				}
+
+				this.labelData.maxLabelWidth = Math.max(label.rotationWidth, this.labelData.maxLabelWidth); 
+				labelData.leftLabelOffset = leftTextOverflow;
+				labelData.rightLabelOffset = rightTextOverflow;
+				
+				labelData.topLabelOffset = 0;
+				labelData.bottomLabelOffset = 0;	
+				this.height = this.maxLabelHeight;	
+				if(this.title != null && this.title != "") 
+				{
+					this.height += AxisLabelUtil.getTextHeight(this.title, textFormat, titleRotation);
+					this.height += renderer.getStyle("titleDistance") as Number;	
+				}
+				this.height += (this.chart as CartesianChart).getAxisTickOffset(this.renderer as ICartesianAxisRenderer);
+				this.height += renderer.getStyle("labelDistance") as Number;
+			}
+
+			return labelData;			
+		}		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/CategoryAxis.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/CategoryAxis.as
new file mode 100644
index 0000000..33ca02b
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/CategoryAxis.as
@@ -0,0 +1,370 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.CartesianChart;
+	import fl.core.UIComponent;
+	import flash.text.TextFormat;	
+	/**
+	 * An axis type representing a set of categories.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class CategoryAxis extends BaseAxis implements IAxis, IClusteringAxis
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function CategoryAxis()
+		{
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Used to determine the position of an item based on a value.
+		 */
+		protected var categorySize:Number = 0;
+		
+		/**
+		 * @private
+		 * Storage for the categoryNames property.
+		 */
+		private var _categoryNames:Array = [];
+		
+		/**
+		 * @private
+		 * Indicates whether the category labels are user-defined or generated by the axis.
+		 */
+		private var _categoryNamesSetByUser:Boolean = false;
+		
+		/**
+		 * The category labels to display along the axis.
+		 */
+		public function get categoryNames():Array
+		{
+			return this._categoryNames;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set categoryNames(value:Array):void
+		{
+			this._categoryNamesSetByUser = value != null && value.length > 0;
+			if(!this._categoryNamesSetByUser)
+			{
+				this._categoryNames = [];
+			}
+			else
+			{
+				//ensure that all category names are strings
+				this._categoryNames = getCategoryNames(value);
+			}
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get clusterCount():int
+		{
+			return this.categoryNames.length;
+		}
+
+		/**
+		 * @private
+		 */
+		private var _numLabels:Number;
+		
+		/**
+		 * @private
+		 */		
+		private var _numLabelsSetByUser:Boolean = false;
+
+		/**
+		 * @inheritDoc
+		 */
+		public function get numLabels():Number
+		{
+			return _numLabels;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set numLabels(value:Number):void
+		{
+			if(_numLabelsSetByUser) return;
+			_numLabels = value;
+			_numLabelsSetByUser = true;
+		}		
+		
+		/**
+		 * @private
+		 */
+		private var _majorUnit:Number = 1; 
+		
+		/**
+		 * @private 
+		 * Holds value for calculateCategoryCount
+		 */
+		private var _calculateCategoryCount:Boolean = false;
+		
+		/**
+		 * Indicates whether or not to calculate the number of categories (ticks and labels) 
+		 * when there is not enough room to display all labels on the axis. If set to true, the axis 
+		 * will determine the number of categories to plot. If not, all categories will be plotted. 
+		 */
+		public function get calculateCategoryCount():Boolean
+		{
+			return _calculateCategoryCount;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set calculateCategoryCount(value:Boolean):void
+		{
+			_calculateCategoryCount = value;
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function valueToLocal(value:Object):Number
+		{
+			if(value === null)
+			{
+				return NaN;
+			}
+			
+			var index:int = this.categoryNames.indexOf(value.toString());
+			if(index >= 0)
+			{
+				var position:int = this.categorySize * index + (this.categorySize / 2);
+				return position;
+			}
+			return NaN;
+		}
+	
+		/**
+		 * @inheritDoc
+		 */
+		public function updateScale():void
+		{
+			if(!this._categoryNamesSetByUser)
+			{
+				this.autoDetectCategories(this.dataProvider);
+			}
+			this.calculateCategorySize();
+		}
+
+		/**
+		 * @inheritDoc
+		 */
+		override public function getMaxLabel():String
+		{
+			var categoryCount:int = this.categoryNames.length;
+			var maxLength:Number = 0;
+			var currentLength:Number;
+			var maxString:String = "x";
+
+			for(var i:int = 0; i < categoryCount; i++)
+			{
+				currentLength = (this.categoryNames[i].toString()).length; 
+
+				if(currentLength > maxLength)
+				{
+					maxLength = currentLength;
+					maxString = this.categoryNames[i];
+				}
+			}			
+			
+			return this.valueToLabel(maxString) as String;	
+		}
+
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Update the labels by adding or removing some, setting the text, etc.
+		 */
+		private function autoDetectCategories(data:Array):void
+		{
+			var uniqueCategoryNames:Array = [];
+			var seriesCount:int = data.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:ISeries = data[i] as ISeries;
+				if(!series)
+				{
+					continue;
+				}
+				
+				var seriesLength:int = series.length;
+				for(var j:int = 0; j < seriesLength; j++)
+				{
+					var category:Object = this.chart.itemToAxisValue(series, j, this);
+					
+					//names must be unique
+					if(uniqueCategoryNames.indexOf(category) < 0)
+					{
+						uniqueCategoryNames.push(category);
+					}
+				}
+			}
+			this._categoryNames = getCategoryNames(uniqueCategoryNames.concat());
+		}
+		
+		/**
+		 * @private
+		 * Determines the amount of space provided to each category.
+		 */
+		private function calculateCategorySize():void
+		{
+			var categoryCount:int = this.categoryNames.length;
+			this.categorySize = this.renderer.length;
+			if(categoryCount > 0)
+			{
+				this.categorySize /= categoryCount;
+			}
+			
+			//If the number of labels will not fit on the axis or the user has specified the number of labels to
+			//display, calculate the major unit. 
+			var maxLabelSize:Number = (this.chart as CartesianChart).horizontalAxis == this ? this.labelData.maxLabelWidth : this.labelData.maxLabelHeight;
+			if((this.categorySize < maxLabelSize && this.calculateCategoryCount) || (this._numLabelsSetByUser && this.numLabels != categoryCount))
+			{
+				this.calculateMajorUnit();
+				(this.renderer as ICartesianAxisRenderer).majorUnitSetByUser = false;
+			} 
+			else
+			{
+				(this.renderer as ICartesianAxisRenderer).majorUnitSetByUser = true;
+			}
+			this.updateAxisRenderer();
+		}
+		
+		/**
+		 * @private
+		 * Calculates which labels to skip if they will not all fit on the axis.
+		 */
+		private function calculateMajorUnit():void
+		{
+			var overflow:Number = 0;
+			var rotation:Number = (this.renderer as UIComponent).getStyle("labelRotation") as Number;
+			var chart:CartesianChart = this.chart as CartesianChart;
+			var maxLabelSize:Number;
+			if(chart.horizontalAxis == this)
+			{
+				maxLabelSize = this.labelData.maxLabelWidth;
+				if(rotation >= 0)
+				{
+					if(!isNaN(this.labelData.rightLabelOffset)) overflow += this.labelData.rightLabelOffset as Number;
+				}
+				if(rotation <= 0)
+				{
+					if(!isNaN(this.labelData.leftLabelOffset)) overflow += this.labelData.leftLabelOffset as Number;
+				}			
+			}
+			else
+			{
+				maxLabelSize = this.labelData.maxLabelHeight;
+				if(!isNaN(this.labelData.topLabelOffset)) overflow = this.labelData.topLabelOffset as Number;				
+			}
+			var labelSpacing:Number = this.labelSpacing; 
+			maxLabelSize += (labelSpacing*2);
+			var categoryCount:int = this.categoryNames.length;
+
+			
+			var maxNumLabels:Number = (this.renderer.length + overflow)/maxLabelSize;
+			
+			//If the user specified number of labels to display, attempt to show the correct number.
+			if(this._numLabelsSetByUser)
+			{
+				maxNumLabels = Math.min(maxNumLabels, this.numLabels);
+			}
+			var ratio:Number = overflow/this.renderer.length;
+			var overflowOffset:Number = ratio*this.categoryNames.length;
+			if(isNaN(overflowOffset)) overflowOffset = 0;		
+			var tempMajorUnit:Number = Math.round((this.categoryNames.length+overflowOffset)/maxNumLabels);
+			this._majorUnit = tempMajorUnit;				
+		}
+		
+		/**
+		 * @private 
+		 * Ensures all values in an array are string values
+		 */
+		private function getCategoryNames(value:Array):Array
+		{
+			var names:Array = [];
+			if(value != null && value.length > 0)
+			{
+				for(var i:int = 0; i < value.length; i++)
+				{
+					names.push(value[i].toString());
+				}
+			}
+			return names;
+		}
+
+		/**
+		 * @private
+		 */
+		protected function updateAxisRenderer():void
+		{
+			var ticks:Array = [];
+			var categoryCount:int = this.categoryNames.length;
+			if(this.reverse) this.categoryNames = this.categoryNames.reverse();
+			var currentCat:int = 0;
+			while(currentCat < categoryCount && !isNaN(categoryCount))
+			{
+				var category:String = this.categoryNames[currentCat];
+				var position:Number = this.valueToLocal(category);
+				var label:String = this.valueToLabel(category);
+				var axisData:AxisData = new AxisData(position, category, label);
+				
+				if(currentCat % this._majorUnit == 0) ticks.push(axisData);
+				currentCat += 1;
+			}
+			
+			this.renderer.ticks = ticks;
+			this.renderer.minorTicks = [];				
+		}	
+		
+		/**
+		 * @private
+		 */
+		override protected function parseDataProvider():void
+		{
+			if(!this._categoryNamesSetByUser) this.autoDetectCategories(this.dataProvider);
+			var labelData:Object = getLabelData();			
+			if(ICartesianAxisRenderer(this.renderer).orientation == AxisOrientation.HORIZONTAL)
+			{
+				labelData.leftLabelOffset /= 2;
+				labelData.rightLabelOffset /= 2;
+			}
+			else
+			{
+				labelData.topLabelOffset /= 2;
+				labelData.bottomLabelOffset /=2;
+			}
+			for(var i:String in labelData)
+			{	
+				this.labelData[i] = labelData[i];
+			}
+		}			
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/DefaultAxisRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/DefaultAxisRenderer.as
new file mode 100644
index 0000000..4385406
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/DefaultAxisRenderer.as
@@ -0,0 +1,779 @@
+package com.yahoo.astra.fl.charts.axes
+{	
+	import com.yahoo.astra.utils.GeomUtil;
+	import com.yahoo.astra.utils.NumberUtil;
+	import com.yahoo.astra.display.BitmapText;
+	
+	import com.yahoo.astra.utils.DynamicRegistration;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	
+	import flash.geom.Point;
+	import flash.geom.Rectangle;
+	import flash.text.TextField;
+	import flash.text.TextFieldAutoSize;
+	import flash.text.TextFormat;
+	import flash.text.TextFormatAlign;
+	
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+    
+    //-- Axis
+    
+	/**
+	 * If false, the axis is not drawn. Titles, labels, ticks, and grid
+	 * lines may still be drawn, however, so you must specifically hide each
+	 * item if nothing should be drawn.
+	 * 
+	 * @default true
+	 */
+	[Style(name="showAxis", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the axis.
+	 * 
+	 * @default 1
+	 */
+	[Style(name="axisWeight", type="int")]
+    
+	/**
+	 * The line color for the axis.
+	 * 
+	 * @default #888a85
+	 */
+	[Style(name="axisColor", type="uint")]
+    
+    //-- Labels
+    
+	/**
+	 * If true, labels will be displayed on the axis.
+	 * 
+	 * @default true
+	 */
+	[Style(name="showLabels", type="Boolean")]
+    
+	/**
+	 * The distance, in pixels, between a label and the axis.
+	 * 
+	 * @default 2
+	 */
+	[Style(name="labelDistance", type="Number")]
+    
+	/**
+	 * The distance, in pixels, between a title and the axis labels.
+	 * 
+	 * @default 2
+	 */
+	[Style(name="titleDistance", type="Number")]
+	
+	/** 
+	 * If true, labels that overlap previously drawn labels on the axis will be
+	 * hidden. The first and last labels on the axis will always be drawn.
+	 * 
+	 * @default true
+	 */
+	[Style(name="hideOverlappingLabels", type="Boolean")]
+    
+	/** 
+	 * The angle, in degrees, of the labels on the axis. May be a value
+	 * between <code>-90</code> and <code>90</code>. 
+	 * 
+	 * @default 0
+	 */
+	[Style(name="labelRotation", type="Number")]
+	
+	/** 
+	 * The angle, in degrees, of the title on the axis. May be a value
+	 * between <code>-90</code> and <code>90</code>. 
+	 * 
+	 * @default 0
+	 */
+	[Style(name="titleRotation", type="Number")]	
+	
+	//-- Ticks
+    
+	/**
+	 * If true, ticks will be displayed on the axis.
+	 * 
+	 * @default true
+	 */
+	[Style(name="showTicks", type="Boolean")]
+    
+	/**
+	 * The line weight, in pixels, for the ticks on the axis.
+	 * 
+	 * @default 1
+	 */
+	[Style(name="tickWeight", type="int")]
+    
+	/**
+	 * The line color for the ticks on the axis.
+	 * 
+	 * @default #888a85
+	 */
+	[Style(name="tickColor", type="uint")]
+    
+	/**
+	 * The length, in pixels, of the ticks on the axis.
+	 * 
+	 * @default 4
+	 */
+	[Style(name="tickLength", type="Number")]
+	
+	/**
+	 * The position of the ticks on the axis.
+	 * 
+	 * @default "cross"
+	 * @see TickPosition
+	 */
+	[Style(name="tickPosition", type="String")]
+    
+    //-- Minor ticks
+    
+	/**
+	 * If true, ticks will be displayed on the axis at minor positions.
+	 * 
+	 * @default true
+	 */
+	[Style(name="showMinorTicks", type="Boolean")]
+	
+	/**
+	 * The line weight, in pixels, for the minor ticks on the axis.
+	 * 
+	 * @default 1
+	 */
+	[Style(name="minorTickWeight", type="int")]
+    
+	/**
+	 * The line color for the minor ticks on the axis.
+	 * 
+	 * @default #888a85
+	 */
+	[Style(name="minorTickColor", type="uint")]
+    
+	/**
+	 * The length of the minor ticks on the axis.
+	 * 
+	 * @default 3
+	 */
+	[Style(name="minorTickLength", type="Number")]
+	
+	/**
+	 * The position of the minor ticks on the axis.
+	 * 
+	 * @default "outside"
+	 * @see com.yahoo.astra.fl.charts.TickPosition
+	 */
+	[Style(name="minorTickPosition", type="String")]
+	
+	//-- Title
+	
+	/**
+	 * If true, the axis title will be displayed.
+	 * 
+	 * @default 2
+	 */
+	[Style(name="showTitle", type="Boolean")]
+	
+	/**
+	 * The TextFormat object to use to render the axis title label.
+     *
+     * @default TextFormat("_sans", 11, 0x000000, false, false, false, '', '', TextFormatAlign.LEFT, 0, 0, 0, 0)
+	 */
+	[Style(name="titleTextFormat", type="TextFormat")]
+
+	/**
+	 * The base axis renderer for a cartesian chart.
+	 * 
+     * <p>This class is not meant to be instantiated directly! It is an abstract base class.</p>
+     *
+	 * @see com.yahoo.astra.fl.charts.CartesianChart
+	 * @author Josh Tynjala
+	 */
+	public class DefaultAxisRenderer extends UIComponent implements ICartesianAxisRenderer
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{
+			//axis
+			showAxis: true,
+			axisWeight: 1,
+			axisColor: 0x888a85,
+			
+			//labels
+			showLabels: true,
+			labelDistance: 2,
+			embedFonts: false,
+			hideOverlappingLabels: true,
+			labelRotation: 0,
+			titleRotation: 0,
+			titleDistance: 2,
+			
+			//ticks
+			showTicks: true,
+			tickWeight: 1,
+			tickColor: 0x888a85,
+			tickLength: 4,
+			tickPosition: TickPosition.CROSS,
+			
+			//minor ticks
+			showMinorTicks: true,
+			minorTickWeight: 1,
+			minorTickColor: 0x888a85,
+			minorTickLength: 3,
+			minorTickPosition: TickPosition.OUTSIDE,
+			
+			//title
+			showTitle: true,
+			titleTextFormat: new TextFormat("_sans", 11, 0x000000, false, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0)
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, UIComponent.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+		
+		/**
+		 * Constructor.
+		 */
+		public function DefaultAxisRenderer()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+
+		/**
+		 * @private
+		 * Placeholder for position
+		 */
+		private var _position:String = "bottom";
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.axes.ICartesianAxisRenderer#position
+		 */
+		public function get position():String
+		{
+			return _position;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set position(value:String):void
+		{
+			_position = value;
+		}		
+		/**
+		 * @private
+		 * Storage for the TextFields used for labels on this axis.
+		 */
+		protected var labelTextFields:Array = [];
+		
+		/**
+		 * @private
+		 * A cache to allow the reuse of TextFields when redrawing the renderer.
+		 */
+		private var _labelCache:Array;
+		
+		/**
+		 * @private
+		 * The TextField used to display the axis title.
+		 */
+		protected var titleTextField:BitmapText;
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get length():Number
+		{
+			if(this.orientation == AxisOrientation.VERTICAL)
+			{
+				return this.contentBounds.height;
+			}
+			return this.contentBounds.width;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the orientation property.
+		 */
+		private var _orientation:String = AxisOrientation.VERTICAL;
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get orientation():String
+		{
+			return this._orientation;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set orientation(value:String):void
+		{
+			if(this._orientation != value)
+			{
+				this._orientation = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the contentBounds property.
+		 */
+		protected var _contentBounds:Rectangle = new Rectangle();
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get contentBounds():Rectangle
+		{
+			return this._contentBounds;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the ticks property.
+		 */
+		private var _ticks:Array = [];
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get ticks():Array
+		{
+			return this._ticks;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set ticks(value:Array):void
+		{
+			this._ticks = value;
+			this.invalidate(InvalidationType.DATA);
+		}
+		
+		/**
+		 * @private
+		 * Storage for the minorTicks property.
+		 */
+		private var _minorTicks:Array = [];
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get minorTicks():Array
+		{
+			return this._minorTicks;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set minorTicks(value:Array):void
+		{
+			this._minorTicks = value;
+			this.invalidate(InvalidationType.DATA);
+		}
+		
+		/**
+		 * @private
+		 * Storage for the title property.
+		 */
+		private var _title:String = "";
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get title():String
+		{
+			return this._title;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set title(value:String):void
+		{
+			if(this._title != value)
+			{
+				this._title = value ? value : "";
+				this.invalidate();
+			}
+		}
+		
+		private var _outerTickOffset:Number = 0;
+		
+		public function get outerTickOffset():Number
+		{
+			return _outerTickOffset;	
+		}
+		
+		public function set outerTickOffset(value:Number):void
+		{
+			_outerTickOffset = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the majorUnitSetByUser
+		 */
+		private var _majorUnitSetByUser:Boolean = false;
+		
+		/**
+		 * Indicates whether the major unit is user-defined or generated by the axis.
+		 */
+		public function get majorUnitSetByUser():Boolean
+		{
+			return this._majorUnitSetByUser;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set majorUnitSetByUser(value:Boolean):void
+		{
+			this._majorUnitSetByUser = value;
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		public function updateAxis():void
+		{
+			var showLabels:Boolean = this.getStyleValue("showLabels") as Boolean;
+			var labelDistance:Number = this.getStyleValue("labelDistance") as Number;
+			var textFormat:TextFormat = this.getStyleValue("textFormat") as TextFormat;
+			var labelRotation:Number = this.getStyleValue("labelRotation") as Number;
+			var embedFonts:Boolean = this.getStyleValue("embedFonts") as Boolean;
+			labelRotation = Math.max(-90, Math.min(labelRotation, 90));
+			
+			this.createCache();
+			this.updateLabels(this.ticks, showLabels, textFormat, labelDistance, labelRotation, embedFonts);
+			this.clearCache();
+			
+			this.updateTitle();
+			this.draw();
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function configUI():void
+		{
+			super.configUI();
+			
+			if(!this.titleTextField)
+			{
+				this.titleTextField = new BitmapText();
+				this.titleTextField.autoSize = TextFieldAutoSize.LEFT;
+				this.addChild(this.titleTextField);
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			this.graphics.clear();
+			
+			this.positionTitle();
+			
+			var showTicks:Boolean = this.getStyleValue("showTicks") as Boolean;
+			var showMinorTicks:Boolean = this.getStyleValue("showMinorTicks") as Boolean;
+			var filteredMinorTicks:Array = this.minorTicks.concat();
+			if(showMinorTicks && showTicks)
+			{
+				//filter out minor ticks that appear at the same position
+				//as major ticks.
+				filteredMinorTicks = filteredMinorTicks.filter(function(item:AxisData, index:int, source:Array):Boolean
+				{
+					return !this.ticks.some(function(item2:AxisData, index2:int, source2:Array):Boolean
+					{
+						//using fuzzyEquals because we may encounter rounding errors
+						return NumberUtil.fuzzyEquals(item.position, item2.position, 10);
+					});
+				}, this);
+			}
+			
+			this.drawAxis();
+			
+			var showLabels:Boolean = this.getStyleValue("showLabels") as Boolean;
+			var labelDistance:Number = this.getStyleValue("labelDistance") as Number;
+			var textFormat:TextFormat = this.getStyleValue("textFormat") as TextFormat;
+			var labelRotation:Number = this.getStyleValue("labelRotation") as Number;
+			var embedFonts:Boolean = this.getStyleValue("embedFonts") as Boolean;
+			labelRotation = Math.max(-90, Math.min(labelRotation, 90));
+			this.positionLabels(this.ticks, showLabels, labelDistance, labelRotation, embedFonts);
+			
+			var tickPosition:String = this.getStyleValue("tickPosition") as String;
+			var tickLength:Number = this.getStyleValue("tickLength") as Number;
+			var tickWeight:int = this.getStyleValue("tickWeight") as int;
+			var tickColor:uint = this.getStyleValue("tickColor") as uint;
+			this.drawTicks(this.ticks, showTicks, tickPosition, tickLength, tickWeight, tickColor);
+			
+			var minorTickPosition:String = this.getStyleValue("minorTickPosition") as String;
+			var minorTickLength:Number = this.getStyleValue("minorTickLength") as Number;
+			var minorTickWeight:int = this.getStyleValue("minorTickWeight") as int;
+			var minorTickColor:uint = this.getStyleValue("minorTickColor") as uint;
+			this.drawTicks(filteredMinorTicks, showMinorTicks, minorTickPosition, minorTickLength, minorTickWeight, minorTickColor);
+			
+			super.draw();	
+		}
+		
+		/**
+		 * @private
+		 * Updates the title text and styles.
+		 */
+		protected function updateTitle():void
+		{
+			var showTitle:Boolean = this.getStyleValue("showTitle") as Boolean;
+			if(!showTitle)
+			{
+				this.titleTextField.text = "";
+			}
+			else
+			{
+				var textFormat:TextFormat = this.getStyleValue("titleTextFormat") as TextFormat;
+				var embedFonts:Boolean = this.getStyleValue("embedFonts") as Boolean;
+				this.titleTextField.defaultTextFormat = textFormat;
+				this.titleTextField.embedFonts = embedFonts;
+				this.titleTextField.text = this.title;
+			}
+		}
+		
+		/**
+		 * @private
+		 * Positions the title along the axis.
+		 */
+		protected function positionTitle():void
+		{
+		}
+	
+		/**
+		 * @private
+		 * Draws the axis origin line.
+		 */
+		protected function drawAxis():void
+		{
+			var showAxis:Boolean = this.getStyleValue("showAxis") as Boolean;
+			if(!showAxis)
+			{
+				return;
+			}
+			
+			var axisWeight:int = this.getStyleValue("axisWeight") as int;
+			var axisColor:uint = this.getStyleValue("axisColor") as uint;
+			this.graphics.lineStyle(axisWeight, axisColor);
+		}
+		
+		/**
+		 * @private
+		 * Draws a set of ticks on the axis.
+		 */
+		protected function drawTicks(data:Array, showTicks:Boolean, tickPosition:String,
+			tickLength:Number, tickWeight:Number, tickColor:uint):void
+		{
+		}
+		
+		/**
+		 * @private
+		 * Saves the label TextFields so that they may be reused.
+		 */
+		protected function createCache():void
+		{
+			this._labelCache = this.labelTextFields.concat();
+			this.labelTextFields = [];
+		}
+		
+		/**
+		 * @private
+		 * Removes unused label TextFields.
+		 */
+		protected function clearCache():void
+		{
+			var cacheLength:int = this._labelCache.length;
+			for(var i:int = 0; i < cacheLength; i++)
+			{
+				var label:BitmapText = BitmapText(this._labelCache.shift());
+				this.removeChild(label);
+			}
+		}
+				
+		/**
+		 * @private
+		 * Creates the labels, sets their text and styles them. Positions the labels too.
+		 */
+		protected function updateLabels(data:Array, showLabels:Boolean, textFormat:TextFormat, labelDistance:Number, labelRotation:Number, embedFonts:Boolean):void
+		{
+			if(!showLabels)
+			{
+				return;
+			}
+			
+			var dataCount:int = data.length;
+			for(var i:int = 0; i < dataCount; i++)
+			{
+				var axisData:AxisData = AxisData(data[i]);
+				var position:Number = axisData.position;
+				if(isNaN(position))
+				{
+					//skip bad positions
+					continue;
+				}
+				
+				var label:BitmapText = this.getLabel();
+				label.defaultTextFormat = textFormat;
+				label.embedFonts = embedFonts;
+				label.rotation = 0;
+				label.text = axisData.label;
+				this.labelTextFields.push(label);
+			}
+			this.positionLabels(data, showLabels, labelDistance, labelRotation, embedFonts);
+		}
+		
+		/**
+		 * @private
+		 * Positions a set of labels on the axis.
+		 */
+		protected function positionLabels(labels:Array, showLabels:Boolean, labelDistance:Number, labelRotation:Number, embedFonts:Boolean):void
+		{
+			var labelCount:int = this.labelTextFields.length;
+			for(var i:int = 0; i < labelCount; i++)
+			{
+				var label:BitmapText = BitmapText(this.labelTextFields[i]);
+				label.rotation = 0;
+				var axisData:AxisData = AxisData(this.ticks[i]);
+				var position:Number = axisData.position;
+			
+				if(this.orientation == AxisOrientation.VERTICAL)
+				{
+					position += this.contentBounds.y;
+					if(showLabels)
+					{
+						label.x = this.contentBounds.x - labelDistance - this.outerTickOffset - label.width;
+						label.y = position - label.height/2;
+					}
+					
+					if(labelRotation == 0)
+					{
+						//do nothing. already ideally positioned
+					}
+					else if(labelRotation < 90 && labelRotation > 0)
+					{
+						label.x -= (label.height * labelRotation / 180);
+						DynamicRegistration.rotate(label, new Point(label.width, label.height / 2), labelRotation);
+					}
+					else if(labelRotation > -90 && labelRotation < 0)
+					{
+						label.x -= (label.height * Math.abs(labelRotation) / 180);
+						DynamicRegistration.rotate(label, new Point(label.width, label.height / 2), labelRotation);
+					}
+					else if(labelRotation == -90)
+					{
+						label.y -= label.width / 2;
+						label.x -= (label.height * Math.abs(labelRotation) / 180);
+						DynamicRegistration.rotate(label, new Point(label.width, label.height / 2), labelRotation);
+					}
+					else //90
+					{
+						label.y += label.width / 2;
+						label.x -= (label.height * Math.abs(labelRotation) / 180);
+						DynamicRegistration.rotate(label, new Point(label.width, label.height / 2), labelRotation);
+					}
+
+				}
+				else //horizontal
+				{
+					position += this.contentBounds.x;
+					if(showLabels)
+					{
+						label.y = this.contentBounds.y + this.contentBounds.height + labelDistance + this.outerTickOffset;
+					}
+					
+					if(labelRotation > 0)
+					{
+						label.x = position;
+						label.y -= (label.height * labelRotation / 180);
+						DynamicRegistration.rotate(label, new Point(0, label.height / 2), labelRotation);
+					}
+					else if(labelRotation < 0)
+					{
+						label.x = position - label.width;
+						label.y -= (label.height * Math.abs(labelRotation) / 180);
+						DynamicRegistration.rotate(label, new Point(label.width, label.height / 2), labelRotation);
+					}
+					else //labelRotation == 0
+					{
+						label.x = position - label.width / 2;
+					}
+				}
+				label.x = Math.round(label.x);
+				label.y = Math.round(label.y);
+				this.handleOverlappingLabels();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Either creates a new label TextField or retrieves one from the cache.
+		 */
+		protected function getLabel():BitmapText
+		{
+			if(this._labelCache.length > 0)
+			{
+				return BitmapText(this._labelCache.shift());
+			}
+			var labelRotation:Number = this.getStyleValue("labelRotation") as Number;
+			var label:BitmapText = new BitmapText();
+			label.selectable = false;
+			label.autoSize = TextFieldAutoSize.LEFT;
+			this.addChild(label);
+			return label;
+		}
+		
+		/**
+		 * @private
+		 * If labels overlap, some may need to be hidden.
+		 */
+		protected function handleOverlappingLabels():void
+		{
+		}		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/DefaultGridLinesRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/DefaultGridLinesRenderer.as
new file mode 100644
index 0000000..49b0681
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/DefaultGridLinesRenderer.as
@@ -0,0 +1,187 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.utils.NumberUtil;
+	
+	import fl.core.UIComponent;
+
+	/**
+	 * Renders grid lines associated with a cartesian axis.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class DefaultGridLinesRenderer extends UIComponent implements IGridLinesRenderer
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+		
+		/**
+		 * Constructor.
+		 */
+		public function DefaultGridLinesRenderer()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Storage for the axisRenderer property.
+		 */
+		private var _axisRenderer:IAxisRenderer;
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get axisRenderer():IAxisRenderer
+		{
+			return this._axisRenderer;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set axisRenderer(value:IAxisRenderer):void
+		{
+			if(this._axisRenderer != value)
+			{
+				this._axisRenderer = value;
+				this.invalidate();
+			}
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			this.graphics.clear();
+			
+			if(!this.axisRenderer)
+			{
+				return;
+			}
+			
+			var showLines:Boolean = this.getStyleValue("showLines") as Boolean;
+			var showMinorLines:Boolean = this.getStyleValue("showMinorLines") as Boolean;
+			
+			//grab the line and minor line data from the axis renderer
+			var lines:Array = this.axisRenderer.ticks.concat();
+			var minorLines:Array = this.axisRenderer.minorTicks.concat();
+			if(showMinorLines && showLines)
+			{
+				//filter out minor ticks that appear at the same position
+				//as major ticks.
+				minorLines = minorLines.filter(function(item:AxisData, index:int, source:Array):Boolean
+				{
+					return !lines.some(function(item2:AxisData, index2:int, source2:Array):Boolean
+					{
+						//using fuzzyEquals because we may encounter rounding errors
+						return NumberUtil.fuzzyEquals(item.position, item2.position, 10);
+					});
+				});
+			}
+			
+			
+			var lineWeight:int = this.getStyleValue("lineWeight") as int;
+			var lineColor:uint = this.getStyleValue("lineColor") as uint;
+			var fillColors:Array = this.getStyleValue("fillColors") as Array;
+			var fillAlphas:Array = this.getStyleValue("fillAlphas") as Array;
+			this.drawLines(lines, showLines, lineWeight, lineColor, fillColors, fillAlphas);
+
+			var minorLineWeight:int = this.getStyleValue("minorLineWeight") as int;
+			var minorLineColor:uint = this.getStyleValue("minorLineColor") as uint;
+			this.drawLines(minorLines, showMinorLines, minorLineWeight, minorLineColor);
+			
+			super.draw();
+		}
+		
+		/**
+		 * Draws a set of lines based on AxisData positioning.
+		 */
+		protected function drawLines(data:Array, showLines:Boolean, lineWeight:Number, lineColor:uint, fillColors:Array = null, fillAlphas:Array = null):void
+		{	
+			var lastPosition:Number;
+			var renderer:ICartesianAxisRenderer = ICartesianAxisRenderer(this.axisRenderer);
+			var dataCount:int = data.length;
+			
+			var showZeroGridLine:Boolean = this.getStyleValue("showZeroGridLine") as Boolean;
+			var zeroGridLineWeight:Number = this.getStyleValue("zeroGridLineWeight") as Number;
+			var zeroGridLineColor:uint = this.getStyleValue("zeroGridLineColor") as uint;
+			for(var i:int = 0; i < dataCount; i++)
+			{
+				var axisData:AxisData = AxisData(data[i]);
+				if(isNaN(axisData.position))
+				{
+					//skip bad positions
+					continue;
+				}
+				
+				var position:Number = axisData.position;
+				var nonOriginZero:Boolean =(i > 0 && axisData.value == 0 && showZeroGridLine);
+				if(renderer.orientation == AxisOrientation.VERTICAL)
+				{
+					if(!isNaN(lastPosition) && fillColors && fillColors.length > 0)
+					{
+						var color:uint = fillColors[(i - 1) % fillColors.length];
+						var alpha:Number = (fillAlphas && fillAlphas.length > 0) ? fillAlphas[(i - 1) % fillAlphas.length] : 1;
+						this.graphics.lineStyle(0, 0, 0);
+						this.graphics.beginFill(color, alpha);
+						this.graphics.drawRect(0, lastPosition, renderer.contentBounds.width, position - lastPosition);
+						this.graphics.endFill();
+					}
+					
+					if(showLines)
+					{
+						if(nonOriginZero)
+						{
+							this.graphics.lineStyle(zeroGridLineWeight, zeroGridLineColor);
+						}
+						else
+						{
+							this.graphics.lineStyle(lineWeight, lineColor);
+						}
+						this.graphics.moveTo(0, position);
+						this.graphics.lineTo(renderer.contentBounds.width, position);
+					}
+				}
+				else
+				{
+					if(!isNaN(lastPosition) && fillColors && fillColors.length > 0)
+					{
+						color = fillColors[(i - 1) % fillColors.length];
+						alpha = (fillAlphas && fillAlphas.length > 0) ? fillAlphas[(i - 1) % fillAlphas.length] : 1;
+						this.graphics.lineStyle(0, 0, 0);
+						this.graphics.beginFill(color, alpha);
+						this.graphics.drawRect(lastPosition, 0, position - lastPosition, renderer.contentBounds.height);
+						this.graphics.endFill();
+					}
+					
+					if(showLines)
+					{
+						if(nonOriginZero)
+						{
+							this.graphics.lineStyle(zeroGridLineWeight, zeroGridLineColor);
+						}
+						else
+						{
+							this.graphics.lineStyle(lineWeight, lineColor);
+						}
+						this.graphics.moveTo(position, 0);
+						this.graphics.lineTo(position, renderer.contentBounds.height);
+					}
+				}
+				
+				lastPosition = position;
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/HorizontalAxisRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/HorizontalAxisRenderer.as
new file mode 100644
index 0000000..096656b
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/HorizontalAxisRenderer.as
@@ -0,0 +1,276 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.display.BitmapText;
+	import com.yahoo.astra.utils.DynamicRegistration;	
+	import flash.geom.Point;
+
+	/**
+	 * The default horizontal axis renderer for a cartesian chart.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.CartesianChart
+	 * @author Tripp Bridges
+	 */
+	public class HorizontalAxisRenderer extends DefaultAxisRenderer implements ICartesianAxisRenderer
+	{
+
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------	
+
+		/**
+		 * Constructor
+		 */
+		public function HorizontalAxisRenderer()
+		{
+			super();
+			this.orientation = AxisOrientation.HORIZONTAL
+		}
+		
+	//--------------------------------------
+	// Properties
+	//--------------------------------------
+		/**
+	 	 * @private
+	 	 * Placeholder for position.
+	 	 */		
+		private var _position:String = "left";
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+				
+		/**
+ 		 * @private
+		 * Positions the title along the axis.
+		 */
+		override protected function positionTitle():void
+		{
+			var showTitle:Boolean = this.getStyleValue("showTitle") as Boolean;
+			this.titleTextField.visible = showTitle;
+			if(showTitle)
+			{
+				var titleRotation:Number = this.getStyleValue("titleRotation") as Number;
+				titleRotation = Math.max(-90, Math.min(titleRotation, 90));							
+					
+				this.titleTextField.rotation = titleRotation;
+				this.titleTextField.x = this.contentBounds.x + (this.contentBounds.width/2);
+				
+				if(this.position != "top")
+				{
+					this.titleTextField.y = this.y + this.height - this.titleTextField.height;
+				}
+				if(titleRotation < 0)
+				{
+					this.titleTextField.y += this.titleTextField.contentWidth * Math.sin(Math.abs(titleRotation)*Math.PI/180);
+				}
+				this.titleTextField.x -= this.titleTextField.width/2;						
+			}
+		}
+		
+		/**
+		 * @private
+		 * Draws the axis origin line.
+		 */
+		override protected function drawAxis():void
+		{
+			super.drawAxis();
+			var horizontalY:Number = this.position == "top" ? this.contentBounds.y : this.contentBounds.y + this.contentBounds.height;
+			var horizontalStart:Number = this.contentBounds.x;
+			var horizontalEnd:Number = this.contentBounds.x + this.contentBounds.width;
+			this.graphics.moveTo(horizontalStart, horizontalY);
+			this.graphics.lineTo(horizontalEnd, horizontalY);
+		}				
+		
+		/**
+		 * @private
+		 * Draws a set of ticks on the axis.
+		 */
+		override protected function drawTicks(data:Array, showTicks:Boolean, tickPosition:String,
+			tickLength:Number, tickWeight:Number, tickColor:uint):void
+		{
+			if(!showTicks)
+			{
+				return;
+			}
+			
+			this.graphics.lineStyle(tickWeight, tickColor);		
+			var dataCount:int = data.length;
+			var axisPosition:Number = this.position == "top" ? this.contentBounds.y : this.contentBounds.y + this.contentBounds.height;
+			if(this.position == "top") tickLength *= -1;			
+			for(var i:int = 0; i < dataCount; i++)
+			{
+				var axisData:AxisData = AxisData(data[i]);
+				if(isNaN(axisData.position))
+				{
+					//skip bad positions
+					continue;
+				}
+				
+				var position:Number = axisData.position;
+				position += this.contentBounds.x;
+				
+				switch(tickPosition)
+				{
+					case TickPosition.OUTSIDE:
+						this.graphics.moveTo(position, axisPosition);
+						this.graphics.lineTo(position, axisPosition + tickLength);
+						break;
+						
+					case TickPosition.INSIDE:
+						this.graphics.moveTo(position, axisPosition - tickLength);
+						this.graphics.lineTo(position, axisPosition);
+						break;
+
+					default: //CROSS
+						this.graphics.moveTo(position, axisPosition - tickLength / 2);
+						this.graphics.lineTo(position, axisPosition + tickLength / 2);
+						break;
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Positions a set of labels on the axis.
+		 */
+		override protected function positionLabels(labels:Array, showLabels:Boolean, labelDistance:Number, labelRotation:Number, embedFonts:Boolean):void
+		{
+			if(!showLabels)	return;		
+			var labelCount:int = this.labelTextFields.length;
+			for(var i:int = 0; i < labelCount; i++)
+			{
+				var label:BitmapText = BitmapText(this.labelTextFields[i]);
+				label.rotation = 0;
+				var axisData:AxisData = AxisData(this.ticks[i]);
+				var position:Number = axisData.position;
+				position += this.contentBounds.x;
+				var absRotation:Number = Math.abs(labelRotation);	
+				label.x = position;
+				var xRegistration:Number;
+				var yRegistration:Number = 0;
+				if(this.position == "top")
+				{
+					label.y = this.contentBounds.y - labelDistance - this.outerTickOffset;
+					if(labelRotation > 0)
+					{
+						label.rotation = labelRotation;
+						label.x -= Math.cos(labelRotation * Math.PI/180) * label.contentWidth;
+						label.x += Math.sin(labelRotation * Math.PI/180) * label.contentHeight/2;
+						label.y -= Math.sin(labelRotation * Math.PI/180) * label.contentWidth;
+						label.y -= Math.cos(labelRotation * Math.PI/180) * label.contentHeight * (1 - labelRotation/90);
+					}
+					else if(labelRotation < 0)
+					{
+						label.y -= Math.cos(Math.abs(labelRotation) * Math.PI/180) * label.contentHeight * (1 - absRotation/90);
+						label.x -= Math.sin(Math.abs(labelRotation) * Math.PI/180) * label.contentHeight/2;
+						label.rotation = labelRotation;
+					}
+					else
+					{
+						label.y -= label.height;
+						label.x = position - label.width / 2;
+					}
+				}
+				else
+				{
+					label.y = this.contentBounds.y + this.contentBounds.height + labelDistance + this.outerTickOffset;
+					if(labelRotation > 0)
+					{
+						label.x = position;
+						label.y -= (label.height * labelRotation / 180);
+						DynamicRegistration.rotate(label, new Point(0, label.height / 2), labelRotation);
+					}
+					else if(labelRotation < 0)
+					{
+						label.x = position - label.width;
+						label.y -= (label.height * Math.abs(labelRotation) / 180);
+						DynamicRegistration.rotate(label, new Point(label.width, label.height / 2), labelRotation);
+					}
+					else //labelRotation == 0
+					{
+						label.x = position - label.width / 2;
+					}				
+				}
+				
+				label.x = Math.round(label.x);
+				label.y = Math.round(label.y);
+				this.handleOverlappingLabels();
+			}
+		}
+		/**
+		 * @private
+		 * If labels overlap, some may need to be hidden.
+		 */
+		override protected function handleOverlappingLabels():void
+		{
+			var showLabels:Boolean = this.getStyleValue("showLabels");
+			var hideOverlappingLabels:Boolean = this.getStyleValue("hideOverlappingLabels");
+			if(!showLabels || !hideOverlappingLabels)
+			{
+				return;
+			}
+			var labelRotation:Number = this.getStyleValue("labelRotation") as Number;
+			var lastVisibleLabel:BitmapText;
+ 			var labelCount:int = this.labelTextFields.length;
+			for(var i:int = 0; i < labelCount; i++)
+			{
+				var idealDistance:Number;
+				var index:int = labelRotation >= 0 ? i : (labelCount - i - 1);
+				var label:BitmapText = BitmapText(this.labelTextFields[index]);
+				label.visible = true;
+				if(lastVisibleLabel)
+				{
+					var diff:Number;		
+					var maxWidth:Number;
+					if(labelRotation >= 0)
+					{
+						diff = Math.abs(label.x - lastVisibleLabel.x);
+						maxWidth = lastVisibleLabel.rotationWidth;
+						if(labelRotation == 90)
+						{
+							idealDistance = lastVisibleLabel.textField.textHeight;
+						}
+						else if(labelRotation == 0)
+						{
+							idealDistance = lastVisibleLabel.textField.textWidth;
+						}
+						else
+						{
+							idealDistance = lastVisibleLabel.textField.textHeight / (Math.sin((Math.abs(labelRotation))*Math.PI/180));
+							idealDistance = Math.min(idealDistance, lastVisibleLabel.width);
+						}
+					}
+					else
+					{
+						diff = (lastVisibleLabel.x + lastVisibleLabel.width) - (label.x + label.width);
+						maxWidth = label.rotationWidth;
+						if(labelRotation == 90)
+						{
+							idealDistance = label.textField.textHeight;
+						}
+						else if(labelRotation == 0)
+						{
+							idealDistance = label.textField.textWidth;
+						}
+						else
+						{
+							idealDistance = label.textField.textHeight / (Math.sin((Math.abs(labelRotation))*Math.PI/180));
+							idealDistance = Math.min(idealDistance, label.width);
+						}							
+					}
+					if(idealDistance > diff)
+					{						
+						label.visible = false; 
+					}
+				}
+				if(label.visible)
+				{
+					lastVisibleLabel = label;
+				}  
+			}
+		}		
+		
+		
+
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/IAxis.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/IAxis.as
new file mode 100644
index 0000000..dac94ad
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/IAxis.as
@@ -0,0 +1,199 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.fl.charts.IChart;
+	import flash.events.IEventDispatcher;
+	
+	/**
+	 * Data-only representation of a chart's axis.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IAxis extends IEventDispatcher
+	{	
+		/**
+		 * Total width of axis
+		 */
+		function get width():Number;
+		
+		/*
+		 * @private (setter)
+		 */
+		function set width(value:Number):void;
+		
+		/** 
+		 * Total height of axis
+		 */
+		function get height():Number;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set height(value:Number):void;
+		
+		/**
+		 * The chart in which this axis appears.
+		 */
+		function get chart():IChart;
+		
+		/**
+		 * @private
+		 */
+		function set chart(value:IChart):void;
+		
+		/**
+		 * The visual renderer associated with this axis.
+		 */
+		function get renderer():IAxisRenderer;
+		
+		/**
+		 * @private
+		 */
+		function set renderer(value:IAxisRenderer):void;
+		
+		/**
+		 * Sets the direction of the labels and other visual objects along the axis.
+		 * By default, vertical axes draw objects from bottom to top, and horizontal
+		 * axes draw objects from left to right.
+		 */
+		function get reverse():Boolean;
+		
+		/**
+		 * @private
+		 */
+		function set reverse(value:Boolean):void;
+		
+		/**
+		 * The text that will appear next to the axis to indicate information
+		 * about the data that it displays.
+		 */
+		function get title():String;
+		
+		/**
+		 * @private
+		 */
+		function set title(value:String):void;
+		
+		/**
+		 * A function may be set to determine the text value of the labels.
+		 * 
+		 * <pre>function labelFunction(value:Object):String</pre>
+		 */
+		function get labelFunction():Function;
+		
+		/**
+		 * @private
+		 */
+		function set labelFunction(value:Function):void
+		
+		/**
+		 * Gets or sets the maximum width of a label
+		 */
+		function get maxLabelWidth():Number;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set maxLabelWidth(value:Number):void;
+		
+		/**
+		 * Gets or sets the maximum width of a label
+		 */
+		function get maxLabelHeight():Number;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set maxLabelHeight(value:Number):void;		
+
+		/**
+		 * Data used in determining the axis scale
+		 */
+		function get dataProvider():Array;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set dataProvider(value:Array):void;
+		
+		/**
+		 * @private
+		 */
+		function get numLabels():Number;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set numLabels(value:Number):void;
+
+		/**
+		 * The space, in pixels, between labels on an axis.
+		 */
+		function get labelSpacing():Number;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set labelSpacing(value:Number):void; 
+		
+		/**
+		 * Maximum dimensions of axis labels
+		 */
+		function get labelData():AxisLabelData;
+		
+		/** 
+		 * @private (setter)
+		 */
+		function set labelData(value:AxisLabelData):void; 
+		
+		/**
+		 * Position of axis in relation to the chart
+		 */
+		function get position():String;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set position(value:String):void;
+		
+		/**
+		 * Largest label value to appear on the axis.
+		 */
+		function get maxLabel():String;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set maxLabel(value:String):void;
+		
+		/**
+		 * Determines the axis scale based on the input data set.
+		 * Seperating this function from the draw method optimizes processing time,
+		 * and it allows the chart to synchronize its axes.
+		 * 
+		 */
+		function updateScale():void;
+		
+		/**
+		 * Calculates the position of a data point along the axis.
+		 * 
+		 * @param value		The data used to determine the position
+		 * @return			The display position in pixels on the axis
+		 */
+		function valueToLocal(value:Object):Number;
+		
+		/**
+		 * Converts a value on the axis to formatted label text.
+		 * 
+		 * @param value		the value of the item for which a label is needed
+		 * @return			the formatted label text
+		 */
+		function valueToLabel(value:Object):String;
+		
+		/**
+		 * Returns the maximum string length of a label on the axis.
+		 *
+		 * @return 			the formatted label
+		 */
+		function getMaxLabel():String;		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/IAxisRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/IAxisRenderer.as
new file mode 100644
index 0000000..c78991c
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/IAxisRenderer.as
@@ -0,0 +1,46 @@
+package com.yahoo.astra.fl.charts.axes
+{	
+	/**
+	 * A visual representation of an IAxis instance.
+	 * 
+	 * Should be a subclass of UIComponent.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IAxisRenderer
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The total length of the axis renderer, in pixels.
+		 */
+		function get length():Number;
+		
+		/**
+		 * An Array of AxisData objects specifying the positions of the ticks.
+		 * 
+		 * @see AxisData
+		 */
+		function get ticks():Array;
+		
+		/**
+		 * @private
+		 */
+		function set ticks(value:Array):void;
+		
+		/**
+		 * An Array of AxisData objects specifying the positions of the minor ticks.
+		 * 
+		 * @see AxisData
+		 */
+		function get minorTicks():Array
+		
+		/**
+		 * @private
+		 */
+		function set minorTicks(value:Array):void;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/ICartesianAxisRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/ICartesianAxisRenderer.as
new file mode 100644
index 0000000..8eb15b9
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/ICartesianAxisRenderer.as
@@ -0,0 +1,87 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import flash.geom.Rectangle;
+	
+	/**
+	 * Interface for a cartesian chart's axis renderers.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.CartesianChart
+	 */
+	public interface ICartesianAxisRenderer extends IAxisRenderer
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * Determines if the axis is displayed vertically or horizontally.
+		 * 
+		 * @see com.yahoo.astra.fl.charts.axes.AxisOrientation
+		 */
+		function get orientation():String;
+		
+		/**
+		 * @private
+		 */
+		function set orientation(value:String):void;
+		
+		/**
+		 * The title text to display on the axis.
+		 */
+		function get title():String;
+		
+		/**
+		 * @private
+		 */
+		function set title(value:String):void;
+		
+		/**
+		 * Represents the area where content should be drawn within the axis.
+		 * This value is used to determine the containing chart's own
+		 * <code>contentBounds</code> property.
+		 */
+		function get contentBounds():Rectangle;
+		
+		/**
+		 * Indicates the number of pixels of an outer tick.
+		 */
+		function get outerTickOffset():Number
+		
+		/**
+		 * @private (setter)
+		 */
+		function set outerTickOffset(value:Number):void		
+
+		/**
+		 * Indicates whether the user explicitly set a major unit for the axis of this renderer.
+		 */
+		function get majorUnitSetByUser():Boolean;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set majorUnitSetByUser(value:Boolean):void;
+		
+		/**
+		 * Indicates alignment of axis
+		 */
+		function get position():String;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set position(value:String):void;
+		
+	//--------------------------------------
+	//  Methods
+	//--------------------------------------
+	
+		/**
+		 * Calculates the <code>contentBounds</code> value for the axis renderer.
+		 * Seperating this function from the draw method optimizes processing time,
+		 * and it allows the chart to synchronize its axes.
+		 */
+		function updateAxis():void;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/IClusteringAxis.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/IClusteringAxis.as
new file mode 100644
index 0000000..d418cbc
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/IClusteringAxis.as
@@ -0,0 +1,26 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	/**
+	 * An axis that supports clustering. When combined with a series that
+	 * supports clustering, the number of clusters will allow the series to
+	 * determine the optimal positioning of markers.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IClusteringAxis extends IAxis
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The number of clusters available on the axis. In the case of the
+		 * CategoryAxis, this is the number of category names displayed on the
+		 * axis.
+		 * 
+		 * @see CategoryAxis
+		 */
+		function get clusterCount():int;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/IGridLinesRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/IGridLinesRenderer.as
new file mode 100644
index 0000000..dfdc528
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/IGridLinesRenderer.as
@@ -0,0 +1,26 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	/**
+	 * A renderer for grid lines appearing on a chart's axis.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IGridLinesRenderer
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The axis renderer from which the grid lines receive their
+		 * major and minor unit data.
+		 */
+		function get axisRenderer():IAxisRenderer;
+		
+		/**
+		 * @private
+		 */
+		function set axisRenderer(value:IAxisRenderer):void;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/IOriginAxis.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/IOriginAxis.as
new file mode 100644
index 0000000..5bf6eab
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/IOriginAxis.as
@@ -0,0 +1,22 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	/**
+	 * An axis with an origin.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IOriginAxis extends IAxis
+	{
+		/**
+		 * Returns the value of the origin. This is not the position of the
+		 * origin. To get the origin's position, pass the origin value to
+		 * valueToLocal().
+		 * 
+		 * Note: This value may not be the true origin value. It may be a
+		 * minimum or maximum value if the actual origin is not visible.
+		 * 
+		 * @see IAxis#valueToLocal()
+		 */
+		function get origin():Object;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/IRadialAxisRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/IRadialAxisRenderer.as
new file mode 100644
index 0000000..9e158b0
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/IRadialAxisRenderer.as
@@ -0,0 +1,12 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	/**
+	 * Interface for a chart's axis renderers.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IRadialAxisRenderer extends IAxisRenderer
+	{
+		//nothing yet!
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/IStackingAxis.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/IStackingAxis.as
new file mode 100644
index 0000000..5ab9ec4
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/IStackingAxis.as
@@ -0,0 +1,45 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.fl.charts.series.IStackedSeries;
+	
+	/**
+	 * A type of axis that allows values to be stacked.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IStackingAxis extends IAxis
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * If true, the axis will allow the stacking of series that implement
+		 * the interface IStackedSeries.
+		 * 
+		 * <p>Must be explicitly enabled.
+		 * 
+		 * @see com.yahoo.astra.fl.charts.series.IStackedSeries
+		 */
+		function get stackingEnabled():Boolean;
+		
+		/**
+		 * @private
+		 */
+		function set stackingEnabled(value:Boolean):void;
+		
+	//--------------------------------------
+	//  Methods
+	//--------------------------------------
+	
+		/**
+		 * Calculates the sum of values if they were stacked on the axis.
+		 * The first value is important because some axis types, such as
+		 * NumericAxis, may differentiate between positive and negative values.
+		 * 
+		 * @see NumericAxis
+		 */
+		function stack(top:Object, ...rest:Array):Object;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/NumericAxis.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/NumericAxis.as
new file mode 100644
index 0000000..8c0571e
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/NumericAxis.as
@@ -0,0 +1,1042 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.fl.charts.events.*;
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.series.CartesianSeries;
+	import com.yahoo.astra.fl.charts.IChart;
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	import com.yahoo.astra.utils.NumberUtil;
+	import com.yahoo.astra.fl.charts.CartesianChart;	
+	import com.yahoo.astra.display.BitmapText;
+	
+	import flash.utils.Dictionary;
+	import fl.core.UIComponent;
+	
+	/**
+	 * An axis type representing a numeric range from minimum to maximum
+	 * with major and minor divisions.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class NumericAxis extends BaseAxis implements IAxis, IOriginAxis, IStackingAxis
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function NumericAxis()
+		{
+			super();
+			this.addEventListener(AxisEvent.AXIS_READY, axisReadyHandler);
+		}
+
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * The multiplier used to calculate the position on the renderer from an
+		 * axis value.
+		 */
+		protected var positionMultiplier:Number = 0;
+		
+		/**
+		 * @private
+		 * Storage for the minimum value.
+		 */
+		private var _minimum:Number = 0;
+		
+		/**
+		 * @private
+		 * Indicates whether the minimum bound is user-defined or generated by the axis.
+		 */
+		private var _minimumSetByUser:Boolean = false;
+		
+		/**
+		 * The minimum value displayed on the axis. By default, this value is generated
+		 * by the axis itself. If the user defines this value, the axis will skip this
+		 * automatic generation. To enable this behavior again, set this property to NaN.
+		 */
+		public function get minimum():Number
+		{
+			return this._minimum;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set minimum(value:Number):void
+		{
+			this._minimum = value;
+			this._minimumSetByUser = !isNaN(value);
+		}
+	
+		/**
+		 * @private
+		 * Storage for the maximum value.
+		 */
+		private var _maximum:Number = 100;
+		
+		/**
+		 * @private
+		 * Indicates whether the maximum bound is user-defined or generated by the axis.
+		 */
+		private var _maximumSetByUser:Boolean = false;
+		
+		/**
+		 * The maximum value displayed on the axis. By default, this value is generated
+		 * by the axis itself. If the user defines this value, the axis will skip this
+		 * automatic generation. To enable this behavior again, set this property to NaN.
+		 */
+		public function get maximum():Number
+		{
+			return this._maximum;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set maximum(value:Number):void
+		{
+			this._maximum = value;
+			this._maximumSetByUser = !isNaN(value);
+		}
+		
+	//-- Units
+	
+		/**
+		 * @private
+		 * Storage for the major unit.
+		 */
+		private var _majorUnit:Number = 10;
+		
+		/**
+		 * @private
+		 * Indicates whether the major unit is user-defined or generated by the axis.
+		 */
+		private var _majorUnitSetByUser:Boolean = false;
+		
+		/**
+		 * The major unit at which new ticks and labels are drawn. By default, this value
+		 * is generated by the axis itself. If the user defines this value, the axis will
+		 * skip the automatic generation. To enable this behavior again, set this property
+		 * to NaN.
+		 */
+		public function get majorUnit():Number
+		{
+			return this._majorUnit;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set majorUnit(value:Number):void
+		{
+			this._majorUnit = value;
+			this._majorUnitSetByUser = !isNaN(value);
+		}
+	
+		/**
+		 * @private
+		 * Storage for the minor unit.
+		 */
+		private var _minorUnit:Number = 0;
+		
+		/**
+		 * @private
+		 * Indicates whether the minor unit is user-defined or generated by the axis.
+		 */
+		private var _minorUnitSetByUser:Boolean = false;
+		
+		/**
+		 * The minor unit at which new ticks are drawn. By default, this value
+		 * is generated by the axis itself. If the user defines this value, the axis will
+		 * skip the automatic generation. To enable this behavior again, set this property
+		 * to NaN.
+		 */
+		public function get minorUnit():Number
+		{
+			return this._minorUnit;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set minorUnit(value:Number):void
+		{
+			this._minorUnit = value;
+			this._minorUnitSetByUser = !isNaN(value);
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get origin():Object
+		{
+			var origin:Number = 0;
+			if(this.scale == ScaleType.LOGARITHMIC)
+			{
+				origin = 1;
+			}
+			
+			origin = Math.max(origin, this.minimum);
+			origin = Math.min(origin, this.maximum);
+			return origin;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the stackingEnabled property.
+		 */
+		private var _stackingEnabled:Boolean = false;
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get stackingEnabled():Boolean
+		{
+			return this._stackingEnabled;
+		}
+
+		/**
+		 * @private
+		 */
+		public function set stackingEnabled(value:Boolean):void
+		{
+			this._stackingEnabled = value;
+		}
+	
+		/**
+		 * @private
+		 * Storage for the alwaysShowZero property.
+		 */
+		private var _alwaysShowZero:Boolean = true;
+		
+		/**
+		 * If true, the axis will attempt to keep zero visible at all times.
+		 * If both the minimum and maximum values displayed on the axis are
+		 * above zero, the minimum will be reset to zero. If both minimum and
+		 * maximum appear below zero, the maximum will be reset to zero. If
+		 * the minimum and maximum appear at positive and negative values
+		 * respectively, zero is already visible and the axis scale does not
+		 * change.
+		 * 
+		 * <p>This property has no affect if you manually set the minimum and
+		 * maximum values of the axis.</p>
+		 */
+		public function get alwaysShowZero():Boolean
+		{
+			return this._alwaysShowZero;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set alwaysShowZero(value:Boolean):void
+		{
+			this._alwaysShowZero = value;
+		}
+	
+		/**
+		 * @private
+		 * Storage for the snapToUnits property.
+		 */
+		private var _snapToUnits:Boolean = true;
+		
+		/**
+		 * If true, the labels, ticks, gridlines, and other objects will snap to
+		 * the nearest major or minor unit. If false, their position will be based
+		 * on the minimum value.
+		 */
+		public function get snapToUnits():Boolean
+		{
+			return this._snapToUnits;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set snapToUnits(value:Boolean):void
+		{
+			this._snapToUnits = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the scale property.
+		 */
+		private var _scale:String = ScaleType.LINEAR;
+		
+		/**
+		 * The type of scaling used to display items on the axis.
+		 * 
+		 * @see com.yahoo.astra.fl.charts.ScaleType
+		 */
+		public function get scale():String
+		{
+			return this._scale;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set scale(value:String):void
+		{
+			this._scale = value;
+		}
+		
+		/**
+		 * @private
+		 */
+		private var _dataMinimum:Number = NaN;
+		
+		/**
+		 * @private
+		 */
+		private var _dataMaximum:Number = NaN;
+		
+		/**
+		 * @private
+		 */
+		private var _numLabels:Number;
+		
+		/**
+		 * @private
+		 */		
+		private var _numLabelsSetByUser:Boolean = false;
+
+		/**
+		 * @inheritDoc
+		 */
+		public function get numLabels():Number
+		{
+			return _numLabels;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set numLabels(value:Number):void
+		{
+			if(_numLabelsSetByUser) return;
+			_numLabels = value;
+			_numLabelsSetByUser = true;
+			_majorUnitSetByUser = false;
+			_minorUnitSetByUser = false;
+		}		
+			
+		/**
+		 * @private 
+		 */
+		private var _roundMajorUnit:Boolean = true;
+		
+		/**
+		 * Indicates whether to round the major unit
+		 */
+		public function get roundMajorUnit():Boolean
+		{
+			return _roundMajorUnit;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set roundMajorUnit(value:Boolean):void
+		{
+			_roundMajorUnit = value;
+		}
+		
+		/**
+		 * @private
+		 * Holds value for idealPixels
+		 */
+		private var _idealPixels:Number = 70;
+		
+		/**
+		 * Desired distance between majorUnits. Used to calculate the major unit
+		 * when unspecified and <code>calculateByLabelSize</code> is set to false.
+		 */
+		public function get idealPixels():Number
+		{
+			return _idealPixels;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set idealPixels(value:Number):void
+		{
+			_idealPixels = value;
+		}
+		
+		/**
+		 * @private
+		 * Holds value for calculateByLabelSize
+		 */
+		private var _calculateByLabelSize:Boolean = false;
+		
+		/** 
+		 * Indicates whether to use the maximum size of an axis label 
+		 * when calculating the majorUnit.
+		 */
+		public function get calculateByLabelSize():Boolean
+		{
+			return _calculateByLabelSize;
+		}
+		
+		/** 
+		 * @private (setter)
+		 */
+		public function set calculateByLabelSize(value:Boolean):void
+		{
+			_calculateByLabelSize = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for adjustMaximumByMajorUnit
+		 */
+		private var _adjustMaximumByMajorUnit:Boolean = true;
+		
+		/**
+	 	 * Indicates whether to extend maximum beyond data's maximum to the 
+	 	 * nearest majorUnit.
+		 */
+		public function get adjustMaximumByMajorUnit():Boolean
+		{
+			return _adjustMaximumByMajorUnit;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set adjustMaximumByMajorUnit(value:Boolean):void
+		{
+			_adjustMaximumByMajorUnit = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for adjustMinimumByMajorUnit
+		 */
+		private var _adjustMinimumByMajorUnit:Boolean = true;
+		
+		/**
+	 	 * Indicates whether to extend minimum beyond data's minimum to the 
+	 	 * nearest majorUnit.
+		 */
+		public function get adjustMinimumByMajorUnit():Boolean
+		{
+			return _adjustMinimumByMajorUnit;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set adjustMinimumByMajorUnit(value:Boolean):void
+		{
+			_adjustMinimumByMajorUnit = value;
+		}
+
+		/**
+		 * @private
+		 * Contains minor unit data to be passed to the renderer.
+		 */
+		private var _minorTicks:Array;
+		
+		/**
+		 * @private
+		 * Contains major unit data to be passed to the renderer.
+		 */
+		private var _majorTicks:Array;
+
+		/**
+		 * @private
+		 */
+		override public function set chart(value:IChart):void
+		{
+			super.chart = value;
+			(this.chart as UIComponent).addEventListener(AxisEvent.AXIS_READY, axisReadyHandler);
+		}						
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		public function valueToLocal(data:Object):Number
+		{
+			if(data == null)
+			{
+				//bad data. a properly-designed renderer will not draw this.
+				return NaN;
+			}
+			
+			var position:Number = 0;
+			
+			if(this.scale == ScaleType.LINEAR)
+			{
+				position = (Number(data) - this.minimum) * this.positionMultiplier;
+			}
+			else
+			{
+				var logOfData:Number = Math.log(Number(data));
+				var logOfMinimum:Number = Math.log(this.minimum);
+				position = (logOfData - logOfMinimum) * this.positionMultiplier;
+			}
+			
+			if(this.reverse)
+			{
+				position = this.renderer.length - position;
+			}
+			
+			//the vertical axis has its origin on the bottom
+			if(this.renderer is ICartesianAxisRenderer && ICartesianAxisRenderer(this.renderer).orientation == AxisOrientation.VERTICAL)
+			{
+				position = this.renderer.length - position;
+			}
+			
+			return Math.round(position);
+		}
+	
+		/**
+		 * @inheritDoc
+		 */
+		public function stack(top:Object, ...rest:Array):Object
+		{
+			var numericValue:Number = Number(top);
+			var negative:Boolean = false;
+			if(numericValue < 0)
+			{
+				negative = true;
+			}
+			
+			var restCount:int = rest.length;
+			for(var i:int = 0; i < restCount; i++)
+			{
+				var currentValue:Number = Number(rest[i]);
+				if(negative && currentValue < 0)
+				{
+					numericValue += currentValue;
+				}
+				else if(!negative && currentValue > 0)
+				{
+					numericValue += currentValue;
+				}
+			}
+			return numericValue;
+		}
+
+		/**
+		 * @inheritDoc
+		 */
+		public function updateScale():void
+		{
+			this.resetScale();
+			this.calculatePositionMultiplier();	
+			(this.renderer as ICartesianAxisRenderer).majorUnitSetByUser = this._majorUnitSetByUser;
+			this.createAxisData(this.minorUnit, false);
+			this.createAxisData(this.majorUnit);
+		}
+
+		/**
+		 * @inheritDoc
+		 */
+		override public function getMaxLabel():String
+		{			
+			var difference:Number = Math.round(this.maximum - this.minimum);
+			var maxString:String = this.valueToLabel(this.roundUnit(this.maximum));
+			var minString:String = this.valueToLabel(this.roundUnit(this.minimum));
+			var halfString:String = this.valueToLabel(Math.round(difference/2));
+			if(maxString.length < minString.length) maxString = minString;
+			if(halfString.length > maxString.length) maxString = halfString;
+			this.maxLabel = maxString = maxString.length > this.maxLabel.length ? maxString : this.maxLabel;
+			
+			return maxString as String;	
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * If the minimum, maximum, major unit or minor unit have not been set by the user,
+		 * these values must be generated by the axis. May be overridden to use custom
+		 * scaling algorithms.
+		 */
+		protected function resetScale():void
+		{	
+			//use the discovered min and max from the data
+			//if the developer didn't specify anything
+			if(!this._minimumSetByUser)
+			{
+				this._minimum = this._dataMinimum;
+			}
+			if(!this._maximumSetByUser)
+			{
+				this._maximum = this._dataMaximum;
+			}
+			
+			
+			
+			this.checkMinLessThanMax();
+			
+			this.pinToOrigin();
+			
+			this.calculateMajorUnit();
+			if(this.order == "primary") 
+			{
+				this.adjustMinAndMaxFromMajorUnit();
+				this.labelData.maxLabels = (this._maximum - this._minimum)/this._majorUnit;
+			}
+			this.correctLogScaleMinimum();
+			
+			//ensure that min != max
+			if(!this._maximumSetByUser && this._minimum == this._maximum)
+			{
+				this._maximum = this._minimum + 1;
+				if(!this._majorUnitSetByUser)
+				{
+					//rarely happens, so I'll hardcode a nice major unit
+					//for our difference of one
+					this._majorUnit = 0.5;
+				}
+			}
+			
+			this.calculateMinorUnit();
+			
+			//even if they are manually set by the user, check all values for possible floating point errors.
+			//we don't want extra labels or anything like that!
+			this._minimum = NumberUtil.roundToPrecision(this._minimum, 10);
+			this._maximum = NumberUtil.roundToPrecision(this._maximum, 10);
+			this._majorUnit = NumberUtil.roundToPrecision(this._majorUnit, 10);
+			this._minorUnit = NumberUtil.roundToPrecision(this._minorUnit, 10);
+		}
+
+		/**
+		 * @private
+		 * Determines the best major unit.
+		 */
+		protected function calculateMajorUnit():void
+		{
+			if(this._majorUnitSetByUser)
+			{
+				return;
+			}
+			
+			var difference:Number = this.maximum - this.minimum;
+			var tempMajorUnit:Number = 0; 	
+			if(this.order == "secondary")
+			{
+				this._majorUnit = difference/this.labelData.maxLabels;
+				return;
+			}			
+			
+			
+			var chart:CartesianChart = this.chart as CartesianChart;
+			var labelSpacing:Number = 0;
+			var approxLabelDistance:Number = this.idealPixels;
+			var overflow:Number = 0;
+			if(this.calculateByLabelSize)
+			{
+				var rotation:Number = (this.renderer as UIComponent).getStyle("labelRotation") as Number;
+				labelSpacing = UIComponent(this.renderer).getStyle("labelSpacing") as Number;
+				//Check to see if this axis is horizontal. Since the width of labels will be variable, we will need to apply a different alogrithm to determine the majorUnit.
+				if(chart.horizontalAxis == this)
+				{
+					//extract the approximate width of the labels by getting the textWidth of the maximum date when rendered by the label function with the textFormat of the renderer.
+					approxLabelDistance = this.labelData.maxLabelWidth;
+
+					if(rotation == 0 || Math.abs(rotation) == 90)
+					{
+						if(!isNaN(this.labelData.rightLabelOffset)) overflow += this.labelData.rightLabelOffset as Number;
+						if(!isNaN(this.labelData.leftLabelOffset)) overflow += this.labelData.leftLabelOffset as Number;
+					}
+					else
+					{
+						if(rotation > 0) overflow += this.labelData.rightLabelOffset as Number;
+						if(rotation < 0) overflow += this.labelData.leftLabelOffset as Number;
+					}
+				}
+				else
+				{
+					approxLabelDistance = this.labelData.maxLabelHeight;
+					
+					if(rotation == 0 || Math.abs(rotation) == 90)
+					{
+						if(!isNaN(this.labelData.topLabelOffset)) overflow = this.labelData.topLabelOffset as Number;
+					}
+					else
+					{
+						if(rotation < 0) overflow += this.labelData.bottomLabelOffset as Number;
+						if(rotation > 0) overflow += this.labelData.topLabelOffset as Number;
+					}
+				}
+			}
+			
+			var maxLabels:Number = (this.renderer.length + overflow)/(approxLabelDistance+labelSpacing);
+								
+			if(this.calculateByLabelSize) 
+			{
+				maxLabels = Math.floor(maxLabels);
+				//Adjust the max labels to account for potential maximum and minimum adjustments that may occur.
+				if(!this._maximumSetByUser && !this._minimumSetByUser && !(this.alwaysShowZero && this._minimum == 0)) 
+				{
+					maxLabels -= 1;
+				}
+			}
+
+			var ratio:Number = overflow/this.renderer.length;
+			var overflowOffset:Number = Math.round((overflow * difference)/this.renderer.length);
+			if(isNaN(overflowOffset)) overflowOffset = 0;
+		
+			tempMajorUnit = (difference + overflowOffset)/maxLabels;	
+
+			if(this.roundMajorUnit)
+			{
+				tempMajorUnit = this.roundUnit(tempMajorUnit);
+				this.labelData.maxLabels = (difference/tempMajorUnit);
+			}
+
+			this._majorUnit = tempMajorUnit;										
+		}
+
+		/**
+		 * @private
+		 * Determines the best minor unit.
+		 */
+		protected function calculateMinorUnit():void
+		{
+			if(this._minorUnitSetByUser)
+			{
+				return;
+			}
+			
+			var range:Number = this.maximum - this.minimum;
+			var majorUnitSpacing:Number = this.renderer.length * (this.majorUnit / range);
+
+			if(this._majorUnit != 1)
+			{
+				this._minorUnit = this._majorUnit / 2;
+			}
+		}
+
+		/**
+		 * @private
+		 * Creates the AxisData objects for the axis renderer.
+		 */
+		protected function createAxisData(unit:Number, isMajorUnit:Boolean = true):void
+		{
+			if(unit <= 0)
+			{
+				if(isMajorUnit)
+				{
+					_majorTicks = [];
+				}
+				else
+				{
+					_minorTicks = [];
+				}
+				return;
+			}
+			var data:Array = [];
+			var displayedMaximum:Boolean = false;
+			var value:Number = this.minimum;
+			var maxLabel:String = "";
+			while(value < this.maximum || NumberUtil.fuzzyEquals(value, this.maximum))
+			{
+				if(value % 1 != 0) value = NumberUtil.roundToPrecision(value, 10);
+				
+				//because Flash UIComponents round the position to the nearest pixel, we need to do the same.
+				var position:Number = Math.round(this.valueToLocal(value));
+				var label:String = "";
+				if(isMajorUnit)
+				{
+					label = this.valueToLabel(value);
+					if(label.length > maxLabel.length) maxLabel = label;
+				}
+				
+				var axisData:AxisData = new AxisData(position, value, label);
+				data.push(axisData);
+				
+				//if the maximum has been displayed, we're done!
+				if(displayedMaximum) break;
+				
+				//a bad unit will get us stuck in an infinite loop
+				if(unit <= 0)
+				{
+					value = this.maximum;
+				}
+				else
+				{
+					value += unit;
+					if(this.snapToUnits && !this._minimumSetByUser && this.alwaysShowZero)
+					{
+						value = NumberUtil.roundDownToNearest(value, unit);
+					}
+					if(this._majorUnitSetByUser) value = Math.min(value, this.maximum);
+				}
+				displayedMaximum = NumberUtil.fuzzyEquals(value, this.maximum);
+			}
+			if(this.reverse) data = data.reverse();
+			if(isMajorUnit)
+			{
+				_majorTicks = data;
+				if(maxLabel.length > this.maxLabel.length)
+				{
+					this.maxLabel = maxLabel;
+					this.dispatchEvent(new AxisEvent(AxisEvent.AXIS_FAILED));
+				}
+				else
+				{
+					this.dispatchEvent(new AxisEvent(AxisEvent.AXIS_READY));
+				}
+			}
+			else
+			{
+				_minorTicks = data;
+			}
+		}
+		
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * If we want to always show zero, corrects the min or max as needed.
+		 */
+		private function pinToOrigin():void
+		{
+			//if we're pinned to zero, and min or max is supposed to be generated,
+			//make sure zero is somewhere in the range
+			if(this.alwaysShowZero)
+			{
+				if(!this._minimumSetByUser && this._minimum > 0 && this._maximum > 0)
+				{
+					this._minimum = 0;
+				}
+				else if(!this._maximumSetByUser && this._minimum < 0 && this._maximum < 0)
+				{
+					this._maximum = 0;
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Increases the maximum and decreases the minimum based on the major unit.
+		 */
+		private function adjustMinAndMaxFromMajorUnit():void
+		{
+			if(isNaN(this._majorUnit)) return;
+			//adjust the maximum so that it appears on a major unit
+			//but don't change the maximum if the user set it or it is pinned to zero
+			if(!this._maximumSetByUser && !(this.alwaysShowZero && this._maximum == 0) && this.adjustMaximumByMajorUnit)
+			{
+				var oldMaximum:Number = this._maximum;
+				if(this._minimumSetByUser)
+				{	
+					//if the user sets the minimum, we need to ensure that the maximum is an increment of the major unit starting from 
+					//the minimum instead of zero
+					this._maximum = NumberUtil.roundUpToNearest(this._maximum - this._minimum, this._majorUnit);
+					this._maximum += this._minimum;
+				}
+				else
+				{
+					this._maximum = NumberUtil.roundUpToNearest(this._maximum, this._majorUnit);
+				}
+				
+				//uncomment to include an additional major unit in this adjustment
+				if(this._maximum == oldMaximum /*|| this._maximum - oldMaximum < this._majorUnit */)
+				{
+					this._maximum += this._majorUnit;
+				}
+			}
+			
+			//adjust the minimum so that it appears on a major unit
+			//but don't change the minimum if the user set it or it is pinned to zero
+			if(!this._minimumSetByUser && !(this.alwaysShowZero && this._minimum == 0) && this.adjustMinimumByMajorUnit)
+			{
+				var oldMinimum:Number = this._minimum;
+				this._minimum = NumberUtil.roundDownToNearest(this._minimum, this._majorUnit);
+				
+				//uncomment to include an additional major unit in this adjustment
+				if(this._minimum == oldMinimum /*|| oldMinimum - this._minimum < this._majorUnit*/)
+				{
+					this._minimum -= this._majorUnit;
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * If we're using logarithmic scale, corrects the minimum if it gets set
+		 * to a value <= 0.
+		 */
+		private function correctLogScaleMinimum():void
+		{
+			//logarithmic scale can't have a minimum value <= 0. If that's the case, push it up to 1.0
+			//TODO: Determine if there's a better way to handle this...
+			if(!this._minimumSetByUser && this.scale == ScaleType.LOGARITHMIC && this._minimum <= 0)
+			{
+				//use the dataMinimum if it's between 0 and 1
+				//otherwise, just use 1
+				if(this._dataMinimum > 0 && this._dataMinimum < 1)
+				{
+					this._minimum = this._dataMinimum;
+				}
+				else
+				{
+					this._minimum = 1;
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Swaps the minimum and maximum values, if needed.
+		 */
+		private function checkMinLessThanMax():void
+		{
+			if(this._minimum > this._maximum)
+			{
+				var temp:Number = this._minimum;
+				this._minimum = this._maximum;
+				this._maximum = temp;
+				
+				//be sure to swap these flags too!
+				var temp2:Boolean = this._minimumSetByUser;
+				this._minimumSetByUser = this._maximumSetByUser;
+				this._maximumSetByUser = temp2;
+			}
+		}
+	
+		/**
+		 * @private
+		 * Calculates the multiplier used to convert a data point to an actual position
+		 * on the axis.
+		 */
+		private function calculatePositionMultiplier():void
+		{
+			var range:Number = this.maximum - this.minimum;
+			if(this.scale == ScaleType.LOGARITHMIC)
+			{
+				range = Math.log(this.maximum) - Math.log(this.minimum);
+			}
+			
+			if(range == 0)
+			{
+				this.positionMultiplier = 0;
+				return;
+			}			
+			this.positionMultiplier = this.renderer.length / range;
+		}
+		/**
+		 * @private
+		 */
+		override protected function parseDataProvider():void
+		{
+			var seriesCount:int = this.dataProvider.length;
+			var dataMinimum:Number = NaN;
+			var dataMaximum:Number = NaN;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:ISeries = this.dataProvider[i] as ISeries;
+				if((series as CartesianSeries).axis != this.order) continue;
+				var seriesLength:int = series.length;
+				for(var j:int = 0; j < seriesLength; j++)
+				{
+					var item:Object = series.dataProvider[j];
+					if(item === null)
+					{
+						continue;
+					}
+					
+					//automatically calculates stacked values
+					var objValue:Object = this.chart.itemToAxisValue(series, j, this);
+					var value:Number;
+					if(objValue != null) value = Number(this.chart.itemToAxisValue(series, j, this));
+					if(isNaN(value))
+					{
+						continue; //skip bad data
+					}
+					
+					//don't let bad data propogate
+					//Math.min()/Math.max() with a NaN argument will choose NaN. Ya Rly.
+					dataMinimum = isNaN(dataMinimum) ? value : Math.min(dataMinimum, value);
+					dataMaximum = isNaN(dataMaximum) ? value : Math.max(dataMaximum, value);
+				}
+			}
+			
+			if(!isNaN(dataMinimum) && !isNaN(dataMaximum))
+			{
+				this._dataMinimum = dataMinimum;
+				this._dataMaximum = dataMaximum;
+			}
+			else
+			{
+				//some sensible defaults
+				this._dataMinimum = 0;
+				this._dataMaximum = 1;
+			}
+		
+			if(!this._minimumSetByUser)
+			{
+				this._minimum = this._dataMinimum;
+			}
+			if(!this._maximumSetByUser)
+			{
+				this._maximum = this._dataMaximum;
+			}	
+					
+			super.parseDataProvider();											
+		}
+		
+		/**
+		 * @private
+		 * Rounds a number to a nice size
+		 */
+		private function roundUnit(unit:Number):Number
+		{
+			if(unit == 0) return 0;
+			if(unit < 0)
+			{
+				return this.roundUnit(Math.abs(unit)) * -1;
+			}
+			
+			var order:Number = Math.ceil(Math.log(unit) * Math.LOG10E);
+			var roundedMajorUnit:Number = Math.pow(10, order);
+	
+			if (roundedMajorUnit / 2 >= unit) 
+			{
+				var roundedDiff:Number = Math.floor((roundedMajorUnit / 2 - unit)/(Math.pow(10,order-(unit<1?-1:1))/2));
+			 	unit = roundedMajorUnit/2 - roundedDiff * Math.pow(10, order - 1)/2;
+			}
+			else 
+			{
+				unit = roundedMajorUnit;
+			}			
+			return unit;
+		}
+		
+		/**
+		 * @private
+		 * Listener for axisReady event. Sets the ticks and minorTicks for the renderer.
+		 */
+		private function axisReadyHandler(event:AxisEvent):void
+		{
+			this.renderer.ticks = _majorTicks;
+			this.renderer.minorTicks = _minorTicks;
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/RadialAxisRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/RadialAxisRenderer.as
new file mode 100644
index 0000000..a6fa666
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/RadialAxisRenderer.as
@@ -0,0 +1,269 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.utils.GeomUtil;
+	import com.yahoo.astra.utils.NumberUtil;
+	
+	import fl.core.UIComponent;
+	
+	import flash.geom.Point;
+
+	//TODO: Add support for labels.
+	/**
+	 * The default axis renderer for radial axes.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class RadialAxisRenderer extends UIComponent implements IRadialAxisRenderer
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{
+			//axis
+			showAxis: true,
+			axisWeight: 1,
+			axisColor: 0x888a85,
+			
+			//ticks
+			showTicks: true,
+			tickWeight: 1,
+			tickColor: 0x888a85,
+			tickLength: 4,
+			tickPosition: TickPosition.INSIDE,
+			
+			//minor ticks
+			showMinorTicks: true,
+			minorTickWeight: 1,
+			minorTickColor: 0x888a85,
+			minorTickLength: 3,
+			minorTickPosition: TickPosition.INSIDE
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, UIComponent.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function RadialAxisRenderer()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get length():Number
+		{
+			return Math.min(this.width, this.height) * Math.PI;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the ticks property.
+		 */
+		private var _ticks:Array = [];
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get ticks():Array
+		{
+			return this._ticks;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set ticks(value:Array):void
+		{
+			this._ticks = value;
+			this.invalidate();
+		}
+		
+		/**
+		 * @private
+		 * Storage for the minorTicks property.
+		 */
+		private var _minorTicks:Array = [];
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get minorTicks():Array
+		{
+			return this._minorTicks;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set minorTicks(value:Array):void
+		{
+			this._minorTicks = value;
+			this.invalidate();
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function updateBounds():void
+		{
+			//no labels are created at this time, so this function is pretty useless
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			var showTicks:Boolean = this.getStyleValue("showTicks") as Boolean;
+			var showMinorTicks:Boolean = this.getStyleValue("showMinorTicks") as Boolean;
+			var ticks:Array = this.ticks.concat();
+			var minorTicks:Array = this.minorTicks.concat();
+			if(showMinorTicks && showTicks)
+			{
+				//filter out minor ticks that appear at the same position
+				//as major ticks.
+				minorTicks = minorTicks.filter(function(item:AxisData, index:int, source:Array):Boolean
+				{
+					return !ticks.some(function(item2:AxisData, index2:int, source2:Array):Boolean
+					{
+						//using fuzzyEquals because we may encounter rounding errors
+						return NumberUtil.fuzzyEquals(item.position, item2.position, 10);
+					});
+				});
+			}
+			
+			this.graphics.clear();
+			
+			this.drawAxis();
+			
+			var tickPosition:String = this.getStyleValue("tickPosition") as String;
+			var tickLength:Number = this.getStyleValue("tickLength") as Number;
+			var tickWeight:int = this.getStyleValue("tickWeight") as int;
+			var tickColor:uint = this.getStyleValue("tickColor") as uint;
+			this.drawTicks(ticks, showTicks, tickPosition, tickLength, tickWeight, tickColor);
+			
+			var minorTickPosition:String = this.getStyleValue("minorTickPosition") as String;
+			var minorTickLength:Number = this.getStyleValue("minorTickLength") as Number;
+			var minorTickWeight:int = this.getStyleValue("minorTickWeight") as int;
+			var minorTickColor:uint = this.getStyleValue("minorTickColor") as uint;
+			this.drawTicks(minorTicks, showMinorTicks, minorTickPosition, minorTickLength, minorTickWeight, minorTickColor);
+			
+			super.draw();
+		}
+		
+		/**
+		 * @private
+		 * Draws the main axis line.
+		 */
+		protected function drawAxis():void
+		{
+			var showAxis:Boolean = this.getStyleValue("showAxis") as Boolean;
+			if(!showAxis)
+			{
+				return;
+			}
+			
+			var axisWeight:int = this.getStyleValue("axisWeight") as int;
+			var axisColor:uint = this.getStyleValue("axisColor") as uint;
+			this.graphics.lineStyle(axisWeight, axisColor);
+			
+			var center:Point = new Point(this.width / 2, this.height / 2);
+			var radius:Number = Math.min(center.x, center.y);
+			this.graphics.drawCircle(center.x, center.y, radius);
+		}
+		
+		/**
+		 * @private
+		 * Draws a set of ticks along the main axis line. This function is shared
+		 * by major and minor ticks.
+		 */
+		protected function drawTicks(data:Array, showTicks:Boolean, tickPosition:String,
+			tickLength:Number, tickWeight:Number, tickColor:uint):void
+		{
+			if(!showTicks)
+			{
+				return;
+			}
+			
+			this.graphics.lineStyle(tickWeight, tickColor);
+			
+			var center:Point = new Point(this.width / 2, this.height / 2);
+			var radius:Number = Math.min(center.x, center.y);
+			
+			var dataCount:int = data.length;
+			for(var i:int = 0; i < dataCount; i++)
+			{
+				var axisData:AxisData = AxisData(data[i]);
+				if(isNaN(axisData.position))
+				{
+					//skip bad positions
+					continue;
+				}
+				
+				var position:Number = axisData.position;
+				var angle:Number = GeomUtil.degreesToRadians(position * 360 / this.length);
+				var tickCenter:Point = Point.polar(radius, angle);
+				tickCenter = tickCenter.add(center);
+				switch(tickPosition)
+				{
+					case TickPosition.OUTSIDE:
+						var outsideEnd:Point = Point.polar(tickLength, angle);
+						outsideEnd = outsideEnd.add(tickCenter);
+						this.graphics.moveTo(tickCenter.x, tickCenter.y);
+						this.graphics.lineTo(outsideEnd.x, outsideEnd.y);
+						break;
+					case TickPosition.INSIDE:
+						var insideEnd:Point = Point.polar(tickLength, GeomUtil.degreesToRadians(180 + GeomUtil.radiansToDegrees(angle)));
+						insideEnd = insideEnd.add(tickCenter);
+						this.graphics.moveTo(tickCenter.x, tickCenter.y);
+						this.graphics.lineTo(insideEnd.x, insideEnd.y);
+						break;
+					default: //CROSS
+						outsideEnd = Point.polar(tickLength / 2, angle);
+						outsideEnd = outsideEnd.add(tickCenter);
+						insideEnd = Point.polar(tickLength / 2, GeomUtil.degreesToRadians(180 + GeomUtil.radiansToDegrees(angle)));
+						insideEnd = insideEnd.add(tickCenter);
+						this.graphics.moveTo(outsideEnd.x, outsideEnd.y);
+						this.graphics.lineTo(insideEnd.x, insideEnd.y);
+						break;
+				}
+			}
+			
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/ScaleType.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/ScaleType.as
new file mode 100644
index 0000000..a158a56
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/ScaleType.as
@@ -0,0 +1,27 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	/**
+	 * Scale types available to <code>IAxis</code> objects.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class ScaleType
+	{
+		
+	//--------------------------------------
+	//  Constants
+	//--------------------------------------
+	
+		/**
+		 * The ScaleType.LINEAR constant specifies that chart axis objects
+		 * should be displayed on a linear scale.
+		 */
+		public static const LINEAR:String = "linear";
+		
+		/**
+		 * The ScaleType.LOGARITHMIC constant specifies that chart axis objects
+		 * should be displayed on a logarithmic scale.
+		 */
+		public static const LOGARITHMIC:String = "logarithmic";
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/TickPosition.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/TickPosition.as
new file mode 100644
index 0000000..ab1d7a5
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/TickPosition.as
@@ -0,0 +1,33 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	/**
+	 * Position values available to axis ticks.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class TickPosition
+	{
+		
+	//--------------------------------------
+	//  Constants
+	//--------------------------------------
+	
+		/**
+		 * The TickPosition.OUTSIDE constant specifies that chart axis ticks
+		 * should be displayed on the outside of the axis.
+		 */
+		public static const OUTSIDE:String = "outside";
+		
+		/**
+		 * The TickPosition.INSIDE constant specifies display of chart axis
+		 * ticks should be displayed on the inside of the axis.
+		 */
+		public static const INSIDE:String = "inside";
+		
+		/**
+		 * The TickPosition.CROSS constant specifies display of chart axis ticks
+		 * should be displayed crossing the axis.
+		 */
+		public static const CROSS:String = "cross";
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/TimeAxis.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/TimeAxis.as
new file mode 100644
index 0000000..9c69f3b
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/TimeAxis.as
@@ -0,0 +1,1101 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.series.CartesianSeries;
+	import com.yahoo.astra.fl.charts.CartesianChart;
+	import com.yahoo.astra.fl.charts.events.AxisEvent;
+	import com.yahoo.astra.fl.charts.IChart;
+	import com.yahoo.astra.utils.DateUtil;
+	import com.yahoo.astra.utils.TimeUnit;
+	import fl.core.UIComponent;
+	import flash.text.TextFormat;
+	import flash.events.ErrorEvent;
+
+	/**
+	 * An axis type representing a date and time range from minimum to maximum
+	 * with major and minor divisions.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class TimeAxis extends BaseAxis implements IAxis, IStackingAxis
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		
+		/**
+		 * @private
+		 */
+		private static const TIME_UNITS:Array = [TimeUnit.MILLISECONDS, TimeUnit.SECONDS, TimeUnit.MINUTES, TimeUnit.HOURS, TimeUnit.DAY, TimeUnit.MONTH, TimeUnit.YEAR];
+			
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function TimeAxis()
+		{
+			super();
+			this.addEventListener(AxisEvent.AXIS_READY, axisReadyHandler);
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		protected var positionMultiplier:Number = 0;
+	
+		/**
+		 * @private
+		 * Storage for the minimum value.
+		 */
+		private var _minimum:Date;
+		
+		/**
+		 * @private
+		 * Indicates whether the minimum bound is user-defined or generated by the axis.
+		 */
+		private var _minimumSetByUser:Boolean = false;
+		
+		/**
+		 * The minimum value displayed on the axis.
+		 */
+		public function get minimum():Date
+		{
+			return this._minimum;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set minimum(value:Date):void
+		{
+			this._minimum = value;
+			this._minimumSetByUser = value != null;
+		}
+	
+		/**
+		 * @private
+		 * Storage for the maximum value.
+		 */
+		private var _maximum:Date;
+		
+		/**
+		 * @private
+		 * Indicates whether the maximum bound is user-defined or generated by the axis.
+		 */
+		private var _maximumSetByUser:Boolean = false;
+		
+		/**
+		 * The maximum value displayed on the axis.
+		 */
+		public function get maximum():Date
+		{
+			return this._maximum;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set maximum(value:Date):void
+		{
+			this._maximum = value;
+			this._maximumSetByUser = value != null;
+		}
+	
+	//-- Units
+	
+		/**
+		 * @private
+		 * Storage for the major unit.
+		 */
+		private var _majorUnit:int = 1;
+		
+		/**
+		 * @private
+		 * Indicates whether the major unit is user-defined or generated by the axis.
+		 */
+		private var _majorUnitSetByUser:Boolean = false;
+		
+		/**
+		 * The major unit at which new lines are drawn.
+		 */
+		public function get majorUnit():Number
+		{
+			return this._majorUnit;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set majorUnit(value:Number):void
+		{
+			this._majorUnit = value;
+			this._majorUnitSetByUser = !isNaN(value);
+		}
+	
+		/**
+		 * @private
+		 * Storage for the majorTimeUnit property.
+		 */
+		private var _majorTimeUnit:String = TimeUnit.MONTH;
+		
+		/**
+		 * @private
+		 * Indicates whether the major time unit is user-defined or generated by the axis.
+		 */
+		private var _majorTimeUnitSetByUser:Boolean = false;
+		
+		/**
+		 * Combined with majorUnit, determines the amount of time between major ticks and labels.
+		 * 
+		 * @see com.yahoo.astra.fl.charts.TimeUnit;
+		 */
+		public function get majorTimeUnit():String
+		{
+			return this._majorTimeUnit;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set majorTimeUnit(value:String):void
+		{
+			this._majorTimeUnit = value;
+			this._majorTimeUnitSetByUser = value != null;
+		}
+	
+		/**
+		 * @private
+		 * Storage for the minor unit.
+		 */
+		private var _minorUnit:int = 1;
+		
+		/**
+		 * @private
+		 * Indicates whether the minor unit is user-defined or generated by the axis.
+		 */
+		private var _minorUnitSetByUser:Boolean = false;
+		
+		/**
+		 * The minor unit at which new lines are drawn.
+		 */
+		public function get minorUnit():Number
+		{
+			return this._minorUnit;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set minorUnit(value:Number):void
+		{
+			this._minorUnit = value;
+			this._minorUnitSetByUser = !isNaN(value);
+		}
+	
+		/**
+		 * @private
+		 * Storage for the minorTimeUnit property.
+		 */
+		private var _minorTimeUnit:String = TimeUnit.MONTH;
+		
+		/**
+		 * @private
+		 * Indicates whether the minor time unit is user-defined or generated by the axis.
+		 */
+		private var _minorTimeUnitSetByUser:Boolean = false;
+		
+		/**
+		 * Combined with minorUnit, determines the amount of time between minor ticks.
+		 * 
+		 * @see com.yahoo.astra.fl.charts.TimeUnit;
+		 */
+		public function get minorTimeUnit():String
+		{
+			return this._minorTimeUnit;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set minorTimeUnit(value:String):void
+		{
+			this._minorTimeUnit = value;
+			this._minorTimeUnitSetByUser = value != null;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the stackingEnabled property.
+		 */
+		private var _stackingEnabled:Boolean = false;
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get stackingEnabled():Boolean
+		{
+			return this._stackingEnabled;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set stackingEnabled(value:Boolean):void
+		{
+			this._stackingEnabled = value;
+		}
+	
+		/**
+		 * @private
+		 * Storage for the snapToUnits property.
+		 */
+		private var _snapToUnits:Boolean = true;
+		
+		/**
+		 * If true, the labels, ticks, gridlines, and other objects will snap to
+		 * the nearest major or minor unit. If false, their position will be based
+		 * on the minimum value.
+		 */
+		public function get snapToUnits():Boolean
+		{
+			return this._snapToUnits;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set snapToUnits(value:Boolean):void
+		{
+			this._snapToUnits = value;
+		}
+		
+		/**
+		 * @private
+		 */
+		private var _dataMinimum:Date;
+		
+		/**
+		 * @private
+		 */
+		private var _dataMaximum:Date;
+		
+		/**
+		 * @private
+		 */
+		private var _numLabels:Number;
+		
+		/**
+		 * @private
+		 */		
+		private var _numLabelsSetByUser:Boolean = false;
+
+		/**
+		 * @private
+		 */
+		public function get numLabels():Number
+		{
+			return _numLabels;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set numLabels(value:Number):void
+		{
+			if(_numLabelsSetByUser) return;
+			_numLabels = value;
+			_numLabelsSetByUser = true;
+			_majorUnitSetByUser = false;
+			_minorUnitSetByUser = false;			
+		}
+		 
+		/**
+		 * @private
+		 * Holds value for idealPixels
+		 */
+		private var _idealPixels:Number = 60;
+		
+		/**
+		 * Desired distance between majorUnits. Used to calculate the major unit
+		 * when unspecified and <code>calculateByLabelSize</code> is set to false.
+		 */
+		public function get idealPixels():Number
+		{
+			return _idealPixels;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set idealPixels(value:Number):void
+		{
+			_idealPixels = value;
+		}
+		
+		/**
+		 * @private
+		 * Holds value for calculateByLabelSize
+		 */
+		private var _calculateByLabelSize:Boolean = false;
+		
+		/** 
+		 * Indicates whether to use the maximum size of an axis label 
+		 * when calculating the majorUnit.
+		 */
+		public function get calculateByLabelSize():Boolean
+		{
+			return _calculateByLabelSize;
+		}
+		
+		/** 
+		 * @private (setter)
+		 */
+		public function set calculateByLabelSize(value:Boolean):void
+		{
+			_calculateByLabelSize = value;
+		}
+		
+		/**
+		 * @private
+		 * Contains minor unit data to be passed to the renderer.
+		 */
+		private var _minorTicks:Array;
+		
+		/**
+		 * @private
+		 * Contains major unit data to be passed to the renderer.
+		 */
+		private var _majorTicks:Array;
+		
+		/**
+		 * @private (setter)
+		 */
+		override public function set chart(value:IChart):void
+		{
+			super.chart = value;
+			(this.chart as UIComponent).addEventListener(AxisEvent.AXIS_READY, axisReadyHandler);
+		}		
+				
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		public function stack(top:Object, ...rest:Array):Object
+		{
+			var value:Number = this.valueToNumber(top);
+			var restCount:int = rest.length;
+			for(var i:int = 0; i < restCount; i++)
+			{
+				value += this.valueToNumber(rest[i]);
+			}
+			return value;
+		}		
+
+		/**
+		 * @inheritDoc
+		 */
+		public function updateScale():void
+		{						
+			this.resetScale();
+			this.calculatePositionMultiplier();
+			
+			(this.renderer as ICartesianAxisRenderer).majorUnitSetByUser = this._majorUnitSetByUser;
+
+			this.createAxisData(this.minorUnit, this.minorTimeUnit, false);
+			this.createAxisData(this.majorUnit, this.majorTimeUnit);
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function valueToLocal(value:Object):Number
+		{
+			var numericValue:Number = this.valueToNumber(value);
+			
+			var position:Number = (numericValue - this.minimum.valueOf()) * this.positionMultiplier;
+			if(this.reverse)
+			{
+				position = this.renderer.length - position;
+			}
+			
+			//the vertical axis has its origin on the bottom
+			if(this.renderer is ICartesianAxisRenderer && ICartesianAxisRenderer(this.renderer).orientation == AxisOrientation.VERTICAL)
+			{
+				position = this.renderer.length - position;
+			}			
+				
+			return position;
+		}
+	
+		/**
+		 * @inheritDoc
+		 */
+		override public function valueToLabel(value:Object):String
+		{
+			var text:String = value.toString();
+			if(this.labelFunction != null)
+			{
+				var numericValue:Number = this.valueToNumber(value);
+				try
+				{
+					text = this.labelFunction(new Date(numericValue), this.majorTimeUnit);
+				}
+				catch(e:Error)
+				{
+					//dispatch error event from the chart
+					var message:String = "There is an error in your ";
+					message += (ICartesianAxisRenderer(this.renderer).orientation == AxisOrientation.VERTICAL)?"y":"x";
+					message += "-axis labelFunction.";
+					this.chart.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, message));
+				}
+			}			
+			if(text == null)
+			{
+				text = "";
+			}
+			return text;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Converts one of the accepted values to a Number that can be
+		 * used for position calculation.
+		 */
+		protected function valueToNumber(value:Object):Number
+		{
+			var convertedValue:Number = 0;
+			if(value is Date)
+			{
+				convertedValue = (value as Date).valueOf();
+			}
+			else if(!(value is Number))
+			{
+				convertedValue = new Date(value.toString()).valueOf();
+			}
+			else
+			{
+				convertedValue = value as Number;
+			}
+			return convertedValue;
+		}
+		
+		/**
+		 * @private
+		 * Calculates the best scale.
+		 */
+		protected function resetScale():void
+		{
+			if(!this._minimumSetByUser)
+			{
+				this._minimum = new Date(this._dataMinimum.valueOf());
+			}
+				
+			if(!this._maximumSetByUser)
+			{
+				this._maximum = new Date(this._dataMaximum.valueOf());
+			}
+			
+			this.checkMinLessThanMax();
+			this.calculateMajorUnit();
+			this.calculateMinorUnit();
+		}
+
+		/**
+		 * @private
+		 * Generates AxisData objects for use by the axis renderer.
+		 */
+		protected function createAxisData(unit:Number, timeUnit:String, isMajorUnit:Boolean = true):void
+		{
+			if(unit <= 0)
+			{
+				if(isMajorUnit)
+				{
+					_majorTicks = [];
+				}
+				else
+				{
+					_minorTicks = [];
+				}
+				return;
+			}
+			
+			var data:Array = [];
+			var displayedMaximum:Boolean = false;
+			var displayedMinimum:Boolean = false;
+			var date:Date = new Date(this.minimum.valueOf());
+			var itemCount:int = 0;
+			var maxLabel:String = "";
+			while(date.valueOf() <= this.maximum.valueOf())
+			{
+				date = new Date(this.minimum.valueOf());
+				if(itemCount > 0)
+				{
+					var unitValue:Number = itemCount * unit;
+					date = this.updateDate(date, timeUnit, unitValue, this.snapToUnits);
+				}
+				
+				//stop at the maximum value.
+				if(date.valueOf() > this.maximum.valueOf())
+				{
+					if(!this._majorUnitSetByUser && this.calculateByLabelSize) break;
+					date = new Date(this.maximum.valueOf());
+				}
+				//because Flash UIComponents round the position to the nearest pixel, we need to do the same.
+				var position:Number = Math.round(this.valueToLocal(date));
+				var label:String = "";
+				if(isMajorUnit) 
+				{
+					label = this.valueToLabel(date);
+					if(label.length > maxLabel.length) maxLabel = label;
+				}
+				var axisData:AxisData = new AxisData(position, date, label);
+				data.push(axisData);
+				itemCount++;
+				
+				if(date.valueOf() == this.maximum.valueOf())
+				{
+					break;
+				}
+			}
+			if(this.reverse) data = data.reverse();
+			if(isMajorUnit)
+			{
+				_majorTicks = data;
+				if(maxLabel.length > this.maxLabel.length)
+				{
+					this.maxLabel = maxLabel;
+					this.dispatchEvent(new AxisEvent(AxisEvent.AXIS_FAILED));
+				}
+				else
+				{
+					this.dispatchEvent(new AxisEvent(AxisEvent.AXIS_READY));
+				}
+			}
+			else
+			{
+				_minorTicks = data;
+			}
+		}
+
+		/**
+		 * @inheritDoc
+		 */
+		override public function getMaxLabel():String
+		{
+			var maxAbbrevDate:String = this.valueToLabel(new Date(2008, 4, 30)) as String;
+			var maxFullDate:String = this.valueToLabel(new Date(2009, 8, 30)) as String;
+			var maxDate:String = maxAbbrevDate.length > maxFullDate.length ? maxAbbrevDate : maxFullDate; 
+			this.maxLabel = maxDate.length > this.maxLabel.length ? maxDate : this.maxLabel;
+			return this.maxLabel;	
+		}			
+
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private function updateDate(date:Date, timeUnit:String, unitValue:Number, snapToUnits:Boolean):Date
+		{
+			switch(timeUnit)
+			{
+				case TimeUnit.YEAR:
+					date.fullYear += unitValue;
+					if(snapToUnits)
+					{
+						date.month = 0;
+						date.date = 1;
+						date.hours = 0;
+						date.minutes = 0;
+						date.seconds = 0;
+						date.milliseconds = 0;
+					}
+					break;
+				case TimeUnit.MONTH:
+					date.month += unitValue;
+					if(snapToUnits)
+					{
+						date.date = 1;
+						date.hours = 0;
+						date.minutes = 0;
+						date.seconds = 0;
+						date.milliseconds = 0;
+					}
+					break;
+				case TimeUnit.DAY:
+					date.date += unitValue;
+					if(snapToUnits)
+					{
+						date.hours = 0;
+						date.minutes = 0;
+						date.seconds = 0;
+						date.milliseconds = 0;
+					}
+					break;
+				case TimeUnit.HOURS:
+					date.hours += unitValue;
+					if(snapToUnits)
+					{
+						date.minutes = 0;
+						date.seconds = 0;
+						date.milliseconds = 0;
+					}
+					break;
+				case TimeUnit.MINUTES:
+					date.minutes += unitValue;
+					if(snapToUnits)
+					{
+						date.seconds = 0;
+						date.milliseconds = 0;
+					}
+					break;
+				case TimeUnit.SECONDS:
+					date.seconds += unitValue;
+					if(snapToUnits)
+					{
+						date.milliseconds = 0;
+					}
+					break;
+				case TimeUnit.MILLISECONDS:
+					date.milliseconds += unitValue;
+					break;
+			}
+			return date;
+		}
+		
+		/**
+		 * @private
+		 * Swaps the minimum and maximum values, if needed.
+		 */
+		private function checkMinLessThanMax():void
+		{
+			if(this._minimum.valueOf() > this._maximum.valueOf())
+			{
+				var temp:Date = this._minimum;
+				this._minimum = this._maximum;
+				this._maximum = temp;
+				
+				//be sure to swap these flags too!
+				var temp2:Boolean = this._minimumSetByUser;
+				this._minimumSetByUser = this._maximumSetByUser;
+				this._maximumSetByUser = temp2;
+			}
+		}
+		
+		/**
+		 * @private
+		 * Determines the best major unit.
+		 */
+		private function calculateMajorUnit():void
+		{
+			if(!this._majorTimeUnitSetByUser)
+			{
+				//ballpark it
+				var dayCount:Number = DateUtil.countDays(this.minimum, this.maximum);
+				var yearCount:Number = DateUtil.getDateDifferenceByTimeUnit(this.minimum, this.maximum, TimeUnit.YEAR);
+				var monthCount:Number = DateUtil.getDateDifferenceByTimeUnit(this.minimum, this.maximum, TimeUnit.MONTH);
+				var hourCount:Number = dayCount * 24;
+				var minuteCount:Number = hourCount * 60;
+				var secondCount:Number = minuteCount * 60;
+				
+				if(yearCount >= 1) this._majorTimeUnit = TimeUnit.YEAR;
+				else if(monthCount >= 1) this._majorTimeUnit = TimeUnit.MONTH;
+				else if(dayCount >= 1) this._majorTimeUnit = TimeUnit.DAY;
+				else if(hourCount >= 1) this._majorTimeUnit = TimeUnit.HOURS;
+				else if(minuteCount >= 1) this.majorTimeUnit = TimeUnit.MINUTES;
+				else if(secondCount >= 1) this.majorTimeUnit = TimeUnit.SECONDS; 
+				else this.majorTimeUnit = TimeUnit.MILLISECONDS;
+			}
+			
+			if(this._majorUnitSetByUser)
+			{
+				return;
+			}
+			
+			this.calculateMaximumAndMinimum();
+			
+			var chart:CartesianChart = this.chart as CartesianChart;
+			var labelSpacing:Number = 0;
+			var overflow:Number = 0;
+			var approxLabelDistance:Number = this.idealPixels;
+			if(this.calculateByLabelSize)
+			{
+				var rotation:Number = (this.renderer as UIComponent).getStyle("labelRotation") as Number;
+				//Check to see if this axis is horizontal. Since the width of labels will be variable, we will need to apply a different alogrithm to determine the majorUnit.
+				if(chart.horizontalAxis == this)
+				{
+					//extract the approximate width of the labels by getting the textWidth of the maximum date when rendered by the label function with the textFormat of the renderer.
+					approxLabelDistance = this.labelData.maxLabelWidth;
+					if(rotation == 0 || Math.abs(rotation) == 90)
+					{
+						if(!isNaN(this.labelData.rightLabelOffset)) overflow += this.labelData.rightLabelOffset as Number;
+						if(!isNaN(this.labelData.leftLabelOffset)) overflow += this.labelData.leftLabelOffset as Number;
+					}
+					else
+					{
+						if(rotation > 0 && !isNaN(this.labelData.rightLabelOffset)) overflow += this.labelData.rightLabelOffset as Number;
+						if(rotation < 0 && !isNaN(this.labelData.leftLabelOffset)) overflow += this.labelData.leftLabelOffset as Number;
+					}
+				}
+				else
+				{
+					approxLabelDistance = this.labelData.maxLabelHeight;	
+					if(rotation == 0 || Math.abs(rotation) ==90)
+					{
+						if(!isNaN(this.labelData.topLabelOffset)) overflow = this.labelData.topLabelOffset as Number;
+					}
+					else
+					{
+						if(rotation < 0 && !isNaN(this.labelData.bottomLabelOffset)) overflow += this.labelData.bottomLabelOffset as Number;
+						if(rotation > 0 && !isNaN(this.labelData.topLabelOffset)) overflow += this.labelData.topLabelOffset as Number;
+					}
+				}
+			 	labelSpacing = UIComponent(this.renderer).getStyle("labelSpacing") as Number; 
+				approxLabelDistance += (labelSpacing*2);
+			}
+			
+			var dateDifference:Number = Math.round(DateUtil.getDateDifferenceByTimeUnit(this.minimum, this.maximum, this.majorTimeUnit));
+			var tempMajorUnit:Number = 0; 
+			
+			var maxLabels:Number = ((this.renderer.length + overflow) - labelSpacing)/approxLabelDistance;
+			
+			//If set by user, use specified number of labels unless its too many
+			if(this._numLabelsSetByUser)
+			{
+				maxLabels = Math.min(maxLabels, this.numLabels);
+			}
+			
+			var ratio:Number = overflow/this.renderer.length;
+			var overflowOffset:Number = Math.round(ratio*dateDifference);
+			if(isNaN(overflowOffset)) overflowOffset = 0;
+			
+			tempMajorUnit = (dateDifference + overflowOffset)/maxLabels;
+			tempMajorUnit = Math.ceil(tempMajorUnit);
+			
+			if(tempMajorUnit > Math.round(dateDifference/2)) 
+			{
+				tempMajorUnit = dateDifference;
+			}
+			
+			this._majorUnit = tempMajorUnit;
+			
+			
+			if(dateDifference%tempMajorUnit != 0 && this.calculateByLabelSize)
+			{
+				var len:Number = Math.min(tempMajorUnit, ((dateDifference/2)-tempMajorUnit));
+				for(var i:int = 0;i < len; i++)
+				{
+					tempMajorUnit++;
+					if(dateDifference%tempMajorUnit == 0)
+					{
+						this._majorUnit = tempMajorUnit;
+						break;
+					}
+				}		
+			}	
+		}
+		
+		/**
+		 * @private
+		 * Determines the best minor unit.
+		 */
+		private function calculateMinorUnit():void
+		{
+			if(!this._minorTimeUnitSetByUser)
+			{
+				//if the numeric part of the major unit is 1, we want to move
+				//the time part of the minor unit to a interval lower than the major.
+				//...unless the user has set the minor unit. this is a weird case
+				//that shouldn't happen, but it might.
+				//in that case, we go with the standard behavior where major unit
+				//and minor unit are the same.
+				if(!this._minorUnitSetByUser && this._majorUnit == 1)
+				{
+					var index:int = TIME_UNITS.indexOf(this._majorTimeUnit);
+					if(index > 0) this._minorTimeUnit = TIME_UNITS[index - 1];
+				}
+				else this._minorTimeUnit = this._majorTimeUnit;
+			}
+			
+			if(this._minorUnitSetByUser)
+			{
+				return;
+			}
+			
+			if(this.majorTimeUnit == this.minorTimeUnit && this._majorUnit != 1)
+			{
+				if(this._majorUnit % 2 == 0)
+				{
+					this._minorUnit = this._majorUnit / 2;
+				}
+				else if(this._majorUnit % 3 == 0)
+				{
+					this._minorUnit = this._majorUnit / 3;
+				}
+				else this._minorUnit = 0;
+			}
+			else
+			{
+				//in this case, we know that the time portion of the minor
+				//unit is a smaller interval than the major unit.
+				switch(this._minorTimeUnit)
+				{
+					case TimeUnit.MONTH:
+						this._minorUnit = 6;
+						break;
+						
+					//no perfect half-way point for number of days in a month
+					//so use the default of zero
+					/*case TimeUnit.DAY:
+						break;*/
+						
+					case TimeUnit.HOURS:
+						this._minorUnit = 12;
+						break;
+						
+					case TimeUnit.MINUTES:
+						this._minorUnit = 30;
+						break;
+						
+					case TimeUnit.SECONDS:
+						this._minorUnit = 30;
+						break;
+						
+					default:
+						this._minorUnit = 0;
+						break;
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Determines the best time unit.
+		 */
+		private function calculateTimeUnitSize(timeUnit:String):Number
+		{
+			switch(timeUnit)
+			{
+				case TimeUnit.YEAR:
+					var year:Date = new Date(1970, 11, 31, 16);
+					return year.valueOf();
+				
+				case TimeUnit.MONTH:
+					var month:Date = new Date(1970, 0, 31, 16);
+					return month.valueOf();
+					
+				case TimeUnit.DAY:
+					var day:Date = new Date(1970, 0, 1, 16);
+					return day.valueOf();
+				
+				case TimeUnit.HOURS:
+					var hour:Date = new Date(1969, 11, 31, 17);
+					return hour.valueOf();
+					
+				case TimeUnit.MINUTES:
+					var minute:Date = new Date(1969, 11, 31, 16, 1);
+					return minute.valueOf();
+					
+				case TimeUnit.SECONDS:
+					var second:Date = new Date(1969, 11, 31, 16, 0, 1);
+					return second.valueOf();
+					
+				default: //millisecond
+					return 1;
+				
+			}
+		}
+		
+		/**
+		 * @private
+		 * Using the major time unit, and the current minimum and maximum, generate
+		 * the ideal minimum and maximum.
+		 */
+		private function calculateMaximumAndMinimum():void
+		{
+			switch(this.majorTimeUnit)
+			{
+				case TimeUnit.YEAR:
+				{
+					if(!this._minimumSetByUser)
+					{
+						this._minimum = new Date(this._minimum.fullYear, 0);
+					}
+						
+					if(!this._maximumSetByUser)
+					{
+						var beginningOfYear:Date = new Date(this._maximum.fullYear, 0);
+						//don't change the maximum if it is the exact beginning of the year
+						if(beginningOfYear.valueOf() != this._maximum.valueOf())
+							this._maximum = new Date(this._maximum.fullYear + 1, 0);
+					}						
+					break;
+				}
+				case TimeUnit.MONTH:
+				{
+					if(!this._minimumSetByUser)
+						this._minimum = new Date(this._minimum.fullYear, this._minimum.month);
+						
+					if(!this._maximumSetByUser)
+					{
+						var beginningOfMonth:Date = new Date(this._maximum.fullYear, this._maximum.month);
+						//don't change the maximum if it is the exact beginning of the month
+						if(beginningOfMonth.valueOf() != this._maximum.valueOf())
+							this._maximum = new Date(this._maximum.fullYear, this._maximum.month + 1);
+					}
+					break;
+				}
+				case TimeUnit.DAY:
+				{
+					if(!this._minimumSetByUser)
+						this._minimum = new Date(this._minimum.fullYear, this._minimum.month, this._minimum.date);
+						
+					if(!this._maximumSetByUser)
+					{
+						var beginningOfDay:Date = new Date(this._maximum.fullYear, this._maximum.month, this._maximum.date);
+						//don't change the maximum if it is the exact beginning of the day
+						if(beginningOfDay.valueOf() != this._maximum.valueOf())
+							this._maximum = new Date(this._maximum.fullYear, this._maximum.month, this._maximum.date + 1);
+					}
+					break;
+				}
+				case TimeUnit.HOURS:
+				{
+					if(!this._minimumSetByUser)
+						this._minimum = new Date(this._minimum.fullYear, this._minimum.month, this._minimum.date, this._minimum.hours);
+						
+					if(!this._maximumSetByUser)
+					{
+						var beginningOfHour:Date = new Date(this._maximum.fullYear, this._maximum.month, this._maximum.date, this._maximum.hours);
+						//don't change the maximum if it is the exact beginning of the day
+						if(beginningOfHour.valueOf() != this._maximum.valueOf())
+							this._maximum = new Date(this._maximum.fullYear, this._maximum.month, this._maximum.date, this._maximum.hours + 1);
+					}
+					break;
+				}
+				case TimeUnit.MINUTES:
+				{
+					if(!this._minimumSetByUser)
+						this._minimum = new Date(this._minimum.fullYear, this._minimum.month, this._minimum.date, this._minimum.hours, this._minimum.minutes);
+						
+					if(!this._maximumSetByUser)
+					{
+						var beginningOfMinute:Date = new Date(this._maximum.fullYear, this._maximum.month, this._maximum.date, this._maximum.hours, this._maximum.minutes);
+						//don't change the maximum if it is the exact beginning of the day
+						if(beginningOfMinute.valueOf() != this._maximum.valueOf())
+							this._maximum = new Date(this._maximum.fullYear, this._maximum.month, this._maximum.date, this._maximum.hours, this._maximum.minutes + 1);
+					}
+					break;
+				}
+				case TimeUnit.SECONDS:
+				{
+					if(!this._minimumSetByUser)
+						this._minimum = new Date(this._minimum.fullYear, this._minimum.month, this._minimum.date, this._minimum.hours, this._minimum.minutes, this._minimum.seconds);
+						
+					if(!this._maximumSetByUser)
+					{
+						var beginningOfSecond:Date = new Date(this._maximum.fullYear, this._maximum.month, this._maximum.date, this._maximum.hours, this._maximum.minutes, this._maximum.seconds);
+						//don't change the maximum if it is the exact beginning of the day
+						if(beginningOfSecond.valueOf() != this._maximum.valueOf())
+							this._maximum = new Date(this._maximum.fullYear, this._maximum.month, this._maximum.date, this._maximum.hours, this._maximum.minutes, this._maximum.seconds + 1);
+					}
+					break;
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Calculates the multiplier used to convert a data point to an actual position
+		 * on the axis.
+		 */
+		private function calculatePositionMultiplier():void
+		{
+			var range:Number = this.maximum.valueOf() - this.minimum.valueOf();
+			if(range == 0)
+			{
+				this.positionMultiplier = 0;
+				return;
+			}
+			this.positionMultiplier = this.renderer.length / range;
+		}
+
+		/**
+		 * @private
+		 */
+		override protected function parseDataProvider():void
+		{
+			var seriesCount:int = this.dataProvider.length;
+			var min:Number = NaN;
+			var max:Number = NaN;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:ISeries = ISeries(this.dataProvider[i]);
+				
+				
+				var seriesLength:int = series.length;
+				for(var j:int = 0; j < seriesLength; j++)
+				{
+					var item:Object = series.dataProvider[j];
+					var value:Object = this.chart.itemToAxisValue(series, j, this);
+					var numericValue:Number = this.valueToNumber(value);
+					
+					if(isNaN(min))
+					{
+						min = numericValue;
+					}
+					else
+					{
+						min = Math.min(min, numericValue);
+					}
+					if(isNaN(max))
+					{
+						max = numericValue;
+					}
+					else
+					{
+						max = Math.max(max, numericValue);
+					}
+				}
+			}
+			
+			//bad data. show yesterday through today.
+			if(isNaN(min) || isNaN(max))
+			{
+				var today:Date = new Date();
+				max = today.valueOf();
+				today.setDate(today.getDate() - 1);
+				min = today.valueOf();
+			}
+			
+			this._dataMinimum = new Date(min);
+			this._dataMaximum = new Date(max);
+			
+			super.parseDataProvider();
+		}
+
+		/**
+		 * @private
+		 * Listener for axisReady event. Sets the ticks and minorTicks for the renderer.
+		 */
+		private function axisReadyHandler(event:AxisEvent):void
+		{
+			this.renderer.ticks = _majorTicks;
+			this.renderer.minorTicks = _minorTicks;
+		}				
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/axes/VerticalAxisRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/axes/VerticalAxisRenderer.as
new file mode 100644
index 0000000..0b2eada
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/axes/VerticalAxisRenderer.as
@@ -0,0 +1,291 @@
+package com.yahoo.astra.fl.charts.axes
+{
+	import com.yahoo.astra.display.BitmapText;
+	import com.yahoo.astra.utils.DynamicRegistration;	
+	import flash.geom.Point;
+
+	/**
+	 * The default vertical axis renderer for a cartesian chart.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.CartesianChart
+	 * @author Tripp Bridges
+	 */
+	public class VerticalAxisRenderer extends DefaultAxisRenderer implements ICartesianAxisRenderer
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------	
+		public function VerticalAxisRenderer()
+		{
+			super();
+			this.orientation = AxisOrientation.VERTICAL;
+		}			
+
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+
+		/**
+		 * @private
+		 * Positions the title along the axis.
+		 */
+		override protected function positionTitle():void
+		{
+			var showTitle:Boolean = this.getStyleValue("showTitle") as Boolean;
+			this.titleTextField.visible = showTitle;
+			if(showTitle)
+			{
+				var titleRotation:Number = this.getStyleValue("titleRotation") as Number;
+				titleRotation = Math.max(-90, Math.min(titleRotation, 90));
+
+				this.titleTextField.rotation = titleRotation;
+				if(this.position == "right")
+				{
+					this.titleTextField.y = this.contentBounds.y + (this.contentBounds.height) / 2;
+					this.titleTextField.x = this.width - this.titleTextField.width;
+				}
+				else
+				{
+					this.titleTextField.y = this.contentBounds.y + (this.contentBounds.height) / 2;
+					this.titleTextField.x = 0;
+				}
+				if(titleRotation > 0)
+				{	
+					this.titleTextField.x += this.titleTextField.contentHeight * Math.sin(titleRotation * Math.PI/180);
+					this.titleTextField.y -= this.titleTextField.height/2;
+				}
+				else if(titleRotation < 0)
+				{							
+					this.titleTextField.y += this.titleTextField.height/2;
+				}
+				else
+				{
+					this.titleTextField.y -= this.titleTextField.height/2;
+				}
+			}
+		}
+
+		/**
+		 * @private
+		 * Draws the axis origin line.
+		 */
+		override protected function drawAxis():void
+		{
+			super.drawAxis();
+			var verticalX:Number = this.contentBounds.x;
+			if(this.position == "right")
+			{
+				verticalX = this.contentBounds.x + this.contentBounds.width;
+			}
+			var verticalStart:Number = this.contentBounds.y;
+			var verticalEnd:Number = this.contentBounds.y + this.contentBounds.height;
+			this.graphics.moveTo(verticalX, verticalStart);
+			this.graphics.lineTo(verticalX, verticalEnd);
+		}	
+		
+		/**
+		 * @private
+		 * Draws a set of ticks on the axis.
+		 */
+		override protected function drawTicks(data:Array, showTicks:Boolean, tickPosition:String,
+			tickLength:Number, tickWeight:Number, tickColor:uint):void
+		{
+			if(!showTicks)
+			{
+				return;
+			}
+			
+			this.graphics.lineStyle(tickWeight, tickColor);
+
+			var axisPosition:Number = this.position == "right" ? this.contentBounds.x + this.contentBounds.width : this.contentBounds.x;
+			if(this.position == "right") tickLength *= -1;
+			var dataCount:int = data.length;
+			for(var i:int = 0; i < dataCount; i++)
+			{
+				var axisData:AxisData = AxisData(data[i]);
+				if(isNaN(axisData.position))
+				{
+					//skip bad positions
+					continue;
+				}
+				
+				var position:Number = axisData.position;
+				position += this.contentBounds.y;
+
+				switch(tickPosition)
+				{
+					case TickPosition.OUTSIDE:
+						this.graphics.moveTo(axisPosition - tickLength, position);
+						this.graphics.lineTo(axisPosition, position);
+						break;
+					
+					case TickPosition.INSIDE:
+						this.graphics.moveTo(axisPosition, position);
+						this.graphics.lineTo(axisPosition + tickLength, position);
+						break;
+					
+					default: //CROSS
+						this.graphics.moveTo(axisPosition - tickLength / 2, position);
+						this.graphics.lineTo(axisPosition + tickLength / 2, position);
+						break;
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Positions a set of labels on the axis.
+		 */
+		override protected function positionLabels(labels:Array, showLabels:Boolean, labelDistance:Number, labelRotation:Number, embedFonts:Boolean):void
+		{
+			if(!showLabels) return;
+			var labelCount:int = this.labelTextFields.length;
+			for(var i:int = 0; i < labelCount; i++)
+			{
+				var label:BitmapText = BitmapText(this.labelTextFields[i]);
+				label.rotation = 0;
+				var axisData:AxisData = AxisData(this.ticks[i]);
+				var position:Number = axisData.position;
+				position += this.contentBounds.y;		
+				var absRotation:Number = Math.abs(labelRotation);
+				var xRegistration:Number;
+				label.y = position;
+
+				if(this.position == "left")
+				{
+					label.x = this.contentBounds.x - labelDistance - this.outerTickOffset;
+					xRegistration = label.width - Math.min(label.height/2, Math.sin(absRotation * Math.PI/180) * label.height/4);
+					if(absRotation > 0 && absRotation < 90)
+					{
+						label.y -= label.height/2;
+						label.x -= label.width;
+						DynamicRegistration.rotate(label, new Point(xRegistration, label.height / 2), labelRotation);
+					}
+					else if(labelRotation == 90)
+					{
+						label.rotation = labelRotation;
+						label.y -= label.height/2;
+					}
+					else if(labelRotation == -90)
+					{
+						label.rotation = labelRotation;
+						label.x -= label.width;
+						label.y += label.height/2;
+					}
+					else
+					{
+						label.x -= label.width;
+						label.y -= label.height/2;
+					}
+				}
+				else
+				{
+					label.x = this.contentBounds.x + this.contentBounds.width + labelDistance + this.outerTickOffset;
+					xRegistration = Math.min(label.height/2, Math.sin(absRotation * Math.PI/180) * label.height/4);			
+					if(absRotation > 0 && absRotation < 90)
+					{
+						label.y -= label.height/2;
+						DynamicRegistration.rotate(label, new Point(xRegistration, label.height / 2), labelRotation);
+					}
+					else if(labelRotation == 90)
+					{
+						label.rotation = labelRotation;
+						label.y -= label.height/2;
+						label.x += label.width; 						
+					}
+					else if(labelRotation == -90)
+					{
+						DynamicRegistration.rotate(label, new Point(xRegistration, label.height / 2), labelRotation);
+						label.y += label.height/2;
+					}	
+					else
+					{
+						label.y -= label.height/2;
+					}						
+				}
+				
+				label.x = Math.round(label.x);
+				label.y = Math.round(label.y);
+				this.handleOverlappingLabels();
+			}
+		}
+		
+		/**
+		 * @private
+		 * If labels overlap, some may need to be hidden.
+		 */
+		override protected function handleOverlappingLabels():void
+		{
+			var showLabels:Boolean = this.getStyleValue("showLabels");
+			var hideOverlappingLabels:Boolean = this.getStyleValue("hideOverlappingLabels");
+			if(!showLabels || !hideOverlappingLabels)
+			{
+				return;
+			}
+			var labelRotation:Number = this.getStyleValue("labelRotation") as Number;
+			var lastVisibleLabel:BitmapText;
+ 			var labelCount:int = this.labelTextFields.length;
+			for(var i:int = 0; i < labelCount; i++)
+			{
+				var idealDistance:Number;
+				var index:int = labelRotation >= 0 ? i : (labelCount - i - 1);
+				var label:BitmapText = BitmapText(this.labelTextFields[index]);
+				label.visible = true;
+				if(lastVisibleLabel)
+				{
+					var diff:Number;
+					var offset:Point;
+					offset = new Point(0, 0);
+					var radians:Number = Math.abs(labelRotation) * Math.PI/180;
+					if(lastVisibleLabel.y > label.y)
+					{	
+						if(Math.abs(labelRotation) == 90)
+						{
+							idealDistance = label.textField.textWidth;
+						}
+						else if(labelRotation == 0)
+						{
+							idealDistance = label.textField.textHeight;
+						}
+						else
+						{
+							idealDistance = (label.textField.textHeight / (Math.cos((Math.abs(labelRotation))*Math.PI/180)));
+							idealDistance = Math.min(idealDistance, label.height);
+						}
+						if((label.y + label.height + idealDistance) > (lastVisibleLabel.y + lastVisibleLabel.height))
+						{
+							label.visible = false;								
+						}
+					}
+					else
+					{
+						if(Math.abs(labelRotation) == 90)
+						{
+							idealDistance = lastVisibleLabel.textField.textWidth;
+						}
+						else if(labelRotation == 0)
+						{
+							idealDistance = lastVisibleLabel.textField.textHeight;
+						}
+						else
+						{
+							idealDistance = (lastVisibleLabel.textField.textHeight / (Math.cos((Math.abs(labelRotation))*Math.PI/180)));
+							idealDistance = Math.min(idealDistance, lastVisibleLabel.height);
+						}							
+						if((lastVisibleLabel.y + lastVisibleLabel.height + idealDistance) > (label.y + label.height)) 
+						{
+							label.visible = false;
+						}		
+					}
+				}
+				if(label.visible)
+				{
+					lastVisibleLabel = label;
+				}  
+			}
+		}		
+			
+				
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/events/AxisEvent.as b/src/charts/as/com/yahoo/astra/fl/charts/events/AxisEvent.as
new file mode 100644
index 0000000..1f39660
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/events/AxisEvent.as
@@ -0,0 +1,56 @@
+package com.yahoo.astra.fl.charts.events
+{
+	import flash.events.Event;
+	import flash.display.DisplayObject;
+	/**
+	 * Events related to the Axis in a chart.
+	 * 
+	 * @author Tripp
+	 */
+	public class AxisEvent extends Event
+	{
+		
+	//--------------------------------------
+	//  Static Constants
+	//--------------------------------------
+		/**
+		 * Defines the value of <code>type</code> property of an <code>axisReady</code>
+		 * event object.
+		 *
+		 * @eventType axisReady
+		 */
+		public static const AXIS_READY:String = "axisReady";
+		
+		/**
+		 * Defines the value of <code>type</code> property of an <code>axisFailed</code>
+		 * event object.
+		 * 
+		 * @eventType axisFailed
+		 */
+		public static const AXIS_FAILED:String = "axisFailed";
+		
+		//--------------------------------------
+		//  Constructor
+		//--------------------------------------
+
+			/**
+			 * Constructor.
+			 */
+			public function AxisEvent(type:String)
+			{
+				super(type, true, false);
+			}
+
+		//--------------------------------------
+		//  Public Methods
+		//--------------------------------------
+
+			/**
+			 * @private
+			 */
+			override public function clone():Event
+			{
+				return new AxisEvent(this.type);
+			}
+	}		
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/events/ChartEvent.as b/src/charts/as/com/yahoo/astra/fl/charts/events/ChartEvent.as
new file mode 100644
index 0000000..7e72bb9
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/events/ChartEvent.as
@@ -0,0 +1,168 @@
+package com.yahoo.astra.fl.charts.events
+{
+	import flash.events.Event;
+	import flash.display.DisplayObject;
+	import com.yahoo.astra.fl.charts.series.ISeries;
+	import com.yahoo.astra.fl.charts.series.ISeriesItemRenderer;
+
+	/**
+	 * Events related to items appearing in a chart.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class ChartEvent extends Event
+	{
+		
+	//--------------------------------------
+	//  Static Constants
+	//--------------------------------------
+	
+		/**
+         * Defines the value of the <code>type</code> property of an <code>itemRollOver</code> 
+		 * event object. 
+         *
+         * @eventType itemRollOver
+		 */
+		public static const ITEM_ROLL_OVER:String = "itemRollOver";
+		
+		/**
+         * Defines the value of the <code>type</code> property of an <code>itemRollOut</code> 
+		 * event object. 
+         *
+         * @eventType itemRollOut
+		 */
+		public static const ITEM_ROLL_OUT:String = "itemRollOut";
+		
+		/**
+         * Defines the value of the <code>type</code> property of an <code>itemClick</code> 
+		 * event object. 
+         *
+         * @eventType itemClick
+		 */
+		public static const ITEM_CLICK:String = "itemClick";
+		
+		/**
+         * Defines the value of the <code>type</code> property of an <code>itemDoubleClick</code> 
+		 * event object. 
+         *
+         * @eventType itemDoubleClick
+		 */
+		public static const ITEM_DOUBLE_CLICK:String = "itemDoubleClick";
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function ChartEvent(type:String, index:int, item:Object, itemRenderer:ISeriesItemRenderer, series:ISeries)
+		{
+			super(type, true, false);
+			this.index = index;
+			this.item = item;
+			this.itemRenderer = itemRenderer;
+			this.series = series;
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		private var _index:int;
+		
+		/**
+		 * The series index for the item related to this event.
+		 */
+		public function get index():int
+		{
+			return this._index;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set index(value:int):void
+		{
+			this._index = value;
+		}
+	
+		/**
+		 * @private
+		 */
+		private var _item:Object;
+		
+		/**
+		 * The data for the item related to this event.
+		 */
+		public function get item():Object
+		{
+			return this._item;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set item(value:Object):void
+		{
+			this._item = value;
+		}
+	
+		/**
+		 * @private
+		 */
+		private var _itemRenderer:ISeriesItemRenderer;
+		
+		/**
+		 * The ISeriesItemRenderer displaying the item on the chart.
+		 */
+		public function get itemRenderer():ISeriesItemRenderer
+		{
+			return this._itemRenderer;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set itemRenderer(value:ISeriesItemRenderer):void
+		{
+			this._itemRenderer = value;
+		}
+	
+		/**
+		 * @private
+		 */
+		private var _series:ISeries;
+		
+		/**
+		 * The ISeries containing the item on the chart.
+		 */
+		public function get series():ISeries
+		{
+			return this._series;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set series(value:ISeries):void
+		{
+			this._series = value;
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override public function clone():Event
+		{
+			return new ChartEvent(this.type, this.index, this.item, this.itemRenderer, this.series);
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/events/LegendEvent.as b/src/charts/as/com/yahoo/astra/fl/charts/events/LegendEvent.as
new file mode 100644
index 0000000..62dbed4
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/events/LegendEvent.as
@@ -0,0 +1,85 @@
+package com.yahoo.astra.fl.charts.events
+{
+	import flash.events.Event;
+
+	/**
+	 * Events related to a chart's legend.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.Legend
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class LegendEvent extends Event
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		/**
+         * Defines the value of the <code>type</code> property of an <code>legendMarkerClick</code> 
+		 * event object. 
+         *
+         * @eventType legendMarkerClick
+		 */
+		public static const LEGEND_MARKER_CLICK:String = "legendMarkerClick";
+	
+		/**
+         * Defines the value of the <code>type</code> property of an <code>legendMarkerDoubleClick</code> 
+		 * event object. 
+         *
+         * @eventType legendMarkerDoubleClick
+		 */
+		public static const LEGEND_MARKER_DOUBLE_CLICK:String = "legendMarkerDoubleClick";
+	
+		/**
+         * Defines the value of the <code>type</code> property of an <code>legendMarkerRollOver</code> 
+		 * event object. 
+         *
+         * @eventType legendMarkerRollOver
+		 */
+		public static const LEGEND_MARKER_ROLL_OVER:String = "legendMarkerRollOver";
+	
+		/**
+         * Defines the value of the <code>type</code> property of an <code>legendMarkerRollOut</code> 
+		 * event object. 
+         *
+         * @eventType legendMarkerRollOut
+		 */
+		public static const LEGEND_MARKER_ROLL_OUT:String = "legendMarkerRollOut";
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function LegendEvent(type:String, index:int, bubbles:Boolean=false, cancelable:Boolean=false)
+		{
+			super(type, bubbles, cancelable);
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The index of the item in the legend.
+		 */
+		public var index:int;
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override public function clone():Event
+		{
+			return new LegendEvent(LegendEvent.LEGEND_MARKER_CLICK, this.index, this.bubbles, this.cancelable);
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/legend/ILegend.as b/src/charts/as/com/yahoo/astra/fl/charts/legend/ILegend.as
new file mode 100644
index 0000000..3153d03
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/legend/ILegend.as
@@ -0,0 +1,49 @@
+package com.yahoo.astra.fl.charts.legend
+{
+	/**
+	 * Properties required by a chart's legend.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.Chart
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface ILegend
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * An Array of LegendItemData objects.
+		 * 
+		 * @see com.yahoo.astra.fl.charts.legend.LegendItemData
+		 */
+		function get dataProvider():Array
+		
+		/**
+		 * @private
+		 */
+		function set dataProvider(value:Array):void;
+
+		/**
+		 * The maximum available width for the legend.
+		 */		
+		function get maxWidth():Number;
+		
+		/** 
+		 * @private (setter)
+		 */		
+		function set maxWidth(value:Number):void;
+
+		/** 
+		 * The maximum available height for the legend.
+		 */		
+		function get maxHeight():Number;
+		
+		/** 
+		 * @private (setter)
+		 */		
+		function set maxHeight(value:Number):void;		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/legend/Legend.as b/src/charts/as/com/yahoo/astra/fl/charts/legend/Legend.as
new file mode 100644
index 0000000..5fe5226
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/legend/Legend.as
@@ -0,0 +1,348 @@
+package com.yahoo.astra.fl.charts.legend
+{
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	import com.yahoo.astra.layout.modes.FlowLayout;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	import fl.events.ComponentEvent;
+	
+	import flash.display.DisplayObject;
+	import flash.geom.Rectangle;
+
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+	
+	/**
+     * The padding that separates the border of the component from its contents,
+     * in pixels.
+     *
+     * @default 6
+     */
+    [Style(name="contentPadding", type="Number")]
+	
+	/**
+     * The spacing that separates the each legend item.
+     *
+     * @default 6
+     */
+    [Style(name="gap", type="Number")]
+	
+	/**
+     * The DisplayObject subclass used to display the background.
+     */
+    [Style(name="backgroundSkin", type="Class")]
+	
+	/**
+	 * Indicates whether embedded font outlines are used to render the text
+	 * field. If this value is true, Flash Player renders the text field by
+	 * using embedded font outlines. If this value is false, Flash Player
+	 * renders the text field by using device fonts.
+	 * 
+	 * If you set the embedFonts property to true for a text field, you must
+	 * specify a font for that text by using the font property of a TextFormat
+	 * object that is applied to the text field. If the specified font is not
+	 * embedded in the SWF file, the text is not displayed.
+	 * 
+	 * @default false
+     */
+    [Style(name="embedFonts", type="Boolean")]
+	
+	/**
+	 * Provides a visual reference for the series in a Chart component.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.Chart
+	 * @see com.yahoo.astra.fl.charts.legend.LegendItem
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class Legend extends UIComponent implements ILegend
+	{	
+		
+	//--------------------------------------
+	//  Static Variables
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{
+			backgroundSkin: "ChartLegendBackground",
+			contentPadding: 6,
+			direction: "vertical",
+			gap: 6,
+			embedFonts: false
+		};
+		
+		/**
+		 * @private
+		 * Styles to pass to the LegendItems
+		 */
+		private static const ITEM_STYLES:Object =
+		{
+			textFormat: "textFormat",
+			embedFonts: "embedFonts"
+		};
+		
+	//--------------------------------------
+	//  Static Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, UIComponent.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function Legend()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * The background skin.
+		 */
+		protected var background:DisplayObject;
+	
+		/**
+		 * @private
+		 * The legend items displayed in this Legend.
+		 */
+		protected var legendItems:Array = [];
+		
+		/**
+		 * @private
+		 * Caches LegendItems for reuse when redrawing the Legend.
+		 */
+		private var _legendItemCache:Array;
+		
+		/**
+		 * @private
+		 * Storage for the dataProvider property.
+		 */
+		private var _dataProvider:Array = [];
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get dataProvider():Array
+		{
+			return this._dataProvider;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set dataProvider(value:Array):void
+		{
+			this._dataProvider = value;
+			this.invalidate(InvalidationType.DATA);
+		}
+		
+		
+		/**
+		 * @private
+		 * Placeholder for maxWidth
+		 */
+		private var _maxWidth:Number = 0;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.legend.ILegend#maxWidth
+		 */
+		public function get maxWidth():Number
+		{
+			return _maxWidth;
+		}
+		
+		/** 
+		 * @private (setter)
+		 */
+		public function set maxWidth(value:Number):void
+		{
+			_maxWidth = value;
+		}
+		
+		/**
+		 * @private
+		 * Placeholder for maxHeight 
+		 */
+		private var _maxHeight:Number = 0;
+		
+		/** 
+		 * @copy com.yahoo.astra.fl.charts.legend.ILegend#maxHeight
+		 */
+		public function get maxHeight():Number
+		{
+			return _maxHeight;
+		}
+		
+		/** 
+		 * @private (setter)
+		 */
+		public function set maxHeight(value:Number):void
+		{
+			_maxHeight = value;
+		}				
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			var dataInvalid:Boolean = this.isInvalid(InvalidationType.DATA);
+			var stylesInvalid:Boolean = this.isInvalid(InvalidationType.STYLES);
+			
+			super.draw();
+			
+			if(stylesInvalid)
+			{
+				if(this.background)
+				{
+					this.removeChild(this.background);
+					this.background = null;
+				}
+				var skinClass:Object = this.getStyleValue("backgroundSkin");
+				this.background = UIComponentUtil.getDisplayObjectInstance(this, skinClass);
+				this.addChildAt(this.background, 0);
+			}
+			
+			if(dataInvalid && this.dataProvider)
+			{
+				this.createCache();
+				this.updateLegendItems();
+				this.clearCache();
+			}
+			
+			this.layoutItems();
+			
+			if(this.background)
+			{
+				this.background.width = this._width;
+				this.background.height = this._height;
+				
+				if(this.background is UIComponent)
+				{
+					UIComponent(this.background).drawNow();
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Loops through the data provider and displays a LegendItem
+		 * for each item.
+		 */
+		protected function updateLegendItems():void
+		{
+			var itemCount:int = this.dataProvider.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var legendItem:LegendItem = this.getItem();
+				legendItem.data = LegendItemData(dataProvider[i]);
+				this.copyStylesToChild(legendItem, ITEM_STYLES);
+				legendItem.drawNow();
+				this.legendItems.push(legendItem);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Standard renderer caching system.
+		 */
+		protected function createCache():void
+		{
+			this._legendItemCache = this.legendItems.concat();
+			this.legendItems = [];
+		}
+		
+		/**
+		 * @private
+		 * Either returns an old renderer from the cache or creates a new one.
+		 */
+		protected function getItem():LegendItem
+		{
+			if(this._legendItemCache.length > 0)
+			{
+				return this._legendItemCache.shift() as LegendItem;
+			}
+			var legendItem:LegendItem = new LegendItem();
+			this.addChild(legendItem);
+			return legendItem;
+		}
+		
+		/**
+		 * @private
+		 * Clears any unused renderers from the cache.
+		 */
+		protected function clearCache():void
+		{
+			var cacheLength:int = this._legendItemCache.length;
+			for(var i:int = 0; i < cacheLength; i++)
+			{
+				var legendItem:LegendItem = this._legendItemCache.pop() as LegendItem;
+				this.removeChild(legendItem);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Positions the LegendItems.
+		 */
+		protected function layoutItems():void
+		{
+			var oldWidth:Number = this._width;
+			var oldHeight:Number = this._height;
+			
+			var contentPadding:Number = this.getStyleValue("contentPadding") as Number;
+			var direction:String = this.getStyleValue("direction") as String;
+
+			var gap:Number = this.getStyleValue("gap") as Number;	
+			var bounds:Rectangle;
+			
+			var layout:FlowLayout = new FlowLayout();
+			layout.verticalGap = layout.horizontalGap = gap;
+			layout.direction = direction;
+			layout.paddingTop = layout.paddingRight = layout.paddingBottom = layout.paddingLeft = contentPadding;
+			if(layout.direction == "vertical") 
+			{
+				layout.verticalAlign = "middle";
+				bounds = layout.layoutObjects(this.legendItems, new Rectangle(0, 0, this.width, this.maxHeight));
+			}
+			if(layout.direction == "horizontal") 
+			{
+				layout.horizontalAlign = "center";
+				bounds = layout.layoutObjects(this.legendItems, new Rectangle(0, 0, this.maxWidth, this.height));
+			}
+					
+			this._width = bounds.width;
+			this._height = bounds.height;
+			
+			//if the size has changed, dispatch a resize event
+			if(this._width != oldWidth || this._height != oldHeight)
+			{
+				this.dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE));
+			}
+		}		
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/legend/LegendItem.as b/src/charts/as/com/yahoo/astra/fl/charts/legend/LegendItem.as
new file mode 100644
index 0000000..8ebf426
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/legend/LegendItem.as
@@ -0,0 +1,222 @@
+package com.yahoo.astra.fl.charts.legend
+{
+	import com.yahoo.astra.fl.charts.events.LegendEvent;
+	import com.yahoo.astra.fl.charts.series.ISeriesItemRenderer;
+	import com.yahoo.astra.fl.charts.series.SeriesItemRenderer;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	import fl.events.ComponentEvent;
+	
+	import flash.display.DisplayObject;
+	import flash.display.InteractiveObject;
+	import flash.display.Sprite;
+	import flash.events.MouseEvent;
+	import flash.text.TextField;
+	import flash.text.TextFieldAutoSize;
+	import flash.text.TextFormat;
+
+	/**
+	 * An item displayed in a chart's Legend.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.legend.Legend
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class LegendItem extends UIComponent
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{
+			markerSkin: Sprite,
+			horizontalSpacing: 3,
+			embedFonts: false
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, UIComponent.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function LegendItem()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * The marker displayed in this LegendItem.
+		 */
+		protected var marker:ISeriesItemRenderer;
+		
+		/**
+		 * @private
+		 * The label displayed in this LegendItem.
+		 */
+		protected var textField:TextField;
+	
+		/**
+		 * @private
+		 * Storage for the data property.
+		 */
+		private var _data:LegendItemData;
+		
+		/**
+		 * The data used to display the legend item.
+		 */
+		public function get data():LegendItemData
+		{
+			return this._data;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set data(value:LegendItemData):void
+		{
+			if(this._data != value)
+			{
+				this._data = value;
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function configUI():void
+		{
+			super.configUI();
+		
+			if(!this.marker)
+			{
+				this.marker = new SeriesItemRenderer();
+				InteractiveObject(this.marker).doubleClickEnabled = true;
+				this.marker.addEventListener(MouseEvent.CLICK, markerMouseEventHandler);
+				this.marker.addEventListener(MouseEvent.DOUBLE_CLICK, markerMouseEventHandler);
+				this.marker.addEventListener(MouseEvent.ROLL_OVER, markerMouseEventHandler);
+				this.marker.addEventListener(MouseEvent.ROLL_OUT, markerMouseEventHandler);
+				this.addChild(DisplayObject(this.marker));
+			}
+			
+			if(!this.textField)
+			{
+				this.textField = new TextField();
+				this.textField.autoSize = TextFieldAutoSize.LEFT;
+				this.addChild(this.textField);
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			var oldWidth:Number = this.width;
+			var oldHeight:Number = this.height;
+			
+			var dataInvalid:Boolean = this.isInvalid(InvalidationType.DATA);
+			var stylesInvalid:Boolean = this.isInvalid(InvalidationType.STYLES);
+			
+			if(stylesInvalid)
+			{
+				if(this.marker)
+				{
+					UIComponent(this.marker).setStyle("skin", this.data.markerSkin);
+					UIComponent(this.marker).setStyle("fillColor", this.data.fillColor);
+					UIComponent(this.marker).setStyle("borderColor", this.data.borderColor);
+					UIComponent(this.marker).setStyle("fillAlpha", this.data.fillAlpha);
+					UIComponent(this.marker).setStyle("borderAlpha", this.data.borderAlpha);		
+				}
+				
+				var textFormat:TextFormat = this.getStyleValue("textFormat") as TextFormat;
+				var embedFonts:Boolean = this.getStyleValue("embedFonts") as Boolean;
+				this.textField.setTextFormat(textFormat); //set format for existing text
+				this.textField.defaultTextFormat = textFormat; //set format for future text
+				this.textField.embedFonts = embedFonts;
+			}
+			
+			if(dataInvalid)
+			{
+				this.textField.text = this.data.label ? this.data.label : " "; //space used for height calculation if no data
+			}
+			
+			//position children
+			var horizontalSpacing:Number = this.getStyleValue("horizontalSpacing") as Number;
+			var xPosition:Number = 0;
+			if(this.marker)
+			{
+				var marker:UIComponent = UIComponent(this.marker);
+				marker.width = marker.height = this.textField.textHeight;
+				marker.y = (this.textField.height - this.textField.textHeight) / 2;
+				marker.drawNow();
+				xPosition = marker.width + horizontalSpacing;
+			}
+			this.textField.x = xPosition;
+			
+			this._width = this.textField.x + this.textField.width;
+			this._height = this.textField.height;
+			
+			if(oldWidth != this._width || oldHeight != this._height)
+			{
+				this.dispatchEvent(new ComponentEvent(ComponentEvent.RESIZE));
+			}
+			
+			super.draw();
+		}
+		
+		/**
+		 * @private
+		 * Dispatch events when the user interacts with the marker.
+		 */
+		protected function markerMouseEventHandler(event:MouseEvent):void
+		{
+			var type:String = LegendEvent.LEGEND_MARKER_CLICK;
+			switch(event.type)
+			{
+				case MouseEvent.DOUBLE_CLICK:
+					type = LegendEvent.LEGEND_MARKER_DOUBLE_CLICK;
+					break;
+				case MouseEvent.ROLL_OVER:
+					type = LegendEvent.LEGEND_MARKER_ROLL_OVER;
+					break;
+				case MouseEvent.ROLL_OUT:
+					type = LegendEvent.LEGEND_MARKER_ROLL_OUT;
+					break;
+			}
+			
+			this.dispatchEvent(new LegendEvent(type, this.parent.getChildIndex(this) + 1, true, false));
+		}
+		
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/legend/LegendItemData.as b/src/charts/as/com/yahoo/astra/fl/charts/legend/LegendItemData.as
new file mode 100644
index 0000000..cf1c885
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/legend/LegendItemData.as
@@ -0,0 +1,67 @@
+package com.yahoo.astra.fl.charts.legend
+{
+	import flash.display.Shape;
+	
+	/**
+	 * @author Josh Tynjala
+	 */
+	public class LegendItemData
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 * 
+		 * @param label			The text to display on the LegendItem.
+		 * @param markerSkin	The skin to use with the marker on the LegendItem.
+		 * @param fillColor		The base color (possibly) used by the marker.
+		 */
+		public function LegendItemData(label:String = "", markerSkin:Object = null, fillColor:uint = 0x000000, fillAlpha:Number = 1, borderColor:uint = 0x000000, borderAlpha:Number = 1)
+		{
+			this.label = label;
+			this.markerSkin = markerSkin ? markerSkin : Shape;
+			this.fillColor = fillColor;
+			this.fillAlpha = fillAlpha;
+			this.borderColor = borderColor;
+			this.borderAlpha = borderAlpha;
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The text to display on the LegendItem.
+		 */
+		public var label:String;
+		
+		/**
+		 * The skin to use for the marker on the LegendItem.
+		 */
+		public var markerSkin:Object;
+		
+		/**
+		 * The base color (possibly) used by the marker fill.
+		 */
+		public var fillColor:uint;
+		
+		/**
+		 * The alpha value used by the marker fill.
+		 */
+		public var fillAlpha:Number;
+		
+		/**
+		 * The base color used by the marker border.
+		 */
+		public var borderColor:uint;
+		
+		/**
+		 * The alpha value used by the marker border.
+		 */
+		public var borderAlpha:Number;
+	}
+	
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/BarSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/BarSeries.as
new file mode 100644
index 0000000..b43433a
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/BarSeries.as
@@ -0,0 +1,350 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.animation.Animation;
+	import com.yahoo.astra.animation.AnimationEvent;
+	import com.yahoo.astra.fl.charts.*;
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.axes.IClusteringAxis;
+	import com.yahoo.astra.fl.charts.axes.IOriginAxis;
+	import com.yahoo.astra.fl.charts.skins.RectangleSkin;
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	
+	import fl.core.UIComponent;
+	
+	import flash.display.DisplayObject;
+	import flash.geom.Point;
+
+	/**
+	 * Renders data points as a series of horizontal bars.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class BarSeries extends CartesianSeries
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object =
+		{
+			markerSkin: RectangleSkin,
+			markerSize: 18
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+			
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, CartesianSeries.getStyleDefinition());
+		}
+		
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function BarSeries(data:Object = null)
+		{
+			super(data);
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * The Animation instance that controls animation in this series.
+		 */
+		private var _animation:Animation;
+	
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		override public function clone():ISeries
+		{
+			var series:BarSeries = new BarSeries();
+			if(this.dataProvider is Array)
+			{
+				//copy the array rather than pass it by reference
+				series.dataProvider = (this.dataProvider as Array).concat();
+			}
+			else if(this.dataProvider is XMLList)
+			{
+				series.dataProvider = (this.dataProvider as XMLList).copy();
+			}
+			series.displayName = this.displayName;
+			series.horizontalField = this.horizontalField;
+			series.verticalField = this.verticalField;
+			
+			return series;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			super.draw();
+			
+			this.graphics.clear();
+			
+			//if we don't have data, let's get out of here
+			if(!this.dataProvider)
+			{
+				return;
+			}
+			
+			this.graphics.lineStyle(1, 0x0000ff);
+			
+			//grab the axes
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			var xAxis:String = this.axis == "primary" ? "horizontalAxis" : "secondaryHorizontalAxis";
+			var valueAxis:IOriginAxis = cartesianChart[xAxis] as IOriginAxis;			
+			var otherAxis:IAxis = cartesianChart.verticalAxis;
+			if(!valueAxis)
+			{
+				throw new Error("To use a BarSeries object, the horizontal axis of the chart it appears within must be an IOriginAxis.");
+				return;
+			}
+			
+			var markerSizes:Array = [];
+			var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+			var totalMarkerSize:Number = this.calculateTotalMarkerSize(otherAxis, markerSizes);
+			var seriesIndex:int = allSeriesOfType.indexOf(this);
+			var markerSize:Number = markerSizes[seriesIndex] as Number;
+			var yOffset:Number = this.calculateYOffset(valueAxis, otherAxis, markerSizes, totalMarkerSize, allSeriesOfType);
+			var seriesItemSpacing:Number = UIComponentUtil.getStyleValue(UIComponent(this.chart), "seriesItemSpacing") as Number;
+			
+			var startValues:Array = [];
+			var endValues:Array = [];
+			var itemCount:int = this.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var originValue:Object = this.calculateOriginValue(i, valueAxis, allSeriesOfType);
+				var originPosition:Number = valueAxis.valueToLocal(originValue);
+				
+				var position:Point = IChart(this.chart).itemToPosition(this, i);
+				var marker:DisplayObject = this.markers[i] as DisplayObject;
+				position.y += (allSeriesOfType.length - 1) * seriesItemSpacing;
+				
+				marker.y = position.y + yOffset;
+				marker.height = markerSize;
+				
+				//if we have a bad position, don't display the marker
+				if(isNaN(position.x) || isNaN(position.y))
+				{
+					this.invalidateMarker(ISeriesItemRenderer(marker));
+				}
+				else if(this.isMarkerInvalid(ISeriesItemRenderer(marker)))
+				{
+					//initialize the marker to the origin
+					marker.x = originPosition;
+					marker.width = 0;
+				
+					if(marker is UIComponent) 
+					{
+						(marker as UIComponent).drawNow();
+					}
+					this.validateMarker(ISeriesItemRenderer(marker));
+				}
+				
+				//stupid Flash UIComponent rounding!
+				position.x = Math.round(position.x);
+				originPosition = Math.round(originPosition);
+				
+				var calculatedWidth:Number = originPosition - position.x;
+				if(calculatedWidth < 0)
+				{
+					calculatedWidth = Math.abs(calculatedWidth);
+					position.x = Math.round(originPosition);
+					//always put the marker on the origin
+					marker.x = position.x;
+				}
+				
+				startValues.push(marker.x, marker.width);
+				endValues.push(position.x, calculatedWidth);
+			}
+			
+			//handle animating all the markers in one fell swoop.
+			if(this._animation)
+			{
+				this._animation.removeEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+				this._animation.removeEventListener(AnimationEvent.COMPLETE, tweenUpdateHandler);
+				this._animation = null;
+			}
+			
+			//don't animate on livepreview!
+			if(this.isLivePreview || !this.getStyleValue("animationEnabled"))
+			{
+				this.drawMarkers(endValues);
+			}
+			else
+			{
+				var animationDuration:int = this.getStyleValue("animationDuration") as int;
+				var animationEasingFunction:Function = this.getStyleValue("animationEasingFunction") as Function;
+				
+				this._animation = new Animation(animationDuration, startValues, endValues);
+				this._animation.addEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+				this._animation.addEventListener(AnimationEvent.COMPLETE, tweenUpdateHandler);
+				this._animation.easingFunction = animationEasingFunction;
+			}
+		}
+		
+		/**
+		 * @private
+		 * Determines the maximum possible marker size for the containing chart.
+		 */
+		protected function calculateMaximumAllowedMarkerSize(axis:IAxis):Number
+		{
+			var seriesItemSpacing:Number = UIComponentUtil.getStyleValue(UIComponent(this.chart), "seriesItemSpacing") as Number;
+			if(axis is IClusteringAxis)
+			{
+				var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+				var availableHeight:Number = this.height - (IClusteringAxis(axis).clusterCount * seriesItemSpacing *(allSeriesOfType.length - 1));
+				return (availableHeight / IClusteringAxis(axis).clusterCount) / allSeriesOfType.length;
+			}
+			return Number.POSITIVE_INFINITY;
+		}
+		
+		/**
+		 * @private
+		 * Determines the marker size for a series.
+		 */
+		protected function calculateMarkerSize(series:ISeries, axis:IAxis):Number
+		{
+			var markerSize:Number = UIComponentUtil.getStyleValue(UIComponent(series), "markerSize") as Number;
+			var maximumAllowedMarkerSize:Number = this.calculateMaximumAllowedMarkerSize(axis);
+			markerSize = Math.min(maximumAllowedMarkerSize, markerSize);
+			
+			//we need to use floor because CS3 UIComponents round the position
+			markerSize = Math.floor(markerSize);
+			return markerSize;
+		}
+		
+		/**
+		 * @private
+		 * Calculates the sum of the chart's series marker sizes.
+		 */
+		protected function calculateTotalMarkerSize(axis:IAxis, sizes:Array):Number
+		{
+			var totalMarkerSize:Number = 0;
+			var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+			var seriesCount:int = allSeriesOfType.length;
+			var seriesItemSpacing:Number = UIComponentUtil.getStyleValue(UIComponent(this.chart), "seriesItemSpacing") as Number;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:BarSeries = BarSeries(allSeriesOfType[i]);
+				var markerSize:Number = this.calculateMarkerSize(series, axis);
+				sizes.push(markerSize);
+				if(axis is IClusteringAxis)
+				{
+					totalMarkerSize += markerSize;
+				}
+				else
+				{
+					totalMarkerSize = Math.max(totalMarkerSize, markerSize);
+				}
+			}
+			totalMarkerSize += seriesItemSpacing * (seriesCount-1);
+			return totalMarkerSize;
+		}
+		
+		/**
+		 * @private
+		 * Calculates the y offset caused by clustering.
+		 */
+		protected function calculateYOffset(valueAxis:IOriginAxis, otherAxis:IAxis, markerSizes:Array, totalMarkerSize:Number, allSeriesOfType:Array):Number
+		{
+			var seriesIndex:int = allSeriesOfType.indexOf(this);
+			var seriesItemSpacing:Number = UIComponentUtil.getStyleValue(UIComponent(this.chart), "seriesItemSpacing") as Number;
+			var seriesCount:int = allSeriesOfType.length;
+			//special case for axes that allow clustering
+			if(otherAxis is IClusteringAxis)
+			{
+				var yOffset:Number = 0;
+				for(var i:int = 0; i < seriesIndex; i++)
+				{
+					yOffset += markerSizes[i] as Number;
+				}
+				yOffset -= (markerSizes.length - (i+1)) * seriesItemSpacing;
+				//center based on the sum of all marker sizes
+				return -(totalMarkerSize / 2) + yOffset;
+			}
+			//center based on the marker size of this series
+			return -(markerSizes[seriesIndex] as Number) / 2;
+		}
+		
+		/**
+		 * @private
+		 * Determines the origin of the column. Either the axis origin or the
+		 * stacked value.
+		 */
+		protected function calculateOriginValue(index:int, axis:IOriginAxis, allSeriesOfType:Array):Object
+		{
+			return axis.origin;
+		}
+		
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Draws the markers. Used with animation.
+		 */
+		private function drawMarkers(data:Array):void
+		{
+			var itemCount:int = this.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var marker:DisplayObject = this.markers[i] as DisplayObject;
+				var markerX:Number = data[i * 2];
+				var markerWidth:Number = data[i * 2 + 1];
+				marker.x = markerX;
+				marker.width = markerWidth;
+				
+				if(marker is UIComponent) 
+				{
+					UIComponent(marker).drawNow();
+				}
+			}
+		}
+		
+	//--------------------------------------
+	//  Private Event Handlers
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Draws the markers every time the tween updates.
+		 */
+		private function tweenUpdateHandler(event:AnimationEvent):void
+		{
+			var data:Array = event.parameters as Array;
+			this.drawMarkers(data);
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/CartesianSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/CartesianSeries.as
new file mode 100644
index 0000000..af86c9d
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/CartesianSeries.as
@@ -0,0 +1,197 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.fl.charts.legend.LegendItemData;
+	
+	import fl.core.InvalidationType;
+	
+	import flash.events.Event;
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+	
+	/**
+	 * Indicates the value of the visible property. A value of <code>visible</code> indicates <code>true</code>.
+	 * A value of <code>hidden</code> indicates <code>false</code>.
+	 */
+	[Style(name="visibility", type="String")]
+
+	/**
+	 * Functionality common to most series appearing in cartesian charts.
+	 * Generally, a <code>CartesianSeries</code> object shouldn't be
+	 * instantiated directly. Instead, a subclass with a concrete implementation
+	 * should be used.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class CartesianSeries extends Series implements ILegendItemSeries
+	{
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object =
+		{
+			visibility:"visible"
+		};		
+
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------		
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, Series.getStyleDefinition());
+		}		
+		
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function CartesianSeries(data:Object = null)
+		{
+			super(data);
+		}
+	
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Storage for the horizontalField property.
+		 */
+		private var _horizontalField:String;
+		
+		/**
+		 * Defines the property to access when determining the x value.
+		 */
+		public function get horizontalField():String
+		{
+			return this._horizontalField;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalField(value:String):void
+		{
+			if(this._horizontalField != value)
+			{
+				this._horizontalField = value;
+				this.dispatchEvent(new Event("dataChange"));
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalField property.
+		 */
+		private var _verticalField:String;
+		
+		/**
+		 * Defines the property to access when determining the y value.
+		 */
+		public function get verticalField():String
+		{
+			return this._verticalField;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalField(value:String):void
+		{
+			if(this._verticalField != value)
+			{
+				this._verticalField = value;
+				this.dispatchEvent(new Event("dataChange"));
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+	
+		/**
+		 * Indicates whether the series is bound to a primary or secondary axis
+		 */
+		public var axis:String = "primary";
+		
+		/**
+		 * @private
+		 * Storage for showInLegend property
+		 */
+		private var _showInLegend:Boolean = true;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ILegendItemSeries#showInLegend
+		 */
+		public function get showInLegend():Boolean
+		{
+			return this._showInLegend;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set showInLegend(value:Boolean):void
+		{
+			this._showInLegend = value;
+		}	
+		
+		/**
+		 * @private (setter)
+		 */	
+		override public function set visible(value:Boolean):void
+		{
+			super.visible = value;
+			if(this.getStyleValue("visibility") as String == "hidden")
+			{
+				if(this.visible) super.setStyle("visibility", "visible");
+			}
+			else
+			{
+				if(!this.visible) super.setStyle("visibility", "hidden");
+			}
+		}
+		
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ILegendItemSeries#createLegendItemData()
+		 */
+		public function createLegendItemData():LegendItemData
+		{
+			var fillColor:uint = this.getStyleValue("fillColor") != null ? this.getStyleValue("fillColor") as uint : this.getStyleValue("color") as uint;
+			var borderColor:uint = this.getStyleValue("borderColor") != null ? this.getStyleValue("borderColor") as uint : this.getStyleValue("color") as uint;
+			return new LegendItemData(this.displayName, this.getStyleValue("markerSkin"), 
+										fillColor, 
+										this.getStyleValue("fillAlpha") as Number, 
+										borderColor, 
+										this.getStyleValue("borderAlpha") as Number);
+		}
+		
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#setStyle()
+		 */
+		override public function setStyle(style:String, value:Object):void
+		{
+			super.setStyle(style, value);
+			if(style == "visibility")
+			{
+				this.visible = value != "hidden";
+			}
+		}		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/ColumnSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/ColumnSeries.as
new file mode 100644
index 0000000..30d8a26
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/ColumnSeries.as
@@ -0,0 +1,349 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.animation.Animation;
+	import com.yahoo.astra.animation.AnimationEvent;
+	import com.yahoo.astra.fl.charts.*;
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.axes.IClusteringAxis;
+	import com.yahoo.astra.fl.charts.axes.IOriginAxis;
+	import com.yahoo.astra.fl.charts.skins.RectangleSkin;
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	
+	import fl.core.UIComponent;
+	
+	import flash.display.DisplayObject;
+	import flash.geom.Point;
+	import flash.utils.Dictionary;
+
+	/**
+	 * Renders data points as a series of vertical columns.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class ColumnSeries extends CartesianSeries
+	{
+		
+	//--------------------------------------
+	//  Static Variables
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object =
+		{
+			markerSkin: RectangleSkin,
+			markerSize: 18
+		};
+		
+	//--------------------------------------
+	//  Static Methods
+	//--------------------------------------
+			
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, CartesianSeries.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function ColumnSeries(data:Object = null)
+		{
+			super(data);
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * The Animation instance that controls animation in this series.
+		 */
+		private var _animation:Animation;
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		override public function clone():ISeries
+		{
+			var series:ColumnSeries = new ColumnSeries();
+			if(this.dataProvider is Array)
+			{
+				//copy the array rather than pass it by reference
+				series.dataProvider = (this.dataProvider as Array).concat();
+			}
+			else if(this.dataProvider is XMLList)
+			{
+				series.dataProvider = (this.dataProvider as XMLList).copy();
+			}
+			series.displayName = this.displayName;
+			series.horizontalField = this.horizontalField;
+			series.verticalField = this.verticalField;
+			
+			return series;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			super.draw();
+			
+			//if we don't have data, let's get out of here
+			if(!this.dataProvider)
+			{
+				return;
+			}
+			
+			//grab the axes
+			var cartesianChart:CartesianChart = this.chart as CartesianChart;
+			var yAxis:String = this.axis == "primary" ? "verticalAxis" : "secondaryVerticalAxis";
+			var valueAxis:IOriginAxis = cartesianChart[yAxis] as IOriginAxis;
+			var otherAxis:IAxis = cartesianChart.horizontalAxis;
+			if(!valueAxis)
+			{
+				throw new Error("To use a ColumnSeries object, the vertical axis of the chart it appears within must be an IOriginAxis.");
+				return;
+			}
+			
+			var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, cartesianChart);
+			var markerSizes:Array = [];
+			var totalMarkerSize:Number = this.calculateTotalMarkerSize(otherAxis, markerSizes);
+			var seriesIndex:int = allSeriesOfType.indexOf(this);
+			var markerSize:Number = markerSizes[seriesIndex] as Number;
+			var xOffset:Number = this.calculateXOffset(valueAxis, otherAxis, markerSizes, totalMarkerSize, allSeriesOfType);			
+			var seriesItemSpacing:Number = UIComponentUtil.getStyleValue(UIComponent(this.chart), "seriesItemSpacing") as Number;
+
+			var startValues:Array = [];
+			var endValues:Array = [];
+			var itemCount:int = this.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var originValue:Object = this.calculateOriginValue(i, valueAxis, allSeriesOfType);
+				var originPosition:Number = valueAxis.valueToLocal(originValue);
+				
+				var position:Point = IChart(this.chart).itemToPosition(this, i);
+				position.x += (allSeriesOfType.length - 1) * seriesItemSpacing;
+				var marker:DisplayObject = this.markers[i] as DisplayObject;
+
+				marker.x = position.x + xOffset;
+				
+				marker.width = markerSize;
+				
+				//if we have a bad position, don't display the marker
+				if(isNaN(position.x) || isNaN(position.y))
+				{
+					this.invalidateMarker(ISeriesItemRenderer(marker));
+				}
+				else if(this.isMarkerInvalid(ISeriesItemRenderer(marker)))
+				{
+					//initialize the marker to the origin
+					marker.y = originPosition;
+					marker.height = 0;
+				
+					if(marker is UIComponent) 
+					{
+						(marker as UIComponent).drawNow();
+					}
+					this.validateMarker(ISeriesItemRenderer(marker));
+				}
+				
+				//stupid Flash UIComponent rounding!
+				position.y = Math.round(position.y);
+				originPosition = Math.round(originPosition);
+				
+				var calculatedHeight:Number = originPosition - position.y;
+				if(calculatedHeight < 0)
+				{
+					calculatedHeight = Math.abs(calculatedHeight);
+					position.y = Math.round(originPosition);
+					//always put the marker on the origin
+					marker.y = position.y;
+				}
+				
+				startValues.push(marker.y, marker.height);
+				endValues.push(position.y, calculatedHeight);
+			}
+			
+			//handle animating all the markers in one fell swoop.
+			if(this._animation)
+			{
+				this._animation.removeEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+				this._animation.removeEventListener(AnimationEvent.COMPLETE, tweenUpdateHandler);
+				this._animation = null;
+			}
+			
+			//don't animate on livepreview!
+			if(this.isLivePreview || !this.getStyleValue("animationEnabled"))
+			{
+				this.drawMarkers(endValues);
+			}
+			else
+			{
+				var animationDuration:int = this.getStyleValue("animationDuration") as int;
+				var animationEasingFunction:Function = this.getStyleValue("animationEasingFunction") as Function;
+				
+				this._animation = new Animation(animationDuration, startValues, endValues);
+				this._animation.addEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+				this._animation.addEventListener(AnimationEvent.COMPLETE, tweenUpdateHandler);
+				this._animation.easingFunction = animationEasingFunction;
+			}
+		}
+		
+		/**
+		 * @private
+		 * Calculates the x offset caused by clustering.
+		 */
+		protected function calculateXOffset(valueAxis:IOriginAxis, otherAxis:IAxis, markerSizes:Array, totalMarkerSize:Number, allSeriesOfType:Array):Number
+		{
+			var seriesIndex:int = allSeriesOfType.indexOf(this);
+			var seriesItemSpacing:Number = UIComponentUtil.getStyleValue(UIComponent(this.chart), "seriesItemSpacing") as Number;
+
+			//special case for axes that allow clustering
+			if(otherAxis is IClusteringAxis)
+			{
+				var xOffset:Number = 0;
+				for(var i:int = 0; i < seriesIndex; i++)
+				{
+					xOffset += markerSizes[i] as Number;
+				}
+				xOffset -= (markerSizes.length - (i+1)) * seriesItemSpacing;
+
+				//center based on the sum of all marker sizes
+				return -(totalMarkerSize / 2) + xOffset;
+			}
+			//center based on the marker size of this series
+			return -(markerSizes[seriesIndex] as Number) / 2;
+		}
+		
+		/**
+		 * @private
+		 * Calculates the sum of the chart's series marker sizes.
+		 */
+		protected function calculateTotalMarkerSize(axis:IAxis, sizes:Array):Number
+		{
+			var totalMarkerSize:Number = 0;
+			var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+			var seriesCount:int = allSeriesOfType.length;
+			var seriesItemSpacing:Number = UIComponentUtil.getStyleValue(UIComponent(this.chart), "seriesItemSpacing") as Number;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:ColumnSeries = ColumnSeries(allSeriesOfType[i]);
+				var markerSize:Number = this.calculateMarkerSize(series, axis);
+
+				sizes.push(markerSize);
+				if(axis is IClusteringAxis)
+				{
+					totalMarkerSize += markerSize;
+				}
+				else
+				{
+					totalMarkerSize = Math.max(totalMarkerSize, markerSize);
+				}
+			}
+			totalMarkerSize += seriesItemSpacing * (seriesCount-1);
+			return totalMarkerSize;
+		}
+		
+		/**
+		 * @private
+		 * Determines the marker size for a series.
+		 */
+		protected function calculateMarkerSize(series:ISeries, axis:IAxis):Number
+		{
+			var markerSize:Number = UIComponentUtil.getStyleValue(UIComponent(series), "markerSize") as Number;
+			var maximumAllowedMarkerSize:Number = this.calculateMaximumAllowedMarkerSize(axis);
+			
+			markerSize = Math.min(maximumAllowedMarkerSize, markerSize);
+			//we need to use floor because CS3 UIComponents round the position
+			markerSize = Math.floor(markerSize);
+			return markerSize;
+		}
+		
+		/**
+		 * @private
+		 * Determines the maximum possible marker size for the containing chart.
+		 */
+		protected function calculateMaximumAllowedMarkerSize(axis:IAxis):Number
+		{
+			var seriesItemSpacing:Number = UIComponentUtil.getStyleValue(UIComponent(this.chart), "seriesItemSpacing") as Number;
+			if(axis is IClusteringAxis)
+			{
+				var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+				var availableWidth:Number = this.width - (IClusteringAxis(axis).clusterCount * seriesItemSpacing *(allSeriesOfType.length - 1));
+				return ((availableWidth / IClusteringAxis(axis).clusterCount) / allSeriesOfType.length);			
+			}
+			return Number.POSITIVE_INFINITY;
+		}
+		
+		/**
+		 * @private
+		 * Determines the origin of the column. Either the axis origin or the
+		 * stacked value.
+		 */
+		protected function calculateOriginValue(index:int, axis:IOriginAxis, allSeriesOfType:Array):Object
+		{
+			return axis.origin;
+		}
+		
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Draws the markers. Used with animation.
+		 */
+		private function drawMarkers(data:Array):void
+		{
+			var itemCount:int = this.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var marker:DisplayObject = this.markers[i] as DisplayObject;
+				var markerY:Number = data[i * 2];
+				var markerHeight:Number = data[i * 2 + 1];
+				marker.y = markerY;
+				marker.height = markerHeight;
+				
+				if(marker is UIComponent) 
+				{
+					UIComponent(marker).drawNow();
+				}
+			}
+		}
+		
+	//--------------------------------------
+	//  Private Event Handlers
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Draws the markers every time the tween updates.
+		 */
+		private function tweenUpdateHandler(event:AnimationEvent):void
+		{
+			var data:Array = event.parameters as Array;
+			this.drawMarkers(data);
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/ICategorySeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/ICategorySeries.as
new file mode 100644
index 0000000..23b4556
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/ICategorySeries.as
@@ -0,0 +1,53 @@
+package com.yahoo.astra.fl.charts.series
+{
+	/**
+	 * Defines functions and properties for an ISeries that relies on categories.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.legend.ILegend
+	 * @see com.yahoo.astra.fl.charts.legend.LegendItemData
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface ICategorySeries extends ISeries
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The field used to access categories for this series.
+		 */
+		function get categoryField():String
+		
+		/**
+		 * @private
+		 */
+		function set categoryField(value:String):void;
+		
+		/**
+		 * The names of the categories displayed on the category axis. If the
+		 * chart does not have a category axis, this value will be ignored.
+		 */
+		function get categoryNames():Array;
+		
+		/**
+		 * @private
+		 */
+		function set categoryNames(value:Array):void
+		
+	//--------------------------------------
+	//  Methods
+	//--------------------------------------
+	
+		/**
+		 * Creates an Array of LegendItemData objects to pass to the chart's legend.
+		 */
+		function createLegendItemData():Array
+		
+		/**
+		 * Determines the category to which the item belongs.
+		 */
+		function itemToCategory(item:Object, index:int):String;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/ILegendItemSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/ILegendItemSeries.as
new file mode 100644
index 0000000..f92a191
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/ILegendItemSeries.as
@@ -0,0 +1,39 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.fl.charts.legend.LegendItemData;
+	
+	/**
+	 * A series type that can create data for a legend.
+	 * 
+	 * @see com.yahoo.astra.fl.charts.legend.ILegend
+	 * @see com.yahoo.astra.fl.charts.legend.LegendItemData
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface ILegendItemSeries extends ISeries
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------		
+	
+		/**
+		 * When a Legend is present, indicates whether the series will show in the legend.
+		 */
+		function get showInLegend():Boolean;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set showInLegend(value:Boolean):void;		
+		
+	//--------------------------------------
+	//  Methods
+	//--------------------------------------
+	
+		/**
+		 * Creates a LegendItemData object to pass to the chart's legend.
+		 */
+		function createLegendItemData():LegendItemData	
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/ISeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/ISeries.as
new file mode 100644
index 0000000..57fcb43
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/ISeries.as
@@ -0,0 +1,115 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.fl.charts.Chart;
+	import com.yahoo.astra.fl.charts.IChart;
+	
+	import flash.events.IEventDispatcher;
+	
+	//--------------------------------------
+	//  Events
+	//--------------------------------------
+
+	/**
+	 * Dispatched when the data property for an ISeries changes.
+	 */
+	[Event(name="dataChange", type="flash.events.Event")]
+	
+	/**
+	 * A renderer for a series displayed on a chart.
+	 * 
+	 * <p>Important: Must be a subclass of DisplayObject</p>
+	 * 
+	 * @see flash.display.DisplayObject
+	 * @author Josh Tynjala
+	 */
+	public interface ISeries extends IEventDispatcher
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * The chart in which this series appears.
+		 */
+		function get chart():Object;
+		
+		/**
+		 * @private
+		 */
+		function set chart(value:Object):void;
+		
+		/**
+		 * The data provider for this series. Accepts <code>Array</code> or <code>XMLList</code> objects.
+		 */
+		function get dataProvider():Object;
+		
+		/**
+		 * @private
+		 */
+		function set dataProvider(value:Object):void;
+		
+		/**
+		 * The name of the series as it appears to the user.
+		 */
+		function get displayName():String;
+		
+		/**
+		 * @private
+		 */
+		function set displayName(value:String):void;
+		
+		/**
+		 * The number of items in the series.
+		 */
+		function get length():int;
+		
+		/**
+		 * DataTip Function for series
+		 */
+		function get dataTipFunction():Function;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set dataTipFunction(value:Function):void;		
+		
+		/**
+		 * If defined, the chart will call the input function to determine the text displayed in 
+		 * in the chart's legend.
+		 */
+		function get legendLabelFunction():Function;
+		
+		/**
+		 * @private (setter)
+		 */
+		function set legendLabelFunction(value:Function):void;
+		
+	//--------------------------------------
+	//  Methods
+	//--------------------------------------
+		
+		/**
+		 * Creates a copy of the ISeries object.
+		 * 
+		 * @return a new ISeries object
+		 */
+		function clone():ISeries;
+		
+		/**
+		 * Returns the index of an item renderer.
+		 * 
+		 * @param renderer The renderer whose index is to be returned.
+		 * @return The index of the renderer.
+		 */
+		function itemRendererToIndex(renderer:ISeriesItemRenderer):int;
+		
+		/**
+		 * Converts an item to its corresponding item renderer.
+		 * 
+		 * @param item The item from the dataProvider to be converted to a renderer.
+		 * @return The renderer that corresponds to the item.
+		 */
+		function itemToItemRenderer(item:Object):ISeriesItemRenderer;
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/ISeriesItemRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/series/ISeriesItemRenderer.as
new file mode 100644
index 0000000..946d10c
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/ISeriesItemRenderer.as
@@ -0,0 +1,43 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import flash.events.IEventDispatcher;
+	
+	/**
+	 * A renderer for an item in a series on a chart.
+	 * 
+	 * <p>Important: Must be a subclass of <code>DisplayObject</code></p>
+	 * 
+	 * @see flash.display.DisplayObject
+	 * @author Josh Tynjala
+	 */
+	public interface ISeriesItemRenderer extends IEventDispatcher
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The data provider for the item that this item renderer represents.
+		 * Custom implementations of <code>ISeriesItemRenderer</code>
+		 * may use this property to render additional information for
+		 * the user.
+		 */
+		function get data():Object;
+		
+		/**
+		 * @private
+		 */
+		function set data(value:Object):void;	
+		
+		/**
+		 * The series data that is displayed by this renderer.
+		 */
+		function get series():ISeries;
+		
+		/**
+		 * @private
+		 */
+		function set series(value:ISeries):void;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/IStackedSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/IStackedSeries.as
new file mode 100644
index 0000000..4a3dbdf
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/IStackedSeries.as
@@ -0,0 +1,11 @@
+package com.yahoo.astra.fl.charts.series
+{
+	/**
+	 * A type of series that supports stacking.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IStackedSeries extends ISeries
+	{
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/LineSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/LineSeries.as
new file mode 100644
index 0000000..8e90085
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/LineSeries.as
@@ -0,0 +1,495 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.animation.Animation;
+	import com.yahoo.astra.animation.AnimationEvent;
+	import com.yahoo.astra.fl.charts.*;
+	import com.yahoo.astra.fl.charts.axes.NumericAxis;
+	import com.yahoo.astra.fl.charts.skins.CircleSkin;
+	import com.yahoo.astra.utils.GraphicsUtil;
+	
+	import fl.core.UIComponent;
+	
+	import flash.display.DisplayObject;
+	import flash.geom.Point;
+	import flash.geom.Rectangle;
+	
+	/**
+     * The weight, in pixels, of the line drawn between points in this series.
+     *
+     * @default 3
+     */
+    [Style(name="lineWeight", type="Number")]
+	
+	/**
+     * If true, lines are drawn between the markers. If false, only the markers are drawn.
+     *
+     * @default true
+     */
+    [Style(name="connectPoints", type="Boolean")]
+	
+	/**
+     * If true, draws a dashed line between discontinuous points.
+     *
+     * @default false
+     */
+    [Style(name="connectDiscontinuousPoints", type="Boolean")]
+	
+	/**
+     * The length of dashes in a discontinuous line. 
+     *
+     * @default 10
+     */
+    [Style(name="discontinuousDashLength", type="Number")]
+	
+	/**
+     * If true, the series will include a fill under the line, extending to the axis.
+     *
+     * @default false
+     */
+    [Style(name="showAreaFill", type="Boolean")]
+	
+	/**
+     * The alpha value of the area fill.
+     *
+     * @default 0.6
+     */
+    [Style(name="areaFillAlpha", type="Number")]
+    
+	/**
+	 * Renders data points as a series of connected line segments.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class LineSeries extends CartesianSeries
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object =
+		{
+			markerSkin: CircleSkin,
+			lineWeight: 3,
+			connectPoints: true,
+			connectDiscontinuousPoints: false,
+			discontinuousDashLength: 10,
+			showAreaFill: false,
+			areaFillAlpha: 0.6
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, CartesianSeries.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 *  Constructor.
+		 */
+		public function LineSeries(data:Object = null)
+		{
+			super(data);
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * The Animation instance that controls animation in this series.
+		 */
+		private var _animation:Animation;
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		override public function clone():ISeries
+		{
+			var series:LineSeries = new LineSeries();
+			if(this.dataProvider is Array)
+			{
+				//copy the array rather than pass it by reference
+				series.dataProvider = (this.dataProvider as Array).concat();
+			}
+			else if(this.dataProvider is XMLList)
+			{
+				series.dataProvider = (this.dataProvider as XMLList).copy();
+			}
+			series.displayName = this.displayName;
+			series.horizontalField = this.horizontalField;
+			series.verticalField = this.verticalField;
+			
+			return series;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			super.draw();
+			
+			this.graphics.clear();
+			
+			if(!this.dataProvider)
+			{
+				return;
+			}
+			
+			var markerSize:Number = this.getStyleValue("markerSize") as Number;
+			
+			var startValues:Array = [];
+			var endValues:Array = [];
+			var itemCount:int = this.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var position:Point = CartesianChart(this.chart).itemToPosition(this, i);
+				
+				var marker:DisplayObject = this.markers[i] as DisplayObject;
+				var ratio:Number = marker.width / marker.height;
+				if(isNaN(ratio)) ratio = 1;
+				marker.height = markerSize;
+				marker.width = marker.height * ratio;
+				
+				if(marker is UIComponent) 
+				{
+					(marker as UIComponent).drawNow();
+				}
+				
+				//if we have a bad position, don't display the marker
+				if(isNaN(position.x) || isNaN(position.y))
+				{
+					this.invalidateMarker(ISeriesItemRenderer(marker));
+				}
+				else if(this.isMarkerInvalid(ISeriesItemRenderer(marker)))
+				{
+					marker.x = position.x - marker.width / 2;
+					marker.y = position.y - marker.height / 2;
+					this.validateMarker(ISeriesItemRenderer(marker));
+				}
+				
+				//correct start value for marker size
+				startValues.push(marker.x + marker.width / 2);
+				startValues.push(marker.y + marker.height / 2);
+				
+				endValues.push(position.x);
+				endValues.push(position.y);
+			}
+			
+			//handle animating all the markers in one fell swoop.
+			if(this._animation)
+			{
+				this._animation.removeEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+				this._animation.removeEventListener(AnimationEvent.COMPLETE, tweenUpdateHandler);
+				this._animation = null;
+			}
+			
+			//don't animate on livepreview!
+			if(this.isLivePreview || !this.getStyleValue("animationEnabled"))
+			{
+				this.drawMarkers(endValues);
+			}
+			else
+			{
+				var animationDuration:int = this.getStyleValue("animationDuration") as int;
+				var animationEasingFunction:Function = this.getStyleValue("animationEasingFunction") as Function;
+				
+				this._animation = new Animation(animationDuration, startValues, endValues);
+				this._animation.addEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+				this._animation.addEventListener(AnimationEvent.COMPLETE, tweenUpdateHandler);
+				this._animation.easingFunction = animationEasingFunction;
+				this.drawMarkers(startValues);
+			}
+		}
+		
+		/**
+		 * @private
+		 */
+		private function tweenUpdateHandler(event:AnimationEvent):void
+		{
+			this.drawMarkers(event.parameters as Array);
+		}
+		
+		/**
+		 * @private
+		 */
+		private function drawMarkers(data:Array):void
+		{
+			var primaryIsVertical:Boolean = true;
+			var yAxis:String = this.axis == "primary" ? "verticalAxis" : "secondaryVerticalAxis";
+			var primaryAxis:NumericAxis = CartesianChart(this.chart)[yAxis] as NumericAxis;
+
+			if(!primaryAxis)
+			{
+				var xAxis:String = this.axis == "primary" ? "horizontalAxis" : "secondaryHorizontalAxis";
+				primaryIsVertical = false;
+				primaryAxis = CartesianChart(this.chart)[xAxis] as NumericAxis;
+			}
+			
+			var originPosition:Number = primaryAxis.valueToLocal(primaryAxis.origin);
+			
+			var lineColor:uint = this.getStyleValue("lineColor") != null ? this.getStyleValue("lineColor") as uint : this.getStyleValue("color") as uint;
+			var connectDiscontinuousPoints:Boolean = this.getStyleValue("connectDiscontinuousPoints") as Boolean;
+			var discontinuousDashLength:Number = this.getStyleValue("discontinuousDashLength") as Number;
+			var showAreaFill:Boolean = this.getStyleValue("showAreaFill") as Boolean;
+			
+			this.graphics.clear();
+			this.setPrimaryLineStyle();
+			this.beginAreaFill(showAreaFill, lineColor);
+			
+			var firstValidPosition:Point;
+			var lastValidPosition:Point;
+			
+			//used to determine if the data must be drawn
+			var seriesBounds:Rectangle = new Rectangle(0, 0, this.width, this.height);
+			var lastMarkerValid:Boolean = false;
+			var itemCount:int = this.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var marker:DisplayObject = DisplayObject(this.markers[i]);
+				var xPosition:Number = data[i * 2] as Number;
+				var yPosition:Number = data[i * 2 + 1] as Number;
+
+				var markerValid:Boolean = !this.isMarkerInvalid(ISeriesItemRenderer(marker));
+				
+				//if the position is valid, move or draw as needed
+				if(markerValid)
+				{
+					marker.x = xPosition - marker.width / 2;
+					marker.y = yPosition - marker.height / 2;
+					marker.visible = yPosition <= seriesBounds.height + seriesBounds.y && yPosition >= seriesBounds.y;
+					
+					if(lastValidPosition && !lastMarkerValid && connectDiscontinuousPoints)
+					{
+						this.setPrimaryLineStyle(connectDiscontinuousPoints);
+			
+						//draw a discontinuous line from the last valid position and the new valid position
+						GraphicsUtil.drawDashedLine(this.graphics, lastValidPosition.x, lastValidPosition.y, xPosition, yPosition, discontinuousDashLength, discontinuousDashLength);
+						
+						this.setPrimaryLineStyle();
+					}
+					else if(!lastValidPosition || (!lastMarkerValid && !connectDiscontinuousPoints))
+					{
+						//if the last position is not valid, simply move to the new position
+						var newY:Number = yPosition;
+						if(yPosition < seriesBounds.y) 
+						{
+							newY = seriesBounds.y;
+						}
+						if(yPosition > seriesBounds.y + seriesBounds.height) 
+						{
+							newY = seriesBounds.y + seriesBounds.height;
+						}
+
+						this.graphics.moveTo(xPosition, newY);
+					}
+					else //current and last position are both valid
+					{
+						var minX:Number = Math.min(lastValidPosition.x, xPosition);
+						var maxX:Number = Math.max(lastValidPosition.x, xPosition);
+						var minY:Number = Math.min(lastValidPosition.y, yPosition);
+						var maxY:Number = Math.max(lastValidPosition.y, yPosition);
+						var lineBounds:Rectangle = new Rectangle(minX, minY, maxX - minX, maxY - minY);
+						
+						//if x or y position is equal between points, the rectangle will have
+						//a width or height of zero (so no line will be drawn where one should!)
+						if(lineBounds.width == 0)
+						{
+							lineBounds.width = 1;
+						}
+						
+						if(lineBounds.height == 0)
+						{
+							lineBounds.height = 1;
+						}
+						
+						var bottom:Number = seriesBounds.y + seriesBounds.height;
+
+						//if line between the last point and this point is within
+						//the series bounds, draw it, otherwise, only move to the new point.
+						if(lineBounds.intersects(seriesBounds) ||
+							yPosition == seriesBounds.y ||
+							yPosition == seriesBounds.y + seriesBounds.height ||
+							xPosition == seriesBounds.x ||
+							xPosition == seriesBounds.x + seriesBounds.width ||
+							showAreaFill)
+						{
+							var x1:Number = lastValidPosition.x;
+							var x2:Number = xPosition;
+							var y1:Number = lastValidPosition.y;
+							var y2:Number = yPosition;
+							if(yPosition > bottom)
+							{	
+								if(lastValidPosition.y == yPosition)
+								{
+									this.graphics.lineTo(xPosition, bottom);
+								}
+								else
+								{
+									if(lastValidPosition.y < seriesBounds.y) 
+									{
+										newX = x2 - ((y2 - seriesBounds.y)*(x2-x1)/(y2-y1));
+										this.graphics.lineTo(newX, seriesBounds.y);
+										this.setPrimaryLineStyle();
+									}
+									var newX:Number = x2 - ((y2 - bottom)*(x2-x1)/(y2-y1));
+									this.graphics.lineTo(newX, bottom);
+								}
+								this.graphics.lineStyle(0, 0, 0);
+							}
+							else if(yPosition < seriesBounds.y)
+							{
+								if(lastValidPosition.y == yPosition)
+								{
+									this.graphics.lineTo(xPosition, seriesBounds.y);
+								}
+								else
+								{										
+									if(lastValidPosition.y > bottom) 
+									{
+										newX = x2 - ((y2 - bottom)*(x2-x1)/(y2-y1));	
+										this.graphics.lineTo(newX, bottom);
+										this.setPrimaryLineStyle();
+									}
+													
+									newX = x2 - ((y2 - seriesBounds.y)*(x2-x1)/(y2-y1));
+									if(lastValidPosition.y < seriesBounds.y) this.graphics.lineStyle(0, 0, 0);
+									this.graphics.lineTo(newX, seriesBounds.y);
+								}
+								this.graphics.lineStyle(0, 0, 0);
+							}
+							else
+							{	
+								if(lastValidPosition.y > bottom) 
+								{
+									newX = x2 - ((y2 - bottom)*(x2-x1)/(y2-y1));	
+									this.graphics.lineTo(newX, bottom);
+									this.setPrimaryLineStyle();
+								}
+						
+								if(lastValidPosition.y < seriesBounds.y)
+								{
+									newX = x2 - ((y2 - seriesBounds.y)*(x2-x1)/(y2-y1));							
+									this.graphics.lineTo(newX, seriesBounds.y);
+									this.setPrimaryLineStyle();									
+								}
+
+								this.graphics.lineTo(xPosition, yPosition);
+							}	
+						}
+						else
+						{
+							this.graphics.moveTo(xPosition, yPosition);
+						}						
+					}
+					lastMarkerValid = true;
+					lastValidPosition = new Point(xPosition, yPosition);
+					if(!firstValidPosition)
+					{
+						firstValidPosition = lastValidPosition.clone();
+					}
+				}
+				else
+				{
+					if(showAreaFill) this.closeAreaFill(primaryIsVertical, originPosition, firstValidPosition, lastValidPosition);
+					this.setPrimaryLineStyle();
+					this.beginAreaFill(showAreaFill, lineColor);
+					lastMarkerValid = false;
+					firstValidPosition = null;
+				}
+				
+			}
+			
+			if(showAreaFill)
+			{
+				this.closeAreaFill(primaryIsVertical, originPosition, firstValidPosition, lastValidPosition);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Begins drawing an area fill.
+		 */
+		private function beginAreaFill(showAreaFill:Boolean, color:uint):void
+		{
+			if(!showAreaFill)
+			{
+				return;
+			}
+			
+			var areaFillAlpha:Number = this.getStyleValue("areaFillAlpha") as Number;
+			this.graphics.beginFill(color, areaFillAlpha);
+		}
+		
+		/**
+		 * @private
+		 * Sets the line style when connecting points. The forceColor flag
+		 * will use the color even when the connectPoints style is set to false.
+		 * This is used primarily to allow connectDiscontinousPoints to work
+		 * when connectPoints is false.
+		 */
+		private function setPrimaryLineStyle(forceColor:Boolean = false):void
+		{
+			var connectPoints:Boolean = this.getStyleValue("connectPoints") as Boolean;
+			if(!connectPoints && !forceColor)
+			{
+				this.graphics.lineStyle(0, 0, 0);
+				return;
+			}
+			
+			var lineWeight:int = this.getStyleValue("lineWeight") as int;
+			var lineColor:uint = this.getStyleValue("lineColor") != null ? this.getStyleValue("lineColor") as uint : this.getStyleValue("color") as uint;
+			var lineAlpha:Number = this.getStyleValue("lineAlpha") as Number;
+			this.graphics.lineStyle(lineWeight, lineColor, lineAlpha, false, "normal", "none");
+		}
+		
+		/**
+		 * @private
+		 * Closes an area fill. Called after the full line is drawn. May also be
+		 * called when bad data is encountered.
+		 */
+		private function closeAreaFill(vertical:Boolean, origin:Number, firstValidPosition:Point, lastValidPosition:Point):void
+		{
+			if(isNaN(origin) || firstValidPosition == null || lastValidPosition == null) return;
+			this.graphics.lineStyle(0, 0, 0);
+			if(vertical)
+			{
+				this.graphics.lineTo(lastValidPosition.x, origin);
+				this.graphics.lineTo(firstValidPosition.x, origin);
+				this.graphics.lineTo(firstValidPosition.x, firstValidPosition.y);
+			}
+			else
+			{
+				this.graphics.lineTo(origin, lastValidPosition.y);
+				this.graphics.lineTo(origin, firstValidPosition.y);
+				this.graphics.lineTo(firstValidPosition.x, firstValidPosition.y);
+			}
+			this.graphics.endFill();
+		}	
+		
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/PieSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/PieSeries.as
new file mode 100644
index 0000000..96e4be6
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/PieSeries.as
@@ -0,0 +1,767 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.animation.Animation;
+	import com.yahoo.astra.animation.AnimationEvent;
+	import com.yahoo.astra.fl.charts.PieChart;
+	import com.yahoo.astra.fl.charts.legend.LegendItemData;
+	import com.yahoo.astra.fl.charts.skins.RectangleSkin;
+	import com.yahoo.astra.utils.GeomUtil;
+	import com.yahoo.astra.utils.GraphicsUtil;
+	import com.yahoo.astra.utils.NumberUtil;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	
+	import flash.display.Shape;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.geom.Point;
+	import flash.text.TextField;
+	import flash.text.TextFieldAutoSize;
+	import flash.text.TextFormat;
+	import flash.text.TextFormatAlign;
+		
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+
+	/**
+     * The colors of the markers in this series.
+     *
+     * @default [0x729fcf, 0xfcaf3e, 0x73d216, 0xfce94f, 0xad7fa8, 0x3465a4]
+     */
+    [Style(name="fillColors", type="Array")]
+
+	/**
+     * If true, a label is displayed on each marker. The label text is created
+     * with the labelFunction property of the series. The default label function
+     * sets the label to the percentage value of the item.
+     *
+     * @default false
+     * @see PieSeries#labelFunction
+     */
+    [Style(name="showLabels", type="Boolean")]
+
+	/**
+     * If true, marker labels that overlap previously-created labels will be
+     * hidden to improve readability.
+     *
+     * @default true
+     */
+    [Style(name="hideOverlappingLabels", type="Boolean")]
+    
+	/**
+	 * Renders data points as a series of pie-like wedges.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class PieSeries extends Series implements ICategorySeries
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{	
+			fillColors:
+			[
+				0x00b8bf, 0x8dd5e7, 0xc0fff6, 0xffa928, 0xedff9f, 0xd00050,
+				0xc6c6c6, 0xc3eafb, 0xfcffad, 0xcfff83, 0x444444, 0x4d95dd,
+				0xb8ebff, 0x60558f, 0x737d7e, 0xa64d9a, 0x8e9a9b, 0x803e77
+			],
+			borderColors:
+			[
+				0x00b8bf, 0x8dd5e7, 0xc0fff6, 0xffa928, 0xedff9f, 0xd00050,
+				0xc6c6c6, 0xc3eafb, 0xfcffad, 0xcfff83, 0x444444, 0x4d95dd,
+				0xb8ebff, 0x60558f, 0x737d7e, 0xa64d9a, 0x8e9a9b, 0x803e77
+			],			
+			fillAlphas: [1.0],
+			borderAlphas: [0.0],
+			markerSkins: [RectangleSkin],
+			showLabels: false,
+			hideOverlappingLabels: true
+			//see textFormat default style defined in constructor below
+			//works around stylemanager global style bug!
+		};
+		
+		/**
+		 * @private
+		 */
+		private static const RENDERER_STYLES:Object = 
+		{
+			fillColor: "fillColors",
+			fillAlpha: "fillAlphas",
+			borderColor: "borderColors",
+			borderAlpha: "borderAlphas",
+			skin: "markerSkins"
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, Series.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function PieSeries(data:Object = null)
+		{
+			super(data);
+			//we have to set this as an instance style because textFormat is
+			//defined as a global style in StyleManager, and that takes
+			//precedence over shared/class styles
+			this.setStyle("textFormat", new TextFormat("_sans", 11, 0x000000, true, false, false, "", "", TextFormatAlign.LEFT, 0, 0, 0, 0));
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * The text fields used to display labels over each marker.
+		 */
+		protected var labels:Array = [];
+		
+		/**
+		 * @private
+		 * Holds the labels created by the previous redraw so that they can
+		 * be reused.
+		 */
+		protected var labelsCache:Array;
+		
+		/**
+		 * @private
+		 * Storage for the masks that define the shapes of the markers.
+		 */
+		protected var markerMasks:Array = [];
+		
+		/**
+		 * @private
+		 * The Animation instance that controls animation in this series.
+		 */
+		private var _animation:Animation;
+		
+		/**
+		 * @private
+		 */
+		private var _previousData:Array = [];
+		
+		/**
+		 * @private
+		 * Storage for the dataField property.
+		 */
+		private var _dataField:String;
+		
+		/**
+		 * The field used to access data for this series.
+		 */
+		public function get dataField():String
+		{
+			return this._dataField;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set dataField(value:String):void
+		{
+			if(this._dataField != value)
+			{
+				this._dataField = value;
+				this.dispatchEvent(new Event("dataChange"));
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the categoryField property.
+		 */
+		private var _categoryField:String;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ICategorySeries#categoryField
+		 */
+		public function get categoryField():String
+		{
+			return this._categoryField;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set categoryField(value:String):void
+		{
+			if(this._categoryField != value)
+			{
+				this._categoryField = value;
+				this.dispatchEvent(new Event("dataChange"));
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the categoryNames property.
+		 */
+		private var _categoryNames:Array;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ICategorySeries#categoryNames
+		 */
+		public function get categoryNames():Array
+		{
+			return this._categoryNames;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set categoryNames(value:Array):void
+		{
+			this._categoryNames = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the labelFunction property.
+		 */
+		private var _labelFunction:Function = defaultLabelFunction;
+		
+		/**
+		 * A function may be set to determine the text value of the labels.
+		 * 
+		 * <pre>function labelFunction(item:Object):String</pre>
+		 */
+		public function get labelFunction():Function
+		{
+			return this._labelFunction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set labelFunction(value:Function):void
+		{
+			this._labelFunction = value;
+			this.invalidate();
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		override public function clone():ISeries
+		{
+			var series:PieSeries = new PieSeries();
+			if(this.dataProvider is Array)
+			{
+				//copy the array rather than pass it by reference
+				series.dataProvider = (this.dataProvider as Array).concat();
+			}
+			else if(this.dataProvider is XMLList)
+			{
+				series.dataProvider = (this.dataProvider as XMLList).copy();
+			}
+			series.displayName = this.displayName;
+			
+			return series;
+		}
+		
+		/**
+		 * Converts an item to it's value.
+		 */
+		public function itemToData(item:Object):Number
+		{
+			var primaryDataField:String = PieChart(this.chart).seriesToDataField(this);
+			if(primaryDataField)
+			{
+				return Number(item[primaryDataField]);
+			}
+			return Number(item);
+		}
+		
+		/**
+		 * Converts an item to the category in which it is displayed.
+		 */
+		public function itemToCategory(item:Object, index:int):String
+		{
+			var primaryCategoryField:String = PieChart(this.chart).seriesToCategoryField(this);
+			if(primaryCategoryField)
+			{
+				return item[primaryCategoryField];
+			}
+			
+			if(this._categoryNames && index >= 0 && index < this._categoryNames.length)
+			{
+				return this._categoryNames[index];
+			}
+			return index.toString();
+		}
+		
+		/**
+		 * Converts an item's value to its percentage equivilent.
+		 */
+		public function itemToPercentage(item:Object):Number
+		{
+			var totalValue:Number = this.calculateTotalValue();
+			if(totalValue == 0)
+			{
+				return 0;
+			}
+			return 100 * (this.itemToData(item) / totalValue);
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function createLegendItemData():Array
+		{
+			var items:Array = [];
+			var markerSkins:Array = this.getStyleValue("markerSkins") as Array;
+			var fillColors:Array = this.getStyleValue("fillColors") as Array;
+			var legendItemCount:int = this.length;
+			for(var i:int = 0; i < legendItemCount; i++)
+			{
+				var item:Object = this.dataProvider[i];
+				var categoryName:String = this.itemToCategory(item, i);
+				var markerSkin:Object = markerSkins[i % markerSkins.length]
+				var fillColor:uint = fillColors[i % fillColors.length];
+				var data:LegendItemData = new LegendItemData(categoryName, markerSkin, fillColor, 1, fillColor, 1);
+				items.push(data);
+			}
+			return items;			
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			var stylesInvalid:Boolean = this.isInvalid(InvalidationType.STYLES);
+			var sizeInvalid:Boolean = this.isInvalid(InvalidationType.SIZE);
+			var dataInvalid:Boolean = this.isInvalid(InvalidationType.DATA);
+			
+			super.draw();
+			
+			this.drawMarkers(stylesInvalid, sizeInvalid);
+			
+			var showLabels:Boolean = this.getStyleValue("showLabels") as Boolean;
+			this.createLabelCache();
+			if(showLabels)
+			{
+				this.drawLabels();
+			}
+			this.clearLabelCache();
+			
+			this.beginAnimation();
+		}
+		
+		/**
+		 * @private
+		 * All markers are removed from the display list.
+		 */
+		override protected function removeAllMarkers():void
+		{
+			super.removeAllMarkers();
+			var markerCount:int = this.markerMasks.length;
+			for(var i:int = 0; i < markerCount; i++)
+			{
+				var mask:Shape = this.markerMasks.pop() as Shape;
+				this.removeChild(mask);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Add or remove markers as needed. current markers will be reused.
+		 */
+		override protected function refreshMarkers():void
+		{
+			super.refreshMarkers();
+			
+			var itemCount:int = this.length;
+			var difference:int = itemCount - this.markerMasks.length;
+			if(difference > 0)
+			{
+				for(var i:int = 0; i < difference; i++)
+				{
+					var mask:Shape = new Shape();
+					this.addChild(mask);
+					this.markerMasks.push(mask);
+					
+					var marker:Sprite = this.markers[i + (itemCount-difference)] as Sprite;
+					marker.mask = mask;
+					marker.width = this.width;
+					marker.height = this.height;
+				}
+			}
+			else if(difference < 0)
+			{
+				difference = Math.abs(difference);
+				for(i = 0; i < difference; i++)
+				{
+					mask = this.markerMasks.pop() as Shape;
+					this.removeChild(mask);
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * The default function called to initialize the text on the marker
+		 * labels.
+		 */
+		protected function defaultLabelFunction(item:Object):String
+		{
+			var percentage:Number = this.itemToPercentage(item);
+			return (percentage < 0.01 ? "< 0.01" : NumberUtil.roundToNearest(percentage, 0.01)) + "%";
+		}
+		
+		/**
+		 * @private
+		 * Draws the markers in this series.
+		 */
+		protected function drawMarkers(stylesInvalid:Boolean, sizeInvalid:Boolean):void
+		{
+			var markerCount:int = this.markers.length;
+			for(var i:int = 0; i < markerCount; i++)
+			{
+				var marker:UIComponent = UIComponent(this.markers[i]);
+				
+				if(stylesInvalid)
+				{
+					this.copyStylesToRenderer(ISeriesItemRenderer(marker), RENDERER_STYLES);
+				}
+				
+				if(sizeInvalid)
+				{
+					marker.width = this.width;
+					marker.height = this.height;
+				}
+				//not really required, but we should validate anyway.
+				this.validateMarker(ISeriesItemRenderer(marker));
+			}
+		}
+		
+		/**
+		 * @private
+		 * Either creates a new label TextField or retrieves one from the
+		 * cache.
+		 */
+		protected function getLabel():TextField
+		{
+			var label:TextField;
+			if(this.labelsCache.length > 0)
+			{
+				label = TextField(this.labelsCache.shift());
+			}
+			else
+			{
+				label = new TextField();
+				label.autoSize = TextFieldAutoSize.LEFT;
+				label.selectable = false;
+				label.mouseEnabled = false;
+				this.addChild(label);
+			}
+			label.visible = true;
+			return label;
+		}
+		
+		/**
+		 * @private
+		 * Updates the label text and positions the labels.
+		 */
+		protected function drawLabels():void
+		{	
+			var textFormat:TextFormat = this.getStyleValue("textFormat") as TextFormat;
+			var embedFonts:Boolean = this.getStyleValue("embedFonts") as Boolean;
+			var hideOverlappingLabels:Boolean = this.getStyleValue("hideOverlappingLabels") as Boolean;
+			
+			var angle:Number = 0;
+			var valueSum:Number = 0;
+			var totalValue:Number = this.calculateTotalValue();
+			var markerCount:int = this.markers.length;
+			for(var i:int = 0; i < markerCount; i++)
+			{
+				var label:TextField = this.getLabel();
+				this.labels.push(label);
+				label.defaultTextFormat = textFormat;
+				label.embedFonts = embedFonts;
+				label.text = this.labelFunction(this.dataProvider[i]);
+				
+				var value:Number = this.itemToData(this.dataProvider[i]);
+				if(totalValue == 0)
+				{
+					angle = 360 / this.length;
+				}
+				else
+				{
+					angle = 360 * ((valueSum + value / 2) / totalValue);
+				}
+				valueSum += value;
+				var halfWidth:Number = this.width / 2;
+				var halfHeight:Number = this.height / 2;
+				var radius:Number = Math.min(halfWidth, halfHeight);
+				var position:Point = Point.polar(2 * radius / 3, -GeomUtil.degreesToRadians(angle));
+				label.x = halfWidth + position.x - label.width / 2;
+				label.y = halfHeight + position.y - label.height / 2;
+				
+				if(hideOverlappingLabels)
+				{
+					for(var j:int = 0; j < i; j++)
+					{
+						var previousLabel:TextField = TextField(this.labels[j]);
+						if(previousLabel.hitTestObject(label))
+						{
+							label.visible = false;
+						}
+					}
+				}
+			}
+		}
+		
+		/**
+		 * Copies a styles from the series to a child through a style map.
+		 * 
+		 * @see copyStylesToChild()
+		 */
+		protected function copyStylesToRenderer(child:ISeriesItemRenderer, styleMap:Object):void
+		{
+			var index:int = this.markers.indexOf(child);
+			var childComponent:UIComponent = child as UIComponent;
+			for(var n:String in styleMap)
+			{
+				var styleValues:Array = this.getStyleValue(styleMap[n]) as Array;
+				//if it doesn't exist, ignore it and go with the defaults for this series
+				if(!styleValues) continue;
+				childComponent.setStyle(n, styleValues[index % styleValues.length])
+			}
+		}
+		
+	//--------------------------------------
+	//  Private Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Sets up the animation for the markers.
+		 */
+		private function beginAnimation():void
+		{
+			var itemCount:int = this.length;
+			if(!this._previousData || this._previousData.length != this.length)
+			{
+				this._previousData = [];
+				for(var i:int = 0; i < itemCount; i++)
+				{
+					this._previousData.push(0);
+				}
+			}
+			
+			//handle animating all the markers in one fell swoop.
+			if(this._animation)
+			{
+				if(this._animation.active)
+				{
+					this._animation.pause();
+				}
+				this._animation.removeEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+				this._animation.removeEventListener(AnimationEvent.PAUSE, tweenPauseHandler);
+				this._animation.removeEventListener(AnimationEvent.COMPLETE, tweenCompleteHandler);
+				this._animation = null;
+			}
+			
+			var data:Array = this.dataProviderToArrayOfNumbers();
+			
+			//don't animate on livepreview!
+			if(this.isLivePreview || !this.getStyleValue("animationEnabled"))
+			{
+				this.renderMarkerMasks(data);
+			}
+			else
+			{
+				var animationDuration:int = this.getStyleValue("animationDuration") as int;
+				var animationEasingFunction:Function = this.getStyleValue("animationEasingFunction") as Function;
+				
+				this._animation = new Animation(animationDuration, this._previousData, data);
+				this._animation.addEventListener(AnimationEvent.UPDATE, tweenUpdateHandler);
+				this._animation.addEventListener(AnimationEvent.PAUSE, tweenPauseHandler);
+				this._animation.addEventListener(AnimationEvent.COMPLETE, tweenCompleteHandler);
+				this._animation.easingFunction = animationEasingFunction;
+				this.renderMarkerMasks(this._previousData);
+			}
+		}
+	
+		/**
+		 * @private
+		 * Determines the total sum of all values in the data provider.
+		 */
+		private function calculateTotalValue():Number
+		{
+			var totalValue:Number = 0;
+			var itemCount:int = this.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var currentItem:Object = this.dataProvider[i];
+				var value:Number = this.itemToData(currentItem);
+				
+				if(!isNaN(value))
+				{
+					totalValue += value;
+				}
+			}
+			return totalValue;
+		}
+	
+		/**
+		 * @private
+		 * Retreives all the numeric values from the data provider
+		 * and places them into an Array so that they may be used
+		 * in an animation.
+		 */
+		private function dataProviderToArrayOfNumbers():Array
+		{
+			var output:Array = [];
+			
+			var itemCount:int = this.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var item:Object = this.dataProvider[i];
+				var value:Number = 0;
+				if(item != null)
+				{
+					value = this.itemToData(item);
+				}
+				output.push(value);
+			}
+			return output;
+		}
+	
+		/**
+		 * @private
+		 */
+		private function tweenUpdateHandler(event:AnimationEvent):void
+		{
+			this.renderMarkerMasks(event.parameters as Array);
+		}
+		
+		/**
+		 * @private
+		 */
+		private function tweenCompleteHandler(event:AnimationEvent):void
+		{
+			this.tweenUpdateHandler(event);
+			this.tweenPauseHandler(event);
+		}
+		
+		/**
+		 * @private
+		 */
+		private function tweenPauseHandler(event:AnimationEvent):void
+		{
+			this._previousData = (event.parameters as Array).concat();
+		}
+	
+		/**
+		 * @private
+		 */
+		private function renderMarkerMasks(data:Array):void
+		{
+			var values:Array = [];
+			var totalValue:Number = 0;
+			var itemCount:int = data.length;
+			for(var i:int = 0; i < itemCount; i++)
+			{
+				var value:Number = Number(data[i]);
+				
+				values.push(value);
+				if(!isNaN(value))
+				{
+					totalValue += value;
+				}
+			}
+			
+			var totalAngle:Number = 0;
+			var halfWidth:Number = this.width / 2;
+			var halfHeight:Number = this.height / 2;
+			var radius:Number = Math.min(halfWidth, halfHeight);
+			var fillColors:Array = this.getStyleValue("fillColors") as Array;
+			
+			var angle:Number = 0;
+			for(i = 0; i < itemCount; i++)
+			{
+				value = Number(data[i]);
+				if(totalValue == 0)
+				{
+					angle = 360 / data.length;
+				}
+				else
+				{
+					angle = 360 * (value / totalValue);
+				}
+				
+				var mask:Shape = this.markerMasks[i] as Shape;
+				mask.graphics.clear();
+				mask.graphics.beginFill(0xff0000);
+				GraphicsUtil.drawWedge(mask.graphics, halfWidth, halfHeight, totalAngle, angle, radius);
+				mask.graphics.endFill();
+				totalAngle += angle;
+				
+				var marker:UIComponent = UIComponent(this.markers[i]);
+				marker.drawNow();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Places all the existing labels in a cache so that they may be reused
+		 * when we redraw the series.
+		 */
+		private function createLabelCache():void
+		{
+			this.labelsCache = this.labels.concat();
+			this.labels = [];
+		}
+		
+		/**
+		 * @private
+		 * If any labels are left in the cache after we've redrawn, they can be
+		 * removed from the display list.
+		 */
+		private function clearLabelCache():void
+		{
+			var cacheLength:int = this.labelsCache.length;
+			for(var i:int = 0; i < cacheLength; i++)
+			{
+				var label:TextField = TextField(this.labelsCache.shift());
+				this.removeChild(label);
+			}
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/Series.as b/src/charts/as/com/yahoo/astra/fl/charts/series/Series.as
new file mode 100644
index 0000000..cca5296
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/Series.as
@@ -0,0 +1,581 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.fl.charts.events.ChartEvent;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	import fl.transitions.easing.Strong;
+	
+	import flash.display.DisplayObject;
+	import flash.display.InteractiveObject;
+	import flash.display.Shape;
+	import flash.events.Event;
+	import flash.events.MouseEvent;
+	import flash.utils.Dictionary;
+	import flash.utils.getQualifiedClassName;
+		
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+    
+	/**
+	 * The easing function for animations that occur on data changes.
+	 */
+    [Style(name="animationEasingFunction", type="Function")]
+	
+	/**
+	 * The duration for animations that occur on data changes.
+	 */
+    [Style(name="animationDuration", type="int")]
+	
+	/**
+	 * If true, data changes will be displayed with animations. If false, changes will happen instantly.
+	 */
+	[Style(name="animationEnabled", type="Boolean")]
+    
+	/**
+	 * The base color used by objects displayed in this series.
+	 */
+    [Style(name="color", type="uint")]
+    
+    /** 
+     * The border color used by programatic skins in this series.
+     */
+    [Style(name="borderColor", type="uint")]
+    
+	/**
+	 * The fill color used by programatic skins in this series.
+	 */
+	[Style(name="fillColor", type="uint")]
+	
+	/**
+	 * The Class used to instantiate each marker's skin.
+	 */
+    [Style(name="markerSkin", type="Class")]
+    
+	/**
+	 * The size, in pixels, of each marker.
+	 */
+    [Style(name="markerSize", type="Number")]
+    
+	/**
+	 * The alpha value from 0.0 to 1.0 to use for drawing the markers.
+	 */
+    [Style(name="markerAlpha", type="Number")]
+    
+    /**
+     * The alpha value from 0.0 to 1.0 to use for drawing the fills of markers.
+     */
+    [Style(name="fillAlpha", type="Number")]
+    
+    /**
+     * The alpha value from 0.0 to 1.0 to use for drawing the border of markers.
+     */
+    [Style(name="borderAlpha", type="Number")]
+
+	/**
+	 * Functionality common to most series. Generally, a <code>Series</code> object
+	 * shouldn't be instantiated directly. Instead, a subclass with a concrete
+	 * implementation should be used.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class Series extends UIComponent implements ISeries
+	{
+		
+	//--------------------------------------
+	//  Class Variables
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		private static var defaultStyles:Object = 
+		{	
+			markerSkin: Shape, //an empty display object
+			fillColor: null,
+			markerSize: 10,
+			markerAlpha: 1.0,
+			fillAlpha: 1.0,
+			borderAlpha: 1.0,
+			animationEnabled: true,
+			animationEasingFunction: fl.transitions.easing.Strong.easeOut,
+			animationDuration: 500,
+			borderColor: null,
+			color: 0x00b8bf
+		};
+		
+		/**
+		 * @private
+		 */
+		private static const RENDERER_STYLES:Object = 
+		{
+			skin: "markerSkin",
+			fillColor: "fillColor",
+			borderColor: "borderColor",
+			color: "color",
+			fillAlpha: "fillAlpha",
+			borderAlpha: "borderAlpha"
+		};
+		
+	//--------------------------------------
+	//  Class Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * @copy fl.core.UIComponent#getStyleDefinition()
+		 */
+		public static function getStyleDefinition():Object
+		{
+			return mergeStyles(defaultStyles, UIComponent.getStyleDefinition());
+		}
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function Series(dataProvider:Object = null)
+		{
+			super();
+			this._dataProvider = dataProvider;
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		protected var markers:Array = [];
+		
+		/**
+		 * @private
+		 * A set of flags to indicate if special considerations need to be taken for the markers.
+		 */
+		protected var markerInvalidHash:Dictionary = new Dictionary(true);
+		
+		/**
+		 * @private
+		 * Storage for the chart property.
+		 */
+		private var _chart:Object;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#chart
+		 */
+		public function get chart():Object
+		{
+			return this._chart;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set chart(value:Object):void
+		{
+			this._chart = value;
+			//this is a fun hack to ensure that series know if their parent charts are in live preview
+			if(this._chart == null || this._chart.parent == null)
+			{
+				this.isLivePreview = false;
+			}
+			var className:String;
+			try
+			{
+				className = getQualifiedClassName(this._chart.parent);	
+			}
+			catch (e:Error) {}
+			this.isLivePreview = (className == "fl.livepreview::LivePreviewParent");	
+		}
+		
+		/**
+		 * @private
+		 * A lookup system to convert from an item to its item renderer.
+		 */
+		private var _itemToItemRendererHash:Dictionary = new Dictionary();
+		
+		/**
+		 * @private
+		 * Storage for the itemRenderer property.
+		 */
+		private var _itemRenderer:Object = SeriesItemRenderer;
+		
+		/**
+		 * The class used to instantiate item renderers.
+		 */
+		public function get itemRenderer():Object
+		{
+			return this._itemRenderer;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set itemRenderer(value:Object):void
+		{
+			if(this._itemRenderer != value)
+			{
+				this._itemRenderer = value;
+				this.invalidate("itemRenderer");
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the data property.
+		 */
+		private var _dataProvider:Object;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#dataProvider
+		 */
+		public function get dataProvider():Object
+		{
+			return this._dataProvider;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set dataProvider(value:Object):void
+		{
+			if(this._dataProvider != value)
+			{
+				//if we get XML data and it isn't an XMLList,
+				//ignore the root tag
+				if(value is XML && !(value is XMLList))
+				{
+					value = value.elements();
+				}
+				
+				if(value is XMLList)
+				{
+					value = XMLList(value).copy();
+				}
+				else if(value is Array)
+				{
+					value = (value as Array).concat();
+				}
+				
+				this._dataProvider = value;
+				this.dispatchEvent(new Event("dataChange"));
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the displayName property.
+		 */
+		private var _displayName:String;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#displayName
+		 */
+		public function get displayName():String
+		{
+			return this._displayName;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set displayName(value:String):void
+		{
+			this._displayName = value;
+		}
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#length
+		 */
+		public function get length():int
+		{
+			if(this._dataProvider is Array)
+			{
+				return (this._dataProvider as Array).length;
+			}
+			else if(this._dataProvider is XMLList)
+			{
+				return (this._dataProvider as XMLList).length();
+			}
+			
+			return 0;
+		}
+		
+		/**
+		 * @private
+		 * Storage for dataTipFunction
+		 */
+		private var _dataTipFunction:Function;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#dataTipFunction
+		 */
+		public function get dataTipFunction():Function
+		{
+			return this._dataTipFunction;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set dataTipFunction(value:Function):void
+		{
+			this._dataTipFunction = value;
+		}
+		
+		/**
+		 * @private 
+		 * Storage for legendLabelFunction
+		 */
+		private var _legendLabelFunction:Function = null;
+		
+		/** 
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#legendLabelFunction
+		 */
+		public function get legendLabelFunction():Function
+		{
+			return this._legendLabelFunction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set legendLabelFunction(value:Function):void
+		{
+			this._legendLabelFunction = value;
+		}	
+		
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#clone()
+		 */
+		public function clone():ISeries
+		{
+			var series:Series = new Series();
+			series.dataProvider = this.dataProvider;
+			series.displayName = this.displayName;
+			return series;
+		}
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#itemRendererToIndex()
+		 */
+		public function itemRendererToIndex(renderer:ISeriesItemRenderer):int
+		{
+			return this.markers.indexOf(renderer);
+		}
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.series.ISeries#itemToItemRenderer()
+		 */		
+		public function itemToItemRenderer(item:Object):ISeriesItemRenderer
+		{
+			return this._itemToItemRendererHash[item] as ISeriesItemRenderer;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			//the class for the item renderers has changed. remove all markers
+			//so that they may be recreated.
+			if(this.isInvalid("itemRenderer"))
+			{
+				this.removeAllMarkers();
+			}
+			
+			if(this.isInvalid("itemRenderer", InvalidationType.DATA, InvalidationType.STYLES))
+			{
+				this.refreshMarkers();
+				this._itemToItemRendererHash = new Dictionary(true);
+				var itemCount:int = this.markers.length;
+				for(var i:int = 0; i < itemCount; i++)
+				{
+					var marker:ISeriesItemRenderer = this.markers[i] as ISeriesItemRenderer;
+					if(this.isInvalid(InvalidationType.DATA)) //update data if needed
+					{
+						marker.data = this.dataProvider[i];
+					}
+					this._itemToItemRendererHash[marker.data] = marker;
+					
+					var markerComponent:UIComponent = marker as UIComponent;
+					this.copyStylesToChild(markerComponent, RENDERER_STYLES);
+					markerComponent.drawNow();
+				}
+			}
+			
+			super.draw();
+		}
+		
+		/**
+		 * @private
+		 * All markers are removed from the display list.
+		 */
+		protected function removeAllMarkers():void
+		{
+			var markerCount:int = this.markers.length;
+			for(var i:int = 0; i < markerCount; i++)
+			{
+				var marker:ISeriesItemRenderer = this.markers.pop() as ISeriesItemRenderer;
+				marker.removeEventListener(MouseEvent.ROLL_OVER, markerRollOverHandler);
+				marker.removeEventListener(MouseEvent.ROLL_OUT, markerRollOutHandler);
+				marker.removeEventListener(MouseEvent.CLICK, markerClickHandler);
+				marker.removeEventListener(MouseEvent.DOUBLE_CLICK, markerDoubleClickHandler);
+				this.removeChild(DisplayObject(marker));
+			}
+		}
+		
+		/**
+		 * @private
+		 * Add or remove markers as needed. current markers will be reused.
+		 */
+		protected function refreshMarkers():void
+		{
+			var itemCount:int = this.length;
+			var difference:int = itemCount - this.markers.length;
+			if(difference > 0)
+			{
+				for(var i:int = 0; i < difference; i++)
+				{
+					var marker:ISeriesItemRenderer = new this.itemRenderer();
+					marker.series = this;
+					InteractiveObject(marker).doubleClickEnabled = true;
+					marker.addEventListener(MouseEvent.ROLL_OVER, markerRollOverHandler, false, 0, true);
+					marker.addEventListener(MouseEvent.ROLL_OUT, markerRollOutHandler, false, 0, true);
+					marker.addEventListener(MouseEvent.CLICK, markerClickHandler, false, 0, true);
+					marker.addEventListener(MouseEvent.DOUBLE_CLICK, markerDoubleClickHandler, false, 0, true);
+					this.addChild(DisplayObject(marker));
+					this.markers.push(marker);
+					this.invalidateMarker(marker);
+				}
+			}
+			else if(difference < 0)
+			{
+				difference = Math.abs(difference);
+				for(i = 0; i < difference; i++)
+				{
+					marker = this.markers.pop() as ISeriesItemRenderer;
+					this.validateMarker(marker);
+					marker.removeEventListener(MouseEvent.ROLL_OVER, markerRollOverHandler);
+					marker.removeEventListener(MouseEvent.ROLL_OUT, markerRollOutHandler);
+					marker.removeEventListener(MouseEvent.CLICK, markerClickHandler);
+					marker.removeEventListener(MouseEvent.DOUBLE_CLICK, markerDoubleClickHandler);
+					this.removeChild(DisplayObject(marker));
+				}
+			}
+			
+			var markerCount:int = this.markers.length;
+			for(i = 0; i < markerCount; i++)
+			{
+				marker = ISeriesItemRenderer(this.markers[i]);
+				marker.data = this.dataProvider[i];
+				DisplayObject(marker).alpha = this.getStyleValue("markerAlpha") as Number;
+				this.copyStylesToChild(UIComponent(marker), RENDERER_STYLES);
+			}
+		}
+		
+		/**
+		 * Indicates whether special considerations should be taken for a newly created marker.
+		 */
+		protected function isMarkerInvalid(marker:ISeriesItemRenderer):Boolean
+		{
+			return this.markerInvalidHash[marker];
+		}
+		
+		/**
+		 * Invalidates a marker (considered new).
+		 */
+		protected function invalidateMarker(marker:ISeriesItemRenderer):void
+		{
+			markerInvalidHash[marker] = true;
+			DisplayObject(marker).visible = false;
+		}
+		
+		/**
+		 * @private
+		 * We never want the series to callLater after invalidating.
+		 * The chart will ALWAYS handle drawing.
+		 */
+		override public function invalidate(property:String = InvalidationType.ALL, callLater:Boolean = true):void
+		{
+			//never call later!
+			super.invalidate(property, false);
+		}
+		
+		/**
+		 * Makes a marker valid. To be used by subclasses.
+		 */
+		protected function validateMarker(marker:ISeriesItemRenderer):void
+		{
+			DisplayObject(marker).visible = true;
+			delete markerInvalidHash[marker];
+		}
+		
+		/**
+		 * @private
+		 * Notify the parent chart that the user's mouse is over this marker.
+		 */
+		protected function markerRollOverHandler(event:MouseEvent):void
+		{
+			var itemRenderer:ISeriesItemRenderer = ISeriesItemRenderer(event.currentTarget);
+			var index:int = this.itemRendererToIndex(itemRenderer);
+			var item:Object = this.dataProvider[index];
+			var rollOver:ChartEvent = new ChartEvent(ChartEvent.ITEM_ROLL_OVER, index, item, itemRenderer, this);
+			this.dispatchEvent(rollOver);
+		}
+		
+		/**
+		 * @private
+		 * Notify the parent chart that the user's mouse has left this marker.
+		 */
+		protected function markerRollOutHandler(event:MouseEvent):void
+		{			
+			var itemRenderer:ISeriesItemRenderer = ISeriesItemRenderer(event.currentTarget);
+			var index:int = this.itemRendererToIndex(itemRenderer);
+			var item:Object = this.dataProvider[index];
+			var rollOut:ChartEvent = new ChartEvent(ChartEvent.ITEM_ROLL_OUT, index, item, itemRenderer, this);
+			this.dispatchEvent(rollOut);
+		}
+		
+		/**
+		 * @private
+		 * Notify the parent chart that the user clicked this marker.
+		 */
+		protected function markerClickHandler(event:MouseEvent):void
+		{
+			var itemRenderer:ISeriesItemRenderer = ISeriesItemRenderer(event.currentTarget);
+			var index:int = this.itemRendererToIndex(itemRenderer);
+			var item:Object = this.dataProvider[index];
+			var click:ChartEvent = new ChartEvent(ChartEvent.ITEM_CLICK, index, item, itemRenderer, this);
+			this.dispatchEvent(click);
+		}
+		
+		/**
+		 * @private
+		 * Notify the parent chart that the user double-clicked this marker.
+		 */
+		protected function markerDoubleClickHandler(event:MouseEvent):void
+		{
+			var itemRenderer:ISeriesItemRenderer = ISeriesItemRenderer(event.currentTarget);
+			var index:int = this.itemRendererToIndex(itemRenderer);
+			var item:Object = this.dataProvider[index];
+			var doubleClick:ChartEvent = new ChartEvent(ChartEvent.ITEM_DOUBLE_CLICK, index, item, itemRenderer, this);
+			this.dispatchEvent(doubleClick);
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/SeriesItemRenderer.as b/src/charts/as/com/yahoo/astra/fl/charts/series/SeriesItemRenderer.as
new file mode 100644
index 0000000..2075e30
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/SeriesItemRenderer.as
@@ -0,0 +1,186 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.fl.charts.skins.*;
+	import com.yahoo.astra.fl.utils.UIComponentUtil;
+	
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	
+	import flash.display.DisplayObject;
+
+	//--------------------------------------
+	//  Styles
+	//--------------------------------------
+	
+	/**
+     * The DisplayObject subclass used to display the background.
+     */
+    [Style(name="skin", type="Class")]
+    
+	/**
+	 * The color used by a skin that uses fill colors.
+	 */
+    [Style(name="fillColor", type="uint")]
+    
+	/**
+	 * The color used by a skin that uses border colors.
+	 */
+    [Style(name="borderColor", type="uint")]
+    
+    /**
+     * The alpha used by a skin that has a fill alpha.
+     */
+    [Style(name="fillAlpha", type="Number")]
+    
+    /**
+     * The alpha used by a skin that has a border alpha.
+     */
+    [Style(name="borderAlpha", type="Number")]
+    
+    /**
+     * The primary item renderer class for a chart series.
+     * 
+     * @see com.yahoo.astra.fl.charts.series.Series 
+     * 
+     * @author Josh Tynjala
+     */
+	public class SeriesItemRenderer extends UIComponent implements ISeriesItemRenderer
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function SeriesItemRenderer()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		protected var aspectRatio:Number = 1;
+		
+		/**
+		 * @private
+		 */
+		protected var skin:DisplayObject;
+		
+		/**
+		 * @private
+		 * Storage for the series property.
+		 */
+		private var _series:ISeries;
+		
+		public function get series():ISeries
+		{
+			return this._series;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set series(value:ISeries):void
+		{
+			if(this._series != value)
+			{
+				this._series = value;
+				this.invalidate(InvalidationType.DATA)
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the data property.
+		 */
+		private var _data:Object;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.IDataTipRenderer#data
+		 */
+		public function get data():Object
+		{
+			return this._data;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set data(value:Object):void
+		{
+			if(this._data != value)
+			{
+				this._data = value;
+				this.invalidate(InvalidationType.DATA);
+			}
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			var stylesInvalid:Boolean = this.isInvalid(InvalidationType.STYLES);
+			var sizeInvalid:Boolean = this.isInvalid(InvalidationType.SIZE);
+			
+			if(stylesInvalid)
+			{
+				if(this.skin)
+				{
+					this.removeChild(this.skin);
+					this.skin = null;
+				}
+				
+				var SkinType:Object = this.getStyleValue("skin");
+				this.skin = UIComponentUtil.getDisplayObjectInstance(this, SkinType);
+				if(this.skin)
+				{
+					this.addChildAt(this.skin, 0);
+			
+					if(this.skin is UIComponent)
+					{
+						(this.skin as UIComponent).drawNow();
+					}
+					this.aspectRatio = this.skin.width / this.skin.height;
+				}
+			}
+			
+			if(this.skin && (stylesInvalid || sizeInvalid))
+			{
+				this.skin.width = this.width;
+				this.skin.height = this.height;
+				
+				if(this.skin is IProgrammaticSkin)
+				{
+					var color:uint = this.getStyleValue("color") as uint;
+					var fillColor:uint = this.getStyleValue("fillColor") != null ? this.getStyleValue("fillColor") as uint : color;
+					(this.skin as IProgrammaticSkin).fillColor = fillColor;
+					
+					var borderColor:uint = this.getStyleValue("borderColor") != null ? this.getStyleValue("borderColor") as uint : color;
+					(this.skin as IProgrammaticSkin).borderColor = borderColor;
+					
+					var borderAlpha:Number = this.getStyleValue("borderAlpha") as Number;
+					(this.skin as IProgrammaticSkin).borderAlpha = borderAlpha;
+					var fillAlpha:Number = this.getStyleValue("fillAlpha") as Number;
+					(this.skin as IProgrammaticSkin).fillAlpha = fillAlpha;
+				}
+				
+				if(this.skin is UIComponent)
+				{
+					(this.skin as UIComponent).drawNow();
+				}
+			}
+			
+			super.draw();
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/StackedBarSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/StackedBarSeries.as
new file mode 100644
index 0000000..c3352de
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/StackedBarSeries.as
@@ -0,0 +1,131 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.fl.charts.IChart;
+	import com.yahoo.astra.fl.charts.ChartUtil;
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.axes.IOriginAxis;
+	import com.yahoo.astra.fl.charts.axes.IClusteringAxis;
+	
+	/**
+	 * A bar series type that stacks.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class StackedBarSeries extends BarSeries implements IStackedSeries
+	{
+			
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function StackedBarSeries(data:Object=null)
+		{
+			super(data);
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * @inheritDoc
+		 */
+		override protected function calculateYOffset(valueAxis:IOriginAxis, otherAxis:IAxis, markerSizes:Array, totalMarkerSize:Number, allSeriesOfType:Array):Number
+		{
+			if(!ChartUtil.isStackingAllowed(valueAxis, this))
+			{
+				return super.calculateYOffset(valueAxis, otherAxis, markerSizes, totalMarkerSize, allSeriesOfType);
+			}
+			
+			var seriesIndex:int = allSeriesOfType.indexOf(this);
+			return -(markerSizes[seriesIndex] as Number) / 2;
+		}
+		
+		/**
+		 * @private
+		 * @inheritDoc
+		 */
+		override protected function calculateTotalMarkerSize(axis:IAxis, sizes:Array):Number
+		{
+			if(!ChartUtil.isStackingAllowed(axis, this))
+			{
+				return super.calculateTotalMarkerSize(axis, sizes);
+			}
+			
+			var totalMarkerSize:Number = 0;
+			var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+			var seriesCount:int = allSeriesOfType.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:BarSeries = BarSeries(allSeriesOfType[i]);
+				var markerSize:Number = this.calculateMarkerSize(series, axis);
+				sizes.push(markerSize);
+				totalMarkerSize = Math.max(totalMarkerSize, markerSize);
+			}
+			return totalMarkerSize;
+		}
+		
+		/**
+		 * @private
+		 * @inheritDoc
+		 */
+		override protected function calculateMaximumAllowedMarkerSize(axis:IAxis):Number
+		{
+			if(axis is IClusteringAxis)
+			{
+				var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+				return (this.height / IClusteringAxis(axis).clusterCount);
+			}
+			return Number.POSITIVE_INFINITY;
+		}
+		
+		/**
+		 * @private
+		 * Determines the origin of the bar. Either the axis origin or the
+		 * stacked value.
+		 */
+		override protected function calculateOriginValue(index:int, axis:IOriginAxis, allSeriesOfType:Array):Object
+		{
+			if(!ChartUtil.isStackingAllowed(axis, this))
+			{
+				return super.calculateOriginValue(index, axis, allSeriesOfType);
+			}
+			
+			var seriesIndex:int = allSeriesOfType.indexOf(this);
+			var originValue:Object = axis.origin;
+			if(seriesIndex > 0)
+			{
+				var previousSeries:StackedBarSeries = StackedBarSeries(allSeriesOfType[seriesIndex - 1]);
+				
+				var isPositive:Boolean = IChart(this.chart).itemToAxisValue(this, index, axis) >= 0;
+					
+				for(var i:int = seriesIndex - 1; i > -1; i--)					
+				{
+					if(isPositive)
+					{
+						if(IChart(this.chart).itemToAxisValue(StackedBarSeries(allSeriesOfType[i]), index, axis) > 0)
+						{
+							originValue = IChart(this.chart).itemToAxisValue(StackedBarSeries(allSeriesOfType[i]), index, axis);
+							break;								
+						}							
+					}
+					else
+					{
+						if(IChart(this.chart).itemToAxisValue(StackedBarSeries(allSeriesOfType[i]), index, axis) < 0)
+						{
+							originValue = IChart(this.chart).itemToAxisValue(StackedBarSeries(allSeriesOfType[i]), index, axis);
+							break;
+						}
+					}
+				}
+			}
+			return originValue;
+		}
+			
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/series/StackedColumnSeries.as b/src/charts/as/com/yahoo/astra/fl/charts/series/StackedColumnSeries.as
new file mode 100644
index 0000000..2ca6e49
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/series/StackedColumnSeries.as
@@ -0,0 +1,129 @@
+package com.yahoo.astra.fl.charts.series
+{
+	import com.yahoo.astra.fl.charts.ChartUtil;
+	import com.yahoo.astra.fl.charts.IChart;
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.axes.IOriginAxis;
+	import com.yahoo.astra.fl.charts.axes.IClusteringAxis;
+
+	/**
+	 * A column series type that stacks.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class StackedColumnSeries extends ColumnSeries implements IStackedSeries
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function StackedColumnSeries(data:Object = null)
+		{
+			super(data);
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * @inheritDoc
+		 */
+		override protected function calculateXOffset(valueAxis:IOriginAxis, otherAxis:IAxis, markerSizes:Array, totalMarkerSize:Number, allSeriesOfType:Array):Number
+		{
+			if(!ChartUtil.isStackingAllowed(valueAxis, this))
+			{
+				return super.calculateXOffset(valueAxis, otherAxis, markerSizes, totalMarkerSize, allSeriesOfType);
+			}
+			
+			var seriesIndex:int = allSeriesOfType.indexOf(this);
+			return -(markerSizes[seriesIndex] as Number) / 2;
+		}
+		
+		/**
+		 * @private
+		 * @inheritDoc
+		 */
+		override protected function calculateTotalMarkerSize(axis:IAxis, sizes:Array):Number
+		{
+			if(!ChartUtil.isStackingAllowed(axis, this))
+			{
+				return super.calculateTotalMarkerSize(axis, sizes);
+			}
+			
+			var totalMarkerSize:Number = 0;
+			var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+			var seriesCount:int = allSeriesOfType.length;
+			for(var i:int = 0; i < seriesCount; i++)
+			{
+				var series:ColumnSeries = ColumnSeries(allSeriesOfType[i]);
+				var markerSize:Number = this.calculateMarkerSize(series, axis);
+				sizes.push(markerSize);
+				totalMarkerSize = Math.max(totalMarkerSize, markerSize);
+			}
+			return totalMarkerSize;
+		}
+		
+		/**
+		 * @private
+		 * @inheritDoc
+		 */
+		override protected function calculateMaximumAllowedMarkerSize(axis:IAxis):Number
+		{
+			if(axis is IClusteringAxis)
+			{
+				var allSeriesOfType:Array = ChartUtil.findSeriesOfType(this, this.chart as IChart);
+				return (this.width / IClusteringAxis(axis).clusterCount);
+			}
+			return Number.POSITIVE_INFINITY;
+		}
+		
+		/**
+		 * @private
+		 * Determines the origin of the column. Either the axis origin or the
+		 * stacked value.
+		 */
+		override protected function calculateOriginValue(index:int, axis:IOriginAxis, allSeriesOfType:Array):Object
+		{
+			if(!ChartUtil.isStackingAllowed(axis, this))
+			{
+				return super.calculateOriginValue(index, axis, allSeriesOfType);
+			}
+
+			var seriesIndex:int = allSeriesOfType.indexOf(this);
+			var originValue:Object = axis.origin;
+			if(seriesIndex > 0)
+			{
+				var previousSeries:StackedColumnSeries = StackedColumnSeries(allSeriesOfType[seriesIndex - 1]);
+
+				var isPositive:Boolean = IChart(this.chart).itemToAxisValue(this, index, axis) >= 0;
+
+				for(var i:int = seriesIndex - 1; i > -1; i--)					
+				{
+					if(isPositive)
+					{
+						if(IChart(this.chart).itemToAxisValue(StackedColumnSeries(allSeriesOfType[i]), index, axis) > 0)
+						{
+							originValue = IChart(this.chart).itemToAxisValue(StackedColumnSeries(allSeriesOfType[i]), index, axis);
+							break;								
+						}							
+					}
+					else
+					{
+						if(IChart(this.chart).itemToAxisValue(StackedColumnSeries(allSeriesOfType[i]), index, axis) < 0)
+						{
+							originValue = IChart(this.chart).itemToAxisValue(StackedColumnSeries(allSeriesOfType[i]), index, axis);
+							break;
+						}
+					}
+				}
+			}
+			return originValue;
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/skins/CircleSkin.as b/src/charts/as/com/yahoo/astra/fl/charts/skins/CircleSkin.as
new file mode 100644
index 0000000..c67286c
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/skins/CircleSkin.as
@@ -0,0 +1,166 @@
+package com.yahoo.astra.fl.charts.skins
+{
+	import fl.core.UIComponent;
+	import flash.display.Sprite;
+
+	/**
+	 * A skin shaped like a circle with customizable color and alpha properties for its fill and border.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class CircleSkin extends UIComponent implements IProgrammaticSkin
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function CircleSkin()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Storage for the fillColor property.
+		 */
+		private var _fillColor:uint = 0x000000;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.skins.IProgrammaticSkin#fillColor
+		 */
+		public function get fillColor():uint
+		{
+			return this._fillColor;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set fillColor(value:uint):void
+		{
+			if(this._fillColor != value)
+			{
+				this._fillColor = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private 
+		 * Storage for outline color
+		 */
+		private var _borderColor:uint;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.skins.IProgrammaticSkin#borderColor
+		 */
+		public function get borderColor():uint
+		{
+			return _borderColor;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set borderColor(value:uint):void
+		{
+			if(this._borderColor != value)
+			{
+				this._borderColor = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the fill alpha.
+		 */
+		private var _fillAlpha:Number = 1;
+		
+		/**
+		 * The alpha value of the fill.
+		 */
+		public function get fillAlpha():Number
+		{
+			return _fillAlpha;
+		}
+
+		/**
+		 * @private (setter)
+		 */
+		public function set fillAlpha(value:Number):void
+		{
+			if(this._fillAlpha != value)
+			{
+				this._fillAlpha = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the border alpha.
+		 */
+		private var _borderAlpha:Number = 1;
+		
+		/**
+		 * The alpha value of the border.
+		 */
+		public function get borderAlpha():Number
+		{
+			return _borderAlpha;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set borderAlpha(value:Number):void
+		{
+			if(this._borderAlpha != value)
+			{
+				this._borderAlpha = value;
+				this.invalidate();
+			}
+		}
+
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			super.draw();
+			
+			this.graphics.clear();
+			if(this.width == 0 || this.height == 0 || isNaN(this.width) || isNaN(this.height))
+			{
+				return;
+			}
+			
+			
+			if(this.fillColor == this.borderColor)
+			{
+				this.graphics.lineStyle(0, 0, 0);
+			}
+			else
+			{
+				this.graphics.lineStyle(1, this.borderColor, this.borderAlpha);
+			}
+			this.graphics.beginFill(this.fillColor, this.fillAlpha);
+			this.graphics.drawCircle((this.width / 2), (this.height / 2), Math.min(this.width, this.height) / 2);
+			this.graphics.endFill();	
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/skins/DiamondSkin.as b/src/charts/as/com/yahoo/astra/fl/charts/skins/DiamondSkin.as
new file mode 100644
index 0000000..1cdef11
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/skins/DiamondSkin.as
@@ -0,0 +1,178 @@
+package com.yahoo.astra.fl.charts.skins
+{
+	import fl.core.UIComponent;
+
+	/**
+	 * A skin shaped like a diamond with customizable color and alpha properties for its fill and border.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class DiamondSkin extends UIComponent implements IProgrammaticSkin
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function DiamondSkin()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Storage for the fillColor property.
+		 */
+		private var _fillColor:uint = 0x000000;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.skins.IProgrammaticSkin#fillColor
+		 */
+		public function get fillColor():uint
+		{
+			return this._fillColor;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set fillColor(value:uint):void
+		{
+			if(this._fillColor != value)
+			{
+				this._fillColor = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private 
+		 * Storage for outline color
+		 */
+		private var _borderColor:uint;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.skins.IProgrammaticSkin#borderColor
+		 */
+		public function get borderColor():uint
+		{
+			return _borderColor;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set borderColor(value:uint):void
+		{
+			if(this._borderColor != value)
+			{
+				this._borderColor = value;
+				this.invalidate();
+			}
+		}	
+		
+		/**
+		 * @private
+		 * Storage for the fill alpha.
+		 */
+		private var _fillAlpha:Number = 1;
+		
+		/**
+		 * The alpha value of the fill.
+		 */
+		public function get fillAlpha():Number
+		{
+			return _fillAlpha;
+		}
+
+		/**
+		 * @private (setter)
+		 */
+		public function set fillAlpha(value:Number):void
+		{
+			if(this._fillAlpha != value)
+			{
+				this._fillAlpha = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the border alpha.
+		 */
+		private var _borderAlpha:Number = 1;
+		
+		/**
+		 * The alpha value of the border.
+		 */
+		public function get borderAlpha():Number
+		{
+			return _borderAlpha;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set borderAlpha(value:Number):void
+		{
+			if(this._borderAlpha != value)
+			{
+				this._borderAlpha = value;
+				this.invalidate();
+			}
+		}		
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			super.draw();
+			
+			this.graphics.clear();
+			if(this.width == 0 || this.height == 0 || isNaN(this.width) || isNaN(this.height))
+			{
+				return;
+			}
+			
+			if(this.borderColor == this.fillColor)
+			{
+				this.graphics.lineStyle(0, 0, 0);
+			}
+			else
+			{
+				this.graphics.lineStyle(1, this.borderColor, this.borderAlpha);
+			}
+			
+			this.graphics.beginFill(this.fillColor, this.fillAlpha);
+			
+			var w:Number = 5 * Math.min(this.width, this.height) / 4;
+			var h:Number = w;
+			
+			var startX:Number = (this.width - w) / 2;
+			var startY:Number = (this.height - h) / 2;
+			var endX:Number = startX + w;
+			var endY:Number = startY + h;
+			
+			this.graphics.moveTo(startX, this.height / 2);
+			this.graphics.lineTo(this.width / 2, startY);
+			this.graphics.lineTo(endX, this.height / 2);
+			this.graphics.lineTo(this.width / 2, endY);
+			this.graphics.lineTo(startX, this.height / 2);
+			this.graphics.endFill();
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/skins/IProgrammaticSkin.as b/src/charts/as/com/yahoo/astra/fl/charts/skins/IProgrammaticSkin.as
new file mode 100644
index 0000000..b2ef4fb
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/skins/IProgrammaticSkin.as
@@ -0,0 +1,55 @@
+package com.yahoo.astra.fl.charts.skins
+{
+	/**
+	 * A type of skin that supports color customization.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IProgrammaticSkin
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The color used to draw the skin.
+		 */
+		function get fillColor():uint;
+		
+		/**
+		 * @private
+		 */
+		function set fillColor(value:uint):void;
+		
+		/**
+		 * The color used for the outline of the skin
+		 */
+		function get borderColor():uint;
+		
+		/**
+		 * @private
+		 */
+		function set borderColor(value:uint):void; 
+		
+		/**
+		 * The alpha value of the fill.
+		 */
+		function get fillAlpha():Number;
+		
+		/**
+		 * @private
+		 */
+		function set fillAlpha(value:Number):void;
+		
+		/**
+		 * The alpha value of the border.
+		 */
+		function get borderAlpha():Number;
+		
+		/**
+		 * @private
+		 */
+		function set borderAlpha(value:Number):void; 
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/skins/RectangleSkin.as b/src/charts/as/com/yahoo/astra/fl/charts/skins/RectangleSkin.as
new file mode 100644
index 0000000..3302e8a
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/skins/RectangleSkin.as
@@ -0,0 +1,170 @@
+package com.yahoo.astra.fl.charts.skins
+{
+	import fl.core.UIComponent;
+
+	/**
+	 * A skin shaped like a rectangle with customizable color and alpha properties for its fill and border.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class RectangleSkin extends UIComponent implements IProgrammaticSkin
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function RectangleSkin()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Storage for the fillColor property.
+		 */
+		private var _fillColor:uint = 0x000000;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.skins.IProgrammaticSkin#fillColor
+		 */
+		public function get fillColor():uint
+		{
+			return this._fillColor;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set fillColor(value:uint):void
+		{
+			if(this._fillColor != value)
+			{
+				this._fillColor = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private 
+		 * Storage for outline color
+		 */
+		private var _borderColor:uint;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.skins.IProgrammaticSkin#borderColor
+		 */
+		public function get borderColor():uint
+		{
+			return _borderColor;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set borderColor(value:uint):void
+		{
+			if(this._borderColor != value)
+			{
+				this._borderColor = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the fill alpha.
+		 */
+		private var _fillAlpha:Number = 1;
+		
+		/**
+		 * The alpha value of the fill.
+		 */
+		public function get fillAlpha():Number
+		{
+			return _fillAlpha;
+		}
+
+		/**
+		 * @private (setter)
+		 */
+		public function set fillAlpha(value:Number):void
+		{
+			if(this._fillAlpha != value)
+			{
+				this._fillAlpha = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the border alpha.
+		 */
+		private var _borderAlpha:Number = 1;
+		
+		/**
+		 * The alpha value of the border.
+		 */
+		public function get borderAlpha():Number
+		{
+			return _borderAlpha;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set borderAlpha(value:Number):void
+		{
+			if(this._borderAlpha != value)
+			{
+				this._borderAlpha = value;
+				this.invalidate();
+			}
+		}		
+
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			super.draw();
+			
+			//since the Blaze component architecture rounds the position,
+			//we need to account for that to make sure the mark displays correctly.
+			var xDiff:Number = this._x - Math.round(this._x);
+			var yDiff:Number = this._y - Math.round(this._y);
+			
+			this.graphics.clear();
+			if(this.width == 0 || this.height == 0 || isNaN(this.width) || isNaN(this.height))
+			{
+				return;
+			}
+			
+			if(this.borderColor == this.fillColor)
+			{
+				this.graphics.lineStyle(0, 0, 0);
+			}
+			else
+			{
+				this.graphics.lineStyle(1, this.borderColor, this.borderAlpha);
+			}
+			
+			this.graphics.beginFill(this.fillColor, this.fillAlpha);
+			this.graphics.drawRect(xDiff, yDiff, this.width, this.height);
+			this.graphics.endFill();
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/charts/skins/TriangleSkin.as b/src/charts/as/com/yahoo/astra/fl/charts/skins/TriangleSkin.as
new file mode 100644
index 0000000..b6a8a36
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/charts/skins/TriangleSkin.as
@@ -0,0 +1,171 @@
+package com.yahoo.astra.fl.charts.skins
+{
+	import fl.core.UIComponent;
+
+	/**
+	 * A skin shaped like a triangle with customizable color and alpha properties for its fill and border.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class TriangleSkin extends UIComponent implements IProgrammaticSkin
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function TriangleSkin()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Storage for the fillColor property.
+		 */
+		private var _fillColor:uint = 0x000000;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.skins.IProgrammaticSkin#fillColor
+		 */
+		public function get fillColor():uint
+		{
+			return this._fillColor;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set fillColor(value:uint):void
+		{
+			if(this._fillColor != value)
+			{
+				this._fillColor = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private 
+		 * Storage for outline color
+		 */
+		private var _borderColor:uint;
+		
+		/**
+		 * @copy com.yahoo.astra.fl.charts.skins.IProgrammaticSkin#borderColor
+		 */
+		public function get borderColor():uint
+		{
+			return _borderColor;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set borderColor(value:uint):void
+		{
+			if(this._borderColor != value)
+			{
+				this._borderColor = value;
+				this.invalidate();
+			}
+		}		
+		
+		/**
+		 * @private
+		 * Storage for the fill alpha.
+		 */
+		private var _fillAlpha:Number = 1;
+		
+		/**
+		 * The alpha value of the fill.
+		 */
+		public function get fillAlpha():Number
+		{
+			return _fillAlpha;
+		}
+
+		/**
+		 * @private (setter)
+		 */
+		public function set fillAlpha(value:Number):void
+		{
+			if(this._fillAlpha != value)
+			{
+				this._fillAlpha = value;
+				this.invalidate();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the border alpha.
+		 */
+		private var _borderAlpha:Number = 1;
+		
+		/**
+		 * The alpha value of the border.
+		 */
+		public function get borderAlpha():Number
+		{
+			return _borderAlpha;
+		}
+		
+		/**
+		 * @private (setter)
+		 */
+		public function set borderAlpha(value:Number):void
+		{
+			if(this._borderAlpha != value)
+			{
+				this._borderAlpha = value;
+				this.invalidate();
+			}
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override protected function draw():void
+		{
+			super.draw();
+			
+			this.graphics.clear();
+			if(this.width == 0 || this.height == 0 || isNaN(this.width) || isNaN(this.height))
+			{
+				return;
+			}
+			
+			if(this.borderColor == this.fillColor)
+			{
+				this.graphics.lineStyle(0, 0, 0);
+			}
+			else
+			{
+				this.graphics.lineStyle(1, this.borderColor, this.borderAlpha);
+			}
+			this.graphics.beginFill(this.fillColor, this.fillAlpha);
+			
+			var w:Number = this.width * 1.25;
+			var h:Number = w * Math.sqrt(3) / 2;
+
+			this.graphics.moveTo(w / 2, 0);
+			this.graphics.lineTo(w, h);
+			this.graphics.lineTo(0, h);
+			this.graphics.lineTo(w / 2, 0);
+			this.graphics.endFill();
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/fl/utils/UIComponentUtil.as b/src/charts/as/com/yahoo/astra/fl/utils/UIComponentUtil.as
new file mode 100644
index 0000000..e5f57e0
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/fl/utils/UIComponentUtil.as
@@ -0,0 +1,162 @@
+package com.yahoo.astra.fl.utils
+{
+	import com.yahoo.astra.utils.InstanceFactory;
+	
+	import fl.core.UIComponent;
+	import fl.managers.StyleManager;
+	
+	import flash.display.DisplayObject;
+	import flash.utils.getDefinitionByName;
+	import flash.utils.getQualifiedClassName;
+	import flash.utils.getQualifiedSuperclassName;
+	
+	/**
+	 * Utility functions for use with UIComponents.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class UIComponentUtil
+	{
+		/**
+		 * Using an input, such as a component style, tries to convert the input
+		 * to a DisplayObject.
+		 * 
+		 * <p>Possible inputs include Class, a String representatation of a
+		 * fully-qualified class name, Function, any existing instance of
+		 * a DisplayObject, or InstanceFactory.</p>
+		 * 
+		 * @see com.yahoo.astra.utils.InstanceFactory
+		 * 
+		 * @param target	the parent of the new instance
+		 * @param input		the object to convert to a DisplayObject instance
+		 */
+		public static function getDisplayObjectInstance(target:DisplayObject, input:Object):DisplayObject
+		{
+			if(input is InstanceFactory)
+			{
+				return InstanceFactory(input).createInstance() as DisplayObject;
+			}
+			//added Function as a special case because functions can be used with the new keyword
+			else if(input is Class || input is Function)
+			{ 
+				return (new input()) as DisplayObject; 
+			}
+			else if(input is DisplayObject)
+			{
+				(input as DisplayObject).x = 0;
+				(input as DisplayObject).y = 0;
+				return input as DisplayObject;
+			}
+
+			var classDef:Object = null;
+			try
+			{
+				classDef = getDefinitionByName(input.toString());
+			}
+			catch(e:Error)
+			{
+				try
+				{
+					classDef = target.loaderInfo.applicationDomain.getDefinition(input.toString()) as Object;
+				}
+				catch (e:Error)
+				{
+					// Nothing
+				}
+			}
+			if(classDef == null)
+			{
+				return null;
+			}
+			return (new classDef()) as DisplayObject;
+		}
+		
+		/**
+		 * Gets the class of an object. If the object is a DisplayObject,
+		 * may retrieve the class from the containing app domain.
+		 * 
+		 * @param target		A Class or a fully qualified class name (String).
+		 */
+		public static function getClassDefinition(target:Object):Class
+		{
+			if(target is Class)
+			{ 
+				return target as Class;
+			}
+			try
+			{
+				return getDefinitionByName(getQualifiedClassName(target)) as Class;
+			}
+			catch (e:Error)
+			{
+				if(target is DisplayObject)
+				{
+					try
+					{
+						return target.loaderInfo.applicationDomain.getDefinition(getQualifiedClassName(target)) as Class;
+					}
+					catch(e:Error)
+					{
+						//nothing
+					}
+				}
+			}
+			return null;
+		}
+		
+		/**
+		 * Works like getStyleValue() on UIComponent, except it makes component
+		 * and shared styles available globally rather than just in the component's
+		 * class.
+		 * 
+		 * @param target		the component for which to retrieve the style value
+		 * @param styleName		the name of the style to retrieve
+		 */
+		public static function getStyleValue(target:UIComponent, styleName:String):Object
+		{
+			var value:Object = target.getStyle(styleName);
+			value = value ? value : StyleManager.getComponentStyle(target, styleName);
+			if(value)
+			{
+				return value;
+			}
+			var classDef:Class = UIComponentUtil.getClassDefinition(target);
+			var defaultStyles:Object;
+			
+			//borrowed from fl.managers.StyleManager
+			// Walk the inheritance chain looking for a default styles object.
+			while(defaultStyles == null)
+			{
+				// Trick the strict compiler.
+				if(classDef["getStyleDefinition"] != null)
+				{
+					defaultStyles = classDef["getStyleDefinition"]();
+					break;
+				}
+				try
+				{
+					classDef = target.loaderInfo.applicationDomain.getDefinition(getQualifiedSuperclassName(classDef)) as Class;
+				}
+				catch(err:Error)
+				{
+					try
+					{
+						classDef = getDefinitionByName(getQualifiedSuperclassName(classDef)) as Class;
+					}
+					catch (e:Error)
+					{
+						defaultStyles = UIComponent.getStyleDefinition();
+						break;
+					}
+				}
+			}
+				
+			if(defaultStyles.hasOwnProperty(styleName))
+			{
+				return defaultStyles[styleName];
+			}
+			return null;
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/ILayoutContainer.as b/src/charts/as/com/yahoo/astra/layout/ILayoutContainer.as
new file mode 100644
index 0000000..753c76f
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/ILayoutContainer.as
@@ -0,0 +1,64 @@
+package com.yahoo.astra.layout
+{
+	import com.yahoo.astra.layout.modes.ILayoutMode;
+	
+	import flash.display.DisplayObject;
+	import flash.events.IEventDispatcher;
+	
+	/**
+	 * Defines properties and methods required for layout containers
+	 * to work with LayoutManager.
+	 * 
+	 * <p>Implementations must be a subclass of DisplayObjectContainer.</p>
+	 * 
+	 * @see LayoutManager
+	 * @see LayoutContainer
+	 * @see flash.display.DisplayObjectContainer
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface ILayoutContainer extends IEventDispatcher
+	{
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The width of the content displayed by the layout container.
+		 */
+		function get contentWidth():Number;
+		
+		/**
+		 * The height of the content displayed by the layout container.
+		 */
+		function get contentHeight():Number;
+			
+		/**
+		 * The layout algorithm used to display children of the layout container.
+		 * 
+		 * @see modes/package-detail.html Available Layout Modes (com.yahoo.astra.layout.modes)
+		 */
+		function get layoutMode():ILayoutMode;
+		
+		/**
+		 * @private
+		 */
+		function set layoutMode(value:ILayoutMode):void;
+		
+	//--------------------------------------
+	//  Methods
+	//--------------------------------------
+		
+		/**
+		 * Informs the layout container that it should update the layout of its
+		 * children.
+		 */
+		function invalidateLayout():void;
+		
+		/**
+		 * Immediately updates the layout of the container's children.
+		 */
+		function validateLayout():void;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/LayoutContainer.as b/src/charts/as/com/yahoo/astra/layout/LayoutContainer.as
new file mode 100644
index 0000000..c294c64
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/LayoutContainer.as
@@ -0,0 +1,449 @@
+package com.yahoo.astra.layout
+{
+	import com.yahoo.astra.layout.events.LayoutEvent;
+	import com.yahoo.astra.layout.modes.BoxLayout;
+	import com.yahoo.astra.layout.modes.ILayoutMode;
+	import com.yahoo.astra.utils.NumberUtil;
+	
+	import flash.display.DisplayObject;
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.geom.Rectangle;
+
+	//--------------------------------------
+	//  Events
+	//--------------------------------------
+	
+	/**
+	 *  Dispatched when this container's layout changes.
+	 *
+	 *  @eventType com.yahoo.astra.layout.events.LayoutEvent.LAYOUT_CHANGE
+	 */
+	[Event(name="layoutChange", type="com.yahoo.astra.layout.events.LayoutEvent")]
+
+	/**
+	 * Children of this display object are subject to being positioned, and
+	 * possibly resized, based on a specified layout algorithm. LayoutContainer
+	 * integrates with LayoutManager to refresh its the layout of its children
+	 * when properties on the container itself change or when one of its
+	 * children dispatches a registered invalidating event. This is the default
+	 * implementation of ILayoutContainer.
+	 * 
+	 * @example The following code demonstrates the usage of LayoutContainer:
+	 * <listing version="3.0">
+	 * // create an instance of a layout mode
+	 * var mode:ILayoutMode = new BoxLayout();
+	 * mode.direction = "horizontal";
+	 * mode.horizontalGap = 10;
+	 * 
+	 * // one may pass the mode to the constructor or the layoutMode property.
+	 * // note: by default, a LayoutContainer will automatically determine
+	 * // its size based on its content.
+	 * var container:LayoutContainer = new LayoutContainer( mode );
+	 * this.addChild(container);
+	 * 
+	 * for( var i:int = 0; i < 5; i++ )
+	 * {
+	 *     var square:Shape = new Shape();
+	 *     square.graphics.beginFill(0xcccccc);
+	 *     square.graphics.drawRect(0, 0, 25, 25);
+	 *     square.graphics.endFill();
+	 *     container.addChild(square);
+	 * }
+	 * </listing>
+	 * 
+	 * <p><strong>Important Note:</strong> LayoutContainer leaves certain
+	 * functionality to the implementor to complete. No scrollbars or other user
+	 * interface controls will appear when the contents are larger than the
+	 * LayoutContainer's dimensions.</p>
+	 * 
+	 * <p>This limitation is deliberate and by design. The philosophy behind
+	 * this choice centers on allowing an ActionScript developer to use these
+	 * classes as a basis for implementing layout controls for nearly any user
+	 * interface library available for Flash Player.</p>
+	 * 
+	 * <p>For a reference implementation of full-featured UI controls that
+	 * implement masking and scrolling, please take a look at the Layout
+	 * Containers available in the <a href="http://developer.yahoo.com/flash/astra-flash/">Yahoo! Astra Components for Flash CS3</a>.</p> 
+	 * 
+	 * @see LayoutManager
+	 * @see ILayoutContainer
+	 * @see modes/package-detail.html Available Layout Modes (com.yahoo.astra.layout.modes)
+	 * @author Josh Tynjala
+	 */
+	public class LayoutContainer extends Sprite implements ILayoutContainer
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Flag indicating whether we are in render mode.
+		 */
+		public static var isRendering:Boolean = false;
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 * 
+		 * @param mode		The ILayoutMode implementation to use.
+		 */
+		public function LayoutContainer(mode:ILayoutMode = null)
+		{
+			super();
+			this.scrollRect = new Rectangle();
+			this.layoutMode = mode;
+			this.addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Storage for the contentWidth property.
+		 */
+		protected var _contentWidth:Number = 0;
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get contentWidth():Number
+		{
+			return this._contentWidth;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the contentHeight property.
+		 */
+		protected var _contentHeight:Number = 0;
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get contentHeight():Number
+		{
+			return this._contentHeight;
+		}
+		
+		/**
+		 * @private
+		 * Storage for width values explicitly set by a developer. 
+		 */
+		protected var explicitWidth:Number = NaN;
+		
+		/**
+		 * @private
+		 */
+		override public function get width():Number
+		{
+			if(!isNaN(this.explicitWidth))
+			{
+				return this.explicitWidth;
+			}
+			return this.contentWidth;
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function set width(value:Number):void
+		{
+			if(this.explicitWidth != value)
+			{
+				this.explicitWidth = value;
+				this.invalidateLayout();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for height values explicitly set by a developer. 
+		 */
+		protected var explicitHeight:Number = NaN;
+		
+		/**
+		 * @private
+		 */
+		override public function get height():Number
+		{
+			if(!isNaN(this.explicitHeight))
+			{
+				return this.explicitHeight;
+			}
+			return this.contentHeight;
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function set height(value:Number):void
+		{
+			if(this.explicitHeight != value)
+			{
+				this.explicitHeight = value;
+				this.invalidateLayout();
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the layoutMode property.
+		 */
+		private var _layoutMode:ILayoutMode = new BoxLayout();
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function get layoutMode():ILayoutMode
+		{
+			return this._layoutMode;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set layoutMode(value:ILayoutMode):void
+		{
+			if(this._layoutMode)
+			{
+				this._layoutMode.removeEventListener(LayoutEvent.LAYOUT_CHANGE, layoutModeChangeHandler);
+			}
+			this._layoutMode = value;
+			if(this._layoutMode)
+			{
+				this._layoutMode.addEventListener(LayoutEvent.LAYOUT_CHANGE, layoutModeChangeHandler, false, 0, true);
+			}
+			this.invalidateLayout();
+		}
+		
+		/**
+		 * @private
+		 * Storage for the autoMask property.
+		 */
+		private var _autoMask:Boolean = true;
+		
+		/**
+		 * If true, the conent will automatically update the scrollRect to fit
+		 * the dimensions. Uses explicit dimensions if width or height is set by
+		 * the developer. Otherwise, uses the content dimensions. If false, it
+		 * is up to the implementor to set the mask or scrollRect.
+		 */
+		public function get autoMask():Boolean
+		{
+			return this._autoMask;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set autoMask(value:Boolean):void
+		{
+			this._autoMask = value;
+			if(this._autoMask)
+			{
+				this.scrollRect = new Rectangle(0, 0, this.width, this.height);
+			}
+			else
+			{
+				this.scrollRect = null;
+			}
+		}
+		
+		/**
+		 * @private
+		 * Flag indicating if the layout is invalid.
+		 */
+		protected var invalid:Boolean = false;
+		
+		/**
+		 * @private
+		 * Flag indicating if the LayoutContainer is currently validating.
+		 */
+		protected var isValidating:Boolean = false;
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override public function addChild(child:DisplayObject):DisplayObject
+		{
+			child = super.addChild(child);
+			if(child)
+			{
+				LayoutManager.registerContainerChild(child);
+				this.invalidateLayout();
+			}
+			return child;
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function addChildAt(child:DisplayObject, index:int):DisplayObject
+		{
+			child = super.addChildAt(child, index);
+			if(child)
+			{
+				LayoutManager.registerContainerChild(child);
+				this.invalidateLayout();
+			}
+			return child;
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function removeChild(child:DisplayObject):DisplayObject
+		{
+			child = super.removeChild(child);
+			if(child)
+			{
+				LayoutManager.unregisterContainerChild(child);
+				this.invalidateLayout();
+			}
+			return child;
+		}
+		
+		/**
+		 * @private
+		 */
+		override public function removeChildAt(index:int):DisplayObject
+		{
+			var child:DisplayObject = super.removeChildAt(index);
+			if(child)
+			{
+				LayoutManager.unregisterContainerChild(child);
+				this.invalidateLayout();
+			}
+			return child;
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function invalidateLayout():void
+		{
+			//if we're validating, then this change is caused
+			//by an invalidating event from a child, and we can safely ignore it
+			if(this.isValidating)
+			{
+				return;
+			}
+			
+			if(isRendering)
+			{
+				//force validation during the render phase. performance hit should be minimal.
+				this.validateLayout();
+			}
+			if(!this.invalid && this.stage)
+			{
+				this.invalid = true;
+				this.stage.addEventListener(Event.ENTER_FRAME, renderHandler);
+			}
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function validateLayout():void
+		{
+			this.isValidating = true;
+			this.layout();
+			this.isValidating = false;
+			this.invalid = false;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Updates the layout algorithm and recalculates the content dimensions.
+		 */
+		protected function layout():void
+		{
+			var oldWidth:Number = this.contentWidth;
+			var oldHeight:Number = this.contentHeight;
+			
+			this._contentWidth = Number.POSITIVE_INFINITY;
+			this._contentHeight = Number.POSITIVE_INFINITY;
+			
+			//let the layout mode do all the work (strategy pattern)
+			var bounds:Rectangle = new Rectangle();
+			if(this.layoutMode)
+			{
+				var children:Array = [];
+				var childCount:int = this.numChildren;
+				for(var i:int = 0; i < childCount; i++)
+				{
+					children.push(this.getChildAt(i));
+				}
+				//width and height return the explicit values if available
+				//otherwise they return the content width and height values
+				bounds = this.layoutMode.layoutObjects(children, new Rectangle(0, 0, this.width, this.height));
+			}
+			
+			this._contentWidth = bounds.x + bounds.width;
+			this._contentHeight = bounds.y + bounds.height;
+			
+			if(this.autoMask)
+			{
+				var scrollRect:Rectangle = this.scrollRect;
+				scrollRect.width = this.width;
+				scrollRect.height = this.height;
+				this.scrollRect = scrollRect;
+			}
+			
+			if(!NumberUtil.fuzzyEquals(this.contentWidth, oldWidth) || !NumberUtil.fuzzyEquals(this.contentHeight, oldHeight))
+			{
+				this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+			}
+		}
+		
+	//--------------------------------------
+	//  Private Event Handlers
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Invalidates when the container is added to the stage.
+		 */
+		private function addedToStageHandler(event:Event):void
+		{
+			this.invalidateLayout();
+		}
+		
+		/**
+		 * @private
+		 * Invalidates the layout if the layoutMode says that it is invalid.
+		 */
+		private function layoutModeChangeHandler(event:LayoutEvent):void
+		{
+			this.invalidateLayout();
+		}
+		
+		/**
+		 * @private
+		 * Validates the layout on the next frame after invalidation.
+		 */
+		private function renderHandler(event:Event):void
+		{
+			isRendering = true;
+			event.target.removeEventListener(Event.ENTER_FRAME, renderHandler);
+			this.validateLayout();
+			isRendering = false;
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/LayoutManager.as b/src/charts/as/com/yahoo/astra/layout/LayoutManager.as
new file mode 100644
index 0000000..be88541
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/LayoutManager.as
@@ -0,0 +1,213 @@
+package com.yahoo.astra.layout
+{
+	import com.yahoo.astra.layout.events.LayoutEvent;
+	
+	import flash.display.DisplayObject;
+	import flash.events.Event;
+	import flash.events.TextEvent;
+	import flash.text.TextField;
+	import flash.utils.Dictionary;
+	import flash.utils.getDefinitionByName;
+	import flash.utils.getQualifiedClassName;
+	
+	/**
+	 * Generic layout manager for DisplayObjects.
+	 * 
+	 * @see flash.display.DisplayObject
+	 * @see com.yahoo.astra.layout.ILayoutContainer
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class LayoutManager
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * The classes registered with invalidating events.
+		 */
+		private static var classes:Array = [];
+		
+		/**
+		 * @private
+		 * A hash of class references to an Array of invalidating events for each class.
+		 */
+		private static var classToEvents:Dictionary = new Dictionary(true);
+		
+	//--------------------------------------
+	//  Static Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		private static function initialize():void
+		{
+			//ILayoutContainer will always be available.
+			registerInvalidatingEvents(ILayoutContainer, [LayoutEvent.LAYOUT_CHANGE]);
+			
+			//catch when a TextField's text changes (in case it has autoSize enabled)
+			registerInvalidatingEvents(TextField, [Event.CHANGE]);
+		}
+		initialize();
+		
+		/**
+		 * Allows users to specify events that invalidate the parent layout container
+		 * when fired by instances of a specific class.
+		 * 
+		 * <p>For example, if <code>fl.core.UIComponent</code> fires the <code>resize</code>
+		 * event when it is inside a layout container, the layout container will
+		 * refresh its layout.</p>
+		 * 
+		 * @param source		The class that will fire invalidating events (ie. TextField)
+		 * @param events		An Array of event constants (ie. Event.CHANGE)
+		 * 
+		 * @example The following code demonstrates how to specify a set of invalidating events:
+		 * <listing version="3.0">
+		 * LayoutManager.registerInvalidatingEvents( UIComponent, [ComponentEvent.RESIZE, ComponentEvent.MOVE] );
+		 * </listing>
+		 */
+		public static function registerInvalidatingEvents(source:Class, events:Array):void
+		{
+			if(classes.indexOf(source) >= 0)
+			{
+				var savedEvents:Array = classToEvents[source];
+				events = events.concat(savedEvents);
+			}
+			else
+			{
+				classes.push(source);
+			}
+			classToEvents[source] = events;
+		}
+		
+		/**
+		 * Determines if a particular DisplayObject's type has been registered
+		 * with invalidating events.
+		 */
+		public static function hasInvalidatingEvents(target:DisplayObject):Boolean
+		{
+			var targetType:Class = getDefinitionByName(getQualifiedClassName(target)) as Class;
+			return classes.indexOf(targetType) >= 0;
+		}
+		
+		/**
+		 * Called by an ILayoutContainer implementation when a child is added.
+		 * If the child is an instance of a class with registered events, the
+		 * layout system will listen for those events.
+		 * 
+		 * @see ILayoutContainer
+		 */
+		public static function registerContainerChild(child:DisplayObject):void
+		{
+			for each(var registeredClass:Class in classes)
+			{
+				if(child is registeredClass)
+				{
+					var events:Array = classToEvents[registeredClass];
+					for each(var eventName:String in events)
+					{
+						//weak listener so that the layout system won't stop GC.
+						child.addEventListener(eventName, invalidatingEventHandler, false, 0, true);
+					}
+				}
+			}
+		}
+		
+		/**
+		 * Called by a layout container when a child is removed. If the child is
+		 * an instance of a class with registered events, the layout system will
+		 * stop listening to those events.
+		 * 
+		 * @see ILayoutContainer
+		 */
+		public static function unregisterContainerChild(child:DisplayObject):void
+		{
+			for each(var registeredClass:Class in classes)
+			{
+				if(child is registeredClass)
+				{
+					var events:Array = classToEvents[registeredClass];
+					for each(var eventName:String in events)
+					{
+						child.removeEventListener(eventName, invalidatingEventHandler);
+					}
+				}
+			}
+		}
+		
+		/**
+		 * If a DisplayObject that is placed into a layout container doesn't
+		 * fire events for size changes, calling this function will allow
+		 * its size to properly affect its parent layout.
+		 * 
+		 * @param target		The display object to resize
+		 * @param width			The new width of the display object
+		 * @param height		The new height of the display object
+		 * 
+		 * @example The following code demonstrates how to resize a
+		 * DisplayObject that doesn't fire an event when it resizes:
+		 * <listing version="3.0">
+		 * LayoutManager.resize( mySprite, 100, 34 );
+		 * </listing>
+		 */
+		public static function resize(target:DisplayObject, width:Number, height:Number):void
+		{
+			target.width = width;
+			target.height = height;
+			invalidateParentLayout(target);
+		}
+		
+		/**
+		 * Similar to <code>LayoutManager.resize()</code>, this function may be called
+		 * to update any property of a DisplayObject and notify its parent layout
+		 * container to refresh if no event normally indicates this is needed.
+		 * 
+		 * @param target		The display object whose property will be changed
+		 * @param property		The name of the property.
+		 * @param value			The value of the property
+		 * 
+		 * @example The following code demonstrates how to change a
+		 * DisplayObject's property when that DisplayObject doesn't fire an
+		 * event when the property changes:
+		 * <listing version="3.0">
+		 * LayoutManager.update(mySprite, "transform", new Transform());
+		 * </listing>
+		 */
+		public static function update(target:DisplayObject, property:String, value:Object):void
+		{
+			if(!target.hasOwnProperty(property)) return;
+			
+			target[property] = value;
+			invalidateParentLayout(target);
+		}
+		
+		/**
+		 * If the target's parent is a layout container, that parent will be
+		 * informed that it needs to update the layout.
+		 */
+		public static function invalidateParentLayout(target:DisplayObject):void
+		{
+			var parent:ILayoutContainer = target.parent as ILayoutContainer;
+			if(!parent) return;
+			parent.invalidateLayout();
+		}
+		
+		/**
+		 * @private
+		 * 
+		 * Generic event handler for invalidating events. If the target's parent
+		 * is a layout container, that parent will be informed that its layout
+		 * needs to be updated. Any standard event is supported.
+		 */
+		private static function invalidatingEventHandler(event:Event):void
+		{
+			var child:DisplayObject = DisplayObject(event.currentTarget);
+			invalidateParentLayout(child); 
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/events/LayoutEvent.as b/src/charts/as/com/yahoo/astra/layout/events/LayoutEvent.as
new file mode 100644
index 0000000..bedfce1
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/events/LayoutEvent.as
@@ -0,0 +1,51 @@
+package com.yahoo.astra.layout.events
+{
+	import flash.events.Event;
+
+	/**
+	 * Events associated with ILayoutContainer objects.
+	 * 
+	 * @see ILayoutContainer
+	 * @author Josh Tynjala
+	 */
+	public class LayoutEvent extends Event
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		/**
+		 * The <code>LayoutEvent.LAYOUT_CHANGE</code> event type constant indicates that
+		 * the layout of an ILayoutContainer needs to be redrawn.
+		 * 
+		 * @eventType layoutChange
+		 */
+		public static const LAYOUT_CHANGE:String = "layoutChange";
+	
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+		
+		/**
+		 * Constructor.
+		 */
+		public function LayoutEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
+		{
+			super(type, bubbles, cancelable);
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override public function clone():Event
+		{
+			return new LayoutEvent(this.type, this.bubbles, this.cancelable);
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/BaseLayoutMode.as b/src/charts/as/com/yahoo/astra/layout/modes/BaseLayoutMode.as
new file mode 100644
index 0000000..dbbea5e
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/BaseLayoutMode.as
@@ -0,0 +1,263 @@
+package com.yahoo.astra.layout.modes
+{
+	import com.yahoo.astra.layout.events.LayoutEvent;
+	
+	import flash.display.DisplayObject;
+	import flash.events.EventDispatcher;
+	import flash.geom.Rectangle;
+
+	/**
+	 * Some basic properties shared by multiple ILayoutMode implementations.
+	 * Should be treated as an abstract class that is meant to be subclassed.
+	 * 
+	 * @author Josh Tynjala
+	 * @see ILayoutMode
+	 * @see com.yahoo.astra.layout.ILayoutContainer
+	 */
+	public class BaseLayoutMode extends EventDispatcher implements IAdvancedLayoutMode
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function BaseLayoutMode()
+		{
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Storage for the paddingLeft property.
+		 */
+		private var _paddingLeft:Number = 0;
+		
+		/**
+		 * The number of pixels displayed at the left of the target's children.
+		 */
+		public function get paddingLeft():Number
+		{
+			return this._paddingLeft;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set paddingLeft(value:Number):void
+		{
+			if(this._paddingLeft != value)
+			{
+				this._paddingLeft = value;
+				this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the paddingRight property.
+		 */
+		private var _paddingRight:Number = 0;
+		
+		/**
+		 * The number of pixels displayed at the right of the target's children.
+		 */
+		public function get paddingRight():Number
+		{
+			return this._paddingRight;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set paddingRight(value:Number):void
+		{
+			if(this._paddingRight != value)
+			{
+				this._paddingRight = value;
+				this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the paddingTop property.
+		 */
+		private var _paddingTop:Number = 0;
+		
+		/**
+		 * The number of pixels displayed at the top of the target's children.
+		 */
+		public function get paddingTop():Number
+		{
+			return this._paddingTop;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set paddingTop(value:Number):void
+		{
+			if(this._paddingTop != value)
+			{
+				this._paddingTop = value;
+				this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the paddingBottom property.
+		 */
+		private var _paddingBottom:Number = 0;
+		
+		/**
+		 * The number of pixels displayed at the bottom of the target's children.
+		 */
+		public function get paddingBottom():Number
+		{
+			return this._paddingBottom;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set paddingBottom(value:Number):void
+		{
+			if(this._paddingBottom != value)
+			{
+				this._paddingBottom = value;
+				this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+			}
+		}
+		
+		/**
+		 * @private
+		 * Storage for the clients with advanced configuration options.
+		 */
+		protected var clients:Array = [];
+		
+		/**
+		 * @private
+		 * Storage for the advanced configuration options. Indicies
+		 * correspond to the indices in the clients Array.
+		 */
+		protected var configurations:Array = [];
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+
+		/**
+		 * @inheritDoc
+		 */
+		public function addClient(target:DisplayObject, configuration:Object = null):void
+		{
+			if(!target)
+			{
+				throw new ArgumentError("Target must be a DisplayObject. Received " + target + ".");
+			}
+			
+			configuration = configuration ? configuration : {};
+			var generatedConfig:Object = this.newConfiguration();
+			for(var prop:String in configuration)
+			{
+				generatedConfig[prop] = configuration[prop];
+			}
+			
+			//reuse an existing client if we're re-adding it
+			var index:int = this.clients.indexOf(target);
+			if(index < 0)
+			{
+				index = this.clients.length;
+				this.clients[index] = target;
+			}
+			this.configurations[index] = generatedConfig;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function removeClient(target:DisplayObject):void
+		{
+			var index:int = this.clients.indexOf(target);
+			if(index < 0)
+			{
+				throw new ArgumentError("Cannot call removeClient() with a DisplayObject that is not a client.");
+			}
+			
+			this.clients.splice(index, 1);
+			this.configurations.splice(index, 1);
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function hasClient(target:DisplayObject):Boolean
+		{
+			return this.clients.indexOf(target) >= 0;
+		}
+		
+		/**
+		 * @inheritDoc
+		 */
+		public function layoutObjects(displayObjects:Array, bounds:Rectangle):Rectangle
+		{
+			//to be overridden
+			throw new Error("Method BaseLayoutMode.layoutChildren() must be overridden!");
+			return new Rectangle();
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Ensures that every child of the target has a configuration and creates a list of children
+		 * that are included in the layout.
+		 */
+		protected function configureChildren(targets:Array):Array
+		{	
+			var childrenInLayout:Array = [];
+			var childCount:int = targets.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(targets[i]);
+				
+				var index:int = this.clients.indexOf(child);
+				if(index < 0)
+				{
+					//set up a default configuration if the child hasn't been added as a client
+					index = this.clients.length;
+					this.clients.push(child);
+					this.configurations.push(this.newConfiguration());
+				}
+				
+				//only return children that have includeInLayout specified
+				var config:Object = this.configurations[index];
+				if(config.includeInLayout)
+				{
+					childrenInLayout.push(child);
+				}
+			}
+			return childrenInLayout;
+		}
+
+		/**
+		 * @private
+		 * The default configuration properties for a client of the layout mode.
+		 */
+		protected function newConfiguration():Object
+		{
+			return { includeInLayout: true };
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/BorderConstraints.as b/src/charts/as/com/yahoo/astra/layout/modes/BorderConstraints.as
new file mode 100644
index 0000000..8ab25bd
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/BorderConstraints.as
@@ -0,0 +1,92 @@
+package com.yahoo.astra.layout.modes
+{
+	/**
+	 * Constraint values available in BorderLayout.
+	 * 
+	 * @see BorderLayout
+	 * @author Josh Tynjala
+	 */
+	public class BorderConstraints
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		/**
+		 * The target will be constrained to the top edge. Its width will be
+		 * altered to fit to the width of the container. Its height will
+		 * remain unchanged.
+		 * 
+		 * <p>Consider the <code>TOP</code> constraint to work like a page's
+		 * header. It appears above all other constrained children, with no other
+		 * children appearing to the left or right. Multiple <code>TOP</code> constraints
+		 * will be arranged vertically from the top down in the order that they
+		 * were registered as clients of the BorderLayout algorithm.</p>
+		 */
+		public static const TOP:String = "top";
+	
+		/**
+		 * The target will be constrained to the bottom edge. Its width will be
+		 * altered to fit to the width of the container. Its height will
+		 * remain unchanged.
+		 * 
+		 * <p>Consider the <code>BOTTOM</code> constraint to work like a page's
+		 * footer. It appears below all other constrained children, with no other
+		 * children appearing to the left or right. Multiple <code>BOTTOM</code> constraints
+		 * will be arranged vertically from the bottom up in the order that they
+		 * were registered as clients of the BorderLayout algorithm.</p>
+		 */
+		public static const BOTTOM:String = "bottom";
+		
+		/**
+		 * The target will be constrained to the left edge. It will appear
+		 * below any items constrained to the top and above items constrained to
+		 * the bottom. Its height will be altered to fill the remaining height
+		 * of the container (after the TOP and BOTTOM constraints are measured),
+		 * and its width will remain unchanged.
+		 * 
+		 * <p>Consinder the <code>LEFT</code> constraint to work like a page's
+		 * sidebar that is aligned to the left. It appears to the left of all other
+		 * children, with only the top and bottom constraints taking precendence.
+		 * Multiple <code>LEFT</code> constraints will be arranged horizontally
+		 * from left to right in the order that they were registered as clients
+		 * of the BorderLayout algorithm.</p>
+		 */
+		public static const LEFT:String = "left";
+		
+		/**
+		 * The target will be constrained to the right edge. It will appear
+		 * below any items constrained to the top and above items constrained to
+		 * the bottom. Its height will be altered to fill the remaining height
+		 * of the container (after the TOP and BOTTOM constraints are measured),
+		 * and its width will remain unchanged.
+		 * 
+		 * <p>Consinder the <code>RIGHT</code> constraint to work like a page's
+		 * sidebar that is aligned to the right. It appears to the right of all other
+		 * children, with only the top and bottom constraints taking precendence.
+		 * Multiple <code>RIGHT</code> constraints will be arranged horizontally
+		 * from right to left in the order that they were registered as clients
+		 * of the BorderLayout algorithm.</p>
+		 */
+		public static const RIGHT:String = "right";
+		
+		/**
+		 * The target will be constrained to the center of the container. It
+		 * will appear between all other constrained children. Its height will be
+		 * altered to fill the remaining height of the container (after the TOP
+		 * and BOTTOM constraints are measured) and its width will be altered to
+		 * fill the remaining width of the container (after the LEFT and RIGHT
+		 * constraints are measured).
+		 * 
+		 * <p>Consider the <code>CENTER</code> constraint to work like a page's
+		 * primary content. It appears in between all other constraints and changes
+		 * size to fill the remaining area (after all other constraints are
+		 * measured). Multiple <code>CENTER</code> constraints will be arranged
+		 * vertically from top down starting from the bottom edge of the
+		 * <code>TOP</code> constraints to the top edge of any <code>BOTTOM</code>
+		 * constraints.</p>
+		 */
+		public static const CENTER:String = "center";
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/BorderLayout.as b/src/charts/as/com/yahoo/astra/layout/modes/BorderLayout.as
new file mode 100644
index 0000000..7c12a70
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/BorderLayout.as
@@ -0,0 +1,492 @@
+package com.yahoo.astra.layout.modes
+{
+	import com.yahoo.astra.layout.events.LayoutEvent;
+	import com.yahoo.astra.utils.DisplayObjectUtil;
+	
+	import flash.display.DisplayObject;
+	import flash.geom.Rectangle;
+
+	/**
+	 * Arranges a DisplayObjectContainer's children using a page-like border
+	 * algorithm. Children with TOP and BOTTOM constraints will be positioned
+	 * and sized like page headers and footers. LEFT and RIGHT constrained
+	 * children will be positioned and sized like sidebars and CENTER
+	 * constrained children will be positioned and stretched to fill the
+	 * remaining space.  
+	 * 
+	 * <p><strong>Advanced Client Options:</strong></p>
+	 * <p>Client configuration parameters allow a developer to specify
+	 * behaviors for individual children of the target container. To set these
+	 * advanced options, one must call <code>addClient()</code> on the BorderLayout
+	 * instance and pass the child to configure along with an object specifying
+	 * the configuration parameters.</p>
+	 * 
+	 * @example The following code adds clients to a BorderLayout instance:
+	 * <listing version="3.0">
+	 * var border:BorderLayout = new BorderLayout();
+	 * border.addClient( headerSprite, { constraint: BorderConstraints.TOP } );
+	 * border.addClient( contentSprite,
+	 * {
+	 *     constraint: BorderConstraints.CENTER,
+	 *     maintainAspectRatio: true,
+	 *     horizontalAlign: HorizontalAlignment.CENTER,
+	 *     verticalAlign: VerticalAlignment.MIDDLE
+	 * });
+	 * border.addClient( footerSprite, { constraint: BorderConstraints.BOTTOM } );
+	 * 
+	 * var container:LayoutContainer = new LayoutContainer();
+	 * container.layoutMode = border;
+	 * this.addChild( container );
+	 * </listing>
+	 * 
+	 * <p>Several client parameters are available with the BorderLayout algorithm:</p>
+	 * <dl>
+	 * 	<dt><strong><code>constraint</code></strong> : String</dt>
+	 * 		<dd>The BorderConstraints value to be used on the target by the layout algorithm. The default
+	 * 		value is <code>BorderConstraints.CENTER</code>.</dd>
+	 * 	<dt><strong><code>maintainAspectRatio</code></strong> : Boolean</dt>
+	 * 		<dd>If true, the aspect ratio of the target will be maintained if it is resized.</dd>
+	 * 	<dt><strong><code>horizontalAlign</code></strong> : String</dt>
+	 * 		<dd>The horizontal alignment used when positioning the target. Used in combination with
+	 * 		<code>maintainAspectRatio</code>.</dd>
+	 * 	<dt><strong><code>verticalAlign</code></strong> : String</dt>
+	 * 		<dd>The vertical alignment used when positioning the target. Used in combination with
+	 * 		<code>maintainAspectRatio</code>.</dd>
+	 * 	<dt><strong><code>aspectRatio</code></strong> : Number</dt>
+	 * 		<dd>The desired aspect ratio to use with <code>maintainAspectRatio</code>. This value is optional.
+	 * 		If no aspect ratio is provided, it will be determined based on the target's original width and height.</dd>
+	 * 	<dt><strong><code>includeInLayout</code></strong> : Boolean</dt>
+	 * 		<dd>If <code>false</code>, the target will not be included in layout calculations. The default value is <code>true</code>.</dd>
+	 * </dl>
+	 * 
+	 * @see BorderConstraints
+	 * @see HorizontalAlignment
+	 * @see VerticalAlignment
+	 * @see com.yahoo.astra.layout.LayoutContainer
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class BorderLayout extends BaseLayoutMode implements IAdvancedLayoutMode
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function BorderLayout()
+		{
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Storage for the verticalGap property.
+		 */
+		private var _verticalGap:Number = 0;
+		
+		/**
+		 * The number of vertical pixels between each item displayed by this
+		 * container.
+		 */
+		public function get verticalGap():Number
+		{
+			return this._verticalGap;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalGap(value:Number):void
+		{
+			this._verticalGap = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the horizontalGap property.
+		 */
+		private var _horizontalGap:Number = 0;
+		
+		/**
+		 * The number of horizontal pixels between each item displayed by this
+		 * container.
+		 */
+		public function get horizontalGap():Number
+		{
+			return this._horizontalGap;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalGap(value:Number):void
+		{
+			this._horizontalGap = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 */
+		override public function addClient(target:DisplayObject, configuration:Object = null):void
+		{
+			//if horizontalAlign or verticalAlign is not specified, set some defaults
+			configuration.horizontalAlign = configuration.horizontalAlign ? configuration.horizontalAlign : "left";
+			configuration.verticalAlign = configuration.verticalAlign ? configuration.verticalAlign : "top";
+			
+			//if no aspectRatio has been specified, use the aspect ratio
+			//calculated from the target's width and height
+			if(configuration.maintainAspectRatio && !configuration.aspectRatio)
+			{
+				configuration.aspectRatio = target.width / target.height;
+			}
+			
+			super.addClient(target, configuration);
+		}
+
+		/**
+		 * @inheritDoc
+		 */
+		override public function layoutObjects(displayObjects:Array, bounds:Rectangle):Rectangle
+		{
+			const START_X:Number = bounds.x + this.paddingLeft;
+			const START_Y:Number = bounds.y + this.paddingTop;
+			
+			var width:Number = bounds.width;
+			if(bounds.width == Number.POSITIVE_INFINITY)
+			{
+				width = this.measureChildWidths();
+			}
+			width -= (this.paddingLeft + this.paddingRight);
+			
+			
+			var height:Number = bounds.height;
+			if(bounds.height == Number.POSITIVE_INFINITY)
+			{
+				height = this.measureChildHeights();
+			}
+			height -= (this.paddingTop + this.paddingBottom);
+			
+			var remainingWidth:Number = width;
+			var remainingHeight:Number = height;
+			
+			//position the top children
+			var topHeight:Number = 0;
+			var topChildren:Array = this.getChildrenByConstraint(BorderConstraints.TOP, true);
+			var topChildCount:int = topChildren.length;
+			for(var i:int = 0; i < topChildCount; i++)
+			{
+				var topChild:DisplayObject = DisplayObject(topChildren[i]);
+				var config:Object = this.configurations[this.clients.indexOf(topChild)];
+				
+				var x:Number = START_X;
+				var y:Number = START_Y + topHeight;
+				
+				if(config.maintainAspectRatio)
+				{
+					DisplayObjectUtil.resizeAndMaintainAspectRatio(topChild, width, topChild.height, config.aspectRatio);
+				}
+				else
+				{
+					topChild.width = width;
+				}
+				DisplayObjectUtil.align(topChild, new Rectangle(x, y, width, topChild.height), config.horizontalAlign, config.verticalAlign);
+				
+				topHeight += topChild.height + this.verticalGap;
+			}
+			remainingHeight -= topHeight;
+			
+			//position the bottom children
+			var bottomHeight:Number = 0;
+			var bottomChildren:Array = this.getChildrenByConstraint(BorderConstraints.BOTTOM, true);
+			var bottomChildCount:int = bottomChildren.length;
+			for(i = 0; i < bottomChildCount; i++)
+			{
+				var bottomChild:DisplayObject = DisplayObject(bottomChildren[i]);
+				config = this.configurations[this.clients.indexOf(bottomChild)];
+				
+				bottomHeight += bottomChild.height;
+				
+				x = START_X;
+				y = START_Y + height - bottomHeight;
+				
+				if(config.maintainAspectRatio)
+				{
+					DisplayObjectUtil.resizeAndMaintainAspectRatio(bottomChild, width, bottomChild.height, config.aspectRatio);
+				}
+				else
+				{
+					bottomChild.width = width;
+				}
+				DisplayObjectUtil.align(bottomChild, new Rectangle(x, y, width, bottomChild.height), config.horizontalAlign, config.verticalAlign);
+				
+				bottomHeight += this.verticalGap;
+			}
+			
+			//if topHeight + bottomHeight < the total height, fix the overlap
+			var difference:Number = (START_Y + topHeight) - (START_Y + height - bottomHeight); 
+			if(difference > 0)
+			{
+				for(i = 0; i < bottomChildCount; i++)
+				{
+					bottomChild = DisplayObject(bottomChildren[i]);
+					bottomChild.y += difference;
+				}
+			}
+			remainingHeight -= bottomHeight;
+			
+			//the height of the center area affects the height of the left and right areas
+			var centerHeight:Number = Math.max(remainingHeight, 0);
+			
+			//position the left children
+			var leftWidth:Number = 0;
+			var leftChildren:Array = this.getChildrenByConstraint(BorderConstraints.LEFT, true);
+			var leftChildCount:int = leftChildren.length;
+			for(i = 0; i < leftChildCount; i++)
+			{
+				var leftChild:DisplayObject = DisplayObject(leftChildren[i]);
+				config = this.configurations[this.clients.indexOf(leftChild)];
+				
+				x = START_X + leftWidth;
+				y = START_Y + topHeight;
+				
+				if(config.maintainAspectRatio)
+				{
+					DisplayObjectUtil.resizeAndMaintainAspectRatio(leftChild, leftChild.width, centerHeight, config.aspectRatio);
+				}
+				else
+				{
+					leftChild.height = centerHeight;
+				}
+				DisplayObjectUtil.align(leftChild, new Rectangle(x, y, leftChild.width, centerHeight), config.horizontalAlign, config.verticalAlign);
+				
+				leftWidth += leftChild.width + this.horizontalGap;
+			}
+			remainingWidth -= leftWidth;
+			
+			//position the right children
+			var rightWidth:Number = 0;
+			var rightChildren:Array = this.getChildrenByConstraint(BorderConstraints.RIGHT, true);
+			var rightChildCount:int = rightChildren.length;
+			for(i = 0; i < rightChildCount; i++)
+			{
+				var rightChild:DisplayObject = DisplayObject(rightChildren[i]);
+				config = this.configurations[this.clients.indexOf(rightChild)];
+				
+				rightWidth += rightChild.width;
+				
+				x = START_X + width - rightWidth;
+				y = START_Y + topHeight;
+				
+				if(config.maintainAspectRatio)
+				{
+					DisplayObjectUtil.resizeAndMaintainAspectRatio(rightChild, rightChild.width, centerHeight, config.aspectRatio);
+				}
+				else
+				{
+					rightChild.height = centerHeight;
+				}
+				DisplayObjectUtil.align(rightChild, new Rectangle(x, y, rightChild.width, centerHeight), config.horizontalAlign, config.verticalAlign);
+				
+				rightWidth += this.horizontalGap;
+			}
+			
+			//if leftWidth + rightWidth < the total width, fix the overlap
+			difference = (START_X + leftWidth) - (START_X + width - rightWidth); 
+			if(difference > 0)
+			{
+				for(i = 0; i < rightChildCount; i++)
+				{
+					rightChild = DisplayObject(rightChildren[i]);
+					rightChild.x += difference;
+				}
+			}
+			remainingWidth -= rightWidth;
+			
+			//position the center children in the remaining width
+			var centerWidth:Number = Math.max(remainingWidth, 0);
+			var centerChildren:Array = this.getChildrenByConstraint(BorderConstraints.CENTER, true);
+			var centerChildCount:int = centerChildren.length;
+			var centerChildHeight:Number = centerHeight / centerChildCount;
+			for(i = 0; i < centerChildCount; i++)
+			{
+				var centerChild:DisplayObject = DisplayObject(centerChildren[i]);
+				config = this.configurations[this.clients.indexOf(centerChild)];
+				
+				x = START_X + leftWidth;
+				y = START_Y + topHeight + (i * centerChildHeight);
+				
+				if(config.maintainAspectRatio)
+				{
+					DisplayObjectUtil.resizeAndMaintainAspectRatio(centerChild, centerWidth, centerChildHeight, config.aspectRatio);
+				}
+				else
+				{
+					centerChild.width = centerWidth;
+					centerChild.height = centerChildHeight;
+				}
+				DisplayObjectUtil.align(centerChild, new Rectangle(x, y, centerWidth, centerChildHeight), config.horizontalAlign, config.verticalAlign);
+			}
+			
+			if(remainingWidth < 0)
+			{
+				width -= remainingWidth;
+			}
+			
+			if(remainingHeight < 0)
+			{
+				height -= remainingHeight;
+			}
+			
+			bounds.width = width + this.paddingLeft + this.paddingRight;
+			bounds.height = height + this.paddingTop + this.paddingBottom;
+			return bounds;
+		}
+		
+		/**
+		 * @private
+		 * Creates the default configuration for this layout mode.
+		 */
+		override protected function newConfiguration():Object
+		{
+			return {
+				includeInLayout: true,
+				constraint: BorderConstraints.CENTER
+			};
+		}
+		
+		/**
+		 * @private
+		 * If no width is specified for the layout container, we need to
+		 * measure the children to determine the best width.
+		 */
+		protected function measureChildWidths():Number
+		{
+			var totalWidth:Number = this.paddingLeft + this.paddingRight;
+			
+			var leftChildren:Array = this.getChildrenByConstraint(BorderConstraints.LEFT, true);
+			var childCount:int = leftChildren.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(leftChildren[i]);
+				totalWidth += child.width + this.horizontalGap;
+			}
+			
+			var rightChildren:Array = this.getChildrenByConstraint(BorderConstraints.RIGHT, true);
+			childCount = rightChildren.length;
+			for(i = 0; i < childCount; i++)
+			{
+				child = DisplayObject(rightChildren[i]);
+				totalWidth += child.width + this.horizontalGap;
+			}
+			
+			var maxWidth:Number = 0;
+			var centerChildren:Array = this.getChildrenByConstraint(BorderConstraints.CENTER, true);
+			childCount = centerChildren.length;
+			for(i = 0; i < childCount; i++)
+			{
+				child = DisplayObject(centerChildren[i]);
+				maxWidth = Math.max(maxWidth, child.width);
+			}
+			totalWidth += maxWidth;
+			
+			maxWidth = 0;
+			var topChildren:Array = this.getChildrenByConstraint(BorderConstraints.TOP, true);
+			childCount = topChildren.length;
+			for(i = 0; i < childCount; i++)
+			{
+				child = DisplayObject(topChildren[i]);
+				maxWidth = Math.max(maxWidth, child.width);
+			}
+			var bottomChildren:Array = this.getChildrenByConstraint(BorderConstraints.BOTTOM, true);
+			childCount = bottomChildren.length;
+			for(i = 0; i < childCount; i++)
+			{
+				child = DisplayObject(bottomChildren[i]);
+				maxWidth = Math.max(maxWidth, child.width);
+			}
+			totalWidth = Math.max(maxWidth, totalWidth);
+			return totalWidth;
+		}
+		
+		/**
+		 * @private
+		 * If no height is specified for the layout container, we need to
+		 * measure the children to determine the best height.
+		 */
+		protected function measureChildHeights():Number
+		{
+			var totalHeight:Number = this.paddingTop + this.paddingBottom;
+			
+			var topChildren:Array = this.getChildrenByConstraint(BorderConstraints.TOP, true);
+			var childCount:int = topChildren.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(topChildren[i]);
+				totalHeight += child.height;
+			}
+			
+			var bottomChildren:Array = this.getChildrenByConstraint(BorderConstraints.BOTTOM, true);
+			childCount = bottomChildren.length;
+			for(i = 0; i < childCount; i++)
+			{
+				child = DisplayObject(bottomChildren[i]);
+				totalHeight += child.height;
+			}
+			
+			var centerTotalHeight:Number = 0;
+			var centerChildren:Array = this.getChildrenByConstraint(BorderConstraints.CENTER, true);
+			childCount = centerChildren.length;
+			for(i = 0; i < childCount; i++)
+			{
+				child = DisplayObject(centerChildren[i]);
+				centerTotalHeight += child.height;
+			}
+			
+			var maxHeight:Number = centerTotalHeight;
+			var rightChildren:Array = this.getChildrenByConstraint(BorderConstraints.RIGHT, true);
+			childCount = rightChildren.length;
+			for(i = 0; i < childCount; i++)
+			{
+				child = DisplayObject(rightChildren[i]);
+				maxHeight = Math.max(maxHeight, child.height);
+			}
+			var leftChildren:Array = this.getChildrenByConstraint(BorderConstraints.LEFT, true);
+			childCount = leftChildren.length;
+			for(i = 0; i < childCount; i++)
+			{
+				child = DisplayObject(leftChildren[i]);
+				maxHeight = Math.max(maxHeight, child.height);
+			}
+			totalHeight += maxHeight;
+			
+			return totalHeight;
+		}
+		
+		/**
+		 * @private
+		 * A simple filter for getting all the clients with a specific constraint
+		 * in their configuration.
+		 */
+		protected function getChildrenByConstraint(constraint:String, inLayoutOnly:Boolean = false):Array
+		{
+			return this.clients.filter(function(item:DisplayObject, index:int, source:Array):Boolean
+			{
+				var configuration:Object = this.configurations[index];
+				return configuration.constraint == constraint && (inLayoutOnly ? configuration.includeInLayout : true);
+			}, this);
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/BoxLayout.as b/src/charts/as/com/yahoo/astra/layout/modes/BoxLayout.as
new file mode 100644
index 0000000..6460256
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/BoxLayout.as
@@ -0,0 +1,440 @@
+package com.yahoo.astra.layout.modes
+{
+	import com.yahoo.astra.layout.events.LayoutEvent;
+	import com.yahoo.astra.utils.DisplayObjectUtil;
+	
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+	import flash.geom.Rectangle;
+
+	/**
+	 * Arranges a DisplayObjectContainer's children in a single column or row.
+	 * 
+	 * @example The following code configures a BoxLayout instance and passes it to a container:
+	 * <listing version="3.0">
+	 * var box:BoxLayout = new BoxLayout();
+	 * box.direction = "vertical";
+	 * box.verticalGap = 4;
+	 * box.verticalAlign = VerticalAlignment.MIDDLE;
+	 * 
+	 * var container:LayoutContainer = new LayoutContainer();
+	 * container.layoutMode = box;
+	 * this.addChild( container );
+	 * </listing>
+	 * 
+	 * <p><strong>Advanced Client Options:</strong></p>
+	 * <p>Optional client configuration parameters allow a developer to specify
+	 * behaviors for individual children of the target container. To set these
+	 * advanced options, one must call <code>addClient()</code> on the BoxLayout
+	 * instance and pass the child to configure along with an object specifying
+	 * the configuration parameters. Several client parameters are available to
+	 * the BoxLayout algorithm:</p>
+	 * 
+	 * <dl>
+	 * 	<dt><strong><code>percentWidth</code></strong> : Number</dt>
+	 * 		<dd>The target's width will be updated based on a percentage of the width specified in the layout bounds.</dd>
+	 * 	<dt><strong><code>percentHeight</code></strong> : Number</dt>
+	 * 		<dd>The target's width will be updated based on a percentage of the width specified in the layout bounds.</dd>
+	 * 	<dt><strong><code>minWidth</code></strong> : Number</dt>
+	 * 		<dd>The minimum width value to allow when resizing. The default value is <code>0</code>.</dd>
+	 * 	<dt><strong><code>minHeight</code></strong> : Number</dt>
+	 * 		<dd>The minimum height value to allow when resizing. The default value is <code>0</code>.</dd>
+	 * 	<dt><strong><code>maxWidth</code></strong> : Number</dt>
+	 * 		<dd>The maximum width value to allow when resizing. The default value is <code>10000</code>.</dd>
+	 * 	<dt><strong><code>maxHeight</code></strong> : Number</dt>
+	 * 		<dd>The maximum height value to allow when resizing. The default value is <code>10000</code>.</dd>
+	 * 	<dt><strong><code>includeInLayout</code></strong> : Boolean</dt>
+	 * 		<dd>If <code>false</code>, the target will not be included in layout calculations. The default value is <code>true</code>.</dd>
+	 * </dl>
+	 * 
+	 * @example The following code adds multiple clients to a BoxLayout instance:
+	 * <listing version="3.0">
+	 * var box:BoxLayout = new BoxLayout();
+	 * box.direction = "vertical";
+	 * box.addClient( headerSprite, { percentWidth: 100 } );
+	 * box.addClient( contentSprite,
+	 * {
+	 *     percentWidth: 100,
+	 *     percentHeight: 100,
+	 *     minWidth: 640,
+	 *     minHeight: 480
+	 * });
+	 * box.addClient( footerSprite, { percentWidth: 100 } );
+	 * 
+	 * var container:LayoutContainer = new LayoutContainer( box );
+	 * container.width = 1024;
+	 * container.height = 768;
+	 * container.addChild( headerSprite );
+	 * container.addChild( contentSprite );
+	 * container.addChild( footerSprite );
+	 * this.addChild( container );
+	 * </listing>
+	 * 
+	 * @author Josh Tynjala
+	 * @see com.yahoo.astra.layout.LayoutContainer
+	 */
+	public class BoxLayout extends BaseLayoutMode implements IAdvancedLayoutMode
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * The default maximum number of pixels to calculate width sizing.
+		 */
+		private static const DEFAULT_MAX_WIDTH:Number = 10000;
+		
+		/**
+		 * @private
+		 * The default maximum number of pixels to calculate height sizing.
+		 */
+		private static const DEFAULT_MAX_HEIGHT:Number = 10000;
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function BoxLayout()
+		{
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Storage for the direction property.
+		 */
+		private var _direction:String = "horizontal";
+		
+		/**
+		 * The direction in which children of the target are laid out. Valid
+		 * direction values include <code>"vertical"</code> or <code>"horizontal"</code>.
+		 */
+		public function get direction():String
+		{
+			return this._direction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set direction(value:String):void
+		{
+			this._direction = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalGap property.
+		 */
+		private var _verticalGap:Number = 0;
+		
+		/**
+		 * The number of pixels appearing between the target's children
+		 * vertically.
+		 */
+		public function get verticalGap():Number
+		{
+			return this._verticalGap;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalGap(value:Number):void
+		{
+			this._verticalGap = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the horizontalGap property.
+		 */
+		private var _horizontalGap:Number = 0;
+		
+		/**
+		 * The number of pixels appearing between the target's children
+		 * horizontally.
+		 */
+		public function get horizontalGap():Number
+		{
+			return this._horizontalGap;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalGap(value:Number):void
+		{
+			this._horizontalGap = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalAlign property.
+		 */
+		private var _verticalAlign:String = "top";
+		
+		/**
+		 * The vertical alignment of children displayed in the target.
+		 * 
+		 * @see VerticalAlignment
+		 */
+		public function get verticalAlign():String
+		{
+			return this._verticalAlign;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalAlign(value:String):void
+		{
+			this._verticalAlign = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the horizontalAlign property.
+		 */
+		private var _horizontalAlign:String = "left";
+		
+		/**
+		 * The horizontal alignment of children displayed in the target.
+		 * 
+		 * @see HorizontalAlignment
+		 */
+		public function get horizontalAlign():String
+		{
+			return this._horizontalAlign;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalAlign(value:String):void
+		{
+			this._horizontalAlign = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * The maximum width value from among the current target's children.
+		 */
+		protected var maxChildWidth:Number;
+		
+		/**
+		 * @private
+		 * The maximum height value from among the current target's children.
+		 */
+		protected var maxChildHeight:Number;
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		override public function layoutObjects(displayObjects:Array, bounds:Rectangle):Rectangle
+		{
+			var childrenInLayout:Array = this.configureChildren(displayObjects);
+			
+			//determine the available horizontal space
+			var hSpaceForChildren:Number = bounds.width - this.paddingLeft - this.paddingRight;
+			if((hSpaceForChildren == Infinity)||(hSpaceForChildren >9000))
+			{
+				hSpaceForChildren = DEFAULT_MAX_WIDTH;
+			}
+			
+			//determine the available vertical space
+			var vSpaceForChildren:Number = bounds.height - this.paddingTop - this.paddingBottom;
+			if((vSpaceForChildren == Infinity)||(vSpaceForChildren >9000))
+			{
+				vSpaceForChildren = DEFAULT_MAX_HEIGHT;
+			}
+			
+			//resize the children based on the available space and the specified percentage width and height values.	
+			if(this.direction == "vertical")
+			{
+				vSpaceForChildren -= (this.verticalGap * (childrenInLayout.length - 1));
+				PercentageSizeUtil.flexChildHeightsProportionally(this.clients, this.configurations, hSpaceForChildren, vSpaceForChildren); 
+			}
+			else
+			{
+				hSpaceForChildren -= (this.horizontalGap * (childrenInLayout.length - 1));
+				PercentageSizeUtil.flexChildWidthsProportionally(this.clients, this.configurations, hSpaceForChildren, vSpaceForChildren); 
+			}
+			
+			this.maxChildWidth = 0;
+			this.maxChildHeight = 0;
+			var childCount:int = childrenInLayout.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(childrenInLayout[i]);
+				
+				//measure the child's width
+				this.maxChildWidth = Math.max(this.maxChildWidth, child.width);
+				this.maxChildHeight = Math.max(this.maxChildHeight, child.height);
+			}
+			
+			if(this.direction == "vertical")
+			{
+				this.layoutChildrenVertically(childrenInLayout, bounds);
+			}
+			else
+			{
+				this.layoutChildrenHorizontally(childrenInLayout, bounds);
+			}		
+			
+			bounds = LayoutModeUtil.calculateChildBounds(childrenInLayout);
+			bounds.width += this.paddingRight;
+			bounds.height += this.paddingBottom;
+			return bounds;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Positions the children when direction is vertical.
+		 */
+		protected function layoutChildrenVertically(children:Array, bounds:Rectangle):void
+		{		
+			var maxXPosition:Number = bounds.width;
+			if(maxXPosition == Number.POSITIVE_INFINITY)
+			{
+				maxXPosition = this.maxChildWidth;
+			}
+			maxXPosition -= (this.paddingLeft + this.paddingRight);
+			
+			var xPosition:Number = bounds.x + this.paddingLeft; 
+			var yPosition:Number = bounds.y + this.paddingTop;
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				child.x = xPosition;
+				child.y = yPosition;
+				
+				DisplayObjectUtil.align(child, new Rectangle(child.x, child.y, maxXPosition, child.height), this.horizontalAlign, null);
+				yPosition += child.height + this.verticalGap;
+			}
+			
+			//special case: if the combined height of the children
+			//is less than the total height specified in the bounds,
+			//then we can align vertically as well!
+			var totalHeight:Number = yPosition - this.verticalGap - bounds.y + this.paddingBottom;
+			if(totalHeight < bounds.height)
+			{
+				var middleStart:Number = (bounds.height - totalHeight) / 2;
+				var rightStart:Number = bounds.height - totalHeight - bounds.y;
+				rightStart = (rightStart == Infinity)?DEFAULT_MAX_HEIGHT:rightStart;				
+				
+				for(i = 0; i < childCount; i++)
+				{
+					child = DisplayObject(children[i]);
+					
+					switch(this.verticalAlign)
+					{
+						case "middle":
+							child.y += middleStart;
+							break;
+						case "bottom":
+							child.y += rightStart;
+							break;
+					}
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Positions the children when direction is horizontal.
+		 */
+		protected function layoutChildrenHorizontally(children:Array, bounds:Rectangle):void
+		{	
+			var maxYPosition:Number = bounds.height;
+			if(maxYPosition == Number.POSITIVE_INFINITY)
+			{
+				maxYPosition = this.maxChildHeight;
+			}
+			maxYPosition -= (this.paddingBottom + this.paddingTop);
+			
+			var xPosition:Number = bounds.x + this.paddingLeft;
+			var yPosition:Number = bounds.y + this.paddingTop
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				
+				var child:DisplayObject = DisplayObject(children[i]);
+				
+				child.x = xPosition;
+				child.y = yPosition;
+				
+				DisplayObjectUtil.align(child, new Rectangle(child.x, child.y, child.width, maxYPosition), null, this.verticalAlign);
+				
+				
+				xPosition += child.width + this.horizontalGap;
+			}
+			
+			//special case: if the combined width of the children
+			//is less than the total width specified in the bounds,
+			//then we can align horizontally as well!
+			var totalWidth:Number = xPosition - this.horizontalGap - bounds.x + this.paddingRight;
+
+			if(totalWidth < bounds.width)
+			{
+				var middleStart:Number = (bounds.width - totalWidth) / 2;
+				var rightStart:Number = bounds.width - totalWidth;
+				rightStart = (rightStart == Infinity)?DEFAULT_MAX_WIDTH:rightStart;
+				
+				for(i = 0; i < childCount; i++)
+				{
+					child = DisplayObject(children[i]);
+					
+					switch(this.horizontalAlign)
+					{
+						case "center":
+							child.x += middleStart;
+							break;
+						case "right":
+							child.x += rightStart;
+							break;
+					}
+				}
+			}
+		}
+
+		/**
+		 * @private
+		 * Creates the default configuration for this layout mode.
+		 */
+		override protected function newConfiguration():Object
+		{
+			return {
+				includeInLayout: true,
+				minWidth: 0,
+				maxWidth: 10000,
+				minHeight: 0,
+				maxHeight: 10000,
+				percentWidth: NaN,
+				percentHeight: NaN
+			};
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/FlowLayout.as b/src/charts/as/com/yahoo/astra/layout/modes/FlowLayout.as
new file mode 100644
index 0000000..dbc09ca
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/FlowLayout.as
@@ -0,0 +1,362 @@
+package com.yahoo.astra.layout.modes
+{
+	import com.yahoo.astra.layout.events.LayoutEvent;
+	import com.yahoo.astra.utils.DisplayObjectUtil;
+	
+	import flash.display.DisplayObject;
+	import flash.display.DisplayObjectContainer;
+	import flash.geom.Rectangle;
+
+	/**
+	 * Arranges a DisplayObjectContainer's children using a flow algorithm. When
+	 * a child is too large for a row or column, a new row or column is created.
+	 * Similar to the flow of text in a document.
+	 * 
+	 * @example The following code configures a FlowLayout instance and passes it to a container:
+	 * <listing version="3.0">
+	 * var flow:FlowLayout = new FlowLayout();
+	 * flow.direction = "horizontal";
+	 * flow.horizontalGap = 1;
+	 * flow.verticalGap = 4;
+	 * flow.verticalAlign = VerticalAlignment.BOTTOM;
+	 * 
+	 * var container:LayoutContainer = new LayoutContainer();
+	 * container.layoutMode = flow;
+	 * this.addChild( container );
+	 * </listing>
+	 * 
+	 * <p><strong>Advanced Client Options:</strong></p>
+	 * <p>Optional client configuration parameters allow a developer to specify
+	 * behaviors for individual children of the target container. To set these
+	 * advanced options, one must call <code>addClient()</code> on the FlowLayout
+	 * instance and pass the child to configure along with an object specifying
+	 * the configuration parameters. The following client parameters are available to
+	 * the FlowLayout algorithm:</p>
+	 * 
+	 * <dl>
+	 * 	<dt><strong><code>includeInLayout</code></strong> : Boolean</dt>
+	 * 		<dd>If <code>false</code>, the target will not be included in layout calculations. The default value is <code>true</code>.</dd>
+	 * </dl>
+	 * 
+	 * @author Josh Tynjala
+	 * @see com.yahoo.astra.layout.LayoutContainer
+	 */
+	public class FlowLayout extends BaseLayoutMode implements IAdvancedLayoutMode
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function FlowLayout()
+		{
+			super();
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Storage for the direction property.
+		 */
+		private var _direction:String = "horizontal";
+		
+		/**
+		 * The direction in which children of the target are laid out. Once
+		 * the edge of the container is reached, the children will begin
+		 * appearing on the next row or column. Valid direction values include
+		 * <code>"vertical"</code> or <code>"horizontal"</code>.
+		 */
+		public function get direction():String
+		{
+			return this._direction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set direction(value:String):void
+		{
+			this._direction = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalGap property.
+		 */
+		private var _verticalGap:Number = 0;
+		
+		/**
+		 * The number of pixels appearing between the target's children
+		 * vertically.
+		 */
+		public function get verticalGap():Number
+		{
+			return this._verticalGap;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalGap(value:Number):void
+		{
+			this._verticalGap = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the horizontalGap property.
+		 */
+		private var _horizontalGap:Number = 0;
+		
+		/**
+		 * The number of pixels appearing between the target's children
+		 * horizontally.
+		 */
+		public function get horizontalGap():Number
+		{
+			return this._horizontalGap;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalGap(value:Number):void
+		{
+			this._horizontalGap = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalAlign property.
+		 */
+		private var _verticalAlign:String = "top";
+		
+		/**
+		 * The vertical alignment of children displayed in the target.
+		 * 
+		 * @see VerticalAlignment
+		 */
+		public function get verticalAlign():String
+		{
+			return this._verticalAlign;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalAlign(value:String):void
+		{
+			this._verticalAlign = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the horizontalAlign property.
+		 */
+		private var _horizontalAlign:String = "left";
+		
+		/**
+		 * The horizontal alignment of children displayed in the target.
+		 * 
+		 * @see HorizontalAlignment
+		 */
+		public function get horizontalAlign():String
+		{
+			return this._horizontalAlign;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalAlign(value:String):void
+		{
+			this._horizontalAlign = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+
+		/**
+		 * @inheritDoc
+		 */
+		override public function layoutObjects(displayObjects:Array, bounds:Rectangle):Rectangle
+		{
+			var childrenInLayout:Array = this.configureChildren(displayObjects);
+			
+			if(this.direction == "vertical")
+			{
+				this.layoutChildrenVertically(childrenInLayout, bounds);
+			}
+			else
+			{
+				this.layoutChildrenHorizontally(childrenInLayout, bounds);
+			}
+			
+			bounds = LayoutModeUtil.calculateChildBounds(childrenInLayout);
+			bounds.width += this.paddingRight;
+			bounds.height += this.paddingBottom;
+			return bounds;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Positions the children when direction is vertical.
+		 */
+		protected function layoutChildrenVertically(children:Array, bounds:Rectangle):void
+		{	
+			const START_Y:Number = bounds.y + this.paddingTop;
+			var xPosition:Number = bounds.x + this.paddingLeft;
+			var yPosition:Number = START_Y;
+			var maxChildWidth:Number = 0;
+			var column:Array = [];;
+			
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				
+				//next column if we're over the height, but not if we're at yposition == bounds.y
+				var endOfColumn:Number = yPosition + child.height + this.paddingBottom;				
+				if(endOfColumn - bounds.y >= bounds.height && yPosition != START_Y)
+				{
+					//update alignment
+					this.alignColumn(column, maxChildWidth, bounds);
+					
+					xPosition += maxChildWidth + this.horizontalGap;
+					yPosition = START_Y;
+					maxChildWidth = 0;
+					column = [];
+				}
+
+				child.x = xPosition;
+				child.y = yPosition;
+				column.push(child);
+				maxChildWidth = Math.max(maxChildWidth, child.width);
+				yPosition += child.height + this.verticalGap;
+			}
+			if(column.length < childCount) this.alignColumn(column, maxChildWidth, bounds);
+		}
+		
+		/**
+		 * @private
+		 * Positions the children when direction is horizontal.
+		 */
+		protected function layoutChildrenHorizontally(children:Array, bounds:Rectangle):void
+		{	
+			const START_X:Number = bounds.x + this.paddingLeft;
+			var xPosition:Number = START_X;
+			var yPosition:Number = bounds.y + this.paddingTop;
+			var maxChildHeight:Number = 0;
+			var row:Array = [];
+			
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				var childWidth:Number = child.width;
+				var childHeight:Number = child.height;
+				
+				//next row if we're over the width, but not if we're at xposition == bounds.x
+				var endOfRow:Number = xPosition + child.width + this.paddingRight;
+				if(endOfRow - bounds.x >= bounds.width && xPosition != START_X)
+				{
+					//update alignment
+					this.alignRow(row, maxChildHeight, bounds);
+					
+					xPosition = START_X;
+					yPosition += maxChildHeight + this.verticalGap;
+					maxChildHeight = 0;
+					row = [];
+				}
+				child.x = xPosition;
+				child.y = yPosition;
+				row.push(child);
+				maxChildHeight = Math.max(maxChildHeight, childHeight);
+				xPosition += child.width + this.horizontalGap;
+			}
+			if(row.length < childCount) this.alignRow(row, maxChildHeight, bounds);
+		}
+		
+		/**
+		 * @private
+		 * Repositions a column of children based on the alignment values.
+		 */
+		protected function alignColumn(column:Array, maxChildWidth:Number, bounds:Rectangle):void
+		{
+			if(column.length == 0)
+			{
+				return;
+			}
+
+			var lastChild:DisplayObject = DisplayObject(column[column.length - 1]);
+			var columnHeight:Number = (lastChild.y + lastChild.height) - bounds.y + this.paddingBottom;
+			var difference:Number = bounds.height - columnHeight;
+			
+			var columnCount:int = column.length;
+			for(var i:int = 0; i < columnCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(column[i]);
+				DisplayObjectUtil.align(child, new Rectangle(child.x, child.y, maxChildWidth, child.height), this.horizontalAlign, null);
+				
+				switch(this.verticalAlign)
+				{
+					case "middle":
+						child.y += difference / 2;
+						break;
+					case "bottom":
+						child.y += difference;
+						break;
+				}
+			}
+		}
+		
+		/**
+		 * @private
+		 * Repositions a row of children based on the alignment values.
+		 */
+		protected function alignRow(row:Array, maxChildHeight:Number, bounds:Rectangle):void
+		{
+			if(row.length == 0)
+			{
+				return;
+			}
+			
+			var lastChild:DisplayObject = DisplayObject(row[row.length - 1]);
+			var rowWidth:Number = (lastChild.x + lastChild.width) - bounds.x + this.paddingRight;
+			var difference:Number = bounds.width - rowWidth;
+			
+			var rowCount:int = row.length;
+			for(var i:int = 0; i < rowCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(row[i]);
+				DisplayObjectUtil.align(child, new Rectangle(child.x, child.y, child.width, maxChildHeight), null, this.verticalAlign);
+			
+				switch(this.horizontalAlign)
+				{
+					case "center":
+						child.x += difference / 2;
+						break;
+					case "right":
+						child.x += difference;
+						break;
+				}
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/HorizontalAlignment.as b/src/charts/as/com/yahoo/astra/layout/modes/HorizontalAlignment.as
new file mode 100644
index 0000000..702a581
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/HorizontalAlignment.as
@@ -0,0 +1,31 @@
+package com.yahoo.astra.layout.modes
+{
+	/**
+	 * A set of constants for horizontal alignment values used by
+	 * the layout engine.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class HorizontalAlignment
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		/**
+		 * Items will be aligned to the left of the available bounds.
+		 */
+		public static const LEFT:String = "left";
+		
+		/**
+		 * Items will be aligned to the center of the available bounds.
+		 */
+		public static const CENTER:String = "center";
+		
+		/**
+		 * Items will be aligned to the right of the available bounds.
+		 */
+		public static const RIGHT:String = "right";
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/IAdvancedLayoutMode.as b/src/charts/as/com/yahoo/astra/layout/modes/IAdvancedLayoutMode.as
new file mode 100644
index 0000000..34d4438
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/IAdvancedLayoutMode.as
@@ -0,0 +1,37 @@
+package com.yahoo.astra.layout.modes
+{
+	import flash.display.DisplayObject;
+	
+	/**
+	 * Defines the methods required for layout modes that have
+	 * advanced configuration settings for individual children.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface IAdvancedLayoutMode extends ILayoutMode
+	{
+		/**
+		 * Registers a specific display object with the layout algorithm. If certain
+		 * settings need to be specified for individual display objects, they
+		 * should be passed to the layout algorithm here.
+		 * 
+		 * @param target			The client to add
+		 * @param configuration		An optional set of name-value pairs for the client's configuration.
+		 */
+		function addClient(target:DisplayObject, configuration:Object = null):void;
+		
+		/**
+		 * Unregisters a specific display object from the layout algorithm.
+		 * 
+		 * @param target		The client to remove
+		 */
+		function removeClient(target:DisplayObject):void;
+		
+		/**
+		 * Returns true if a display object has been registered as a client.
+		 * 
+		 * @param			The display object that may be registered
+		 */
+		function hasClient(target:DisplayObject):Boolean;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/ILayoutMode.as b/src/charts/as/com/yahoo/astra/layout/modes/ILayoutMode.as
new file mode 100644
index 0000000..5489042
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/ILayoutMode.as
@@ -0,0 +1,36 @@
+package com.yahoo.astra.layout.modes
+{
+	import flash.events.IEventDispatcher;
+	import flash.geom.Rectangle;
+	
+	/**
+	 * Defines the properties and functions required
+	 * for layout modes used by ILayoutContainer.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public interface ILayoutMode extends IEventDispatcher
+	{
+		
+	//--------------------------------------
+	//  Methods
+	//--------------------------------------
+	
+		/**
+		 * The DisplayObjects in the input parameter will be positioned and sized
+		 * based on a specified rectangle. There is no requirement that the
+		 * display objects remain entirely within the rectangle.
+		 * 
+		 * <p>Returns the actual rectangular region in which the laid out
+		 * children will appear. This may be larger or smaller than the
+		 * suggested rectangle. This returned value is expected to be used by
+		 * container components to determine if scrollbars or other navigation
+		 * controls are needed.</p>
+		 * 
+		 * @param displayObjects	An Array of DisplayObjects to be laid out.
+		 * @param bounds			The rectangular region in which the display objects should be placed.
+		 * @return					The actual region in which the display objects are contained.
+		 */
+		function layoutObjects(displayObjects:Array, bounds:Rectangle):Rectangle;
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/LayoutModeUtil.as b/src/charts/as/com/yahoo/astra/layout/modes/LayoutModeUtil.as
new file mode 100644
index 0000000..c68d23a
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/LayoutModeUtil.as
@@ -0,0 +1,46 @@
+package com.yahoo.astra.layout.modes
+{
+	import flash.display.DisplayObject;
+	import flash.geom.Rectangle;
+	
+	/**
+	 * Utility functions shared by implementations of ILayoutMode.
+	 * 
+	 * @author Josh Tynjala
+	 * @see ILayoutMode
+	 */
+	public class LayoutModeUtil
+	{
+		
+	//--------------------------------------
+	//  Static Methods
+	//--------------------------------------
+	
+		/**
+		 * Calculates the rectangular bounds occupied by the target's children.
+		 * 
+		 * @param children		The set of children to use to calculate the maximum bounds
+		 */
+		public static function calculateChildBounds(children:Array):Rectangle
+		{
+			var minX:Number = 0;
+			var maxX:Number = 0;
+			var minY:Number = 0;
+			var maxY:Number = 0;
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				var childMaxX:Number = child.x + child.width;
+				var childMaxY:Number = child.y + child.height;
+				minX = Math.min(minX, child.x);
+				minY = Math.min(minY, child.y);
+				maxX = Math.max(maxX, childMaxX);
+				maxY = Math.max(maxY, childMaxY);
+			}
+			
+			return new Rectangle(minX, minY, maxX - minX, maxY - minY);
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/PercentageSizeUtil.as b/src/charts/as/com/yahoo/astra/layout/modes/PercentageSizeUtil.as
new file mode 100644
index 0000000..16ba830
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/PercentageSizeUtil.as
@@ -0,0 +1,635 @@
+/**
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with the
+ * License. You may obtain a copy of the License at http://www.mozilla.org/MPL/.
+ * 
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
+ * the specific language governing rights and limitations under the License.
+ * 
+ * The Original Code is part of the Open Source Flex 3 SDK Downloads
+ * (http://opensource.adobe.com/wiki/display/flexsdk/Downloads)
+ * 
+ * The Initial Developer of the Original Code is Adobe Systems Incorporated
+ * (see original files for appropriate copyright notices)
+ * 
+ * Contributor(s): Yahoo! Inc.
+ * 
+ * Copyright (c) 2008 Yahoo! Inc. All Rights Reserved.
+ */
+package com.yahoo.astra.layout.modes
+{
+	import flash.display.DisplayObject;
+	
+	/**
+	 * Utility functions used for determining pixel-based sizes from percentage-based sizes.
+	 * 
+	 * @author Josh Tynjala and Adobe Systems Inc.
+	 */
+	public class PercentageSizeUtil
+	{
+
+	//--------------------------------------
+	//  Static Methods
+	//--------------------------------------
+	
+		/**
+		 * This function sets the width of each child so that the widths add up
+		 * to spaceForChildren. Each child is set to its preferred width if its
+		 * percentWidth is zero. If it's percentWidth is a positive number the
+		 * child grows depending on the size of its parent. The height of each
+		 * child is set to its preferred height. The return value is any extra
+		 * space that's left over after growing all children to their maxWidth.
+		 */
+		public static function flexChildWidthsProportionally(children:Array, configurations:Array, totalWidth:Number, totalHeight:Number):Number
+		{
+			var spaceToDistribute:Number = totalWidth;
+			var totalPercentWidth:Number = 0;
+			var childInfoArray:Array = [];
+	
+			// If the child is flexible, store information about it in the
+			// childInfoArray. For non-flexible children, just set the child's
+			// width and height immediately.
+			//
+			// Also calculate the sum of all widthFlexes, and calculate the 
+			// sum of the width of all non-flexible children.
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				var config:Object = configurations[i];
+				
+				if(!config.includeInLayout)
+				{
+					//skip non-configuration children
+					continue;
+				}
+				
+				var percentWidth:Number = config.percentWidth;
+				var percentHeight:Number = config.percentHeight;
+				var height:Number = NaN;
+				
+				if(!isNaN(percentHeight))
+				{
+					height = Math.max(config.minHeight,
+						Math.min(config.maxHeight, ((percentHeight >= 100) ? totalHeight : totalHeight * percentHeight / 100)));
+				}
+				
+				if(!isNaN(percentWidth))
+				{
+					totalPercentWidth += percentWidth;
+	
+					var childInfo:ChildInfo = new ChildInfo();
+					childInfo.percent = percentWidth;
+					childInfo.min = config.minWidth;
+					childInfo.max = config.maxWidth;
+					childInfo.opposite = height;
+					childInfo.child = child;
+					
+					childInfoArray.push(childInfo);
+				}
+				else
+				{
+					//var width:Number = child.width;
+					// if scaled and zoom is playing, best to let the sizes be non-integer
+					// otherwise the rounding creates an error that accumulates in some components like List
+					if(child.scaleX == 1 && child.scaleY == 1)
+					{
+						if(!isNaN(height))
+						{
+							child.height = Math.floor(height);
+						}
+					}
+					else
+					{
+						if(!isNaN(height))
+						{
+							child.height = height;
+						}
+					}
+	
+					// Need to account for the actual child width since 
+					// setActualSize may trigger a Resize effect, which 
+					// could change the size of the component.
+					spaceToDistribute -= child.width;
+				}
+			}
+	
+			// Distribute the extra space among the children.
+			if(totalPercentWidth)
+			{
+				spaceToDistribute = flexChildrenProportionally(totalWidth, spaceToDistribute, totalPercentWidth, childInfoArray);
+	
+				// Set the widths and heights of the flexible children
+				childCount = childInfoArray.length;
+				for(i = 0; i < childCount; i++)
+				{
+					childInfo = ChildInfo(childInfoArray[i]);
+					child = childInfo.child;
+	
+					// if scaled and zoom is playing, best to let the sizes be non-integer
+					// otherwise the rounding creates an error that accumulates in some components like List
+					if(child.scaleX == 1 && child.scaleY == 1)
+					{
+						child.width = Math.floor(childInfo.size);
+						if(!isNaN(childInfo.opposite))
+						{
+							child.height = Math.floor(childInfo.opposite);
+						}
+					}
+					else
+					{
+						child.width = childInfo.size;
+						if(!isNaN(childInfo.opposite))
+						{
+							child.height = childInfo.opposite;
+						}
+					}
+				}
+				
+				distributeExtraWidth(children, configurations, totalWidth);
+			}
+	
+			return spaceToDistribute;
+		}
+	
+		/**
+		 *  This function sets the height of each child
+		 *  so that the heights add up to spaceForChildren. 
+		 *  Each child is set to its preferred height
+		 *  if its percentHeight is zero.
+		 *  If its percentHeight is a positive number,
+		 *  the child grows (or shrinks) to consume its share of extra space.
+		 *  The width of each child is set to its preferred width.
+		 *  The return value is any extra space that's left over
+		 *  after growing all children to their maxHeight.
+		 */
+		public static function flexChildHeightsProportionally(children:Array, configurations:Array,
+			totalWidth:Number, totalHeight:Number):Number
+		{
+			var spaceToDistribute:Number = totalHeight;
+			var totalPercentHeight:Number = 0;
+			var childInfoArray:Array = [];
+	
+			// If the child is flexible, store information about it in the
+			// childInfoArray. For non-flexible children, just set the child's
+			// width and height immediately.
+			//
+			// Also calculate the sum of all percentHeights, and calculate the 
+			// sum of the height of all non-flexible children.
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				var config:Object = configurations[i];
+	
+				if(!config.includeInLayout)
+				{
+					//skip children that aren't in the layout
+					continue;
+				}
+				
+				var percentWidth:Number = config.percentWidth;
+				var percentHeight:Number = config.percentHeight;
+				var width:Number = NaN;
+				
+				if(!isNaN(percentWidth))
+				{
+					width = Math.max(config.minWidth, Math.min(config.maxWidth,
+						((percentWidth >= 100) ? totalWidth : totalWidth * percentWidth / 100)));
+				}
+			
+				if(!isNaN(percentHeight))
+				{
+					totalPercentHeight += percentHeight;
+	
+					var childInfo:ChildInfo = new ChildInfo();
+					childInfo.percent = percentHeight;
+					childInfo.min = config.minHeight;
+					childInfo.max = config.maxHeight;
+					childInfo.opposite = width;
+					childInfo.child = child;
+					
+					childInfoArray.push(childInfo);
+				}
+				else
+				{
+					if(child.scaleX == 1 && child.scaleY == 1)
+					{
+						if(!isNaN(width))
+						{
+							child.width = Math.floor(width);
+						}
+					}
+					else
+					{
+						if(!isNaN(width))
+						{
+							child.width = width;
+						}
+					}
+	
+					// Need to account for the actual child height since 
+					// setActualSize may trigger a Resize effect, which 
+					// could change the size of the component.
+					spaceToDistribute -= child.height;
+				}
+			}
+	
+			// Distribute the extra space among the children.
+			if(totalPercentHeight)
+			{
+				spaceToDistribute = flexChildrenProportionally(totalHeight, spaceToDistribute, totalPercentHeight, childInfoArray);
+	
+				// Set the widths and heights of the flexible children
+				childCount = childInfoArray.length;
+				for(i = 0; i < childCount; i++)
+				{
+					childInfo = ChildInfo(childInfoArray[i]);
+					child = childInfo.child;			
+	
+					// if scaled and zoom is playing, best to let the sizes be non-integer
+					// otherwise the rounding creates an error that accumulates in some components like List
+					if(child.scaleX == 1 && child.scaleY == 1)
+					{
+						if(!isNaN(childInfo.opposite))
+						{
+							child.width = Math.floor(childInfo.opposite);
+						}
+						child.height = Math.floor(childInfo.size);
+					}
+					else
+					{
+						if(!isNaN(childInfo.opposite))
+						{
+							child.width = childInfo.opposite;
+						}
+						child.height = childInfo.size;
+					}
+				}
+				
+	            distributeExtraHeight(children, configurations, totalHeight);
+			}
+			
+			return spaceToDistribute;
+		}
+	
+		/**
+		 *  This function distributes excess space among the flexible children.
+		 *  It does so with a view to keep the children's overall size
+		 *  close the ratios specified by their percent.
+		 *
+		 *  @param spaceForChildren The total space for all children
+		 *
+		 *  @param spaceToDistribute The space that needs to be distributed
+		 *  among the flexible children.
+		 *
+		 *  @param childInfoArray An array of Objects. When this function
+		 *  is called, each object should define the following properties:
+		 *  - percent: the percentWidth or percentHeight of the child (depending
+		 *  on whether we're growing in a horizontal or vertical direction)
+		 *  - min: the minimum width (or height) for that child
+		 *  - max: the maximum width (or height) for that child
+		 *
+		 *  @return When this function finishes executing, a "size" property
+		 *  will be defined for each child object. The size property contains
+		 *  the portion of the spaceToDistribute to be distributed to the child.
+		 *  Ideally, the sum of all size properties is spaceToDistribute.
+		 *  If all the children hit their minWidth/maxWidth/minHeight/maxHeight
+		 *  before the space was distributed, then the remaining unused space
+		 *  is returned. Otherwise, the return value is zero.
+		 */
+		public static function flexChildrenProportionally(spaceForChildren:Number, spaceToDistribute:Number,
+									totalPercent:Number, childInfoArray:Array):Number
+		{
+			// The algorithm iterivately attempts to break down the space that 
+			// is consumed by "flexible" containers into ratios that are related
+			// to the percentWidth/percentHeight of the participating containers.
+			
+			var numChildren:int = childInfoArray.length;
+			var flexConsumed:Number; // space consumed by flexible compontents
+			var done:Boolean;
+			
+			// We now do something a little tricky so that we can 
+			// support partial filling of the space. If our total
+			// percent < 100% then we can trim off some space.
+			var unused:Number = spaceToDistribute - (spaceForChildren * totalPercent / 100);
+			if(unused > 0)
+			{
+				spaceToDistribute -= unused;
+			}
+	
+			// Continue as long as there are some remaining flexible children.
+			// The "done" flag isn't strictly necessary, except that it catches
+			// cases where round-off error causes totalPercent to not exactly
+			// equal zero.
+			do
+			{
+				flexConsumed = 0; // space consumed by flexible compontents
+				done = true; // we are optimistic
+				
+				// Space for flexible children is the total amount of space
+				// available minus the amount of space consumed by non-flexible
+				// components.Divide that space in proportion to the percent
+				// of the child
+				var spacePerPercent:Number = spaceToDistribute / totalPercent;
+				
+				// Attempt to divide out the space using our percent amounts,
+				// if we hit its limit then that control becomes 'non-flexible'
+				// and we run the whole space to distribute calculation again.
+				for(var i:int = 0; i < numChildren; i++)
+				{
+					var childInfo:ChildInfo = ChildInfo(childInfoArray[i]);
+	
+					// Set its size in proportion to its percent.
+					var size:Number = childInfo.percent * spacePerPercent;
+	
+					// If our flexiblity calc say grow/shrink more than we are
+					// allowed, then we grow/shrink whatever we can, remove
+					// ourselves from the array for the next pass, and start
+					// the loop over again so that the space that we weren't
+					// able to consume / release can be re-used by others.
+					if(size < childInfo.min)
+					{
+						var min:Number = childInfo.min;
+						childInfo.size = min;
+						
+						// Move this object to the end of the array
+						// and decrement the length of the array. 
+						// This is slightly expensive, but we don't expect
+						// to hit these min/max limits very often.
+						childInfoArray[i] = childInfoArray[--numChildren];
+						childInfoArray[numChildren] = childInfo;
+	
+						totalPercent -= childInfo.percent;
+						spaceToDistribute -= min;
+						done = false;
+						break;
+					}
+					else if(size > childInfo.max)
+					{
+						var max:Number = childInfo.max;
+						childInfo.size = max;
+	
+						childInfoArray[i] = childInfoArray[--numChildren];
+						childInfoArray[numChildren] = childInfo;
+	
+						totalPercent -= childInfo.percent;
+						spaceToDistribute -= max;
+						done = false;
+						break;
+					}
+					else
+					{
+						// All is well, let's carry on...
+						childInfo.size = size;
+						flexConsumed += size;
+					}
+				}
+			} 
+			while(!done);
+	
+			return Math.max(0, Math.floor(spaceToDistribute - flexConsumed))
+		}
+		
+		/**
+		 *  This function distributes excess space among the flexible children
+		 *  because of rounding errors where we want to keep children's dimensions 
+		 *  full pixel amounts.  This only distributes the extra space 
+		 *  if there was some rounding down and there are still 
+		 *  flexible children.
+		 *
+		 *  @param parent The parent container of the children.
+		 * 
+		 *  @param spaceForChildren The total space for all children
+		 */
+		public static function distributeExtraHeight(children:Array, configurations:Array, spaceForChildren:Number):void
+		{
+			// We should only get here after distributing the majority of the 
+			// space already.  This is done in flexChildHeightsProportionally.
+			// Strategy here is to keep adding 1 pixel at a time to each 
+			// component that's flexible (percentHeight defined and hasn't
+			// reached maxHeight yet).  We could use another approach where
+			// we add more than a pixel at a time, but we'd have to first 
+			// calculate exactly how many flexible components we have first
+			// and see how much space we can add to them without hitting
+			// their maxHeight.  Since we're just dealing with rounding 
+			// issues, we should only make one pass here (if we hit maxHeight
+			// problems, we might make more than one, but not many more).
+			
+			// We just distribute from the top-down and don't care about 
+			// who was "rounded down the most"
+			
+			// First check if we should distribute any extra space.  To do 
+			// this, we check to see if someone suffers from rounding error.
+			var wantToGrow:Boolean = false;
+			var percentHeight:Number;
+			var spaceToDistribute:Number = spaceForChildren;
+			var spaceUsed:Number = 0;
+			var childHeight:Number;
+			var wantSpace:Number;
+			
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				var config:Object = configurations[i];
+				
+				if(!config.includeInLayout)
+				{
+					continue;
+				}
+					
+				childHeight = child.height;
+				percentHeight = config.percentHeight;
+				
+				spaceUsed += childHeight;
+				
+				if(!isNaN(percentHeight))
+				{
+					wantSpace = Math.ceil(percentHeight/100 * spaceForChildren);
+					
+					if(wantSpace > childHeight)
+					{
+						wantToGrow = true;
+					}
+				}
+			}
+			
+			// No need to distribute extra size
+			if(!wantToGrow)
+			{
+				return;
+			}
+	
+			// Start distributing...
+			spaceToDistribute -= spaceUsed;
+			
+			// If we still have components that will let us 
+			// distribute to them
+			var stillFlexibleComponents:Boolean = true;	
+			
+			while(stillFlexibleComponents && spaceToDistribute > 0)
+			{
+				// Start optimistically
+				stillFlexibleComponents = false;
+				
+				for(i = 0; i < childCount; i++)
+				{
+					child = DisplayObject(children[i]);
+					config = configurations[i];
+					childHeight = child.height;
+					percentHeight = config.percentHeight;
+					
+					// if they have a percentHeight, and we won't reach their
+					// maxHeight by giving them one more pixel, then 
+					// give them a pixel
+					if(!isNaN(percentHeight) && 
+							config.includeInLayout && 
+							childHeight < config.maxHeight)
+					{
+						wantSpace = Math.ceil(percentHeight/100 * spaceForChildren);
+					
+						if(wantSpace > childHeight)
+						{
+							child.height = childHeight + 1;
+							spaceToDistribute--;
+							stillFlexibleComponents = true;
+							
+							if(spaceToDistribute == 0)
+							{
+								return;
+							}
+						}
+					}
+				}
+			}
+		}
+		
+		/**
+		 *  This function distributes excess space among the flexible children
+		 *  because of rounding errors where we want to keep children's dimensions 
+		 *  full pixel amounts.  This only distributes the extra space 
+		 *  if there was some rounding down and there are still 
+		 *  flexible children.
+		 *
+		 *  @param parent The parent container of the children.
+		 * 
+		 *  @param spaceForChildren The total space for all children
+		 */
+		public static function distributeExtraWidth(children:Array, configurations:Array, spaceForChildren:Number):void
+		{
+			// We should only get here after distributing the majority of the 
+			// space already.  This is done in flexChildWidthsProportionally.
+			// Strategy here is to keep adding 1 pixel at a time to each 
+			// component that's flexible (percentWidth defined and hasn't
+			// reached maxWidth yet).  We could use another approach where
+			// we add more than a pixel at a time, but we'd have to first 
+			// calculate exactly how many flexible components we have first
+			// and see how much space we can add to them without hitting
+			// their maxWidth.  Since we're just dealing with rounding 
+			// issues, we should only make one pass here (if we hit maxWidth
+			// problems, we might make more than one, but not many more).
+			
+			// We just distribute from the top-down and don't care about 
+			// who was "rounded down the most"
+			
+			// First check if we should distribute any extra space.  To do 
+			// this, we check to see if someone suffers from rounding error.
+			var childCount:int = children.length;
+			var wantToGrow:Boolean = false;
+			var percentWidth:Number;
+			var spaceToDistribute:Number = spaceForChildren;
+			var spaceUsed:Number = 0;
+			var childWidth:Number;	
+			var wantSpace:Number;
+			
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				var config:Object = configurations[i];
+				
+				if(!config.includeInLayout)
+				{
+					continue;
+				}
+					
+				childWidth = child.width;
+				percentWidth = config.percentWidth;
+				
+				spaceUsed += childWidth;
+				
+				if(!isNaN(percentWidth))
+				{
+					wantSpace = Math.ceil(percentWidth / 100 * spaceForChildren);
+					
+					if(wantSpace > childWidth)
+					{
+						wantToGrow = true;
+					}
+				}
+			}
+			
+			// No need to distribute extra size
+			if(!wantToGrow)
+			{
+				return;
+			}
+	
+			// Start distributing...
+			spaceToDistribute -= spaceUsed;
+			
+			// If we still have components that will let us 
+			// distribute to them
+			var stillFlexibleComponents:Boolean = true;	
+			
+			while(stillFlexibleComponents && spaceToDistribute > 0)
+			{
+				// Start optimistically
+				stillFlexibleComponents = false;
+				
+				for(i = 0; i < childCount; i++)
+				{
+					child = DisplayObject(children[i]);
+					config = configurations[i];
+					
+					childWidth = child.width;
+					percentWidth = config.percentWidth;
+					
+					// if they have a percentWidth, and we won't reach their
+					// maxWidth by giving them one more pixel, then 
+					// give them a pixel
+					if(!isNaN(percentWidth) && config.includeInLayout && childWidth < config.maxWidth)
+					{
+						wantSpace = Math.ceil(percentWidth / 100 * spaceForChildren);
+					
+						if(wantSpace > childWidth)
+						{
+							child.width = childWidth + 1;
+							spaceToDistribute--;
+							stillFlexibleComponents = true;
+							
+							if(spaceToDistribute == 0)
+							{
+								return;
+							}
+						}
+					}
+				}
+			}
+		}
+
+	}
+}
+	import flash.display.DisplayObject;
+	
+
+class ChildInfo
+{
+	public var max:Number;
+	public var min:Number;
+	public var child:DisplayObject;
+	public var percent:Number;
+	public var size:Number;
+	public var opposite:Number;
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/TileLayout.as b/src/charts/as/com/yahoo/astra/layout/modes/TileLayout.as
new file mode 100644
index 0000000..401bf8f
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/TileLayout.as
@@ -0,0 +1,358 @@
+package com.yahoo.astra.layout.modes
+{
+	import com.yahoo.astra.layout.events.LayoutEvent;
+	import com.yahoo.astra.utils.DisplayObjectUtil;
+	
+	import flash.display.DisplayObject;
+	import flash.geom.Rectangle;
+
+	/**
+	 * Arranges a DisplayObjectContainer's children using a tiling algorithm.
+	 * All tiles are the same size and tile dimensions are determined from the
+	 * maximum width or height values of the available children.
+	 * 
+	 * @example The following code configures a TileLayout instance and passes it to a container:
+	 * <listing version="3.0">
+	 * var tile:TileLayout = new TileLayout();
+	 * tile.direction = "horizontal";
+	 * tile.horizontalGap = 1;
+	 * tile.verticalGap = 4;
+	 * tile.horizontalAlign = HorizontalAlignment.CENTER;
+	 * tile.verticalAlign = VerticalAlignment.MIDDLE;
+	 * 
+	 * var container:LayoutContainer = new LayoutContainer();
+	 * container.layoutMode = tile;
+	 * this.addChild( container );
+	 * </listing>
+	 * 
+	 * <p><strong>Advanced Client Options:</strong></p>
+	 * <p>Optional client configuration parameters allow a developer to specify
+	 * behaviors for individual children of the target container. To set these
+	 * advanced options, one must call <code>addClient()</code> on the TileLayout
+	 * instance and pass the child to configure along with an object specifying
+	 * the configuration parameters. The following client parameters are available to
+	 * the TileLayout algorithm:</p>
+	 * 
+	 * <dl>
+	 * 	<dt><strong><code>includeInLayout</code></strong> : Boolean</dt>
+	 * 		<dd>If <code>false</code>, the target will not be included in layout calculations. The default value is <code>true</code>.</dd>
+	 * </dl>
+	 * 
+	 * @author Josh Tynjala
+	 * @see com.yahoo.astra.layout.LayoutContainer
+	 */
+	public class TileLayout extends BaseLayoutMode implements IAdvancedLayoutMode
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function TileLayout()
+		{
+		}
+
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Storage for the direction property.
+		 */
+		private var _direction:String = "horizontal";
+		
+		/**
+		 * The direction in which children of the target are laid out. Once
+		 * the edge of the container is reached, the children will begin
+		 * appearing on the next row or column. Valid direction values include
+		 * <code>"vertical"</code> or <code>"horizontal"</code>.
+		 */
+		public function get direction():String
+		{
+			return this._direction;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set direction(value:String):void
+		{
+			this._direction = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalGap property.
+		 */
+		private var _verticalGap:Number = 0;
+		
+		/**
+		 * The number of pixels appearing between the target's children
+		 * vertically.
+		 */
+		public function get verticalGap():Number
+		{
+			return this._verticalGap;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalGap(value:Number):void
+		{
+			this._verticalGap = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the horizontalGap property.
+		 */
+		private var _horizontalGap:Number = 0;
+		
+		/**
+		 * The number of pixels appearing between the target's children
+		 * horizontally.
+		 */
+		public function get horizontalGap():Number
+		{
+			return this._horizontalGap;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalGap(value:Number):void
+		{
+			this._horizontalGap = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the verticalAlign property.
+		 */
+		private var _verticalAlign:String = "top";
+		
+		/**
+		 * The children of the target may be aligned vertically within their
+		 * respective tiles.
+		 * 
+		 * @see VerticalAlignment
+		 */
+		public function get verticalAlign():String
+		{
+			return this._verticalAlign;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set verticalAlign(value:String):void
+		{
+			this._verticalAlign = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the horizontalAlign property.
+		 */
+		private var _horizontalAlign:String = "left";
+		
+		/**
+		 * The children of the target may be aligned horizontally within their
+		 * respective tiles.
+		 * 
+		 * @see HorizontalAlignment
+		 */
+		public function get horizontalAlign():String
+		{
+			return this._horizontalAlign;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set horizontalAlign(value:String):void
+		{
+			this._horizontalAlign = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the tileWidth property.
+		 */
+		private var _tileWidth:Number = NaN;
+		
+		/**
+		 * The width of tiles displayed in the target. If NaN, the tile width
+		 * will be calculated based on the maximum width among the target's children.
+		 */
+		public function get tileWidth():Number
+		{
+			return this._tileWidth;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set tileWidth(value:Number):void
+		{
+			this._tileWidth = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * Storage for the tileHeight property.
+		 */
+		private var _tileHeight:Number = NaN;
+		
+		/**
+		 * The height of tiles displayed in the target. If NaN, the tile height
+		 * will be calculated based on the maximum height among the target's children.
+		 */
+		public function get tileHeight():Number
+		{
+			return this._tileHeight;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set tileHeight(value:Number):void
+		{
+			this._tileHeight = value;
+			this.dispatchEvent(new LayoutEvent(LayoutEvent.LAYOUT_CHANGE));
+		}
+		
+		/**
+		 * @private
+		 * The maximum width value from among the current target's children.
+		 */
+		protected var maxChildWidth:Number;
+		
+		/**
+		 * @private
+		 * The maximum height value from among the current target's children.
+		 */
+		protected var maxChildHeight:Number;
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * @inheritDoc
+		 */
+		override public function layoutObjects(displayObjects:Array, bounds:Rectangle):Rectangle
+		{
+			var childrenInLayout:Array = this.configureChildren(displayObjects);
+			
+			this.maxChildWidth = this.maxChildHeight = 0;
+			var childCount:int = displayObjects.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(displayObjects[i]);
+				this.maxChildWidth = Math.max(this.maxChildWidth, child.width);
+				this.maxChildHeight = Math.max(this.maxChildHeight, child.height);
+			}
+			
+			if(!isNaN(this.tileWidth))
+			{
+				this.maxChildWidth = this.tileWidth;
+			}
+			
+			if(!isNaN(this.tileHeight))
+			{
+				this.maxChildHeight = this.tileHeight;
+			}
+			
+			if(this.direction == "vertical")
+			{
+				this.layoutChildrenVertically(childrenInLayout, bounds);
+			}
+			else
+			{
+				this.layoutChildrenHorizontally(childrenInLayout, bounds);
+			}
+			
+			var bounds:Rectangle = LayoutModeUtil.calculateChildBounds(childrenInLayout);
+			bounds.width += this.paddingRight;
+			bounds.height += this.paddingBottom;
+			return bounds;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+	
+		/**
+		 * @private
+		 * Positions the children when direction is vertical.
+		 */
+		protected function layoutChildrenVertically(children:Array, bounds:Rectangle):void
+		{	
+			const START_Y:Number = bounds.y + this.paddingTop;
+			var xPosition:Number = bounds.x + this.paddingLeft;
+			var yPosition:Number = START_Y;
+			
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				
+				var endOfColumn:Number = yPosition + this.maxChildHeight + this.paddingBottom;
+				if(endOfColumn - bounds.y >= bounds.height && yPosition != START_Y)
+				{
+					//next column if we're over the height,
+					//but not if we're at yposition == START_Y
+					yPosition = START_Y;
+					xPosition += this.maxChildWidth + this.horizontalGap;
+				}
+				
+				DisplayObjectUtil.align(child, new Rectangle(xPosition, yPosition, this.maxChildWidth, this.maxChildHeight), this.horizontalAlign, this.verticalAlign);
+				
+				yPosition += this.maxChildHeight + this.verticalGap;
+			}
+		}
+		
+		/**
+		 * @private
+		 * Positions the children when direction is horizontal.
+		 */
+		protected function layoutChildrenHorizontally(children:Array, bounds:Rectangle):void
+		{
+			const START_X:Number = bounds.x + this.paddingLeft;
+			var xPosition:Number = START_X;
+			var yPosition:Number = bounds.y + this.paddingTop;
+			
+			var childCount:int = children.length;
+			for(var i:int = 0; i < childCount; i++)
+			{
+				var child:DisplayObject = DisplayObject(children[i]);
+				
+				var endOfRow:Number = xPosition + this.maxChildWidth + this.paddingRight;
+				if(endOfRow - bounds.x >= bounds.width && xPosition != START_X)
+				{
+					//next row if we're over the width,
+					//but not if we're at xposition == START_X
+					xPosition = START_X;
+					yPosition += this.maxChildHeight + this.verticalGap;
+				}
+				
+				DisplayObjectUtil.align(child, new Rectangle(xPosition, yPosition, this.maxChildWidth, this.maxChildHeight), this.horizontalAlign, this.verticalAlign);
+				
+				xPosition += this.maxChildWidth + this.horizontalGap;
+			}
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/layout/modes/VerticalAlignment.as b/src/charts/as/com/yahoo/astra/layout/modes/VerticalAlignment.as
new file mode 100644
index 0000000..0b083ac
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/layout/modes/VerticalAlignment.as
@@ -0,0 +1,31 @@
+package com.yahoo.astra.layout.modes
+{
+	/**
+	 * A set of constants for vertical alignment values used by
+	 * the layout engine.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class VerticalAlignment
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		/**
+		 * Items will be aligned to the top of the available bounds.
+		 */
+		public static const TOP:String = "top";
+		
+		/**
+		 * Items will be aligned to the middle of the available bounds.
+		 */
+		public static const MIDDLE:String = "middle";
+		
+		/**
+		 * Items will be aligned to the bottom of the available bounds.
+		 */
+		public static const BOTTOM:String = "bottom";
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/utils/AxisLabelUtil.as b/src/charts/as/com/yahoo/astra/utils/AxisLabelUtil.as
new file mode 100644
index 0000000..ddf7cc3
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/AxisLabelUtil.as
@@ -0,0 +1,79 @@
+package com.yahoo.astra.utils
+{	
+	import com.yahoo.astra.display.BitmapText;
+	import flash.display.Sprite;
+	import flash.text.*;
+	import flash.display.Bitmap;
+	import flash.display.BitmapData;
+	import flash.display.PixelSnapping;
+	
+
+	/**
+	 * Used to measure dimensions for BitmapText objects.
+	 * 
+	 * @author Tripp Bridges
+	 */
+	public class AxisLabelUtil
+	{
+		/**
+		 * Returns the potential width of a string when rendered in a text field. Takes into account 
+		 * the <code>TextFormat</code> settings and the rotation.
+		 *
+		 * @param textValue The string that will be used.
+		 * @param tf		The TextFormat object that will be applied.
+		 * @param rotation	The rotation that will be applied
+		 *
+		 */
+		public static function getTextWidth(textValue:String, tf:TextFormat, rotation:Number = 0):Number
+		{
+			var width:Number;
+			rotation = Math.max(-90, Math.min(rotation, 90));			
+			var textField:BitmapText = new BitmapText();
+			textField.selectable = false;
+			textField.autoSize = TextFieldAutoSize.LEFT;			
+			if(tf != null) textField.defaultTextFormat = tf;
+			textField.text = textValue;
+			textField.rotation = rotation;
+			return textField.width;
+		}
+		
+		/**
+		 * Returns the potential height of a string when rendered in a text field. Takes into account 
+		 * the <code>TextFormat</code> settings and the rotation.
+		 *
+		 * @param textValue The string that will be used.
+		 * @param tf		The TextFormat object that will be applied.
+		 * @param rotation	The rotation that will be applied		 
+		 */
+		public static function getTextHeight(textValue:String, tf:TextFormat, rotation:Number = 0):Number
+		{
+			rotation = Math.max(-90, Math.min(rotation, 90));
+			var textField:BitmapText = new BitmapText();
+			textField.selectable = false;
+			textField.autoSize =  TextFieldAutoSize.LEFT;			
+			if(tf != null) textField.defaultTextFormat = tf;
+			textField.text = textValue;
+			textField.rotation = rotation;
+			return textField.height;
+			
+		}
+		
+		/**
+		 * Returns the dimensions of a text field if rotated.
+		 *
+		 * @param textField		The text field to be used	
+		 * @param rotation		The rotation to be applied
+		 */
+		public static function getBitmapTextSize(textField:TextField, rotation:Number):Object
+		{
+			var spr:Sprite = new Sprite();
+			var bitmapDataText:BitmapData = new BitmapData(textField.width, textField.height, true, 0);
+			bitmapDataText.draw(textField);
+			var bm:Bitmap = new Bitmap(bitmapDataText, PixelSnapping.AUTO, true);
+			spr.addChild(bm);
+			spr.rotation = rotation;
+			return {width:spr.width, height:spr.height};						
+		}
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/utils/DateUtil.as b/src/charts/as/com/yahoo/astra/utils/DateUtil.as
new file mode 100644
index 0000000..13e580d
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/DateUtil.as
@@ -0,0 +1,358 @@
+package com.yahoo.astra.utils
+{		
+	/**
+	 * A collection of utility functions for the manipulation and inspection of date and time values.
+	 * 
+	 * @see Date
+	 * 
+	 * @author Josh Tynjala, Allen Rabinovich
+	 */
+	public class DateUtil
+	{
+		/**
+		 * The names of months in English. The index in the array corresponds to the value of the month
+		 * in a date object.
+		 */
+		public static var months:Array = [
+			"January", "February", "March", "April", "May", "June", "July",
+			"August", "September", "October", "November", "December"];
+			
+		/**
+		 * The number of days in January.
+		 */
+		public static const DAYS_IN_JANUARY:int = 31
+			
+		/**
+		 * The number of days in February on a standard year.
+		 */
+		public static const DAYS_IN_FEBRUARY:int = 28;
+			
+		/**
+		 * The number of days in February on a leap year.
+		 */
+		public static const DAYS_IN_FEBRUARY_LEAP_YEAR:int = 29;
+			
+		/**
+		 * The number of days in March.
+		 */
+		public static const DAYS_IN_MARCH:int = 31;
+			
+		/**
+		 * The number of days in April.
+		 */
+		public static const DAYS_IN_APRIL:int = 30;
+			
+		/**
+		 * The number of days in May.
+		 */
+		public static const DAYS_IN_MAY:int = 31;
+			
+		/**
+		 * The number of days in June.
+		 */
+		public static const DAYS_IN_JUNE:int = 30;
+			
+		/**
+		 * The number of days in July.
+		 */
+		public static const DAYS_IN_JULY:int = 31;
+			
+		/**
+		 * The number of days in August.
+		 */
+		public static const DAYS_IN_AUGUST:int = 31;
+			
+		/**
+		 * The number of days in September.
+		 */
+		public static const DAYS_IN_SEPTEMBER:int = 30;
+			
+		/**
+		 * The number of days in October.
+		 */
+		public static const DAYS_IN_OCTOBER:int = 31;
+			
+		/**
+		 * The number of days in November.
+		 */
+		public static const DAYS_IN_NOVEMBER:int = 30;
+			
+		/**
+		 * The number of days in December.
+		 */
+		public static const DAYS_IN_DECEMBER:int = 31;
+		
+		/**
+		 * The number of days in a standard year.
+		 */
+		public static const DAYS_IN_YEAR:int = 365;
+		
+		/**
+		 * The number of days in a leap year.
+		 */
+		public static const DAYS_IN_LEAP_YEAR:int = 366;
+		
+		/**
+		 * The number of days appearing in each month. May be used for easy index lookups.
+		 * The stored value for February corresponds to a standard year--not a leap year.
+		 */
+		public static var daysInMonths:Array = [
+			DAYS_IN_JANUARY, DAYS_IN_FEBRUARY, DAYS_IN_MARCH, DAYS_IN_APRIL,
+			DAYS_IN_MAY, DAYS_IN_JUNE, DAYS_IN_JULY, DAYS_IN_AUGUST, DAYS_IN_SEPTEMBER,
+			DAYS_IN_OCTOBER, DAYS_IN_NOVEMBER, DAYS_IN_DECEMBER];
+		
+		/**
+		 * Determines the number of days between the start value and the end value. The result
+		 * may contain a fractional part, so cast it to int if a whole number is desired.
+		 * 
+		 * @param		start	the starting date of the range
+		 * @param		end		the ending date of the range
+		 * @return		the number of dats between start and end
+		 */
+		public static function countDays(start:Date, end:Date):Number
+		{
+			return Math.abs(end.valueOf() - start.valueOf()) / (1000 * 60 * 60 * 24);
+		}
+		
+		/**
+		 * Determines if the input year is a leap year (with 366 days, rather than 365).
+		 * 
+		 * @param		year	the year value as stored in a Date object.
+		 * @return		true if the year input is a leap year
+		 */
+		public static function isLeapYear(year:int):Boolean
+		{
+			if(year % 100 == 0) return year % 400 == 0;
+			return year % 4 == 0;
+		}
+		
+		/**
+		 * Gets the English name of the month specified by index. This is the month value
+		 * as stored in a Date object.
+		 * 
+		 * @param		index	the numeric value of the month
+		 * @return		the string name of the month in English
+		 */
+		public static function getMonthName(index:int):String
+		{
+			return months[index];
+		}
+		
+		/**
+		 * Gets the abbreviated month name specified by index. This is the month value
+		 * as stored in a Date object.
+		 * 
+		 * @param		index	the numeric value of the month
+		 * @return		the short string name of the month in English
+		 */
+		public static function getShortMonthName(index:int):String
+		{
+			return getMonthName(index).substr(0, 3);
+		}
+		
+		/**
+		 * Rounds a Date value up to the nearest value on the specified time unit.
+		 * 
+		 * @see com.yahoo.astra.utils.TimeUnit
+		 */
+		public static function roundUp(dateToRound:Date, timeUnit:String = "day"):Date
+		{
+			dateToRound = new Date(dateToRound.valueOf());
+			switch(timeUnit)
+			{
+				case TimeUnit.YEAR:
+					dateToRound.year++;
+					dateToRound.month = 0;
+					dateToRound.date = 1;
+					dateToRound.hours = 0;
+					dateToRound.minutes = 0;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.MONTH:
+					dateToRound.month++;
+					dateToRound.date = 1;
+					dateToRound.hours = 0;
+					dateToRound.minutes = 0;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.DAY:
+					dateToRound.date++;
+					dateToRound.hours = 0;
+					dateToRound.minutes = 0;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.HOURS:
+					dateToRound.hours++;
+					dateToRound.minutes = 0;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.MINUTES:
+					dateToRound.minutes++;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.SECONDS:
+					dateToRound.seconds++;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.MILLISECONDS:
+					dateToRound.milliseconds++;
+					break;
+			}
+			return dateToRound;
+		}
+		
+		/**
+		 * Rounds a Date value down to the nearest value on the specified time unit.
+		 * 
+		 * @see com.yahoo.astra.utils.TimeUnit
+		 */
+		public static function roundDown(dateToRound:Date, timeUnit:String = "day"):Date
+		{
+			dateToRound = new Date(dateToRound.valueOf());
+			switch(timeUnit)
+			{
+				case TimeUnit.YEAR:
+					dateToRound.month = 0;
+					dateToRound.date = 1;
+					dateToRound.hours = 0;
+					dateToRound.minutes = 0;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.MONTH:
+					dateToRound.date = 1;
+					dateToRound.hours = 0;
+					dateToRound.minutes = 0;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.DAY:
+					dateToRound.hours = 0;
+					dateToRound.minutes = 0;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.HOURS:
+					dateToRound.minutes = 0;
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.MINUTES:
+					dateToRound.seconds = 0;
+					dateToRound.milliseconds = 0;
+					break;
+				case TimeUnit.SECONDS:
+					dateToRound.milliseconds = 0;
+					break;
+			}
+			return dateToRound;
+		}
+		
+		/**
+		 * Converts a time code to UTC.
+		 * 
+		 * @param timecode	the input timecode
+		 * @return			the UTC value
+		 */
+		public static function timeCodeToUTC(timecode:String):String {
+			switch (timecode) {
+				case "GMT", "UT", "UTC", "WET":  return "UTC+0000";
+				case "CET": return "UTC+0100";
+				case "EET": return "UTC+0200";
+				case "MSK": return "UTC+0300";
+				case "IRT": return "UTC+0330";
+				case "SAMT": return "UTC+0400";
+				case "YEKT", "TMT", "TJT": return "UTC+0500";
+				case "OMST", "NOVT", "LKT": return "UTC+0600";
+				case "MMT": return "UTC+0630";
+				case "KRAT", "ICT", "WIT", "WAST": return "UTC+0700";
+				case "IRKT", "ULAT", "CST", "CIT", "BNT": return "UTC+0800";
+				case "YAKT", "JST", "KST", "EIT": return "UTC+0900";
+				case "ACST": return "UTC+0930";
+				case "VLAT", "SAKT", "GST": return "UTC+1000";
+				case "MAGT": return "UTC+1100";
+				case "IDLE", "PETT", "NZST": return "UTC+1200";
+				case "WAT": return "UTC-0100";
+				case "AT": return "UTC-0200";
+				case "EBT": return "UTC-0300";
+				case "NT": return "UTC-0330";
+				case "WBT", "AST": return "UTC-0400";
+				case "EST": return "UTC-0500";
+				case "CST": return "UTC-0600";
+				case "MST": return "UTC-0700";
+				case "PST": return "UTC-0800";
+				case "YST": return "UTC-0900";
+				case "AHST", "CAT", "HST": return "UTC-1000";
+				case "NT": return "UTC-1100";
+				case "IDLW": return "UTC-1200";
+			}
+			return "UTC+0000";
+		}
+		
+		/**
+		 * Determines the hours value in the range 1 - 12 for the AM/PM time format.
+		 * 
+		 * @param value		the input Date value
+		 * @return			the calculated hours value
+		 */
+		public static function getHoursIn12HourFormat(value:Date):Number
+		{
+			var hours:Number = value.getHours();
+			if(hours == 0)
+			{
+				return 12;
+			}
+			
+			if(hours > 0 && hours <= 12)
+			{
+				return hours;
+			}
+			
+			return hours - 12;
+		}
+		
+		public static function getDateDifferenceByTimeUnit(minDate:Date, maxDate:Date, timeUnit:String):Number
+		{
+			var dateDifference:Number = 0;
+			var maxDateNumber:Number;
+			var minDateNumber:Number;
+			
+			switch(timeUnit)
+			{
+				case TimeUnit.YEAR:
+					maxDateNumber = (maxDate.getFullYear() - minDate.getFullYear());
+				break;
+				
+				case TimeUnit.MONTH:
+					dateDifference = (12 - minDate.getMonth()) + (maxDate.getFullYear() - minDate.getFullYear() - 1)*12 + maxDate.getMonth();				
+				break;		
+				
+				case TimeUnit.DAY:
+					dateDifference = Math.round(Math.abs(maxDate.valueOf() - minDate.valueOf()) / (1000 * 60 * 60 * 24));
+				break;
+				
+				case TimeUnit.HOURS:
+					dateDifference = Math.abs(minDate.valueOf() - maxDate.valueOf()) / (60 * 60 * 1000);
+				break;
+				
+				case TimeUnit.MINUTES:
+					dateDifference = Math.abs(minDate.valueOf() - maxDate.valueOf()) / (60 * 1000);
+				break;	
+				
+				case TimeUnit.SECONDS:
+					dateDifference = Math.abs(minDate.valueOf() - maxDate.valueOf()) / 1000;
+				break;
+				
+				case TimeUnit.MILLISECONDS:
+					dateDifference = Math.abs(minDate.valueOf() - maxDate.valueOf());
+				break;
+			}
+			return dateDifference;
+		}		
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/utils/DisplayObjectUtil.as b/src/charts/as/com/yahoo/astra/utils/DisplayObjectUtil.as
new file mode 100644
index 0000000..91dc3d7
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/DisplayObjectUtil.as
@@ -0,0 +1,97 @@
+package com.yahoo.astra.utils
+{
+	import flash.display.DisplayObject;
+	import flash.geom.Point;
+	import flash.geom.Rectangle;
+	
+	/**
+	 * Utility functions for use with DisplayObjects.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class DisplayObjectUtil
+	{
+		/**
+		 * Converts a point from the local coordinate system of one DisplayObject to
+		 * the local coordinate system of another DisplayObject.
+		 *
+		 * @param point					the point to convert
+		 * @param firstDisplayObject	the original coordinate system
+		 * @param secondDisplayObject	the new coordinate system
+		 */
+		public static function localToLocal(point:Point, firstDisplayObject:DisplayObject, secondDisplayObject:DisplayObject):Point
+		{
+			point = firstDisplayObject.localToGlobal(point);
+			return secondDisplayObject.globalToLocal(point);
+		}
+	
+		/**
+		 * Aligns a DisplayObject vertically and horizontally within specific bounds.
+		 * 
+		 * @param target			The DisplayObject to align.
+		 * @param bounds			The rectangle in which to align the target DisplayObject.
+		 * @param horizontalAlign	The alignment position along the horizontal axis. If <code>null</code>,
+		 * 							the target's horizontal position will not change.
+		 * @param verticalAlign		The alignment position along the vertical axis. If <code>null</code>,
+		 * 							the target's vertical position will not change.
+		 */
+		public static function align(target:DisplayObject, bounds:Rectangle, horizontalAlign:String = null, verticalAlign:String = null):void
+		{	
+			var horizontalDifference:Number = bounds.width - target.width;
+			switch(horizontalAlign)
+			{
+				case "left":
+					target.x = bounds.x;
+					break;
+				case "center":
+					target.x = bounds.x + (horizontalDifference) / 2;
+					break;
+				case "right":
+					target.x = bounds.x + horizontalDifference;
+					break;
+			}
+					
+			var verticalDifference:Number = bounds.height - target.height;
+			switch(verticalAlign)
+			{
+				case "top":
+					target.y = bounds.y;
+					break;
+				case "middle":
+					target.y = bounds.y + (verticalDifference) / 2;
+					break;
+				case "bottom":
+					target.y = bounds.y + verticalDifference;
+					break;
+			}
+		}
+		
+		/**
+		 * Resizes a DisplayObject to fit into specified bounds such that the
+		 * aspect ratio of the target's width and height does not change.
+		 * 
+		 * @param target		The DisplayObject to resize.
+		 * @param width			The desired width for the target.
+		 * @param height		The desired height for the target.
+		 * @param aspectRatio	The desired aspect ratio. If NaN, the aspect
+		 * 						ratio is calculated from the target's current
+		 * 						width and height.
+		 */
+		public static function resizeAndMaintainAspectRatio(target:DisplayObject, width:Number, height:Number, aspectRatio:Number = NaN):void
+		{
+			var currentAspectRatio:Number = !isNaN(aspectRatio) ? aspectRatio : target.width / target.height;
+			var boundsAspectRatio:Number = width / height;
+			
+			if(currentAspectRatio < boundsAspectRatio)
+			{
+				target.width = Math.floor(height * currentAspectRatio);
+				target.height = height;
+			}
+			else
+			{
+				target.width = width;
+				target.height = Math.floor(width / currentAspectRatio);
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/utils/DynamicRegistration.as b/src/charts/as/com/yahoo/astra/utils/DynamicRegistration.as
new file mode 100644
index 0000000..16cb8a2
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/DynamicRegistration.as
@@ -0,0 +1,91 @@
+package com.yahoo.astra.utils
+{
+	import flash.geom.Point;
+	import flash.display.DisplayObject;
+	
+	/**
+	 * Allows you to manipulate display objects based on a registration point other
+	 * than the standard (0,0).
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class DynamicRegistration
+	{
+		/**
+		 * Moves a <code>DisplayObject</code> to a new position (x,y) based on a registration point. The
+		 * true position of the object will be (x - registration.x, y - registration.y).
+		 * 
+		 * @param	target				the DisplayObject to move
+		 * @param	registration		the registration point of the DisplayObject
+		 * @param	x					the new x position, in pixels
+		 * @param	y					the new y position, in pixels
+		 */
+		public static function move(target:DisplayObject, registration:Point, x:Number = 0, y:Number = 0):void
+		{
+			//generate the location of the registration point in the parent
+			registration = target.localToGlobal(registration);
+			registration = target.parent.globalToLocal(registration);
+			
+			//move the target and offset by the registration point
+			target.x += x - registration.x;
+			target.y += y - registration.y;
+		}
+		
+		/**
+		 * Rotates a <code>DisplayObject</code> based on a registration point. 
+		 * 
+		 * @param	target				the DisplayObject to move
+		 * @param	registration		the registration point of the DisplayObject
+		 * @param	rotation			the new rotation angle
+		 */
+		public static function rotate(target:DisplayObject, registration:Point, degrees:Number = 0):void
+		{
+			changePropertyOnRegistrationPoint(target, registration, "rotation", degrees);
+		}
+		
+		/**
+		 * Scales a <code>DisplayObject</code> based on a registration point. 
+		 * 
+		 * @param	target				the DisplayObject to move
+		 * @param	registration		the registration point of the DisplayObject
+		 * @param	scaleX				the new x scaling factor
+		 * @param	scaleY				the new y scaling factor
+		 */
+		public static function scale(target:DisplayObject, registration:Point, scaleX:Number = 0, scaleY:Number = 0):void
+		{
+			changePropertyOnRegistrationPoint(target, registration, "scaleX", scaleX);
+			changePropertyOnRegistrationPoint(target, registration, "scaleY", scaleY);
+		}
+		
+		/**
+		 * @private
+		 * Alters an arbitary property based on the registration point.
+		 * 
+		 * @param	target				the DisplayObject to move
+		 * @param	registration		the registration point of the DisplayObject
+		 * @param	propertyName		the property to change
+		 * @param	value				the new value of the property to change
+		 */
+		private static function changePropertyOnRegistrationPoint(target:DisplayObject, registration:Point, propertyName:String, value:Number):void
+		{
+			//generate the location of the registration point in the parent
+			var a:Point = registration.clone();
+			a = target.localToGlobal(a);
+			a = target.parent.globalToLocal(a);
+			
+			target[propertyName] = value;
+			
+			//after the property change, regenerate the location of the registration
+			//point in the parent
+			var b:Point = registration.clone();
+			b = target.localToGlobal(b);
+			b = target.parent.globalToLocal(b);
+			
+			//move the target based on the difference to make it appear the change
+			//happened based on the registration point
+			target.x -= b.x - a.x;
+			target.y -= b.y - a.y;
+		}
+		
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/utils/GeomUtil.as b/src/charts/as/com/yahoo/astra/utils/GeomUtil.as
new file mode 100644
index 0000000..7a8cd62
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/GeomUtil.as
@@ -0,0 +1,33 @@
+package com.yahoo.astra.utils
+{
+	/**
+	 * Utility functions for common geometric operations.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class GeomUtil
+	{
+		/**
+		 * Converts an angle from radians to degrees.
+		 * 
+		 * @param radians		The angle in radians
+		 * @return				The angle in degrees
+		 */
+		public static function radiansToDegrees(radians:Number):Number
+		{
+			return radians * 180 / Math.PI;
+		}
+		
+		/**
+		 * Converts an angle from degrees to radians.
+		 * 
+		 * @param degrees		The angle in degrees
+		 * @return				The angle in radians
+		 */
+		public static function degreesToRadians(degrees:Number):Number
+		{
+			return degrees * Math.PI / 180;
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/utils/GraphicsUtil.as b/src/charts/as/com/yahoo/astra/utils/GraphicsUtil.as
new file mode 100644
index 0000000..bbcb967
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/GraphicsUtil.as
@@ -0,0 +1,144 @@
+package com.yahoo.astra.utils
+{
+	import flash.display.Graphics;
+	import flash.geom.Point;
+	
+	/**
+	 * Utility functions for drawing to <code>Graphics</code> objects.
+	 * 
+	 * @author Josh Tynjala
+	 * @see flash.display.Graphics
+	 */
+	public class GraphicsUtil
+	{
+		/**
+		 * @private
+		 * Draws a wedge.
+		 * 
+		 * @param x				x component of the wedge's center point
+		 * @param y				y component of the wedge's center point
+		 * @param startAngle	starting angle in degrees
+		 * @param arc			sweep of the wedge. Negative values draw clockwise.
+		 * @param radius		radius of wedge. If [optional] yRadius is defined, then radius is the x radius.
+		 * @param yRadius		[optional] y radius for wedge.
+		 */
+		public static function drawWedge(target:Graphics, x:Number, y:Number, startAngle:Number, arc:Number, radius:Number, yRadius:Number = NaN):void
+		{
+			// move to x,y position
+			target.moveTo(x, y);
+			
+			// if yRadius is undefined, yRadius = radius
+			if(isNaN(yRadius))
+			{
+				yRadius = radius;
+			}
+			
+			// limit sweep to reasonable numbers
+			if(Math.abs(arc) > 360)
+			{
+				arc = 360;
+			}
+			
+			// Flash uses 8 segments per circle, to match that, we draw in a maximum
+			// of 45 degree segments. First we calculate how many segments are needed
+			// for our arc.
+			var segs:int = Math.ceil(Math.abs(arc) / 45);
+			
+			// Now calculate the sweep of each segment.
+			var segAngle:Number = arc / segs;
+			
+			// The math requires radians rather than degrees. To convert from degrees
+			// use the formula (degrees/180)*Math.PI to get radians.
+			var theta:Number = -(segAngle / 180) * Math.PI;
+			
+			// convert angle startAngle to radians
+			var angle:Number = -(startAngle / 180) * Math.PI;
+			
+			// draw the curve in segments no larger than 45 degrees.
+			if(segs > 0)
+			{
+				// draw a line from the center to the start of the curve
+				var ax:Number = x + Math.cos(startAngle / 180 * Math.PI) * radius;
+				var ay:Number = y + Math.sin(-startAngle / 180 * Math.PI) * yRadius;
+				target.lineTo(ax, ay);
+				
+				// Loop for drawing curve segments
+				for(var i:int = 0; i < segs; i++)
+				{
+					angle += theta;
+					var angleMid:Number = angle - (theta / 2);
+					var bx:Number = x + Math.cos(angle) * radius;
+					var by:Number = y + Math.sin(angle) * yRadius;
+					var cx:Number = x + Math.cos(angleMid) * (radius / Math.cos(theta / 2));
+					var cy:Number = y + Math.sin(angleMid) * (yRadius / Math.cos(theta / 2));
+					target.curveTo(cx, cy, bx, by);
+				}
+				// close the wedge by drawing a line to the center
+				target.lineTo(x, y);
+			}
+		}
+		
+		/**
+		 * Draws a dashed line between two points.
+		 * 
+		 * @param xStart	The x position of the start of the line
+		 * @param yStart	The y position of the start of the line
+		 * @param xEnd		The x position of the end of the line
+		 * @param yEnd		The y position of the end of the line
+		 * @param dashSize	the size of dashes, in pixels
+		 * @param gapSize	the size of gaps between dashes, in pixels
+		 */
+		public static function drawDashedLine(target:Graphics, xStart:Number, yStart:Number, xEnd:Number, yEnd:Number, dashSize:Number = 10, gapSize:Number = 10):void
+		{
+			// calculate the length of a segment
+			var segmentLength:Number = dashSize + gapSize;
+			
+			// calculate the length of the dashed line
+			var xDelta:Number = xEnd - xStart;
+			var yDelta:Number = yEnd - yStart;
+			var delta:Number = Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2));
+			
+			// calculate the number of segments needed
+			var segmentCount:int = Math.floor(Math.abs(delta / segmentLength));
+			
+			// get the angle of the line in radians
+			var radians:Number = Math.atan2(yDelta, xDelta);
+			
+			// start the line here
+			var xCurrent:Number = xStart;
+			var yCurrent:Number = yStart;
+			
+			// add these to cx, cy to get next seg start
+			xDelta = Math.cos(radians) * segmentLength;
+			yDelta = Math.sin(radians) * segmentLength;
+			
+			// loop through each segment
+			for(var i:int = 0; i < segmentCount; i++)
+			{
+				target.moveTo(xCurrent, yCurrent);
+				target.lineTo(xCurrent + Math.cos(radians) * dashSize, yCurrent + Math.sin(radians) * dashSize);
+				xCurrent += xDelta;
+				yCurrent += yDelta;
+			}
+			
+			// handle last segment as it is likely to be partial
+			target.moveTo(xCurrent, yCurrent);
+			delta = Math.sqrt((xEnd - xCurrent) * (xEnd - xCurrent) + (yEnd - yCurrent) * (yEnd - yCurrent));
+			
+			if(delta > dashSize)
+			{
+				// segment ends in the gap, so draw a full dash
+				target.lineTo(xCurrent + Math.cos(radians) * dashSize, yCurrent + Math.sin(radians) * dashSize);
+			}
+			else if(delta > 0)
+			{
+				// segment is shorter than dash so only draw what is needed
+				target.lineTo(xCurrent + Math.cos(radians) * delta, yCurrent + Math.sin(radians) * delta);
+			}
+			
+			// move the pen to the end position
+			target.moveTo(xEnd, yEnd);
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/utils/InstanceFactory.as b/src/charts/as/com/yahoo/astra/utils/InstanceFactory.as
new file mode 100644
index 0000000..e1af20a
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/InstanceFactory.as
@@ -0,0 +1,157 @@
+package com.yahoo.astra.utils
+{
+	import flash.utils.getQualifiedClassName;
+	
+	/**
+	 * Creates an instance of the specified class. Sets initial properties, and calls specified methods.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class InstanceFactory
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+		
+		/**
+		 * Constructor.
+		 */
+		public function InstanceFactory(targetClass:Class, properties:Object = null, methods:Object = null)
+		{
+			this.targetClass = targetClass;
+			this.properties = properties;
+			this.methods = methods;
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+		
+		/**
+		 * @private
+		 * Storage for the targetClass property.
+		 */
+		private var _targetClass:Class = Object;
+		
+		/**
+		 * The class that will be instantiated.
+		 */
+		public function get targetClass():Class
+		{
+			return this._targetClass;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set targetClass(value:Class):void
+		{
+			this._targetClass = value;
+		}
+		
+		/**
+		 * Storage for the properties property.
+		 */
+		private var _properties:Object;
+		
+		/**
+		 * The initial values to pass to the properties of the
+		 * newly-instantiated object.
+		 */
+		public function get properties():Object
+		{
+			return this._properties;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set properties(value:Object):void
+		{
+			this._properties = value;
+		}
+		
+		/**
+		 * @private
+		 * Storage for the methods property.
+		 */
+		private var _methods:Object;
+		
+		/**
+		 * A set of methods to call once the object has been created and
+		 * properties have been initialized. Format is a set of key-value pairs
+		 * where the key is the name of the method and the value is an Array
+		 * of parameter values.
+		 * 
+		 * <p>Example: <code>{ load: [ "image.gif" ] }</code></p>
+		 */
+		public function get methods():Object
+		{
+			return this._methods;
+		}
+		
+		/**
+		 * @private
+		 */
+		public function set methods(value:Object):void
+		{
+			this._methods = value;
+		}
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+	
+		/**
+		 * Creates a new instance of the target class and initializes it.
+		 */
+		public function createInstance():Object
+		{
+			var instance:Object = new targetClass();
+			this.restoreInstance(instance);
+			return instance;
+		}
+		
+		/**
+		 * Initializes an object with the properties and methods. The object
+		 * must be an instance of the <code>targetClass</code> property, or
+		 * this method will throw an <code>ArgumentError</code>.
+		 */
+		public function restoreInstance(instance:Object):void
+		{
+			if(!(instance is targetClass))
+			{
+				throw new ArgumentError("Value to be initialized must be an instance of " + getQualifiedClassName(this.targetClass)); 
+			}
+			
+			//set initial properties
+			if(this.properties)
+			{
+				for(var propName:String in this.properties)
+				{
+					if(instance.hasOwnProperty(propName))
+					{
+						instance[propName] = properties[propName];
+					}
+				}
+			}
+			
+			//make initial method calls
+			//use case: Loader.load()
+			if(this.methods)
+			{
+				for(var methodName:String in this.methods)
+				{
+					if(instance[methodName] is Function)
+					{
+						var args:Array = this.methods[methodName] as Array;
+						instance[methodName].apply(instance, args);
+					}
+				}
+			}
+		}
+		
+	}
+	
+}
diff --git a/src/charts/as/com/yahoo/astra/utils/JavaScriptUtil.as b/src/charts/as/com/yahoo/astra/utils/JavaScriptUtil.as
new file mode 100644
index 0000000..436393f
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/JavaScriptUtil.as
@@ -0,0 +1,35 @@
+package com.yahoo.astra.utils
+{
+	import flash.external.ExternalInterface;
+	
+	/**
+	 * Utility functions for working with JavaScript and ExternalInterface.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class JavaScriptUtil
+	{
+		/**
+		 * Creates an ActionScript delegate for JavaScript functions that need
+		 * to be called from components.
+		 * 
+		 * <p>Example: A List's labelFunction.</p>
+		 *
+		 * @param functionName		The name of the globally-accessible JavaScript function to call.
+		 */
+		public static function createCallbackFunction(functionName:String):Object
+		{
+			var delegate:Object = {functionName: functionName};
+			delegate.callback = function(...rest:Array):String
+			{	
+				//we need to pass the variables like regular parameters
+				rest.unshift(delegate.functionName);
+				
+				//OMG, this is confusing as heck, but clever, no?
+				//apply() is deliciously awesome.
+				return ExternalInterface.call.apply(ExternalInterface, rest);
+			}
+			return delegate;
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/utils/NumberUtil.as b/src/charts/as/com/yahoo/astra/utils/NumberUtil.as
new file mode 100644
index 0000000..c6f203c
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/NumberUtil.as
@@ -0,0 +1,110 @@
+package com.yahoo.astra.utils
+{
+	/**
+	 * A collection of utility functions for the manipulation of numeric values.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class NumberUtil
+	{
+		/**
+		 * Rounds a Number to the nearest multiple of an input. For example, by rounding
+		 * 16 to the nearest 10, you will receive 20. Similar to the built-in function Math.round().
+		 * 
+		 * @param	numberToRound		the number to round
+		 * @param	nearest				the number whose mutiple must be found
+		 * @return	the rounded number
+		 * 
+		 * @see Math#round
+		 */
+		public static function roundToNearest(number:Number, nearest:Number = 1):Number
+		{
+			if(nearest == 0)
+			{
+				return number;
+			}
+			var roundedNumber:Number = Math.round(NumberUtil.roundToPrecision(number / nearest, 10)) * nearest;
+			return NumberUtil.roundToPrecision(roundedNumber, 10);
+		}
+		
+		/**
+		 * Rounds a Number <em>up</em> to the nearest multiple of an input. For example, by rounding
+		 * 16 up to the nearest 10, you will receive 20. Similar to the built-in function Math.ceil().
+		 * 
+		 * @param	numberToRound		the number to round up
+		 * @param	nearest				the number whose mutiple must be found
+		 * @return	the rounded number
+		 * 
+		 * @see Math#ceil
+		 */
+		public static function roundUpToNearest(number:Number, nearest:Number = 1):Number
+		{
+			if(nearest == 0)
+			{
+				return number;
+			}
+			return Math.ceil(NumberUtil.roundToPrecision(number / nearest, 10)) * nearest;
+		}
+		
+		/**
+		 * Rounds a Number <em>down</em> to the nearest multiple of an input. For example, by rounding
+		 * 16 down to the nearest 10, you will receive 10. Similar to the built-in function Math.floor().
+		 * 
+		 * @param	numberToRound		the number to round down
+		 * @param	nearest				the number whose mutiple must be found
+		 * @return	the rounded number
+		 * 
+		 * @see Math#floor
+		 */
+		public static function roundDownToNearest(number:Number, nearest:Number = 1):Number
+		{
+			if(nearest == 0)
+			{
+				return number;
+			}
+			return Math.floor(NumberUtil.roundToPrecision(number / nearest, 10)) * nearest;
+		}
+		
+		/**
+		 * Rounds a number to a certain level of precision. Useful for limiting the number of
+		 * decimal places on a fractional number.
+		 * 
+		 * @param		number		the input number to round.
+		 * @param		precision	the number of decimal digits to keep
+		 * @return		the rounded number, or the original input if no rounding is needed
+		 * 
+		 * @see Math#round
+		 */
+		public static function roundToPrecision(number:Number, precision:int = 0):Number
+		{
+			var decimalPlaces:Number = Math.pow(10, precision);
+			return Math.round(decimalPlaces * number) / decimalPlaces;
+		}
+		
+		/**
+		 * Tests equality for numbers that may have been generated by faulty floating point math.
+		 * This is not an issue exclusive to the Flash Player, but all modern computing in general.
+		 * The value is generally offset by an insignificant fraction, and it may be corrected.
+		 * 
+		 * <p>Alternatively, this function could be used for other purposes than to correct floating
+		 * point errors. Certainly, it could determine if two very large numbers are within a certain
+		 * range of difference. This might be useful for determining "ballpark" estimates or similar
+		 * statistical analysis that may not need complete accuracy.</p>
+		 * 
+		 * @param		number1		the first number to test
+		 * @param		number2		the second number to test
+		 * @param		precision	the number of digits in the fractional portion to keep
+		 * @return		true, if the numbers are close enough to be considered equal, false if not.
+		 */
+		public static function fuzzyEquals(number1:Number, number2:Number, precision:int = 5):Boolean
+		{
+			var difference:Number = number1 - number2;
+			var range:Number = Math.pow(10, -precision);
+			
+			//default precision checks the following:
+			//0.00001 < difference > -0.00001
+			
+			return difference < range && difference > -range;
+		}
+	}
+}
diff --git a/src/charts/as/com/yahoo/astra/utils/TextUtil.as b/src/charts/as/com/yahoo/astra/utils/TextUtil.as
new file mode 100644
index 0000000..b2aefa9
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/TextUtil.as
@@ -0,0 +1,70 @@
+package com.yahoo.astra.utils
+{	
+	import flash.text.*;
+
+	/**
+	 * Utility class for text fields
+	 * 
+	 * @author Tripp Bridges
+	 */	
+	public class TextUtil
+	{		
+		/**
+		 * Returns the width of a text field based on a <code>TextFormat</code> object and a string to be displayed
+		 *
+		 * @param textValue The text 
+		 * @param tf 
+		 *
+		 * @return Number
+		 */
+		public static function getTextWidth(textValue:String, tf:TextFormat):Number
+		{
+			var textField:TextField = new TextField();
+			textField.selectable = false;
+			textField.autoSize = TextFieldAutoSize.LEFT;			
+			textField.text = textValue;
+			textField.setTextFormat(tf);
+			return Math.max(textField.textWidth, textField.width);
+			
+		}
+		
+		/**
+		 * Returns the height of a text field based on a <code>TextFormat</code> object and a string to be displayed
+		 *
+		 * @param textValue The text 
+		 * @param tf 
+		 *
+		 * @return Number
+		 */
+		public static function getTextHeight(textValue:String, tf:TextFormat):Number
+		{
+			var textField:TextField = new TextField();
+			textField.selectable = false;
+			textField.autoSize = TextFieldAutoSize.LEFT;			
+			textField.text = textValue;
+			textField.setTextFormat(tf);
+			return textField.textHeight;
+		}	
+		
+		/**
+		 * Changes individual property of a <code>TextFormat</code> object
+		 */
+		public static function changeTextFormatProps(tf:TextFormat, tfProps:Object):TextFormat
+		{
+			for(var i:String in tfProps)
+			{
+				tf[i] = tfProps[i];
+			}
+			return tf;
+		}	
+		
+		/**
+		 * Creates a copy of a <code>TextFormat</code> object
+		 */
+		public static function cloneTextFormat(tf:TextFormat):TextFormat
+		{
+			return new TextFormat(tf.font, tf.size, tf.color, tf.bold, tf.italic, tf.underline, tf.url, tf.target, tf.align, tf.leftMargin, tf.rightMargin, tf.indent, tf.leading);
+		}		
+		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/astra/utils/TimeUnit.as b/src/charts/as/com/yahoo/astra/utils/TimeUnit.as
new file mode 100644
index 0000000..c809d8b
--- /dev/null
+++ b/src/charts/as/com/yahoo/astra/utils/TimeUnit.as
@@ -0,0 +1,45 @@
+package com.yahoo.astra.utils
+{
+	/**
+	 * A collection of constants for date and time units.
+	 * 
+	 * @author Josh Tynjala
+	 */
+	public class TimeUnit
+	{
+		/**
+		 * A constant representing the year unit in date and time values.
+		 */
+		public static const YEAR:String = "year";
+		
+		/**
+		 * A constant representing the month unit in date and time values.
+		 */
+		public static const MONTH:String = "month";
+		
+		/**
+		 * A constant representing the day unit in date and time values.
+		 */
+		public static const DAY:String = "day";
+		
+		/**
+		 * A constant representing the hours unit in date and time values.
+		 */
+		public static const HOURS:String = "hours";
+		
+		/**
+		 * A constant representing the minutes unit in date and time values.
+		 */
+		public static const MINUTES:String = "minutes";
+		
+		/**
+		 * A constant representing the seconds unit in date and time values.
+		 */
+		public static const SECONDS:String = "seconds";
+		
+		/**
+		 * A constant representing the milliseconds unit in date and time values.
+		 */
+		public static const MILLISECONDS:String = "milliseconds";
+	}
+}
diff --git a/src/charts/as/com/yahoo/util/ImageExport.as b/src/charts/as/com/yahoo/util/ImageExport.as
new file mode 100644
index 0000000..8cf6dab
--- /dev/null
+++ b/src/charts/as/com/yahoo/util/ImageExport.as
@@ -0,0 +1,70 @@
+package com.yahoo.util 
+{
+	import com.adobe.images.PNGEncoder;
+	import com.adobe.images.JPGEncoder;
+	
+	import flash.display.Sprite;
+	import flash.display.BitmapData;
+
+	import flash.events.ContextMenuEvent;
+	import flash.net.FileReference;
+	import flash.ui.ContextMenu;
+	import flash.ui.ContextMenuItem;
+	import flash.utils.ByteArray;	
+	import flash.utils.Dictionary;
+	
+	public class ImageExport
+	{
+		public var fr:FileReference = new FileReference();
+		public var mainApp:Sprite;
+		public var fileName:String;
+		public var contextMenu:ContextMenu;
+		public var imageType:Dictionary = new Dictionary();
+		
+		public function ImageExport(stagePointer:Sprite)
+		{
+			mainApp = stagePointer;
+			this.contextMenu = new ContextMenu();
+			mainApp.contextMenu = this.contextMenu;   
+		}
+		
+		public function addImageType(exportType:String, defaultFilename:String = "image"):void	
+		{
+			var item:ContextMenuItem;
+			fileName = defaultFilename;
+			
+			switch(exportType) 
+			{
+				case "jpg":
+				   item = new ContextMenuItem("Export to JPG");
+				   break;
+				default:
+				   item = new ContextMenuItem("Export to PNG");
+				   break;
+			}
+			
+			imageType[item] = exportType;
+            this.contextMenu.customItems.push(item);
+            item.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, this.menuItemSelectHandler);        
+		}
+		
+		public function menuItemSelectHandler(event:Object):void 
+		{
+			var exportType:String = this.imageType[event.target as ContextMenuItem];
+			var imgSource:BitmapData = new BitmapData (mainApp.stage.stageWidth, mainApp.stage.stageHeight);
+			imgSource.draw(mainApp);
+			switch(exportType) 
+			{
+				case "jpg":
+					var jpgEncoder:JPGEncoder = new JPGEncoder(100);
+					var jpgStream:ByteArray = jpgEncoder.encode(imgSource);
+					fr.save(jpgStream, fileName + ".jpg");
+					break;
+				default:
+				    var pngStream:ByteArray = PNGEncoder.encode(imgSource);
+				    fr.save(pngStream, fileName + ".png");
+				    break;	
+			}
+		}
+	}
+}
diff --git a/src/charts/as/com/yahoo/yui/LoggerCategory.as b/src/charts/as/com/yahoo/yui/LoggerCategory.as
new file mode 100644
index 0000000..87ac7c8
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/LoggerCategory.as
@@ -0,0 +1,11 @@
+package com.yahoo.yui
+{
+	public class LoggerCategory
+	{
+		public static const INFO:String = "info";
+		public static const WARN:String = "warn";
+		public static const ERROR:String = "error";
+		public static const TIME:String = "time";
+		public static const WINDOW:String = "window";
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/yui/YUIAdapter.as b/src/charts/as/com/yahoo/yui/YUIAdapter.as
new file mode 100644
index 0000000..6520e95
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/YUIAdapter.as
@@ -0,0 +1,258 @@
+package com.yahoo.yui
+{
+	import flash.accessibility.AccessibilityProperties;
+	import flash.display.DisplayObject;
+	import flash.display.Sprite;
+	import flash.display.StageAlign;
+	import flash.display.StageScaleMode;
+	import flash.errors.IOError;
+	import flash.events.Event;
+	import flash.external.ExternalInterface;
+	import flash.system.Security;
+	import flash.text.TextField;
+	import flash.text.TextFieldAutoSize;
+	import flash.text.TextFormat;
+
+	public class YUIAdapter extends Sprite
+	{
+		
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+	
+		/**
+		 * Constructor.
+		 */
+		public function YUIAdapter()
+		{
+			if(this.stage)
+			{
+				this.stage.addEventListener(Event.RESIZE, stageResizeHandler);
+				this.stage.scaleMode = StageScaleMode.NO_SCALE;
+				this.stage.align = StageAlign.TOP_LEFT;
+			}
+			
+			super();
+			
+			try
+			{
+				//show error popups
+				ExternalInterface.marshallExceptions = true;
+			}
+			catch(error:Error)
+			{
+				//do nothing, we're in a flash player that properly displays exceptions
+			}
+			
+			this._errorText = new TextField();
+			this._errorText.defaultTextFormat = new TextFormat("_sans", 10, 0xff0000);
+			this._errorText.wordWrap = true;
+			this._errorText.autoSize = TextFieldAutoSize.LEFT;
+			this._errorText.selectable = false;
+			this._errorText.mouseEnabled = false;
+			this.addChild(this._errorText);
+			
+			this.addEventListener(Event.ADDED, addedHandler);
+			
+			if(ExternalInterface.available)
+			{
+				this.initializeComponent();
+				var swfReady:Object = {type: "swfReady"};
+				this.dispatchEventToJavaScript(swfReady);
+			}
+			else
+			{
+				throw new IOError("Flash YUIComponent cannot communicate with JavaScript content.");
+			}
+			
+
+		}
+		
+	//--------------------------------------
+	//  Properties
+	//--------------------------------------
+	
+		/**
+		 * The element id that references the SWF in the HTML.
+		 */
+		protected var elementID:String;
+		
+		/**
+		 * The globally accessible JavaScript function that accepts events through ExternalInterface.
+		 */
+		protected var javaScriptEventHandler:String;
+		
+		/**
+		 * The reference to the Flash component.
+		 */
+		private var _component:DisplayObject;
+		
+		/**
+		 * @private
+		 */
+		protected function get component():DisplayObject
+		{
+			return this._component;
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function set component(value:DisplayObject):void
+		{
+			this._component = value;
+			this.refreshComponentSize();
+		}
+		
+		/**
+		 * @private
+		 * For errors that cannot be passed to JavaScript.
+		 * (ONLY SecurityErrors when ExternalInterface is not available!)
+		 */
+		private var _errorText:TextField;
+		
+		/**
+		 * @private
+		 * Alternative text for assistive technology.
+		 */
+		private var _altText:String;
+		
+	//--------------------------------------
+	//  Public Methods
+	//--------------------------------------
+		
+		/**
+		 * Gets the alternative text for assistive technology.
+		 */
+		public function getAltText():String
+		{
+			return this._altText;
+		}
+		
+		/**
+		 * Sets the alternative text for assistive technology.
+		 */
+		public function setAltText(value:String):void
+		{
+			this._altText = value;
+			var accProps:AccessibilityProperties = new AccessibilityProperties();
+			accProps.name = this._altText;
+			accProps.forceSimple = true;
+			accProps.noAutoLabeling = true;
+			this.component.accessibilityProperties = accProps;
+		}
+		
+	//--------------------------------------
+	//  Protected Methods
+	//--------------------------------------
+		
+		/**
+		 * To be overridden by subclasses to add ExternalInterface callbacks.
+		 */
+		protected function initializeComponent():void
+		{	
+			this.elementID = this.loaderInfo.parameters.YUISwfId;
+			this.javaScriptEventHandler = this.loaderInfo.parameters.YUIBridgeCallback;
+			
+			var allowedDomain:String = this.loaderInfo.parameters.allowedDomain;
+			if(allowedDomain)
+			{
+				Security.allowDomain(allowedDomain);
+				this.log("allowing: " + allowedDomain);
+			}
+			
+			try
+			{
+				ExternalInterface.addCallback("getAltText", getAltText);
+				ExternalInterface.addCallback("setAltText", setAltText);
+			}
+			catch(error:SecurityError)
+			{
+				//do nothing. it will be caught somewhere else.
+			}
+		}
+		
+		/**
+		 * Sends a log message to the YUI Logger.
+		 */
+		protected function log(message:Object, category:String = null):void
+		{
+			if(message == null) message = "";
+			this.dispatchEventToJavaScript({type: "log", message: message.toString(), category: category});
+		}
+		
+		protected function showFatalError(message:Object):void
+		{
+			if(!message) message = "";
+			if(this._errorText)
+			{
+				this._errorText.appendText(message.toString());
+				//scroll to the new error if needed
+				this._errorText.scrollV = this._errorText.maxScrollV;
+				this._errorText.mouseEnabled = true;
+				this._errorText.selectable = true;
+			}
+		}
+		
+		/**
+		 * @private
+		 *
+		 * Dispatches an event object to the JavaScript wrapper element.
+		 */
+		protected function dispatchEventToJavaScript(event:Object):void
+		{
+			try
+			{
+				if(ExternalInterface.available) ExternalInterface.call(this.javaScriptEventHandler, this.elementID, event);
+			}
+			catch(error:Error)
+			{
+				if(error is SecurityError)
+				{
+					this.showFatalError("Warning: Cannot establish communication between YUI Charts and JavaScript. YUI Charts must be served from HTTP and cannot be viewed locally with file:/// protocol unless location is trusted by Flash Player.\n\nFor more information see:\nhttp://www.adobe.com/products/flashplayer/articles/localcontent/\n\n");
+				}
+			}
+		}
+
+		/**
+		 * @private
+		 * 
+		 * The size of the SWF/stage is dependant on the container it is in.
+		 * The visual component will resize to match the stage size.
+		 */
+		protected function stageResizeHandler(event:Event):void
+		{
+			this.refreshComponentSize();
+			
+			if(this._errorText)
+			{
+				this._errorText.width = this.stage.stageWidth;
+				this._errorText.height = this.stage.stageHeight;
+			}
+			
+			this.log("resize (width: " + this.stage.stageWidth + ", height: " + this.stage.stageHeight + ")", LoggerCategory.INFO);
+		}
+		
+		/**
+		 * @private
+		 */
+		protected function refreshComponentSize():void
+		{
+			if(this.component)
+			{
+				this.component.x = this.component.y = 0;
+				this.component.width = this.stage.stageWidth;
+				this.component.height = this.stage.stageHeight;
+			}
+		}
+		
+		/**
+		 * @private
+		 * ensures that errorText is always on top!
+		 */
+		protected function addedHandler(event:Event):void
+		{
+			this.setChildIndex(this._errorText, this.numChildren - 1);
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/yui/YUILogger.as b/src/charts/as/com/yahoo/yui/YUILogger.as
new file mode 100644
index 0000000..4c4bd12
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/YUILogger.as
@@ -0,0 +1,17 @@
+package com.yahoo.yui
+{
+	import flash.external.ExternalInterface;
+
+	public class YUILogger
+	{	
+		public static function log(message:Object, category:String = "info"):void
+		{
+			if(ExternalInterface.available)
+			{
+				ExternalInterface.call("YAHOO.log", message.toString(), category);
+			}
+		}
+		
+	}
+	
+}
diff --git a/src/charts/as/com/yahoo/yui/charts/AxisSerializer.as b/src/charts/as/com/yahoo/yui/charts/AxisSerializer.as
new file mode 100644
index 0000000..6902b1b
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/charts/AxisSerializer.as
@@ -0,0 +1,167 @@
+package com.yahoo.yui.charts
+{
+	import com.yahoo.astra.fl.charts.axes.CategoryAxis;
+	import com.yahoo.astra.fl.charts.axes.IAxis;
+	import com.yahoo.astra.fl.charts.axes.NumericAxis;
+	import com.yahoo.astra.fl.charts.axes.TimeAxis;
+	import com.yahoo.astra.utils.JavaScriptUtil;
+	
+	import flash.utils.Dictionary;
+	import flash.utils.getDefinitionByName;
+	import flash.utils.getQualifiedClassName;
+	
+	public class AxisSerializer
+	{
+		
+	//--------------------------------------
+	//  Class Properties
+	//--------------------------------------
+	
+		private static var shortNameToType:Object = {};
+		shortNameToType.numeric = NumericAxis;
+		shortNameToType.category = CategoryAxis;
+		shortNameToType.time = TimeAxis;
+		
+		private static var typeToShortName:Dictionary = new Dictionary(true);
+		typeToShortName[NumericAxis] = "numeric";
+		typeToShortName[CategoryAxis] = "category";
+		typeToShortName[TimeAxis] = "time";
+		
+	//--------------------------------------
+	//  Static Methods
+	//--------------------------------------
+		
+		public static function getShortName(input:Object):String
+		{
+			if(!input) return null;
+			
+			if(input is String)
+			{
+				input = getDefinitionByName(input as String);
+			}
+			var shortName:String = shortNameToType[input];
+			return shortName;
+		}
+		
+		public static function getType(shortName:String):Class
+		{
+			return shortNameToType[shortName];
+		}
+		
+		public static function writeAxis(input:IAxis):Object
+		{
+			var axis:Object = {type: getShortName(getQualifiedClassName(input))};
+			return axis;
+		}
+		
+		public static function readAxis(input:Object):IAxis
+		{
+			var AxisType:Class = AxisSerializer.getType(input.type);
+			var axis:IAxis = new AxisType();
+			axis.title = input.title;
+			axis.reverse = input.reverse;
+			if(input.labelFunction)
+			{
+				axis.labelFunction = JavaScriptUtil.createCallbackFunction(input.labelFunction).callback;
+			}
+
+			if(input.position != null)
+			{
+				axis.position = input.position;
+			}
+						
+			if(axis is NumericAxis)
+			{
+				var numericAxis:NumericAxis = NumericAxis(axis);
+				if(input.minimum != null && !isNaN(input.minimum))
+				{
+					numericAxis.minimum = input.minimum;
+				}
+				if(input.maximum != null && !isNaN(input.maximum))
+				{
+					numericAxis.maximum = input.maximum;
+				}
+				if(input.majorUnit != null && !isNaN(input.majorUnit))
+				{
+					numericAxis.majorUnit = input.majorUnit;
+				}
+				if(input.minorUnit != null && !isNaN(input.minorUnit))
+				{
+					numericAxis.minorUnit = input.minorUnit;
+				}
+				if(input.numLabels != null && !isNaN(input.numLabels))
+				{
+					numericAxis.numLabels = input.numLabels;
+				}
+				if(input.roundMajorUnit != null)
+				{
+					numericAxis.roundMajorUnit = input.roundMajorUnit;
+				}
+				if(input.order != null)
+				{
+					numericAxis.order = input.order;
+				}
+
+				numericAxis.snapToUnits = input.snapToUnits;
+				numericAxis.alwaysShowZero = input.alwaysShowZero;
+				numericAxis.scale = input.scale;
+				numericAxis.stackingEnabled = input.stackingEnabled;
+				numericAxis.calculateByLabelSize = input.calculateByLabelSize;
+				numericAxis.adjustMaximumByMajorUnit = input.adjustMaximumByMajorUnit;
+				numericAxis.adjustMinimumByMajorUnit = input.adjustMinimumByMajorUnit;
+			}
+			else if(axis is TimeAxis)
+			{
+				var timeAxis:TimeAxis = TimeAxis(axis);
+				if(input.minimum != null && !isNaN(input.minimum))
+				{
+					timeAxis.minimum = input.minimum;
+				}
+				if(input.maximum != null && !isNaN(input.maximum))
+				{
+					timeAxis.maximum = input.maximum;
+				}
+				if(input.majorUnit != null && !isNaN(input.majorUnit))
+				{
+					timeAxis.majorUnit = input.majorUnit;
+				}
+				if(input.majorTimeUnit != null)
+				{
+					timeAxis.majorTimeUnit = input.majorTimeUnit;
+				}
+				if(input.minorUnit != null && !isNaN(input.minorUnit))
+				{
+					timeAxis.minorUnit = input.minorUnit;
+				}
+				if(input.minorTimeUnit != null)
+				{
+					timeAxis.minorTimeUnit = input.minorTimeUnit;
+				}
+				if(input.numLabels != null && !isNaN(input.numLabels))
+				{
+					timeAxis.numLabels = input.numLabels;
+				}
+				timeAxis.snapToUnits = input.snapToUnits;
+				timeAxis.stackingEnabled = input.stackingEnabled;
+				timeAxis.calculateByLabelSize = input.calculateByLabelSize;
+			}
+			else if(axis is CategoryAxis)
+			{
+				var categoryAxis:CategoryAxis = CategoryAxis(axis);
+				if(input.categoryNames != null)
+				{
+					categoryAxis.categoryNames = input.categoryNames;
+				}
+				if(input.numLabels != null && !isNaN(input.numLabels))
+				{
+					categoryAxis.numLabels = input.numLabels;
+				}
+				if(input.calculateCategoryCount)
+				{
+					categoryAxis.calculateCategoryCount = input.calculateCategoryCount;
+				}
+			}
+			return axis;
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/yui/charts/BackgroundAndBorder.as b/src/charts/as/com/yahoo/yui/charts/BackgroundAndBorder.as
new file mode 100644
index 0000000..1d3f967
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/charts/BackgroundAndBorder.as
@@ -0,0 +1,303 @@
+package com.yahoo.yui.charts
+{
+	import fl.core.InvalidationType;
+	import fl.core.UIComponent;
+	import fl.containers.UILoader;
+	import flash.display.Bitmap;
+	import flash.display.BitmapData;
+	import flash.display.CapsStyle;
+	import flash.display.JointStyle;
+	import flash.display.Shape;
+	import flash.events.ErrorEvent;
+	import flash.events.Event;
+	import flash.events.IOErrorEvent;
+	import flash.events.SecurityErrorEvent;
+	import flash.geom.Matrix;
+	import flash.net.URLRequest;
+	import flash.system.LoaderContext;
+
+	public class BackgroundAndBorder extends UIComponent
+	{
+		private static const GRAPHICS_INVALID:String = "graphics";
+		private static const IMAGE_URL_INVALID:String = "imageURL";
+		private static const IMAGE_MODE_INVALID:String = "imageMode";
+		
+		public function BackgroundAndBorder()
+		{
+			super();
+		}
+		
+		/**
+		 * @private
+		 * We use a mask so that large images don't cause trouble.
+		 */
+		private var _mask:Shape;
+		
+		private var _fillColor:uint = 0xffffff;
+		
+		public function get fillColor():uint
+		{
+			return this._fillColor;
+		}
+		
+		public function set fillColor(value:uint):void
+		{
+			if(this._fillColor != value)
+			{
+				this._fillColor = value;
+				this.invalidate(GRAPHICS_INVALID);
+			}
+		}
+		
+		private var _fillAlpha:Number = 1;
+		
+		public function get fillAlpha():Number
+		{
+			return this._fillAlpha;
+		}
+		
+		public function set fillAlpha(value:Number):void
+		{
+			if(this._fillAlpha != value)
+			{
+				this._fillAlpha = value;
+				this.invalidate(GRAPHICS_INVALID);
+			}
+		}
+		
+		private var _borderColor:uint = 0x000000;
+		
+		public function get borderColor():uint
+		{
+			return this._borderColor;
+		}
+		
+		public function set borderColor(value:uint):void
+		{
+			if(this._borderColor != value)
+			{
+				this._borderColor = value;
+				this.invalidate(GRAPHICS_INVALID);
+			}
+		}
+		
+		private var _borderWeight:Number = 0;
+		
+		public function get borderWeight():Number
+		{
+			return this._borderWeight;
+		}
+		
+		public function set borderWeight(value:Number):void
+		{
+			if(this._borderWeight != value)
+			{
+				this._borderWeight = value;
+				this.invalidate(GRAPHICS_INVALID);
+			}
+		}
+		
+		protected var imageLoader:UILoader;
+		
+		private var _image:String;
+		
+		public function get image():String
+		{
+			return this._image;
+		}
+		
+		public function set image(value:String):void
+		{
+			if(this._image != value)
+			{
+				this._image = value;
+				this.invalidate(IMAGE_URL_INVALID);
+			}
+		}
+		
+		private var _imageMode:String = BackgroundImageMode.REPEAT;
+		
+		public function get imageMode():String
+		{
+			return this._imageMode;
+		}
+		
+		public function set imageMode(value:String):void
+		{
+			if(this._imageMode != value)
+			{
+				this._imageMode = value;
+				this.invalidate(IMAGE_MODE_INVALID);
+			}
+		}
+		
+		private var _imageDefaultWidth:Number = 0;
+		private var _imageDefaultHeight:Number = 0;
+		
+		override protected function configUI():void
+		{
+			super.configUI();
+			
+			this._mask = new Shape();
+			this.addChild(this._mask);
+			this.mask = this._mask;
+		}
+		
+		override protected function draw():void
+		{
+			var graphicsInvalid:Boolean = this.isInvalid(GRAPHICS_INVALID);
+			var imageURLInvalid:Boolean = this.isInvalid(IMAGE_URL_INVALID);
+			var imageModeInvalid:Boolean = this.isInvalid(IMAGE_MODE_INVALID);
+			var sizeInvalid:Boolean = this.isInvalid(InvalidationType.SIZE);
+			
+			if(imageURLInvalid)
+			{
+				if(this.imageLoader)
+				{
+					this.imageLoader.unload();
+					this.removeChild(this.imageLoader);
+					this.imageLoader = null;
+				}
+				
+				if(this._image)
+				{
+					this.imageLoader = new UILoader();
+					this.imageLoader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
+					this.imageLoader.addEventListener(IOErrorEvent.IO_ERROR, loaderErrorHandler);
+					this.imageLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loaderErrorHandler);
+					this.imageLoader.load(new URLRequest(this.image), new LoaderContext(true));
+					this.addChild(this.imageLoader);
+					this.imageLoader.visible = false;
+				}
+			}
+			
+			if(sizeInvalid || imageModeInvalid || graphicsInvalid)
+			{
+				this.graphics.clear();
+				if(this._borderWeight == 0)
+				{
+					//if border is zero, we need to do some special stuff
+					this.graphics.lineStyle(0, 0, 0);
+				}
+				else this.graphics.lineStyle(this._borderWeight, this._borderColor, 1, true, "normal", CapsStyle.SQUARE, JointStyle.MITER);
+				this.graphics.beginFill(this._fillColor, this._fillAlpha);
+				this.graphics.drawRect(this._borderWeight / 2, this._borderWeight / 2, this.width - this._borderWeight, this.height - this._borderWeight);
+				this.graphics.endFill();
+				
+				if(this.imageLoader && this.imageLoader.content)
+				{
+					if(this.imageLoader.content is Bitmap)
+					{
+						Bitmap(this.imageLoader.content).smoothing = true;
+					}
+					this.imageLoader.maintainAspectRatio = true;
+					switch(this.imageMode)
+					{
+						case BackgroundImageMode.STRETCH:
+							this.imageLoader.maintainAspectRatio = false;
+						case BackgroundImageMode.STRETCH_AND_MAINTAIN_ASPECT_RATIO:
+							this.imageLoader.visible = true;
+							this.imageLoader.x = this._borderWeight;
+							this.imageLoader.y = this._borderWeight;
+							this.imageLoader.width = this.width - this._borderWeight * 2;
+							this.imageLoader.height = this.height - this._borderWeight * 2;
+							this.imageLoader.drawNow();
+							break;
+						default:
+							//default: repeat x and/or y
+							var rectWidth:Number = this.width - this._borderWeight * 2;
+							var rectHeight:Number = this.height - this._borderWeight * 2;
+							switch(this.imageMode)
+							{
+								case BackgroundImageMode.REPEAT_X:
+									rectWidth = this._imageDefaultWidth;
+									rectHeight = this.height - this._borderWeight * 2
+									break;
+								case BackgroundImageMode.REPEAT_Y:
+									rectWidth = this.width - this._borderWeight * 2;
+									rectHeight = this._imageDefaultHeight;
+									break;
+									
+								//for some reason, positioning is off if we don't draw
+								//to bitmapdata, so no-repeat is accepted here too
+								case BackgroundImageMode.NO_REPEAT:
+									rectWidth = this._imageDefaultWidth;
+									rectHeight = this._imageDefaultHeight;
+									break;
+							}
+							this.imageLoader.width = this._imageDefaultWidth;
+							this.imageLoader.height = this._imageDefaultHeight;
+							this.imageLoader.drawNow();
+							this.imageLoader.visible = false;
+							if(this._imageDefaultWidth > 0 && this._imageDefaultHeight > 0)
+							{
+								var bitmapData:BitmapData = new BitmapData(int(this._imageDefaultWidth), int(this._imageDefaultHeight), true, 0x00000000);
+								bitmapData.draw(this.imageLoader);
+								this.graphics.lineStyle(0, 0, 0);
+								this.graphics.beginBitmapFill(bitmapData, new Matrix(1, 0, 0, 1, this._borderWeight, this._borderWeight));
+								this.graphics.drawRect(this._borderWeight, this._borderWeight, rectWidth, rectHeight);
+								this.graphics.endFill();
+							}
+							break;
+					}
+				}
+			}
+		
+			if(sizeInvalid)
+			{
+				this.drawMask();
+			}
+			
+			super.draw();
+		}
+		
+		protected function drawMask():void
+		{
+			this._mask.graphics.clear();
+			this._mask.graphics.beginFill(0xff00ff, 1);
+			this._mask.graphics.drawRect(0, 0, this.width, this.height);
+			this._mask.graphics.endFill();
+		}
+		
+		/**
+		 * @private
+		 * Once the loader has finished loading, it's time for a redraw so that
+		 * it apppears at the correct size.
+		 */
+		private function loaderCompleteHandler(event:Event):void
+		{
+			try
+			{
+				this._imageDefaultWidth = this.imageLoader.content.width;
+				this._imageDefaultHeight = this.imageLoader.content.height;
+			}
+			catch(error:SecurityError)
+			{
+				//we don't have crossdomain permission
+				//unload the image because it is useless to us at this point anyway
+				this.imageLoader.unload();
+				this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, error.message));
+			}
+			this.invalidate(InvalidationType.SIZE);
+		}
+		
+		/**
+		 * @private
+		 * If we encounter an error loading the data, notify as needed.
+		 */
+		private function loaderErrorHandler(event:Event):void
+		{
+			var errorText:String = Object(event).text;
+			if(this.hasEventListener(ErrorEvent.ERROR))
+			{
+				this.dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, false, errorText));
+			}
+			else
+			{
+				throw new Error(errorText);
+			}
+		}
+		
+	}
+	
+}
diff --git a/src/charts/as/com/yahoo/yui/charts/BackgroundImageMode.as b/src/charts/as/com/yahoo/yui/charts/BackgroundImageMode.as
new file mode 100644
index 0000000..55dd2f1
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/charts/BackgroundImageMode.as
@@ -0,0 +1,14 @@
+package com.yahoo.yui.charts
+{
+
+	public class BackgroundImageMode
+	{
+		public static const STRETCH:String = "stretch";
+		public static const STRETCH_AND_MAINTAIN_ASPECT_RATIO:String = "stretchMaintainAspectRatio";
+		public static const REPEAT:String = "repeat";
+		public static const REPEAT_X:String = "repeat-y";
+		public static const REPEAT_Y:String = "repeat-x";
+		public static const NO_REPEAT:String = "no-repeat";
+	}
+	
+}
diff --git a/src/charts/as/com/yahoo/yui/charts/ChartSerializer.as b/src/charts/as/com/yahoo/yui/charts/ChartSerializer.as
new file mode 100644
index 0000000..c767985
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/charts/ChartSerializer.as
@@ -0,0 +1,62 @@
+package com.yahoo.yui.charts
+{
+	import com.yahoo.astra.fl.charts.*;
+	
+	import flash.utils.Dictionary;
+	import flash.utils.getDefinitionByName;
+	
+	public class ChartSerializer
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+		
+		public static const BAR:String = "bar";
+		public static const COLUMN:String = "column";
+		public static const LINE:String = "line";
+		public static const PIE:String = "pie";
+		public static const STACK_BAR:String = "stackbar";
+		public static const STACK_COLUMN:String = "stackcolumn";
+	
+		private static var shortNameToType:Object = {};
+		shortNameToType[BAR] = BarChart;
+		shortNameToType[ChartSerializer.COLUMN] = ColumnChart;
+		shortNameToType[LINE] = LineChart;
+		shortNameToType[PIE] = PieChart;
+		shortNameToType[STACK_BAR] = StackedBarChart; 
+		shortNameToType[STACK_COLUMN] = StackedColumnChart;
+		
+		private static var typeToShortName:Dictionary = new Dictionary(true);
+		typeToShortName[BarChart] = BAR;
+		typeToShortName[ColumnChart] = COLUMN;
+		typeToShortName[LineChart] = LINE;
+		typeToShortName[PieChart] = PIE;
+		typeToShortName[StackedBarChart] = STACK_BAR;
+		typeToShortName[StackedColumnChart] = STACK_COLUMN;
+		
+	//--------------------------------------
+	//  Static Methods
+	//--------------------------------------
+		
+		public static function getShortName(input:Object):String
+		{
+			if(!input)
+			{
+				return null;
+			}
+			
+			if(input is String)
+			{
+				input = getDefinitionByName(input as String);
+			}
+			var shortName:String = shortNameToType[input];
+			return shortName;
+		}
+		
+		public static function getType(shortName:String):Class
+		{
+			return shortNameToType[shortName];
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/yui/charts/SeriesSerializer.as b/src/charts/as/com/yahoo/yui/charts/SeriesSerializer.as
new file mode 100644
index 0000000..37bf599
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/charts/SeriesSerializer.as
@@ -0,0 +1,159 @@
+package com.yahoo.yui.charts
+{
+	import com.yahoo.astra.fl.charts.series.*;
+	import com.yahoo.astra.utils.JavaScriptUtil;
+	
+	import flash.utils.Dictionary;
+	import flash.utils.getDefinitionByName;
+	import flash.utils.getQualifiedClassName;
+	
+	public class SeriesSerializer
+	{
+		
+	//--------------------------------------
+	//  Static Properties
+	//--------------------------------------
+	
+		private static var shortNameToSeriesTypeHash:Object = {};
+		shortNameToSeriesTypeHash[ChartSerializer.BAR] = BarSeries;
+		shortNameToSeriesTypeHash[ChartSerializer.COLUMN] = ColumnSeries;
+		shortNameToSeriesTypeHash[ChartSerializer.LINE] = LineSeries;
+		shortNameToSeriesTypeHash[ChartSerializer.PIE] = PieSeries;
+		shortNameToSeriesTypeHash[ChartSerializer.STACK_BAR] = StackedBarSeries; 
+		shortNameToSeriesTypeHash[ChartSerializer.STACK_COLUMN] = StackedColumnSeries;
+		
+		private static var seriesTypeToShortNameHash:Dictionary = new Dictionary(true);
+		seriesTypeToShortNameHash[BarSeries] = ChartSerializer.BAR;
+		seriesTypeToShortNameHash[ColumnSeries] = ChartSerializer.COLUMN;
+		seriesTypeToShortNameHash[LineSeries] = ChartSerializer.LINE;
+		seriesTypeToShortNameHash[PieSeries] = ChartSerializer.PIE;
+		seriesTypeToShortNameHash[StackedBarSeries] = ChartSerializer.STACK_BAR;
+		seriesTypeToShortNameHash[StackedColumnSeries] = ChartSerializer.STACK_COLUMN;
+	
+	//--------------------------------------
+	//  Static Methods
+	//--------------------------------------
+		
+		/**
+		 * Returns a series class based on a string reference.
+		 * 
+		 * @param name Reference from which to derive a class.
+		 * @return Series Class
+		 */
+		public static function shortNameToSeriesType(name:String):Class
+		{
+			return shortNameToSeriesTypeHash[name];
+		}
+		
+		/**
+		 * Returns a series string reference based on a class.
+		 *
+		 * @param type Series class from which to derive a string reference.
+		 * @return Reference to the series.
+		 */
+		public static function seriesTypeToShortName(type:Class):String
+		{
+			return seriesTypeToShortNameHash[type];
+		}
+		
+		/**
+		 * Returns the properties of a series.
+		 *
+		 * @param input Series from which to retrieve the properties.
+		 * @return Properties of the Series.
+		 */
+		public static function writeSeries(input:ISeries):Object
+		{
+			if(!input)
+			{
+				return null;
+			}
+			
+			var type:String = seriesTypeToShortNameHash[getDefinitionByName(getQualifiedClassName(input))];
+			var series:Object = {type: type, data: input.dataProvider, displayName: input.displayName};
+			if(input is CartesianSeries)
+			{
+				var cartesianSeries:CartesianSeries = CartesianSeries(input);
+				series.yField = cartesianSeries.verticalField;
+				series.xField = cartesianSeries.horizontalField;
+				series.axis = cartesianSeries.axis;
+			}
+			else if(input is PieSeries)
+			{
+				series.dataField = PieSeries(input).dataField;
+				series.categoryField = PieSeries(input).categoryField;
+			}
+			return series;
+		}
+		
+		/**
+		 * Creates or updates a series based on an object of series properties.
+		 *
+		 * @param input Properties to be applied to the series.
+		 * @param series Series to be updated
+		 * @return New or updated series.
+		 */
+		public static function readSeries(input:Object, series:ISeries = null):ISeries
+		{
+			if(!input || !input.type)
+			{
+				return null;
+			}
+			
+			if(!series)
+			{
+				var SeriesType:Class = shortNameToSeriesTypeHash[input.type];
+				series = new SeriesType()
+			}
+			
+			if(input.dataTipFunction)
+			{
+				series.dataTipFunction = getDataTipFunction(input.dataTipFunction);
+			}
+			
+			if(input.legendLabelFunction)
+			{
+				series.legendLabelFunction = JavaScriptUtil.createCallbackFunction(input.legendLabelFunction).callback;
+			}
+						
+			series.dataProvider = input.dataProvider;
+			series.displayName = input.displayName;
+			if(series is CartesianSeries)
+			{
+				var cartesianSeries:CartesianSeries = CartesianSeries(series);
+				cartesianSeries.verticalField = input.yField;
+				cartesianSeries.horizontalField = input.xField;
+				cartesianSeries.showInLegend = input.showInLegend == false ? false : true;	
+				
+				if(input.axis)
+				{
+					cartesianSeries.axis = input.axis;
+				}			
+			}
+			else if(series is PieSeries)
+			{
+				PieSeries(series).dataField = input.dataField;
+				PieSeries(series).categoryField = input.categoryField;
+				if(input.hasOwnProperty("labelFunction"))
+				{
+					PieSeries(series).labelFunction = JavaScriptUtil.createCallbackFunction(input.labelFunction).callback;
+				}
+			}
+			return series;
+		}
+		
+		/**
+		 * @private
+		 */
+		private static function getDataTipFunction(value:String):Function
+		{
+			var delegate:Object = {dataTipFunction: JavaScriptUtil.createCallbackFunction(value).callback};
+			delegate.callback = function(item:Object, index:int, series:ISeries):String
+			{
+				return delegate.dataTipFunction(item, index, SeriesSerializer.writeSeries(series));
+			}
+			
+			return delegate.callback;
+		}		
+	}
+}
\ No newline at end of file
diff --git a/src/charts/as/com/yahoo/yui/charts/TextFormatSerializer.as b/src/charts/as/com/yahoo/yui/charts/TextFormatSerializer.as
new file mode 100644
index 0000000..5e06546
--- /dev/null
+++ b/src/charts/as/com/yahoo/yui/charts/TextFormatSerializer.as
@@ -0,0 +1,85 @@
+package com.yahoo.yui.charts
+{
+	import flash.text.Font;
+	import flash.text.TextFormat;
+	
+	public class TextFormatSerializer
+	{
+		public static function writeTextFormat(format:TextFormat):Object
+		{
+			var output:Object = {};
+			output.name = format.font;
+			output.bold = format.bold;
+			output.italic = format.italic;
+			output.underline = format.underline;
+			output.size = format.size;
+			output.color = format.color;
+			
+			return output;
+		}
+		
+		public static function readTextFormat(input:Object):TextFormat
+		{
+			var format:TextFormat = new TextFormat();
+			if(input.name)
+			{
+				format.font = parseFontName(input.name);
+			}
+			else format.font = "Verdana";
+			format.bold = input.bold;
+			format.italic = input.italic;
+			format.underline = input.underline;
+			if(input.size != null)
+			{
+				format.size = input.size;
+			}
+			if(input.color != null)
+			{
+				format.color = input.color;
+			}
+			else format.color = 0x000000;
+			
+			return format;
+		}
+		
+		
+		private static var fontNameToFind:String;
+		
+		private static function parseFontName(value:String):String
+		{
+			var availableFonts:Array = Font.enumerateFonts(true);
+			var names:Array = value.split(/\s*,\s*/);
+		
+			//please note: Flash Player has an undocumented feature
+			//where "name1,name2,name3" notation is accepted by TextFormat.font.
+			//but since it isn't documented, I don't dare use it.
+			
+			var nameCount:int = names.length;
+			for(var i:int = 0; i < nameCount; i++)
+			{
+				var name:String = String(names[i]);
+				fontNameToFind = name.toLowerCase();
+				if(fontNameToFind == "sans-serif")
+				{
+					return "_sans";
+				}
+				else if(fontNameToFind == "serif")
+				{
+					return "_serif"
+				}
+				else if(availableFonts.filter(fontNameFilter).length > 0)
+				{
+					return name;
+				}
+			}
+			//worst case scenario, return _serif
+			return "_serif";
+		}
+		
+		private static function fontNameFilter(item:Font, index:int, array:Array):Boolean
+		{
+			
+			return item.fontName.toLowerCase() == fontNameToFind;
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/connection/as/com/yui/util/connection.as b/src/connection/as/com/yui/util/connection.as
new file mode 100644
index 0000000..a93b89c
--- /dev/null
+++ b/src/connection/as/com/yui/util/connection.as
@@ -0,0 +1,162 @@
+package com.yui.util
+{
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.events.IOErrorEvent;
+	import flash.events.TimerEvent;
+	import flash.events.IEventDispatcher;
+	import flash.net.URLRequest;
+	import flash.net.URLRequestMethod;
+	import flash.net.URLRequestHeader;
+	import flash.net.URLLoader;
+	import flash.net.URLVariables;
+	import flash.utils.Timer;
+	import flash.external.ExternalInterface;
+
+	public class connection extends Sprite
+	{
+		private var httpComplete:Function;
+		private var httpError:Function;
+		private var httpTimeout:Function;
+		private var loaderMap:Object = {};
+		private var yId:String;
+		private var handler:String = 'YAHOO.util.Connect.handleXdrResponse';
+
+		public function connection() {
+			ExternalInterface.addCallback("send", send);
+			ExternalInterface.addCallback("abort", abort);
+			ExternalInterface.addCallback("isCallInProgress", isCallInProgress);
+			ExternalInterface.call('YAHOO.util.Connect.xdrReady');
+		}
+
+		public function send(uri:String, cb:Object, id:uint):void {
+			var loader:URLLoader = new URLLoader(),
+				request:URLRequest = new URLRequest(uri),
+				timer:Timer,
+				prop:String;
+
+			for (prop in cb) {
+				switch (prop) {
+					case "method":
+						if(cb.method === 'POST') {
+							request.method = URLRequestMethod.POST;
+						}
+						break;
+					case "data":
+						request.data = cb.data;
+						break;
+					case "timeout":
+						timer = new Timer(cb.timeout, 1);
+						break;
+				}
+			}
+
+			loaderMap[id] = { c:loader, readyState: 0, t:timer };
+			defineListeners(id, timer);
+			addListeners(loader, timer);
+			loader.load(request);
+			start(id);
+
+			if (timer) {
+				timer.start();
+			}
+		}
+
+		private function defineListeners(id:uint, timer:Timer):void {
+			httpComplete = function(e:Event):void { success(e, id, timer); };
+			httpError = function(e:IOErrorEvent):void { failure(e, id, timer); };
+
+			if (timer) {
+				httpTimeout = function(e:TimerEvent):void { abort(id); };
+			}
+		}
+
+		private function addListeners(loader:IEventDispatcher, timer:IEventDispatcher):void  {
+			loader.addEventListener(Event.COMPLETE, httpComplete);
+			loader.addEventListener(IOErrorEvent.IO_ERROR, httpError);
+
+			if (timer) {
+				timer.addEventListener(TimerEvent.TIMER_COMPLETE, httpTimeout);
+			}
+		}
+
+		private function removeListeners(id:uint):void  {
+			loaderMap[id].c.removeEventListener(Event.COMPLETE, httpComplete);
+			loaderMap[id].c.removeEventListener(IOErrorEvent.IO_ERROR, httpError);
+
+			if (loaderMap[id].t) {
+				loaderMap[id].t.removeEventListener(TimerEvent.TIMER_COMPLETE, httpTimeout);
+			}
+		}
+
+		private function start(id:uint):void {
+			var response:Object = { tId: id, statusText: 'xdr:start' };
+
+			loaderMap[id].readyState = 2;
+			ExternalInterface.call(handler, response);
+		}
+
+		private function success(e:Event, id:uint, timer:Timer):void {
+			var data:String = encodeURI(e.target.data),
+				response:Object = {
+					tId: id,
+					statusText: 'xdr:success',
+					responseText: data
+				};
+
+			loaderMap[id].readyState = 4;
+
+			if (timer && timer.running) {
+				timer.stop();
+			}
+
+			ExternalInterface.call(handler, response);
+			destroy(id);
+		}
+
+		private function failure(e:Event, id:uint, timer:Timer):void {
+			var data:String,
+				response:Object = { tId: id, statusText: 'xdr:error' };
+
+			loaderMap[id].readyState = 4;
+
+			if (e is IOErrorEvent) {
+				response.responseText = encodeURI(e.target.data);
+			}
+
+			if (timer && timer.running) {
+				timer.stop();
+			}
+
+			ExternalInterface.call(handler, response);
+			destroy(id);
+		}
+
+		public function abort(id:uint):void {
+			var response:Object = { tId: id, statusText: 'xdr:abort' };
+
+			loaderMap[id].c.close();
+
+			if (loaderMap[id].t && loaderMap[id].t.running) {
+				loaderMap[id].t.stop();
+			}
+
+			ExternalInterface.call(handler, response);
+			destroy(id);
+		}
+
+		public function isCallInProgress(id:uint):Boolean {
+			if (loaderMap[id]) {
+				return loaderMap[id].readyState !== 4;
+			}
+			else {
+				return false;
+			}
+		}
+
+		private function destroy(id:uint):void {
+			removeListeners(id);
+			delete loaderMap[id];
+		}
+	}
+}
\ No newline at end of file
diff --git a/src/swfstore/as/SWFStore.as b/src/swfstore/as/SWFStore.as
new file mode 100644
index 0000000..e7758de
--- /dev/null
+++ b/src/swfstore/as/SWFStore.as
@@ -0,0 +1,949 @@
+package  
+{
+	import com.yahoo.util.YUIBridge;
+	
+	import flash.display.Sprite;
+	import flash.events.Event;
+	import flash.events.IOErrorEvent;
+	import flash.events.SecurityErrorEvent;
+	import flash.events.NetStatusEvent;
+	import flash.external.ExternalInterface;
+	import flash.net.SharedObject;
+	import flash.net.SharedObjectFlushStatus;
+	import flash.net.URLLoader;
+	import flash.net.URLRequest;
+	import flash.system.Security;
+	import flash.system.SecurityPanel;
+	import flash.utils.ByteArray;
+
+	//We set width/height is set here to be large enough to display the settings panel in Flash Player
+	//It will typically be shrunk to 0 x 0 via the embed code
+	[SWF(width=215, height=138)]
+
+	/**
+	 * A wrapper for Flash SharedObjects to allow them to be used in JavaScript.
+	 * 
+	 * @author Alaric Cole
+	 */
+	public class SWFStore extends Sprite
+	{
+	    
+	    //--------------------------------------------------------------------------
+	    //
+	    //  Private Variables
+	    //
+	    //--------------------------------------------------------------------------
+	    
+	    
+		/**
+	     * The Shared Object instance in which to store entries.
+	     * @private
+	     * @fucktown
+	     */
+		private var _sharedObject:SharedObject;
+		
+		
+		/**
+	     * An object used to temporarily store entries.
+	     * @private
+	     */
+		private var _archive:Object;
+	
+		/**
+	     * Storage for useCompression getter/setter
+	     * @private
+	     */	    
+	    private var _useCompression:Boolean;
+	    
+		/**
+	     * Storage for shareData getter/setter
+	     * @private
+	     */		    
+	    private var _shareData:Boolean;
+	    //--------------------------------------------------------------------------
+	    //
+	    //  Static Variables
+	    //
+	    //--------------------------------------------------------------------------
+	    
+		/**
+		 * The minimum width required to be able to display the settings panel within the SWF
+		 * 
+		 */	
+		public static var MINIMUM_WIDTH:Number = 215;
+	
+		/**
+		 * The minimum height required to be able to display the settings panel within the SWF
+		 * 
+		 */	
+		public static var MINIMUM_HEIGHT:Number = 138;
+		
+		/**
+		* @private
+		* Initialization flag
+		*/
+		private var _initialized:Boolean;
+				
+		/**
+		* @private
+		* Whitelist xml path  
+		*/
+		private var _whitelistFileName:String = "storage-whitelist.xml";
+		
+		/**
+		* @private
+		* YUI Embedding framework
+		*/
+		private var yuibridge:YUIBridge;
+		
+		//--------------------------------------
+		//  Constructor
+		//--------------------------------------
+		
+		/**
+		 * Creates a store, which can be used to set and get information on a
+		 * user's local machine. This is typically invoked through the YUI JS API.
+		 * 
+		 * 
+		 * <p>If multiple SWF files need access to the same store, 
+		 * or if the SWF file that creates a store will later be moved, 
+		 * the value of this parameter affects how accessible the store will be.</p> 
+		 * <p>For example, if you create a store with localPath set to the default value
+		 * (the full path to the SWF file), no other SWF file can access that shared object. 
+		 * If you later move the original SWF file to another location, 
+		 * not even that SWF file can access the data already stored.</p>
+		 * <p>To avoid inadvertently restricting access to a store, set this parameter. 
+		 * The most permissive approach is to set localPath to <code>/ </code> (forward slash), 
+		 * which makes the store available to all SWF files in the domain, 
+		 * but increases the likelihood of name conflicts with other stores in the domain. 
+		 * A more restrictive approach is to append localPath with folder names 
+		 * that are in the full path to the SWF file. Note that not just any folder path
+		 * can be placed here, but only those that are in the path of the SWF. 
+		 * For instance, if the SWF is located at company.com/products/mail/mail.swf,
+		 * the available options for localPath would be "/products/mail/", 
+		 * "/products/", or "/".</p>
+		 * 
+		 */
+		public function SWFStore() 
+		{
+			loadWhitelist();
+			
+			var callbacks:Object = {};
+			callbacks.getValueOf = getValueOf;
+			callbacks.getItems = getItems;
+			callbacks.getValueAt = getValueAt;
+			callbacks.getNameAt = getNameAt;
+			callbacks.getLength = getLength;
+			callbacks.getModificationDate = getModificationDate;
+			callbacks.calculateCurrentSize = calculateCurrentSize;
+			callbacks.setItem = setItem;
+			callbacks.removeItem = removeItem;    
+			callbacks.removeItemAt = removeItemAt;
+			callbacks.clear = clear;
+			callbacks.setSize = setSize;
+			callbacks.displaySettings = displaySettings;
+			callbacks.getTypeOf = getTypeOf;
+			callbacks.getTypeAt = getTypeAt;
+			callbacks.setUseCompression = setUseCompression;
+			callbacks.getUseCompression = getUseCompression;
+			callbacks.setShareData = setShareData;
+			callbacks.getShareData = getShareData;
+			callbacks.setShareData = setShareData;
+			callbacks.hasAdequateDimensions = hasAdequateDimensions;
+			    
+			yuibridge = new YUIBridge(stage);
+			yuibridge.addCallbacks(callbacks);
+			
+
+		}
+
+		
+		//--------------------------------------------------------------------------
+		// 
+		// Properties
+		//
+		//--------------------------------------------------------------------------
+		
+ 		/**
+		* 
+		* Whether or not compression is used
+		*/
+ 		public function getUseCompression():Boolean
+ 		{
+ 			return _useCompression;
+ 			
+ 		}
+ 		
+  		/**
+		* Whether or not to use compression
+		*/		
+ 		public function setUseCompression(value:Boolean):void
+ 		{
+ 			_useCompression = value; 
+ 			
+ 			//if we're not already compressed, this setting should force current data to be compressed
+			if( !(_sharedObject.data.archive is ByteArray) && value)
+			{
+				var bytes:ByteArray = new ByteArray();
+	  			bytes.writeObject(_archive);   
+	  			bytes.compress();    
+	  			_sharedObject.data.archive = bytes;
+	  			_sharedObject.flush();
+			}
+ 			
+ 		}
+ 
+  		/**
+		* 
+		* Whether or not to data is being shared among different browsers
+		*/
+ 		public function getShareData():Boolean
+ 		{
+ 			return _useCompression;
+ 		}
+  		/**
+		* 
+		* Whether or not to share data among different browsers
+		*/				
+ 		public function setShareData(value:Boolean):void
+ 		{
+ 			_shareData = value;
+ 			initializeSharedObject();
+ 		}
+ 		
+ 		//--------------------------------------------------------------------------
+		// 
+		// Public Methods
+		//
+		//--------------------------------------------------------------------------
+		
+	   /**
+	    * Saves data to local storage. It returns "true" if the storage succeeded; "false" if the user
+		* has denied storage on their machine or if the current limit is too low.
+		* <p>The size limit for the passed parameters is ~40Kb.</p>
+		*  
+	    * @param item The data to store
+	    * @param location The name of the "cookie" or store 
+		* @return Boolean Whether or not the save was successful
+	    *  
+	    */   
+	    public function setItem(location:String, item:* ):Boolean
+	    {        
+	    	var oldValue:Object = null;
+	    	var info:String;
+	    	
+ 			//check to see if this has already been added
+			if(_archive.storage.hasOwnProperty(location))
+			{
+				//entry already exists with this value, ignore
+				if(_archive.storage[location] == item) return false;
+				
+				else //it's there but has a different value
+				{
+					oldValue = getValueOf(location);
+					_archive.storage[location] = item;
+					info = "update";
+				} 
+			}
+			 
+			else //doesn't exist, create and index it
+			{ 
+				info = "add";
+				  
+				_archive.storage[location] = item;
+				_archive.hash.push(location);
+				
+			}
+			   
+			//write it immediately
+	    	var result:Boolean = save(location, info, oldValue, item);
+			if(!result) 
+			{
+				//return archive to its original state, as this did not propagate to the SharedObject
+				switch(info)
+				{
+					case "update":
+					_archive.storage[location] = oldValue;
+					break;
+					
+					case "add":
+					delete _archive.storage[location];
+					_archive.hash.pop();
+					break;
+					
+				}
+			} 
+	    	return result;
+	    }
+   
+   
+	    /**
+	    * Returns the value of the key in local storage, if any. This corresponds to the 
+	    * HTML5 spec getItem(key).
+	    * <p>Note: to return an item at a specific index, use the helper function</p>:
+	    * <code>getValueAt(index)</code>
+	    * 
+	    * @param location The name of the "cookie" or key
+		* @return The data
+	    * @see getValueAt
+	    */
+	    public function getValueOf(location:String):*
+	    {
+	    	if(_archive.storage.hasOwnProperty(location)) 
+	    	{
+	      		return _archive.storage[location];
+	    	}
+	    	
+	    	return null;
+	    }
+	    
+	    /**
+	    * Returns the value of the key in local storage, if any, at the specified index.
+	    * Corresponds to the key(n) method in the HTML5 spec.
+	    * 
+	    * @param index The index of the "cookie" or store
+		* @return The value stored
+	    * 
+	    */ 
+	    public function getValueAt(index:int):*
+	    {   
+	    	var keyname:String = getNameAt(index);
+	    	
+	    	if(!keyname) return null;
+	    	
+	    	var value:Object = _archive.storage[keyname];
+	    	
+	    	if(!value) return null;
+	    	
+	    	return value;
+	    } 
+	    
+	    /**
+	    * Returns the data type of of the storage. 
+	    *     
+	    * <p>May be one of the following types:
+	    * <ul>
+	    * <li>boolean</li>
+	    * <li>function</li>
+	    * <li>number</li>
+	    * <li>object</li>
+	    * <li>string</li>
+	    * <li>number</li>
+	    * <li>xml</li>
+	    * </ul>
+	    * </p>
+	    * 
+	    * @param location The name of the "cookie" or store
+		* @return The data type.
+	    * 
+	    */ 
+	    public function getTypeOf(location:String):String
+	    {
+	    	if(_archive.storage.hasOwnProperty(location)) 
+	    	{
+	      		return typeof _archive.storage[location];
+	    	}
+	    	
+	    	return null;
+	    }
+	    
+	    /**
+	    * Returns the data type of of the storage. 
+	    * 
+	    * @param index The index of the "cookie" or store
+		* @return The data type.
+		* @see getTypeOf
+	    * 
+	    */ 
+	    public function getTypeAt(index:int):String
+	    {
+	    	return typeof getValueAt(index);
+	    }
+	    	    
+	    /**
+	    * Returns the key name in storage, if any, at the specified index.
+	    * 
+	    * @param index The index of the "cookie" or store
+		* @return The data
+	    * 
+	    */
+	    public function getNameAt(index:int):String
+	    {   
+	    	var keyname:String = _archive.hash[index];
+	    	
+	    	if(!keyname) return null;
+	    	
+	    	return keyname;
+	    } 
+	    
+	   /**
+	    * Returns the number of keys in storage.
+	    * 
+		* @return The number of keys
+	    * 
+	    */
+	    public function getLength():int
+	    { 
+    	    	return _archive.hash.length;
+	    }
+	      
+	    /**
+	    * Returns the storage object as an Array of name/value pairs.
+	    * 
+	    * 
+		* @return The storage dictionary as an Array
+	    * 
+	    */
+	    public function getItems():Array
+	    {     
+	    	var len:int = getLength();
+	    	var array:Array = [];
+	    	
+	    	for (var i:uint = 0; i < len; i++)
+	    	{        
+	    		array.push(_archive.storage[ _archive.hash[i] ] );
+	    	}  
+	    	return array;
+	    	
+	    }
+	    
+	   /**
+	    * Removes the data in local storage at the specified location, if any.
+	    * 
+	    * @param location The name of the "cookie" or store
+		* @return Whether the remove was successful
+	    * 
+	    */
+	    public function removeItem(location:String):Boolean
+	    {     
+	    	var index: int = getIndexOf(location);
+	    	var oldValue:Object = _archive.storage[location];
+	    	
+	    	delete _archive.storage[location];
+	    	
+	    	_archive.hash.splice(index, 1);
+	    	  
+	    	var result:Boolean = save(location, "delete", oldValue, null, index);
+	    	
+	    	return result;
+	    }
+
+	   /**
+	    * Removes the data in local storage at the specified location, if any.
+	    * 
+	    * @param location The name of the "cookie" or store
+		* @return Whether the remove was successful
+	    * 
+	    */
+	    public function removeItemAt(index:int):Boolean
+	    {
+	    	var oldValue:Object = getValueAt(index);
+	    	var location:String = getNameAt(index);
+	    	 
+	    	delete _archive.storage[location];
+	    	    
+	    	_archive.hash.splice(index, 1);
+	    	
+	    	var result:Boolean = save(location, "delete", oldValue, null, index);
+	    	 
+	    	return result;
+	    }
+	    
+	   /**
+	    * Removes all data in local storage for this domain.
+	    * <p>Be careful when using this method, as it may 
+	    * remove stored information that is used by other applications
+	    * in this domain </p>
+	    * 
+		* @return Whether the clear was successful
+	    * 
+	    */
+	    public function clear():Boolean
+	    {
+	    	_sharedObject.clear();
+	    	_archive = {storage:{}, hash:[]};
+	    	var evt:Object = {type: "save"};           
+	    	
+			yuibridge.sendEvent(evt);
+	    	return true;
+	    }
+	    
+	    
+	    /**
+	     * Gets the amount of space taken by the current store. Note that this value is 
+	     * calculated as requested, so large datasets could result in reduced performance.
+	     * @return the size of the store in KB
+	     */
+		public function calculateCurrentSize():uint
+		{
+			var sz:uint = _sharedObject.size;
+			return sz;
+		}
+		
+		/**
+		* This method requests more storage if the amount is above the current limit (typically ~100KB). 
+		* The request dialog has to be displayed within the Flash player itself
+		* so the SWF it is called from must be visible and at least 215px x 138px in size.
+		* 
+		* Since this is a "per domain" setting, you can
+		* use this method on a SWF in a separate page, such as a settings page, 
+		* if the width/height of the compiled SWF is not large enough to fit this dialog. 
+		* 
+		* @param value The size, in KB
+		*/
+		public function setSize(value:int):String
+		{
+			var status:String;
+			
+			status = _sharedObject.flush(value * 1024);
+			//on error, attempt to resize div?
+			
+			return status;
+		}
+
+		/**
+		 * Displays the settings dialog to allow the user to configure
+		 * storage settings manually. If the SWF height and width are smaller than
+		 * what is allowable to display the local settings panel,
+		 * an error message will be sent to JavaScript.
+		 */
+		public function displaySettings():void
+		{
+			var evt:Object;    
+			if( hasAdequateDimensions() )
+			{
+				evt = {type: "openingDialog"};
+				yuibridge.sendEvent(evt);
+
+				Security.showSettings(SecurityPanel.LOCAL_STORAGE);
+			}
+			else
+			{
+				
+				evt = {type: "inadequateDimensions", message: "The current size of the SWF is too small to display " + 
+						"the settings panel. Please increase the available width and height to 215px x 138px or larger."};
+				yuibridge.sendEvent(evt);
+			}
+
+		}
+		
+	
+	    /**
+	     * Gets the timestamp of the last store. This value is automatically set when 
+	     * data is stored.
+	     * @return A Date object
+	     */
+		public function getModificationDate():Date
+		{
+			var lastDate:Date =  new Date(_sharedObject.data.modificationDate);
+			
+			return lastDate;
+			
+		}
+		
+
+		
+    
+		//--------------------------------------
+		//  Private Methods
+		//--------------------------------------
+		
+		/**
+		 * @private
+		 * Gets the index of the item at the specified location
+		 * @param location The name of the key
+		 */		
+		private function getIndexOf(location:String):int 
+		{
+			return _archive.hash.indexOf(location);
+		}
+		
+		/**
+		 * @private
+		 * Loads the whitlist XML file
+		 * 
+		 */		
+		private function loadWhitelist():void 
+		{
+			var whitelistLoader:URLLoader = new URLLoader();
+			whitelistLoader.addEventListener(Event.COMPLETE, onComplete);
+			whitelistLoader.addEventListener(IOErrorEvent.IO_ERROR, onError);
+			whitelistLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
+		
+			//don't use a relative path, use the swf's loaded path
+			//to prevent crossdomain or base param workarounds
+		
+			var fullPath:String = loaderInfo.url;
+    		
+			//remove trailing slashes
+			var parentPath:String;
+			
+			var hasTrailingSlash:Boolean = fullPath.charAt(fullPath.length - 1) == "/";
+			if(hasTrailingSlash) fullPath = fullPath.slice(0, -1);
+			
+			//now get the path before the final slash (something like "/swffile.swf")
+     		parentPath = fullPath.slice(0,fullPath.lastIndexOf("/"));
+    		 
+			var localpath:String = parentPath + "/" + _whitelistFileName;
+			whitelistLoader.load(new URLRequest(localpath));	
+		}
+		
+		/**
+		 * @private
+		 * Parses the config xml data and populates path array
+		 * 
+		 */
+		private function onComplete (event:Event) : void 
+		{
+			 
+			var contentXML:XML;
+			try
+			{
+				 contentXML = new XML(event.target.data);
+			}
+			catch(error:TypeError)
+			{
+				yuibridge.sendEvent({type:"error", message:error.message});
+			}
+			
+			var valid:Boolean;
+			
+			var pageURL:String = ExternalInterface.call("function(){return window.location.href;}");
+			 
+			for  each (var path:XML in contentXML["allow-access-from"] ) 
+			{
+				var url:String = path. at url;
+				
+				if(pathMatches(pageURL, url))
+				{
+					valid = true;
+					break; 
+				} 
+			}
+	
+			
+			if(valid) initializeSharedObject();
+			
+			//not a valid whitelist, dispatch error
+			else 
+			{
+				var evt:Object = {type: "securityError", message: "Security Error: the whitelist does not allow access to storage from this location" };
+						
+					yuibridge.sendEvent(evt);
+			}	
+		}
+
+
+		private function pathMatches(page:String, path:String):Boolean
+		{
+			//remove the protocol when matching domains, because protocols are not to be specified in the whitelist				
+			/* var protocolPattern: RegExp = new RegExp("(http|https|file)\:\/\/");
+    		var pathWithoutProtocol:String = url.replace(protocolPattern, "");
+    		
+    		var pageURLWithoutProtocol:String = url.replace(pageURL, ""); */
+    		
+    		//ExternalInterface.call("alert('this page's url: " + page + "/nproposed url: " + path + "')");
+				
+	    		
+			if(page.indexOf(path) > -1)
+			{
+				//if the loading page's url contains the whitelisted url as a substring, pass it
+				return true;
+			}
+			
+			else return false;
+		}
+		/**
+		 * @private
+		 * Dispatches an IOErrorEvent
+		 * 
+		 */
+		private function onError(event:IOErrorEvent) : void 
+		{
+			//trace("no whitelist file");
+			
+			//try matching the url, a default action since no whitelist was specified
+			
+			performURLMatch();
+		}
+		
+		/**
+		 * @private
+		 * Dispatches a SecurityErrorEvent
+		 * 
+		 */
+		private function onSecurityError(event:SecurityErrorEvent) : void 
+		{
+			var evt:Object = {type: "securityError", message: event.text };
+					
+				yuibridge.sendEvent(evt);
+		}
+		
+		/**
+		 * Expands a path with shorthands to url
+		 * 
+		 * @param path	Path with shorthands
+		 * @return      Path with shorthands expanded
+		 */
+		public function getPath (path:String) : String {
+			var newPath:String = path.replace(/%(.*)%/, getPath);
+			return newPath; 
+		}
+		
+		private function performURLMatch():void
+		{
+			try 
+			{
+				//check that page url is the same as the swf's url //host gives main domain? 
+				//ExternalInterface.call("function(){alert(window.location.href)}"); 
+				var currentURL:String = ExternalInterface.call("function(){return window.location.href;}");
+				if(currentURL.indexOf("?") > -1)
+				{
+					currentURL = currentURL.slice(0,currentURL.indexOf("?"));
+				} 
+			      
+			    currentURL = currentURL.slice(0,currentURL.lastIndexOf("/"));
+			    					
+				var loadedURL:String = loaderInfo.url;
+				if(loadedURL.indexOf("?") > -1)
+				{
+					loadedURL = loadedURL.slice(0,loadedURL.indexOf("?"));	
+				}   
+				loadedURL = loadedURL.slice(0,loadedURL.lastIndexOf("/"));
+				
+				var currentURL_ESC:String = unescape(currentURL) ;
+				var loadedURL_ESC:String = unescape(loadedURL) 
+				
+				if(currentURL_ESC == loadedURL_ESC )
+				{ 
+					initializeSharedObject();
+ 					 
+				}
+				 else 
+				{	
+					var evt:Object = {type: "securityError", message: "The domain of the page must match the SWF's domain.\nPage's URL: " +
+						currentURL + "\n" + "SWF's URL: " + loadedURL};
+						
+					yuibridge.sendEvent(evt);
+				}  
+			} 
+			
+			catch(e:Error)
+			{
+				yuibridge.sendEvent(e);
+			}
+
+		}
+		protected function initializeSharedObject():void
+		{
+			var allowedDomain:String = loaderInfo.parameters.allowedDomain || null;
+			
+			if(allowedDomain)
+			{
+				//allows "cross-scripting" of html container and swf
+				Security.allowDomain(allowedDomain);
+			}
+			
+			else
+			{
+				var evt:Object = {type: "securityError", message: "The domain of the page does not have appropriate permissions.\nPage's URL: "};
+				yuibridge.sendEvent(evt);
+			}
+			
+			var localPath:String = null;//loaderInfo.parameters.localPath || null;
+			   
+			var browser:String = loaderInfo.parameters.browser || "other";
+			
+			if(!_initialized)
+			{
+				_shareData = loaderInfo.parameters.shareData == "true";
+  				_useCompression = loaderInfo.parameters.useCompression == "true";
+			}
+			
+			var loc:String = "DataStore_" + (_shareData?"":browser);
+ 			_sharedObject = SharedObject.getLocal(loc, localPath); 
+ 			
+ 			_sharedObject.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus);
+ 				
+ 			//initialize 
+ 			if(!_sharedObject.data.hasOwnProperty("archive")) 
+ 			{
+   				_archive = {storage:{}, hash:[]};
+ 			}
+ 			else    
+ 			{
+ 				 //if compression is detected to be in use, we must decompress it first
+ 				if(_sharedObject.data.archive is ByteArray)
+ 				{ 
+ 					//remember that sharedobjects are flushed automatically when the page destroys the SWF.
+ 					var tempBytes:ByteArray = _sharedObject.data.archive as ByteArray;
+ 					
+ 					//make a clone of the current shared object
+ 					var bytes:ByteArray = new ByteArray();
+ 					tempBytes.readBytes(bytes, 0, tempBytes.length);
+ 					
+ 					//NOTE: there may be a way to read the first few bytes and determine if it is compressed
+ 					
+ 					try
+ 					{
+ 						bytes.uncompress();
+ 					}
+ 					catch(error:Error)
+ 					{
+ 						//there's an error decompressing
+ 						yuibridge.sendEvent({type: "error", message:error.message});
+ 					}
+ 					
+ 					_archive = bytes.readObject();
+ 				} 
+ 				else
+ 				{
+ 					_archive = _sharedObject.data.archive;
+ 				}
+ 				
+ 			}
+ 			
+ 			//if(!_initialized)
+ 			{
+ 				_initialized = true;
+ 				//once initialization is complete, let JS know 
+ 				yuibridge.sendEvent({type:"contentReady"});
+ 			}
+ 			
+		}
+	
+
+	    /**
+	    * @private
+	    * Returns the key/value pair in storage, if any, at the specified index.
+	    * Similar to get key() in HTML5
+	    * @param index The index of the "cookie" or store
+		* @return The data
+	    * 
+	    */
+	    protected function getKeyValueAt(index:int):Object
+	    {   
+	    	return getItems()[index];
+	    } 	  
+	  
+	  
+		/** 
+		* @private
+		* Writes the store to disk. While this will be called by Flash
+		* whenever the application is closed, calling it immediately after
+		* new information allows that info to be instantly available.
+		*
+	    * @return Whether or not the save was successful
+		*/
+		protected function save( location:String = null, info:String = "add", oldValue:Object = null, newValue:Object = null, index:int = -1):Boolean
+	    {     
+	        var evt:Object = {};
+	        var type:String = "save";
+	         
+	        //set the time modified  UTC
+	        if(newValue) 
+	        {
+	        	setTime(new Date().getTime());
+	        }   
+	        
+	       if(_useCompression)
+	        {
+		        var bytes:ByteArray = new ByteArray();
+	  			bytes.writeObject(_archive);   
+	  			bytes.compress();    
+	  			_sharedObject.data.archive = bytes;
+	        }
+	        else _sharedObject.data.archive = _archive;
+	         
+	    	var result:String;
+	 		
+			try
+			{
+				result = _sharedObject.flush();
+	    	}
+			catch(e:Error)
+			{
+				//event will be throw further down
+			}
+	    	//return status
+	    	if(result == SharedObjectFlushStatus.FLUSHED)
+	    	{
+	    		//there may be future issues here with 40k+ storage, because due to the HTML5 spec,
+	    		//old and new values must be sent back--for a 40k update, this means sending 80k back in the event
+	    		evt.type = type;
+	    		evt.info = info;
+	    		evt.key = location;
+	    		evt.oldValue = oldValue;
+	    		evt.newValue = newValue;
+				evt.index = index;
+				yuibridge.sendEvent(evt);
+	    		return true;
+	    	}
+			if(result == SharedObjectFlushStatus.PENDING)
+	    	{
+	    		//let JS know theres going to be a dialog
+	    		evt = {type: "pending"};
+				yuibridge.sendEvent(evt);
+	    		return false;
+	    	} 
+	    	 
+	    	else
+	    	{
+	    		evt = {type: "error", message:"Unable to save. Client-side storage has been disabled for this domain. To enable, display the Flash settings panel and set a storage amount."};
+				yuibridge.sendEvent(evt);
+	    		return false;
+	    		
+	    	} 
+	    	return false;
+	    }
+	    
+	    /**
+		* @private
+		* Sets the date modified for the store, based on the user's clock.
+		* 
+		* @param value The time to set, as a Number.
+	    * 
+		*/
+		protected function setTime(value:Number):void
+		{
+			_sharedObject.data.modificationDate = value;
+		}
+	    
+		/**
+		* @private
+		* Called when a larger shared object size is requested
+	    * @param the NetStatusEvent object.
+		*/
+		protected function onNetStatus(event:NetStatusEvent):void
+		{
+			 
+			var evt:Object;
+			if(event.info.level =="error")
+			{           
+				//this is most likely the result of maxing out storage for the domain. There's no way to tell for certain
+				evt = {type: "quotaExceededError", info:"NetStatus Error: " + event.info.code,
+					message: "Storage capacity requested exceeds available amount."}; 
+					 
+				yuibridge.sendEvent(evt); 
+			}
+			else
+			{
+				//this is normally executed when additional storage is requested and allowed by the user
+				evt = {type: "success"};
+				yuibridge.sendEvent(evt);
+			}
+			
+		}    
+
+		/**
+		* 
+		* Helper function to determine if SWF visible area is large enough to fit 
+		* the settings panel
+	    * @return Boolean Whether or not the area is large enough.
+		*/
+		public function hasAdequateDimensions():Boolean
+		{
+			return (stage.stageHeight >= MINIMUM_HEIGHT) && (stage.stageWidth >= MINIMUM_WIDTH);
+		}
+	}
+}
diff --git a/src/swfstore/as/com/yahoo/util/YUIBridge.as b/src/swfstore/as/com/yahoo/util/YUIBridge.as
new file mode 100644
index 0000000..0234491
--- /dev/null
+++ b/src/swfstore/as/com/yahoo/util/YUIBridge.as
@@ -0,0 +1,40 @@
+	package com.yahoo.util
+	{
+		import flash.display.Stage;
+		import flash.external.ExternalInterface;
+		
+		public class YUIBridge extends Object
+		{
+			private var _stage:Stage;
+			public var flashvars:Object;
+			private var _jsHandler:String;
+			private var _swfID:String;
+	
+			public function YUIBridge(stage:Stage)
+			{
+				_stage = stage;
+				flashvars = _stage.loaderInfo.parameters;
+				if (flashvars["YUIBridgeCallback"] && flashvars["YUISwfId"] && ExternalInterface.available) {
+					_jsHandler = flashvars["YUIBridgeCallback"];
+					_swfID = flashvars["YUISwfId"];
+				}
+			}
+			
+			public function addCallbacks (callbacks:Object) : void {
+				if (ExternalInterface.available) {
+					for (var callback:String in callbacks) {
+	 					ExternalInterface.addCallback(callback, callbacks[callback]);
+	 					trace("Added callback for " + callbacks[callback] + " named " + callback);
+	 				}
+	 				sendEvent({type:"swfReady"});
+	 			}
+			}
+	
+			public function sendEvent (evt:Object) : void {
+				if (ExternalInterface.available) {
+				trace("Sending event " + evt.type);
+				ExternalInterface.call(_jsHandler, _swfID, evt);
+				}
+			}		
+		}
+	}
\ No newline at end of file
diff --git a/src/uploader/as/Uploader.as b/src/uploader/as/Uploader.as
new file mode 100644
index 0000000..ac8112c
--- /dev/null
+++ b/src/uploader/as/Uploader.as
@@ -0,0 +1,972 @@
+package
+
+{
+
+	import com.yahoo.yui.YUIAdapter;
+	
+	import flash.display.Loader;
+	import flash.display.Sprite;
+	import flash.display.StageAlign;
+	import flash.display.StageScaleMode;
+	import flash.events.DataEvent;
+	import flash.events.Event;
+	import flash.events.FocusEvent;
+	import flash.events.HTTPStatusEvent;
+	import flash.events.IOErrorEvent;
+	import flash.events.KeyboardEvent;
+	import flash.events.MouseEvent;
+	import flash.events.ProgressEvent;
+	import flash.events.SecurityErrorEvent;
+	import flash.external.ExternalInterface;
+	import flash.net.FileFilter;
+	import flash.net.FileReference;
+	import flash.net.FileReferenceList;
+	import flash.net.URLRequest;
+	import flash.net.URLVariables;
+	import flash.ui.Keyboard;
+	import flash.utils.Dictionary; 
+
+
+
+	[SWF(backgroundColor=0xffffff)]
+
+	/**
+	 * The base Uploader class for YUI's Flash-based file uploader.
+	 * 
+	 * @author Allen Rabinovich
+	 */
+
+	public class Uploader extends YUIAdapter {
+
+	//--------------------------------------
+	//  Constructor
+	//--------------------------------------
+
+		public function Uploader()
+		{
+			super();
+		}
+
+
+	    //--------------------------------------------------------------------------
+	    //
+	    //  Variables
+	    //
+	    //--------------------------------------------------------------------------
+
+		private var allowMultiple:Boolean = false;
+		private var allowLog:Boolean = false;
+		private var filterArray:Array;
+
+		private var fileDataList:Object;
+		private var fileRefList:Object;
+		private var fileIDList:Dictionary;
+		private var fileIDCounter:Number;
+		private var filesToUpload:Array;
+
+		private var singleFile:FileReference;
+		private var multipleFiles:FileReferenceList;
+		
+		
+		/**
+		 * Determines how many files will be uploaded simultaneously
+		 *
+		 * @see setSimUploadLimit
+		 * @langversion 3.0
+		 * @playerversion Flash 9.0.28.0
+		 */
+		public var simultaneousUploadLimit:Number = 2;
+		
+		// Track the number of current upload threads
+		private var currentUploadThreads:Number = 0;
+
+		// How the uploader is rendered, either "button" or "transparent"
+		private var renderType:String;
+		
+		// The Sprite containing the rendered UI.
+		private var buttonSprite:Sprite = new Sprite();
+		
+		// The skin for the button, if "button" renderType is used.
+		private var buttonSkin:Loader = new Loader();
+		
+		// Height and width for the button
+		private var buttonHeight:Number;
+		private var buttonWidth:Number;
+		
+		//--------------------------------------
+		//  Public Methods
+		//--------------------------------------
+
+		/**
+		 * Sets the number of simultaneous file uploads possible.
+		 * The maximum is 5.
+		 * @param numberOfUploads Number of simultaneous uploads, no fewer than 1
+		 * and no larger than 5.
+		 */
+		 public function setSimUploadLimit (simUploadLimit:int) : void {
+		 	if (simUploadLimit <= 1) {
+		 		this.simultaneousUploadLimit = 1;
+		 	}
+		 	else if (simUploadLimit >= 5) {
+		 		this.simultaneousUploadLimit = 5;
+		 	}
+		 	else {
+		 		this.simultaneousUploadLimit = simUploadLimit;
+		 	}
+		 }
+
+
+	    /**
+	     *  Sets a list of file type filters for the "Open File(s)" dialog.
+		 *  
+	     *  @param newFilterArray An array of sets of key-value pairs of the form
+	     *  {extensions: extensionString, description: descriptionString, macType: macTypeString [optional]}
+	     *  The extension string is a semicolon-delimited list of elements of the form "*.xxx", 
+	     *  e.g. "*.jpg;*.gif;*.png".
+	     */
+		 public function setFileFilters(newFilterArray:Array) : void {
+		 	filterArray = processFileFilterObjects(newFilterArray);
+		 	
+		 	if (allowLog) {
+		 		var logString:String = "File filters have been set to the following: \n";
+		 		for each (var ff:FileFilter in filterArray) {
+		 			logString += ff.extension + ": " + ff.description + "\n";
+		 		}
+		 		logMessage(logString);
+		 	}
+		 }
+
+	    /**
+	     *  Sets a flag allowing logging in Flash trace and Yahoo logger.
+		 *  
+	     *  @param allowLogging Whether to allow log messages.
+	     * 
+	     */
+		public function setAllowLogging(allowLogging:Boolean) : void {
+			this.allowLog = allowLogging;
+			logMessage("Logging has been turned " + (allowLog ? "on." : "off."));
+		}
+		
+		/**
+	     *  Sets a flag allowing multiple file selection in the "Browse" dialog.
+		 *  
+	     *  @param allowMultiple Whether to allow multiple file selection.
+	     * 
+	     */
+		public function setAllowMultipleFiles(allowMultipleFiles:Boolean) : void {
+			this.allowMultiple = allowMultipleFiles;
+			logMessage("Multiple file upload has been turned " + (allowMultiple ? "on." : "off."));		
+		}
+
+		
+	    /**
+	     *  Triggers a prompt for the user to browse their file system to select
+		 *  files to be uploaded.
+		 *  
+	     *  @param allowMultiple Whether to allow the user to select more than
+	     *  one file
+	     * 
+	     *  @param filterArray An array of filter objects, each with <code>
+	     *  description</code>, and <code>extensions</code> properties which
+		 *  determine which files the user is allowed to select
+	     */
+
+		private function browse(allowMultiple:Boolean = false, filterArray:Array = null):void {
+
+			if(!allowMultiple) {
+				logMessage("Browsing for a single file.")
+				singleFile = new FileReference();
+				singleFile.addEventListener(Event.SELECT, singleFileSelected);
+
+				if(filterArray) {
+					singleFile.browse(filterArray);
+				}
+				else {
+					singleFile.browse();
+				}
+			}
+
+			else {
+
+				logMessage("Browsing for one or more files.")
+				multipleFiles = new FileReferenceList();
+				multipleFiles.addEventListener(Event.SELECT, multipleFilesSelected);
+
+				if(filterArray) {
+					multipleFiles.browse(filterArray);
+				} 
+
+				else {
+					multipleFiles.browse();
+				}
+
+			}
+
+		}
+
+
+
+	    /**
+	     *  Removes the file from the set to be uploaded
+		 *  
+	     *  @param fileID The ID of the file to be removed
+	     */
+
+		public function removeFile(fileID:String):Object {
+
+			// TODO: Do we need to remove the item from filesToUpload also?
+
+			delete fileDataList[fileID];
+			delete fileRefList[fileID];
+
+			return fileDataList;
+		}
+
+		public function enable () : void {
+			if (renderType == "button") {
+				this.addEventListener(MouseEvent.ROLL_OVER, buttonMouseOver);
+				this.addEventListener(MouseEvent.ROLL_OUT, buttonMouseOut);
+				this.addEventListener(MouseEvent.MOUSE_DOWN, buttonMouseDown);
+				this.addEventListener(MouseEvent.MOUSE_UP, buttonMouseUp);
+				this.addEventListener(MouseEvent.CLICK, handleMouseClick);
+				buttonSkin.y = 0;
+			}
+			else {
+				this.addEventListener(MouseEvent.CLICK, handleMouseClick);
+				this.addEventListener(MouseEvent.CLICK, transparentClick);
+			
+				this.addEventListener(MouseEvent.MOUSE_DOWN, transparentDown);
+				this.addEventListener(MouseEvent.MOUSE_UP, transparentUp);
+				this.addEventListener(MouseEvent.ROLL_OVER, transparentRollOver);
+				this.addEventListener(MouseEvent.ROLL_OUT, transparentRollOut);
+			}
+			
+			logMessage("Uploader UI has been enabled.");
+		}
+		
+		public function disable () : void {
+			if (renderType == "button") {
+				this.removeEventListener(MouseEvent.ROLL_OVER, buttonMouseOver);
+				this.removeEventListener(MouseEvent.ROLL_OUT, buttonMouseOut);
+				this.removeEventListener(MouseEvent.MOUSE_DOWN, buttonMouseDown);
+				this.removeEventListener(MouseEvent.MOUSE_UP, buttonMouseUp);
+				this.removeEventListener(MouseEvent.CLICK, handleMouseClick);
+				buttonSkin.y = -3*buttonHeight;
+			}
+			else {
+				this.removeEventListener(MouseEvent.CLICK, handleMouseClick);
+				this.removeEventListener(MouseEvent.CLICK, transparentClick);
+			
+				this.removeEventListener(MouseEvent.MOUSE_DOWN, transparentDown);
+				this.removeEventListener(MouseEvent.MOUSE_UP, transparentUp);
+				this.removeEventListener(MouseEvent.ROLL_OVER, transparentRollOver);
+				this.removeEventListener(MouseEvent.ROLL_OUT, transparentRollOut);
+			}
+			
+			logMessage("Uploader UI has been disabled.");
+		}
+
+	    /**
+	     *  Clears the set of files that had been selected for upload
+	     */
+
+		public function clearFileList():Boolean {
+
+			// TODO: Remove event listeners (or weak references?)
+
+			filesToUpload = [];
+			fileDataList = new Object();
+			fileRefList = new Object();
+			fileIDList = new Dictionary();
+			fileIDCounter = 0;
+			
+			logMessage("The file list has been cleared.");
+			
+			return true;
+		}
+
+
+
+	    /**
+	     *  Uploads a file corresponding to a specified ID to a specified path where a script handles writing to the server.
+		 *  
+	     *  @param fileID The ID of the file to be uploaded
+	     *  @param url The path to the serverside script
+	     *  @param method The HTTP submission method. Possible values are "GET" and "POST"
+	     *  @param vars An object containing variables to be sent along with the request
+	     *  @param fieldName The field name that precedes the file data in the upload POST operation. 
+	     *  The uploadDataFieldName value must be non-null and a non-empty String.
+	     *  @param headers An object containing variables that should be set as headers in the POST request. The following header names
+	     *  cannot be used: 
+	     *  <code>
+	     *  Accept-Charset, Accept-Encoding, Accept-Ranges, Age, Allow, Allowed, Authorization, Charge-To, Connect, Connection, 
+	     *  Content-Length, Content-Location, Content-Range, Cookie, Date, Delete, ETag, Expect, Get, Head, Host, Keep-Alive, 
+	     *  Last-Modified, Location, Max-Forwards, Options, Post, Proxy-Authenticate, Proxy-Authorization, Proxy-Connection, 
+	     *  Public, Put, Range, Referer, Request-Range, Retry-After, Server, TE, Trace, Trailer, Transfer-Encoding, Upgrade, 
+	     *  URI, User-Agent, Vary, Via, Warning, WWW-Authenticate, x-flash-version.
+	     *  </code>
+	     */
+
+		public function upload(fileID:String, url:String, method:String = "GET", vars:Object = null, fieldName:String = "Filedata"):void {
+
+			// null checking in the params is not working correctly
+			filesToUpload = [];
+
+			if(isEmptyString(method)) {
+				method = "GET";
+			}
+			
+			if(isEmptyString(fieldName)) {
+				fieldName = "Filedata";
+			}
+
+			var request:URLRequest = formURLRequest(url, method, vars);
+			var fr:FileReference = fileRefList[fileID];
+
+			this.currentUploadThreads++;
+			fr.upload(request,fieldName);
+		}
+
+		/**
+		 *  Uploads the specified files to a specified path where a script handles writing to the server.
+		 *  
+		 *  @param fileIDs The IDs of the files to be uploaded
+		 *  @param url The path to the serverside script
+		 *  @param method The HTTP submission method. Possible values are "GET" and "POST"
+		 *  @param vars An object containing data to be sent along with the request
+		 *  @param fieldName The field name that precedes the file data in the upload POST operation. The uploadDataFieldName value must be non-null and a non-empty String.
+		 */
+
+		public function uploadThese(fileIDs:Array, url:String, method:String = "GET", vars:Object = null, fieldName:String = "Filedata"):void {
+			if(isEmptyString(method)) {
+				method = "GET";
+			}
+
+			if(isEmptyString(fieldName)) {
+				fieldName = "Filedata";
+			}
+
+			var request:URLRequest = formURLRequest(url, method, vars);
+
+			for each(var fileID:String in fileIDs) {
+				queueForUpload(fileRefList[fileID], request, fieldName);
+			}
+
+			processQueue();
+		}
+
+	    /**
+	     *  Uploads all files to a specified path where a script handles writing to the server.
+		 *  
+	     *  @param fileID The ID of the file to be uploaded
+	     *  @param url The path to the serverside script
+	     *  @param method The HTTP submission method. Possible values are "GET" and "POST"
+	     *  @param vars An object containing data to be sent along with the request
+	     *  @param fieldName The field name that precedes the file data in the upload POST operation. The uploadDataFieldName value must be non-null and a non-empty String.
+	     *  @param headers An object containing variables that should be set as headers in the POST request. The following header names
+	     *  cannot be used: 
+	     *  <code>
+	     *  Accept-Charset, Accept-Encoding, Accept-Ranges, Age, Allow, Allowed, Authorization, Charge-To, Connect, Connection, 
+	     *  Content-Length, Content-Location, Content-Range, Cookie, Date, Delete, ETag, Expect, Get, Head, Host, Keep-Alive, 
+	     *  Last-Modified, Location, Max-Forwards, Options, Post, Proxy-Authenticate, Proxy-Authorization, Proxy-Connection, 
+	     *  Public, Put, Range, Referer, Request-Range, Retry-After, Server, TE, Trace, Trailer, Transfer-Encoding, Upgrade, 
+	     *  URI, User-Agent, Vary, Via, Warning, WWW-Authenticate, x-flash-version.
+	     * </code>
+	     */
+
+		public function uploadAll(url:String, method:String = "GET", vars:Object = null, fieldName:String = "Filedata", headers:Object = null):void {
+			if(isEmptyString(method)) {
+				method = "GET";
+			}
+			
+			if(isEmptyString(fieldName)) {
+				fieldName = "Filedata";
+			}
+			
+			var request:URLRequest = formURLRequest(url, method, vars);
+			
+			filesToUpload = [];
+
+			// sort files in the order that they were given to us
+			var fileIds:Array = [];
+			for (var fileId:String in fileRefList) {
+			  fileIds.push(parseInt(fileId.substr(4)));
+			}
+			fileIds.sort(Array.NUMERIC);
+			for each(var fileId2:int in fileIds) {
+			  queueForUpload(fileRefList["file"+fileId2], request, fieldName);
+			}
+			
+			processQueue();
+		}
+
+	    /**
+	     *  Cancels either an upload of the file corresponding to a given fileID, or in the absence of the specified fileID, all active files being uploaded.
+		 *  
+	     *  @param fileID The ID of the file to be uploaded
+	     */
+
+		public function cancel(fileID:String = null):void {
+
+			logMessage("Canceling upload");
+			
+			if (fileID == null) { // cancel all files
+				for each (var item:FileReference in fileRefList) {
+					item.cancel();
+				}
+				this.currentUploadThreads = 0;
+				filesToUpload = [];
+			} 
+
+			else { // cancel specified file
+				var fr:FileReference = fileRefList[fileID];
+				if (this.currentUploadThreads > 0)
+					this.currentUploadThreads--;
+				fr.cancel();
+			}
+
+		}
+
+
+
+		/*
+			Events
+			-------------------------------
+			mouseDown - fires when the mouse button is pressed over uploader
+			mouseUp - fires when the mouse button is released over uploader
+			rollOver - fires when the mouse rolls over the uploader
+			rollOut - fires when the mouse rolls out of the uploader
+			click - fires when the uploader is clicked
+			fileSelect - fires when the user selects one or more files (after browse is called). Passes the array of currently selected files (if prior browse calls were made and clearFileList hasn't been called, all files the user has ever selected will be returned), along with all information available about them (name, size, type, creationDate, modificationDate, creator). 
+			uploadStart - fires when a file starts uploading. Passes a file id for identifying the file.
+			uploadProgress - fires when a file upload reports progress. Passes the file id, as well as bytesUploaded and bytesTotal for the given file.
+			uploadComplete - fires when a file upload is completed successfully and passes the corresponding file id.
+			uploadCompleteData - fires when data is received from the server after upload and passes the corresponding file id and the said data.
+			uploadError - fires when an error occurs during download. Passes the id of the file that was being uploaded and an error type.
+		*/
+
+		private function transparentDown (event:MouseEvent) : void {
+			logMessage("Mouse down on the uploader.");
+			var newEvent:Object = new Object();
+			newEvent.type = "mouseDown";
+			super.dispatchEventToJavaScript(newEvent);
+		}
+
+		private function transparentUp (event:MouseEvent) : void {
+			logMessage("Mouse up on the uploader.");
+			var newEvent:Object = new Object();
+			newEvent.type = "mouseUp";
+			super.dispatchEventToJavaScript(newEvent);
+		}
+
+		private function transparentRollOver (event:MouseEvent) : void {
+			logMessage("Mouse rolled over the uploader.");
+			var newEvent:Object = new Object();
+			newEvent.type = "rollOver";
+			super.dispatchEventToJavaScript(newEvent);
+		}
+		
+		private function transparentRollOut (event:MouseEvent) : void {
+			logMessage("Mouse rolled out the uploader.");
+			var newEvent:Object = new Object();
+			newEvent.type = "rollOut";
+			super.dispatchEventToJavaScript(newEvent);
+		}
+		
+		private function transparentClick (event:MouseEvent) : void {
+			logMessage("Mouse clicked on the uploader.");
+			var newEvent:Object = new Object();
+			newEvent.type = "click";
+			super.dispatchEventToJavaScript(newEvent);
+		}
+		
+		
+		private function uploadStart (event:Event) : void {
+			logMessage("Started upload for " + fileIDList[event.target]);
+			var newEvent:Object = new Object();
+			newEvent.id = fileIDList[event.target];
+			newEvent.type = "uploadStart";
+            super.dispatchEventToJavaScript(newEvent);
+		}
+
+
+
+		private function uploadProgress (event:ProgressEvent) : void {
+			logMessage("Progress for " + fileIDList[event.target] + ": " + event.bytesLoaded.toString() + " / " + event.bytesTotal.toString());
+			var newEvent:Object = new Object();
+			newEvent.id = fileIDList[event.target];
+			newEvent.bytesLoaded = event.bytesLoaded;
+			newEvent.bytesTotal = event.bytesTotal;
+			newEvent.type = "uploadProgress"
+			super.dispatchEventToJavaScript(newEvent);
+		}
+
+
+
+		private function uploadComplete (event:Event) : void {
+			logMessage("Upload complete for " + fileIDList[event.target]);
+			var newEvent:Object = new Object();
+			newEvent.id = fileIDList[event.target];
+			newEvent.type = "uploadComplete"
+			super.dispatchEventToJavaScript(newEvent);
+
+			this.currentUploadThreads--;
+			// get next off of queue:
+			processQueue();
+		}
+
+
+
+		private function uploadCompleteData (event:DataEvent) : void {
+			logMessage("Got data back for " + fileIDList[event.target] + ": ");
+			logMessage(event.data);
+			var newEvent:Object = new Object();
+			newEvent.id = fileIDList[event.target];
+			newEvent.data = event.data;
+			newEvent.type = "uploadCompleteData"
+			super.dispatchEventToJavaScript(newEvent);
+		}
+		
+		private function uploadCancel (event:Event) : void {			
+			logMessage("Canceled upload for " + fileIDList[event.target]);
+			var newEvent:Object = new Object();
+			newEvent.id = fileIDList[event.target];
+			newEvent.type = "uploadCancel";
+			super.dispatchEventToJavaScript(newEvent);
+		}
+
+
+
+		private function uploadError (event:Event) : void {
+	        var newEvent:Object = {};
+
+			if (event is HTTPStatusEvent) {
+				var myev:HTTPStatusEvent = event as HTTPStatusEvent;
+				newEvent.status = myev.status;
+				logMessage("HTTP status error for " + fileIDList[event.target] + ": " + myev.status);
+			}
+
+			else if (event is IOErrorEvent) {
+				newEvent.status = event.toString();
+				logMessage("IO error for " + fileIDList[event.target] + ". Likely causes are problems with Internet connection or server misconfiguration.");
+			}
+
+			else if (event is SecurityErrorEvent) {
+				newEvent.status = event.toString();
+				logMessage("Security error for " + fileIDList[event.target]);
+			}
+
+			newEvent.type = "uploadError";
+			newEvent.id = fileIDList[event.target];
+
+			super.dispatchEventToJavaScript(newEvent);
+
+			// get next off of queue:
+			processQueue();
+		}
+
+
+
+		// Fired when the user selects a single file
+		private function singleFileSelected(event:Event):void {
+			this.clearFileList();
+			addFile(event.target as FileReference);
+			processSelection();
+		}
+
+
+
+		// Fired when the user selects multiple files
+		private function multipleFilesSelected(event:Event):void {
+			var currentFRL:FileReferenceList = multipleFiles;
+			for each (var currentFR:FileReference in currentFRL.fileList) {
+				addFile(currentFR);
+			}
+			processSelection();
+		}
+		
+		private function renderAsButton (buttonSkinSprite:String) : void {
+		
+			
+			buttonSkin.load(new URLRequest(buttonSkinSprite));
+			var _this:Uploader = this;
+			
+			var initLoader:Function = function (event:Event) : void {
+				buttonSprite.addChild(buttonSkin);
+				
+				buttonHeight = buttonSkin.height/4;
+				buttonWidth = buttonSkin.width;
+				
+				var buttonMask:Sprite = new Sprite();
+				buttonMask.graphics.beginFill(0x000000,1);
+				buttonMask.graphics.drawRect(0,0,buttonWidth,buttonHeight);
+				buttonMask.graphics.endFill();
+				
+				_this.addChild(buttonMask);
+				buttonSprite.mask = buttonMask;
+				
+				function buttonStageResize (evt:Event) : void {
+		 		buttonSprite.width = buttonSprite.stage.stageWidth;
+		 		buttonSprite.height = buttonSprite.stage.stageHeight*4;
+		 		buttonMask.width = _this.stage.stageWidth;
+		 		buttonMask.height = _this.stage.stageHeight;
+		 		};
+		 	
+				buttonSprite.width = _this.stage.stageWidth;
+				buttonSprite.height = _this.stage.stageHeight*4;
+				buttonMask.width = _this.stage.stageWidth;
+				buttonMask.height = _this.stage.stageHeight;
+				
+				_this.stage.scaleMode = StageScaleMode.NO_SCALE;
+				_this.stage.align = StageAlign.TOP_LEFT;
+				_this.stage.tabChildren = false;
+			
+				_this.stage.addEventListener(Event.RESIZE, buttonStageResize);
+				
+				_this.addEventListener(MouseEvent.ROLL_OVER, buttonMouseOver);
+				_this.addEventListener(MouseEvent.ROLL_OUT, buttonMouseOut);
+				_this.addEventListener(MouseEvent.MOUSE_DOWN, buttonMouseDown);
+				_this.addEventListener(MouseEvent.MOUSE_UP, buttonMouseUp);
+				_this.addEventListener(MouseEvent.CLICK, handleMouseClick);
+				
+				_this.stage.addEventListener(KeyboardEvent.KEY_DOWN, handleKeyDown);
+				_this.stage.addEventListener(KeyboardEvent.KEY_UP, handleKeyUp);
+			
+
+				_this.addChild(buttonSprite);	
+			}
+			
+			var errorLoader:Function = function (event:IOErrorEvent) : void {
+				renderAsTransparent();
+			}
+			
+			buttonSkin.contentLoaderInfo.addEventListener(Event.COMPLETE, initLoader);	
+			buttonSkin.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, errorLoader);
+
+		}
+
+		private function buttonMouseOver (event:MouseEvent) : void {
+					buttonSkin.y = -1*buttonHeight;
+		}
+				
+		private function buttonMouseOut  (event:MouseEvent) : void {
+					buttonSkin.y = 0;
+		}
+				
+		private function buttonMouseDown  (event:MouseEvent) : void {
+					buttonSkin.y = -2*buttonHeight;
+		}
+				
+		private function buttonMouseUp (event:MouseEvent) : void {
+					buttonSkin.y = 0;
+		}
+				
+		private function renderAsTransparent () : void {
+		 	
+		 	function transparentStageResize (evt:Event) : void {
+		 		buttonSprite.width = buttonSprite.stage.stageWidth;
+		 		buttonSprite.height = buttonSprite.stage.stageHeight;
+		 	}
+		 	
+			buttonSprite.graphics.beginFill(0xffffff, 0);
+			buttonSprite.graphics.drawRect(0,0,5,5);
+			buttonSprite.width = this.stage.stageWidth;
+			buttonSprite.height = this.stage.stageHeight;
+			buttonSprite.graphics.endFill();
+			this.stage.scaleMode = StageScaleMode.NO_SCALE;
+			this.stage.align = StageAlign.TOP_LEFT;
+			this.stage.tabChildren = false;
+			
+			this.stage.addEventListener(Event.RESIZE, transparentStageResize);
+			
+			this.addEventListener(MouseEvent.CLICK, handleMouseClick);
+			this.addEventListener(MouseEvent.CLICK, transparentClick);
+			
+			this.addEventListener(MouseEvent.MOUSE_DOWN, transparentDown);
+			this.addEventListener(MouseEvent.MOUSE_UP, transparentUp);
+			this.addEventListener(MouseEvent.ROLL_OVER, transparentRollOver);
+			this.addEventListener(MouseEvent.ROLL_OUT, transparentRollOut);
+			
+			this.buttonMode = true;
+			this.useHandCursor = true;
+			this.addChild(buttonSprite);
+		}
+		
+		private function handleKeyDown (evt:KeyboardEvent) : void {
+			if (evt.keyCode == Keyboard.ENTER || evt.keyCode == Keyboard.SPACE) {
+				logMessage("Keyboard 'Enter' or 'Space' down.");
+				buttonSkin.y = -2*buttonHeight;
+			}	
+		}
+		
+		private function handleKeyUp (evt:KeyboardEvent) : void {
+			if (evt.keyCode == Keyboard.ENTER || evt.keyCode == Keyboard.SPACE) {
+				buttonSkin.y = 0;
+				logMessage("Keyboard 'Enter' or 'Space' up.");
+				logMessage("Keyboard 'Enter' or 'Space' detected, launching 'Open File' dialog.");
+				this.browse(this.allowMultiple, this.filterArray);
+			}
+		}
+		
+		private function handleFocusIn (evt:FocusEvent) : void {
+			logMessage("Focus is on the Uploader.");
+		}
+		
+		private function handleFocusOut (evt:FocusEvent) : void {
+			logMessage("Focus is out on the Uploader.");
+		}
+
+
+		private function handleMouseClick (evt:MouseEvent) : void {
+			logMessage("Mouse click detected, launching 'Open File' dialog.");
+			this.browse(this.allowMultiple, this.filterArray);
+		}
+
+		//--------------------------------------------------------------------------
+		// 
+		// Overridden Properties
+		//
+		//--------------------------------------------------------------------------
+
+	    /**
+		 *  @private
+		 *  Initializes the component and enables communication with JavaScript
+	     *
+	     *  @param parent A container that the PopUpManager uses to place the Menu 
+	     *  control in. The Menu control may not actually be parented by this object.
+	     * 
+	     *  @param xmlDataProvider The data provider for the Menu control. 
+	     *  @see #dataProvider 
+	     *  
+	     *  @return An instance of the Menu class. 
+	     *
+	     *  @see #popUpMenu()
+		 *  @see com.yahoo.astra.fl.data.XMLDataProvider
+	     */
+
+		override protected function initializeComponent():void {
+
+			super.initializeComponent();
+			var btnSkinURL:String;
+			btnSkinURL = this.stage.loaderInfo.parameters["buttonSkin"];
+			
+			if (btnSkinURL != null) {
+				this.renderType = "button";
+				this.renderAsButton(btnSkinURL);
+			}
+			else {
+				this.renderType = "transparent";	
+				this.renderAsTransparent();
+			}			
+		 	
+		 	// removeFile (fileID:String = null) 
+		 	// Removes one or all files from the upload queue
+			ExternalInterface.addCallback("removeFile", removeFile);
+			
+			// clearFileList (): Boolean
+			// Clears the list of files to be uploaded.
+			ExternalInterface.addCallback("clearFileList", clearFileList);
+			
+			// upload(fileID:String, url:String, method:String = "GET", vars:Object = null, fieldName:String = "Filedata")
+			// Uploads the specified file in a specified POST variable, attaching other variables using the specified method
+			ExternalInterface.addCallback("upload", upload);
+			
+			ExternalInterface.addCallback("uploadThese", uploadThese);
+			
+			// uploadAll(url:String, method:String = "GET", vars:Object = null, fieldName:String = "Filedata")
+			// Uploads all files in the queue, using simultaneousUploads.
+			ExternalInterface.addCallback("uploadAll", uploadAll);
+			
+			// cancel (fileID:String = null) 
+			// Cancels the specified file upload; or all, if no id is specified
+			ExternalInterface.addCallback("cancel", cancel);
+			
+			// setAllowLoging (allowLogging:Boolean = false)
+			// Allows log outputs to be produced.
+			ExternalInterface.addCallback("setAllowLogging", setAllowLogging);
+			 
+			// setAllowMultipleFiles (allowMultiple:Boolean = false)
+			// Allows multiple file selection
+			ExternalInterface.addCallback("setAllowMultipleFiles", this.setAllowMultipleFiles);
+			
+			// setSimUploadLimit(simUpload:int = [2,5])
+			// Sets the number of simultaneous uploads allowed when automatically managing queue.
+			ExternalInterface.addCallback("setSimUploadLimit", this.setSimUploadLimit);
+			
+			// setFileFilters(fileFilters:Array)
+			// Sets file filters for file selection.
+			ExternalInterface.addCallback("setFileFilters", this.setFileFilters);
+			
+			// enable()
+			// Enables Uploader UI
+			ExternalInterface.addCallback("enable", enable);
+			
+			// disable()
+			// Disables Uploader UI
+			ExternalInterface.addCallback("disable", disable);
+
+			// Initialize properties.
+			fileDataList = new Object();
+			fileRefList = new Object();
+			fileIDList = new Dictionary();
+			singleFile = new FileReference();
+			multipleFiles = new FileReferenceList();
+
+			fileIDCounter = 0;
+
+			filesToUpload = [];
+
+		}
+
+	
+
+		//--------------------------------------
+		//  Private Methods
+		//--------------------------------------
+
+		/**
+		 *  @private
+		 *  Formats objects containing extensions of files to be filtered into formal FileFilter objects
+		 */	
+
+		private function processFileFilterObjects(filtersArray:Array) : Array {
+
+			// TODO: Should we have an 'allowedExtensions' property that the JS user accesses directly? Potential here for typos ('extension' instead of 'extensions') as well as a misunderstanding of the nature of the expected array
+			// TODO: Description not showing (testing on OS X PPC player)
+			for (var i:int = 0; i < filtersArray.length; i++) {
+				filtersArray[i] = new FileFilter(filtersArray[i].description, filtersArray[i].extensions, filtersArray[i].macType);
+			}
+
+			return filtersArray;
+		}
+
+		/**
+		 *  @private
+		 *  Outputs the files selected to an output panel and triggers a 'fileSelect' event.
+		 */	
+
+		private function processSelection():void {
+
+			var dstring:String = "";
+			dstring += "Files Selected: \n";
+
+			for each (var item:Object in fileDataList) {
+				dstring += item.name + "\n ";
+			}
+
+			logMessage(dstring);
+
+			var newEvent:Object = new Object();
+			newEvent.fileList = fileDataList;
+			newEvent.type = "fileSelect"
+
+			super.dispatchEventToJavaScript(newEvent);
+		}
+
+		
+
+		/**
+		 *  @private
+		 *  Adds a file reference object to the internal queue and assigns listeners to its events
+		 */	
+
+		private function addFile(fr:FileReference):void {
+
+			var fileID:String = "file" + fileIDCounter;
+			var fileName:String = fr.name;
+			var fileCDate:Date = fr.creationDate;
+			var fileMDate:Date = fr.modificationDate;
+			var fileSize:Number = fr.size;
+			fileIDCounter++;
+
+			fileDataList[fileID] = {id: fileID, name: fileName, cDate: fileCDate, mDate: fileMDate, size: fileSize};//, type: fileType, creator: fileCreator};
+
+			fr.addEventListener(Event.OPEN, uploadStart);
+            fr.addEventListener(ProgressEvent.PROGRESS, uploadProgress);
+			fr.addEventListener(Event.COMPLETE, uploadComplete);
+			fr.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, uploadCompleteData);
+			fr.addEventListener(HTTPStatusEvent.HTTP_STATUS, uploadError);
+	        fr.addEventListener(IOErrorEvent.IO_ERROR, uploadError);
+            fr.addEventListener(SecurityErrorEvent.SECURITY_ERROR, uploadError);
+			fr.addEventListener(Event.CANCEL,uploadCancel);
+
+			fileRefList[fileID] = fr;
+			fileIDList[fr] = fileID;
+		}
+
+		/**
+		 *  @private
+		 *  Queues a file for upload
+		 */	
+		private function queueForUpload(fr:FileReference, request:URLRequest, fieldName:String):void {
+			filesToUpload.push( {fr:fr, request:request, fieldName:fieldName });
+		}
+
+		/**
+		 *  @private
+		 *  Uploads the next file in the upload queue.
+		 */	
+
+		private function processQueue():void {
+			while (this.currentUploadThreads < this.simultaneousUploadLimit && filesToUpload.length > 0) {
+				var objToUpload:Object = filesToUpload.shift();
+				var fr:FileReference = objToUpload.fr;
+				var request:URLRequest = objToUpload.request;
+				var fieldName:String = objToUpload.fieldName;
+
+				fr.upload(request,fieldName);
+				this.currentUploadThreads++;
+			}
+		}
+
+		/**
+		 *  @private
+		 *  Creates a URLRequest object from a url, and optionally includes an HTTP request method and additional variables to be sent
+		 */	
+
+		private function formURLRequest(url:String, method:String = "GET", vars:Object = null):URLRequest {
+
+			var request:URLRequest = new URLRequest();
+			request.url = url;
+			request.method = method;
+			request.data = new URLVariables();
+			
+
+			for (var itemName:String in vars) {
+				request.data[itemName] = vars[itemName];
+			}
+
+
+			return request;
+		}
+
+		/**
+		 *  @private
+		 *  Determines whether an object is equivalent to an empty string
+		 */	
+
+		private function isEmptyString(toCheck:*):Boolean {
+
+			if(	toCheck == "null" ||
+				toCheck == "" ||
+				toCheck == null ) {
+
+				return true;
+			}
+
+			else {
+				return false;
+			}
+		}
+		
+		private function logMessage (message:String) : void {
+			if (this.allowLog) {
+				trace(message);
+				ExternalInterface.call("YAHOO.log", message);
+			}
+		}
+
+	}
+
+}
+

-- 
Yahoo! User Interface Toolkit (yui)



More information about the Pkg-javascript-commits mailing list