/*
	Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


window[esri._dojoScopeName||"dojo"]._xdResourceLoaded(function(_1,_2,_3){return {depends:[["provide","dojox.gfx.path"],["require","dojox.gfx.shape"]],defineResource:function(_4,_5,_6){if(!_4._hasResource["dojox.gfx.path"]){_4._hasResource["dojox.gfx.path"]=true;_4.provide("dojox.gfx.path");_4.require("dojox.gfx.shape");_4.declare("dojox.gfx.path.Path",_6.gfx.Shape,{constructor:function(_7){this.shape=_4.clone(_6.gfx.defaultPath);this.segments=[];this.absolute=true;this.last={};this.rawNode=_7;},setAbsoluteMode:function(_8){this.absolute=typeof _8=="string"?(_8=="absolute"):_8;return this;},getAbsoluteMode:function(){return this.absolute;},getBoundingBox:function(){return (this.bbox&&("l" in this.bbox))?{x:this.bbox.l,y:this.bbox.t,width:this.bbox.r-this.bbox.l,height:this.bbox.b-this.bbox.t}:null;},getLastPosition:function(){return "x" in this.last?this.last:null;},_updateBBox:function(x,y){if(this.bbox&&("l" in this.bbox)){if(this.bbox.l>x){this.bbox.l=x;}if(this.bbox.r<x){this.bbox.r=x;}if(this.bbox.t>y){this.bbox.t=y;}if(this.bbox.b<y){this.bbox.b=y;}}else{this.bbox={l:x,b:y,r:x,t:y};}},_updateWithSegment:function(_9){var n=_9.args,l=n.length;switch(_9.action){case "M":case "L":case "C":case "S":case "Q":case "T":for(var i=0;i<l;i+=2){this._updateBBox(n[i],n[i+1]);}this.last.x=n[l-2];this.last.y=n[l-1];this.absolute=true;break;case "H":for(var i=0;i<l;++i){this._updateBBox(n[i],this.last.y);}this.last.x=n[l-1];this.absolute=true;break;case "V":for(var i=0;i<l;++i){this._updateBBox(this.last.x,n[i]);}this.last.y=n[l-1];this.absolute=true;break;case "m":var _a=0;if(!("x" in this.last)){this._updateBBox(this.last.x=n[0],this.last.y=n[1]);_a=2;}for(var i=_a;i<l;i+=2){this._updateBBox(this.last.x+=n[i],this.last.y+=n[i+1]);}this.absolute=false;break;case "l":case "t":for(var i=0;i<l;i+=2){this._updateBBox(this.last.x+=n[i],this.last.y+=n[i+1]);}this.absolute=false;break;case "h":for(var i=0;i<l;++i){this._updateBBox(this.last.x+=n[i],this.last.y);}this.absolute=false;break;case "v":for(var i=0;i<l;++i){this._updateBBox(this.last.x,this.last.y+=n[i]);}this.absolute=false;break;case "c":for(var i=0;i<l;i+=6){this._updateBBox(this.last.x+n[i],this.last.y+n[i+1]);this._updateBBox(this.last.x+n[i+2],this.last.y+n[i+3]);this._updateBBox(this.last.x+=n[i+4],this.last.y+=n[i+5]);}this.absolute=false;break;case "s":case "q":for(var i=0;i<l;i+=4){this._updateBBox(this.last.x+n[i],this.last.y+n[i+1]);this._updateBBox(this.last.x+=n[i+2],this.last.y+=n[i+3]);}this.absolute=false;break;case "A":for(var i=0;i<l;i+=7){this._updateBBox(n[i+5],n[i+6]);}this.last.x=n[l-2];this.last.y=n[l-1];this.absolute=true;break;case "a":for(var i=0;i<l;i+=7){this._updateBBox(this.last.x+=n[i+5],this.last.y+=n[i+6]);}this.absolute=false;break;}var _b=[_9.action];for(var i=0;i<l;++i){_b.push(_6.gfx.formatNumber(n[i],true));}if(typeof this.shape.path=="string"){this.shape.path+=_b.join("");}else{Array.prototype.push.apply(this.shape.path,_b);}},_validSegments:{m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},_pushSegment:function(_c,_d){var _e=this._validSegments[_c.toLowerCase()];if(typeof _e=="number"){if(_e){if(_d.length>=_e){var _f={action:_c,args:_d.slice(0,_d.length-_d.length%_e)};this.segments.push(_f);this._updateWithSegment(_f);}}else{var _f={action:_c,args:[]};this.segments.push(_f);this._updateWithSegment(_f);}}},_collectArgs:function(_10,_11){for(var i=0;i<_11.length;++i){var t=_11[i];if(typeof t=="boolean"){_10.push(t?1:0);}else{if(typeof t=="number"){_10.push(t);}else{if(t instanceof Array){this._collectArgs(_10,t);}else{if("x" in t&&"y" in t){_10.push(t.x,t.y);}}}}}},moveTo:function(){var _12=[];this._collectArgs(_12,arguments);this._pushSegment(this.absolute?"M":"m",_12);return this;},lineTo:function(){var _13=[];this._collectArgs(_13,arguments);this._pushSegment(this.absolute?"L":"l",_13);return this;},hLineTo:function(){var _14=[];this._collectArgs(_14,arguments);this._pushSegment(this.absolute?"H":"h",_14);return this;},vLineTo:function(){var _15=[];this._collectArgs(_15,arguments);this._pushSegment(this.absolute?"V":"v",_15);return this;},curveTo:function(){var _16=[];this._collectArgs(_16,arguments);this._pushSegment(this.absolute?"C":"c",_16);return this;},smoothCurveTo:function(){var _17=[];this._collectArgs(_17,arguments);this._pushSegment(this.absolute?"S":"s",_17);return this;},qCurveTo:function(){var _18=[];this._collectArgs(_18,arguments);this._pushSegment(this.absolute?"Q":"q",_18);return this;},qSmoothCurveTo:function(){var _19=[];this._collectArgs(_19,arguments);this._pushSegment(this.absolute?"T":"t",_19);return this;},arcTo:function(){var _1a=[];this._collectArgs(_1a,arguments);this._pushSegment(this.absolute?"A":"a",_1a);return this;},closePath:function(){this._pushSegment("Z",[]);return this;},_setPath:function(_1b){var p=_4.isArray(_1b)?_1b:_1b.match(_6.gfx.pathSvgRegExp);this.segments=[];this.absolute=true;this.bbox={};this.last={};if(!p){return;}var _1c="",_1d=[],l=p.length;for(var i=0;i<l;++i){var t=p[i],x=parseFloat(t);if(isNaN(x)){if(_1c){this._pushSegment(_1c,_1d);}_1d=[];_1c=t;}else{_1d.push(x);}}this._pushSegment(_1c,_1d);},setShape:function(_1e){_6.gfx.Shape.prototype.setShape.call(this,typeof _1e=="string"?{path:_1e}:_1e);var _1f=this.shape.path;this.shape.path=[];this._setPath(_1f);this.shape.path=this.shape.path.join("");return this;},_2PI:Math.PI*2});_4.declare("dojox.gfx.path.TextPath",_6.gfx.path.Path,{constructor:function(_20){if(!("text" in this)){this.text=_4.clone(_6.gfx.defaultTextPath);}if(!("fontStyle" in this)){this.fontStyle=_4.clone(_6.gfx.defaultFont);}},getText:function(){return this.text;},setText:function(_21){this.text=_6.gfx.makeParameters(this.text,typeof _21=="string"?{text:_21}:_21);this._setText();return this;},getFont:function(){return this.fontStyle;},setFont:function(_22){this.fontStyle=typeof _22=="string"?_6.gfx.splitFontString(_22):_6.gfx.makeParameters(_6.gfx.defaultFont,_22);this._setFont();return this;}});}}};});
