// Requires Sass 3.1+
@mixin radial-gradient($G1,        $G2,
                       $G3: null, $G4: null,
                       $G5: null, $G6: null,
                       $G7: null, $G8: null,
                       $G9: null, $G10: null,
                       $pos: null,
                       $shape-size: null,
                       $fallback: null) {

	$data: _radial-arg-parser($G1, $G2, $pos, $shape-size);
	$G1: nth($data, 1);
	$G2: nth($data, 2);
	$pos: nth($data, 3);
	$shape-size: nth($data, 4);

	$full: $G1, $G2, $G3, $G4, $G5, $G6, $G7, $G8, $G9, $G10;

	// Strip deprecated cover/contain for spec
	$shape-size-spec: _shape-size-stripper($shape-size);

	// Set $G1 as the default fallback color
	$first-color: nth($full, 1);
	$fallback-color: nth($first-color, 1);

	@if (type-of($fallback) == color) or ($fallback == "transparent") {
		$fallback-color: $fallback;
	}

	// Add Commas and spaces
	$shape-size: if($shape-size, '#{$shape-size}, ', null);
	$pos: if($pos, '#{$pos}, ', null);
	$pos-spec: if($pos, 'at #{$pos}', null);
	$shape-size-spec: if(($shape-size-spec != ' ') and ($pos == null), '#{$shape-size-spec}, ', '#{$shape-size-spec} ');

	background-color: $fallback-color;
	background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full}));
	background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})");
}
