dojo.provide("dojox.gfx");

dojo.require("dojox.gfx.matrix");
dojo.require("dojox.gfx._base");

(function(){
	var renderers = (typeof djConfig["gfxRenderer"] == "string" ?
		djConfig["gfxRenderer"] : "svg,vml,silverlight,canvas").split(",");
	for(var i = 0; i < renderers.length; ++i){
		switch(renderers[i]){
			case "svg":
				//TODO: need more comprehensive test for SVG
				if(dojo.isIE == 0){ dojox.gfx.renderer = "svg"; }
				break;
			case "vml":
				if(dojo.isIE != 0){ dojox.gfx.renderer = "vml"; }
				break;
			case "silverlight":
				//TODO: need more comprehensive test for Silverlight
				if(window.Silverlight){ dojox.gfx.renderer = "silverlight"; }
				break;
			case "canvas":
				//TODO: need more comprehensive test for Canvas
				if(dojo.isIE == 0){ dojox.gfx.renderer = "canvas"; }
				break;
		}
		if(dojox.gfx.renderer){ break; }
	}
})();

// include a renderer conditionally
dojo.requireIf(dojox.gfx.renderer == "svg", "dojox.gfx.svg");
dojo.requireIf(dojox.gfx.renderer == "vml", "dojox.gfx.vml");
dojo.requireIf(dojox.gfx.renderer == "silverlight", "dojox.gfx.silverlight");
dojo.requireIf(dojox.gfx.renderer == "canvas", "dojox.gfx.canvas");

@@ -366,32 +366,33 @@
  for SVG%0A%09%09%09%09if(
+!
 dojo.isIE == 0)%7B
@@ -377,37 +377,80 @@
 %09%09if(!dojo.isIE 
-==
+&& (!navigator.userAgent.indexOf(%22iPhone%22) %3C
  0)
+)
 %7B dojox.gfx.rend

enable canvas rendering on the iphone. Makes 2D charts work there thanks to Chris Mitchell's awesome work.