(function(){var C=YAHOO.util.Dom,A=YAHOO.util.Event,D=YAHOO.lang;var B=function(F){B.superclass.constructor.call(this,document.createElement("div"),F);this.createEvent("startEvent");this.createEvent("changingEvent");this.createEvent("completeEvent");var E=this.get("anim");if(E){E.onTween.subscribe(function(G){this.fireEvent("changingEvent",Math.floor(this._tweenFactor*E.currentFrame+this._previousValue))},this,true);E.onComplete.subscribe(function(G){this.fireEvent("completeEvent",this._previousValue=this.get("value"));C.removeClass(this.get("barEl"),"yui-pb-anim")},this,true)}this.on("minValueChange",this.redraw);this.on("maxValueChange",this.redraw);this.on("widthChange",this.redraw)};YAHOO.widget.ProgressBar=B;D.extend(B,YAHOO.util.Element,{initAttributes:function(H){B.superclass.initAttributes.call(this,H);var F=this.get("element");F.innerHTML='<div class="yui-pb-bar"></div><table class="yui-pb-mask"><tr><td class="yui-pb-tl"></td><td class="yui-pb-tr"></td></tr><tr><td class="yui-pb-bl"></td><td class="yui-pb-br"></td></tr></table>';var E=F.firstChild;var G=E.nextSibling;this.setAttributeConfig("barEl",{readOnly:true,value:E});this.setAttributeConfig("maskEl",{readOnly:true,value:G});this.setAttributeConfig("direction",{writeOnce:true,value:"lr",validator:function(I){switch(I){case"lr":case"rl":case"tb":case"bt":return true;default:return false}}});this.setAttributeConfig("maxValue",{value:100,validator:D.isNumber,method:function(I){this.get("element").setAttribute("aria-valuemax",I);this._recalculateConstants()}});this.setAttributeConfig("minValue",{value:0,validator:D.isNumber,method:function(I){this.get("element").setAttribute("aria-valuemin",I);this._recalculateConstants()}});this.setAttributeConfig("width",{value:"200px",method:function(I){if(D.isNumber(I)){I+="px"}YAHOO.log("Setting width: "+I,"info","ProgressBar");this.setStyle("width",I);C.setStyle(G,"width",I)}});this.setAttributeConfig("height",{value:"20px",method:function(I){if(D.isNumber(I)){I+="px"}YAHOO.log("Setting height: "+I,"info","ProgressBar");this.setStyle("height",I)}});this.setAttributeConfig("barColor",{value:"blue",method:function(I){YAHOO.log("Setting bar color: "+I,"info","ProgressBar");C.setStyle(E,"background-color",I);C.setStyle(E,"background-image","none")}});this.setAttributeConfig("backColor",{value:"white",method:function(I){YAHOO.log("Setting background color: "+I,"info","ProgressBar");this.setStyle("background-color",I);this.setStyle("background-image","none")}});this.setAttributeConfig("border",{value:"none",method:function(I){YAHOO.log("Setting border: "+I,"info","ProgressBar");this.setStyle("border",I)}});this.setAttributeConfig("ariaText",{value:"|"});this.setAttributeConfig("value",{value:50,validator:function(I){return D.isNumber(I)&&I>=this.get("minValue")&&I<=this.get("maxValue")},method:function(M){YAHOO.log("set value: "+M,"info","ProgressBar");var L=this.get("anim"),J=Math.floor((M-this._mn)*this._barFactor),I=this.get("element"),K=this.get("barEl");I.setAttribute("aria-valuenow",M);I.setAttribute("aria-valuetext",this.get("ariaText").replace("|",M));this.fireEvent("startEvent",this._previousValue);if(L){C.addClass(this.get("barEl"),"yui-pb-anim");this._tweenFactor=(M-this._previousValue)/L.totalFrames;switch(this.get("direction")){case"lr":L.attributes={width:{to:J}};break;case"rl":L.attributes={width:{to:J},left:{to:this._barSpace-J}};break;case"tb":L.attributes={height:{to:J}};break;case"bt":L.attributes={height:{to:J},top:{to:this._barSpace-J}};break}L.animate()}else{switch(this.get("direction")){case"lr":C.setStyle(K,"width",J+"px");break;case"rl":C.setStyle(K,"width",J+"px");C.setStyle(K,"left",(this._barSpace-J)+"px");break;case"tb":C.setStyle(K,"height",J+"px");break;case"bt":C.setStyle(K,"height",J+"px");C.setStyle(K,"top",(this._barSpace-J)+"px");break}this.fireEvent("completeEvent",M)}}});this.setAttributeConfig("anim",{readOnly:true,value:YAHOO.util.Anim?new YAHOO.util.Anim(E):null})},render:function(F,G){YAHOO.log("start render","info","ProgressBar");this.addClass("yui-pb");var E=this.get("element");E.tabIndex=1;E.setAttribute("role","progressbar");E.setAttribute("aria-valuemin",this.get("minValue"));E.setAttribute("aria-valuemax",this.get("maxValue"));E.setAttribute("aria-valuenow",this.get("value"));E.setAttribute("aria-valuetext",this.get("ariaText").replace("|",this.get("value")));this.appendTo(F,G);this.redraw();return this},redraw:function(){this._recalculateConstants();this.refresh("value",true)},destroy:function(){YAHOO.log("destroy","info","ProgressBar");var F=this.get("anim");if(F){F.onTween.unsubscribeAll();F.onComplete.unsubscribeAll()}this.unsubscribeAll();var E=this.get("element");E.parentNode.removeChild(E)},_previousValue:100,_barSpace:100,_barFactor:1,_recalculateConstants:function(){var E=this.get("barEl");this._mn=this.get("minValue")||0;switch(this.get("direction")){case"lr":case"rl":this._barSpace=parseInt(this.getStyle("width"),10)-parseInt(C.getStyle(E,"marginLeft"),10)-Math.abs(parseInt(C.getStyle(E,"marginRight"),10));break;case"tb":case"bt":this._barSpace=parseInt(this.getStyle("height"),10)-parseInt(C.getStyle(E,"marginTop"),10)-parseInt(C.getStyle(E,"marginBottom"),10);break}this._barFactor=this._barSpace/(this.get("maxValue")-this._mn)||1}})})();YAHOO.register("progressbar",YAHOO.widget.ProgressBar,{version:"2.5.2",build:"0"});