/* Copyright (c) 2010, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.com/yui/license.html version: 3.3.0 build: 3167 */ YUI.add("dial",function(b){var c=false,d;if(b.UA.ie&&b.UA.ie<9){c=true;}var e=b.Lang,i=b.Widget,f=b.Node;function h(j){h.superclass.constructor.apply(this,arguments);}h.NAME="dial";h.ATTRS={min:{value:-220},max:{value:220},diameter:{value:100},value:{value:0,validator:function(j){return this._validateValue(j);}},minorStep:{value:1},majorStep:{value:10},stepsPerRev:{value:100},decimalPlaces:{value:0},strings:{valueFn:function(){return b.Intl.get("dial");}},handleDist:{value:0.75}};function g(j){return b.ClassNameManager.getClassName(h.NAME,j);}h.CSS_CLASSES={label:g("label"),labelString:g("label-string"),valueString:g("value-string"),northMark:g("north-mark"),ring:g("ring"),ringVml:g("ring-vml"),marker:g("marker"),markerUser:g("marker-user"),markerUserVml:g("marker-user-vml"),centerButton:g("center-button"),centerButtonVml:g("center-button-vml"),resetString:g("reset-str"),handle:g("handle"),handleUser:g("handle-user"),handleUserVml:g("handle-user-vml"),markerHidden:g("marker-hidden"),dragging:b.ClassNameManager.getClassName("dd-dragging")};var a=h.CSS_CLASSES.label+b.guid();h.LABEL_TEMPLATE='
{label}
';if(c===false){h.RING_TEMPLATE='
';h.MARKER_TEMPLATE='
';h.CENTER_BUTTON_TEMPLATE='
{resetStr}
';h.HANDLE_TEMPLATE='
';}else{h.RING_TEMPLATE='
'+'
'+''+"
"+"";h.MARKER_TEMPLATE='
'+'
'+''+''+""+"
"+"
"+"";h.CENTER_BUTTON_TEMPLATE='
'+''+''+''+""+'
{resetStr}
'+"
"+"";h.HANDLE_TEMPLATE='
'+'
'+''+''+""+"
"+"
"+"";}b.extend(h,i,{renderUI:function(){this._renderLabel();this._renderRing();this._renderMarker();this._renderCenterButton();this._renderHandle();if(c){this._setVMLSizes();}this._setBorderRadius();this.contentBox=this.get("contentBox");this._centerX=this.get("diameter")/2;this._centerY=this.get("diameter")/2;this._handleDist=this._centerX*this.get("handleDist");this._originalValue=this.get("value");this._timesWrapped=0;this._angle=this._getAngleFromValue(this.get("value"));this._setTimesWrapedFromValue(this.get("value"));this._handleUserNode.set("aria-valuemin",this.get("min"));this._handleUserNode.set("aria-valuemax",this.get("max"));},_setBorderRadius:function(){var j=this.get("diameter");this._ringNode.setStyle("WebkitBorderRadius",Math.floor(j*0.5)+"px");this._handleUserNode.setStyle("WebkitBorderRadius",Math.floor(j*0.1)+"px");this._markerUserNode.setStyle("WebkitBorderRadius",Math.floor(j*0.05)+"px");this._centerButtonNode.setStyle("WebkitBorderRadius",Math.floor(j*0.25)+"px");},bindUI:function(){this.after("valueChange",this._afterValueChange);var k=this.get("boundingBox"),l=(!b.UA.opera)?"down:":"press:",m=(!b.UA.opera)?"down:":"press:";l+="38, 40, 33, 34, 35, 36";m+="37, 39";b.on("key",b.bind(this._onDirectionKey,this),k,l);b.on("key",b.bind(this._onLeftRightKey,this),k,m);b.on("mouseenter",b.bind(this._dialCenterOver,this),this._centerButtonNode);b.on("mouseleave",b.bind(this._dialCenterOut,this),this._centerButtonNode);b.on("click",b.bind(this._resetDial,this),this._centerButtonNode);b.on("mousedown",b.bind(function(){this._handleUserNode.focus();},this),this._handleNode);var j=new b.DD.Drag({node:this._handleNode,on:{"drag:drag":b.bind(this._handleDrag,this),"drag:start":b.bind(this._handleDragStart,this),"drag:end":b.bind(this._handleDragEnd,this)}});},_setTimesWrapedFromValue:function(j){if(j%this.get("stepsPerRev")===0){this._timesWrapped=(j/this.get("stepsPerRev"))-1;}else{this._timesWrapped=Math.floor(j/this.get("stepsPerRev"));}},_dialCenterOver:function(j){this._resetString.setContent(b.substitute("{resetStr}",this.get("strings")));},_dialCenterOut:function(j){this._resetString.setContent("");},_handleDrag:function(m){var o=m.pageX+this._handleUserNodeRadius,n=m.pageY+this._handleUserNodeRadius;var k=Math.atan((this._centerYOnPage-n)/(this._centerXOnPage-o))*(180/Math.PI),j=(this._centerXOnPage-o);if(j<0){k=(k+90);}else{k=(k-90);}if(nthis._centerXOnPage)){this._timesWrapped=(this._timesWrapped+1);}else{if((this._prevX>this._centerXOnPage)&&(o<=this._centerXOnPage)){this._timesWrapped=(this._timesWrapped-1);}}}this._prevX=o;var l=this._getValueFromAngle(k);if((l>this.get("min"))&&(lthis.get("max")){this.set("value",this.get("max")); }else{if(l=k&&l<=j);}});b.Dial=h;},"3.3.0",{requires:["widget","dd-drag","substitute","event-mouseenter","transition","intl"],skinnable:true,lang:["en","es"]});