//>>built
define("dojox/geo/charting/Feature",["dojo/_base/lang","dojo/_base/declare","dojo/_base/array","dojo/_base/html","dojo/dom","dojo/_base/event","dojox/gfx/fx","dojox/color"],function(_1,_2,_3,_4,_5,_6,fx,_7){return _2("dojox.geo.charting.Feature",null,{_isZoomIn:false,isSelected:false,markerText:null,constructor:function(_8,_9,_a){this.id=_9;this.shape=_8.mapObj.createGroup();this.parent=_8;this.mapObj=_8.mapObj;this._bbox=_a.bbox;this._center=_a.center;this._defaultFill=_8.defaultColor;this._highlightFill=_8.highlightColor;this._defaultStroke={width:this._normalizeStrokeWeight(0.5),color:"white"};var _b=(_1.isArray(_a.shape[0]))?_a.shape:[_a.shape];_3.forEach(_b,function(_c){this.shape.createPolyline(_c).setStroke(this._defaultStroke);},this);this.unsetValue();},unsetValue:function(){this.value=null;this.unsetColor();},unsetColor:function(){this._defaultFill=this.parent.defaultColor;var _d=new _7.Color(this.parent.defaultColor).toHsl();_d.l=1.2*_d.l;this._highlightFill=_7.fromHsl(_d);this._setFillWith(this._defaultFill);},setValue:function(_e){this.value=_e;if(_e==null){this.unsetValue();}else{if(this.parent.series.length!=0){for(var i=0;i<this.parent.series.length;i++){var _f=this.parent.series[i];if((_e>=_f.min)&&(_e<_f.max)){this._setFillWith(_f.color);this._defaultFill=_f.color;var col=new _7.Color(_f.color).toHsv();col.v=(col.v+20);this._highlightFill=_7.fromHsv(col);return;}}this.unsetColor();}}},_setFillWith:function(_10){var _11=(_1.isArray(this.shape.children))?this.shape.children:[this.shape.children];_3.forEach(_11,_1.hitch(this,function(_12){if(this.parent.colorAnimationDuration>0){var _13=fx.animateFill({shape:_12,color:{start:_12.getFill(),end:_10},duration:this.parent.colorAnimationDuration});_13.play();}else{_12.setFill(_10);}}));},_setStrokeWith:function(_14){var _15=(_1.isArray(this.shape.children))?this.shape.children:[this.shape.children];_3.forEach(_15,function(_16){_16.setStroke({color:_14.color,width:_14.width,join:"round"});});},_normalizeStrokeWeight:function(_17){var _18=this.shape._getRealMatrix();return (dojox.gfx.renderer!="vml")?_17/(this.shape._getRealMatrix()||{xx:1}).xx:_17;},_onmouseoverHandler:function(evt){this.parent.onFeatureOver(this);this._setFillWith(this._highlightFill);this.mapObj.marker.show(this.id,evt);},_onmouseoutHandler:function(){this._setFillWith(this._defaultFill);this.mapObj.marker.hide();_4.style("mapZoomCursor","display","none");},_onmousemoveHandler:function(evt){if(this.mapObj.marker._needTooltipRefresh){this.mapObj.marker.show(this.id,evt);}if(this.isSelected&&evt){if(this.parent.enableFeatureZoom){evt=_6.fix(evt||window.event);_4.style("mapZoomCursor","left",evt.pageX+12+"px");_4.style("mapZoomCursor","top",evt.pageY+"px");_4.byId("mapZoomCursor").className=this._isZoomIn?"mapZoomOut":"mapZoomIn";_4.style("mapZoomCursor","display","block");}else{_4.style("mapZoomCursor","display","none");}}},_onclickHandler:function(evt){this.parent.onFeatureClick(this);if(!this.isSelected){this.parent.deselectAll();this.select(true);this._onmousemoveHandler(evt);}else{if(this.parent.enableFeatureZoom){if(this._isZoomIn){this._zoomOut();}else{this._zoomIn();}}}},select:function(_19){if(_19){this.shape.moveToFront();this._setStrokeWith({color:"black",width:this._normalizeStrokeWeight(2)});this._setFillWith(this._highlightFill);this.isSelected=true;this.parent.selectedFeature=this;}else{this._setStrokeWith(this._defaultStroke);this._setFillWith(this._defaultFill);this.isSelected=false;this._isZoomIn=false;}},_zoomIn:function(){var _1a=this.mapObj.marker;_1a.hide();this.parent.fitToMapArea(this._bbox,15,true,_1.hitch(this,function(){this._setStrokeWith({color:"black",width:this._normalizeStrokeWeight(2)});_1a._needTooltipRefresh=true;this.parent.onZoomEnd(this);}));this._isZoomIn=true;_5.byId("mapZoomCursor").className="";},_zoomOut:function(){var _1b=this.mapObj.marker;_1b.hide();this.parent.fitToMapContents(3,true,_1.hitch(this,function(){this._setStrokeWith({color:"black",width:this._normalizeStrokeWeight(2)});_1b._needTooltipRefresh=true;this.parent.onZoomEnd(this);}));this._isZoomIn=false;_5.byId("mapZoomCursor").className="";},init:function(){this.shape.id=this.id;this.tooltip=null;}});});