1.3.1 Fixed couple bugs with title, arc & subpath.
[raphael] / plugins / raphael.blur.js
index 98fd7f9..2484641 100644 (file)
@@ -5,37 +5,49 @@
  * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
  */
 
-if (Raphael.vml) {
-    Raphael.el.blur = function (size) {
-        var s = this.node.style,
-            f = s.filter;
-        f = f.replace(/ progid:\S+Blur\([^\)]+\)/g, "");
-        if (size != "none") {
-            s.filter = f + " progid:DXImageTransform.Microsoft.Blur(pixelradius=" + (+size || 1.5) + ")";
-            s.margin = Raphael.format("-{0}px 0 0 -{0}px", Math.round(+size || 1.5));
-        } else {
-            s.filter = f;
-            s.margin = 0;
-        }
-    };
-} else {
-    Raphael.el.blur = function (size) {
-        // Experimental. No WebKit support.
-        if (size != "none") {
-            var fltr = $("filter"),
-                blur = $("feGaussianBlur");
-            fltr.id = "r" + (Raphael.idGenerator++).toString(36);
-            $(blur, {stdDeviation: +size || 1.5});
-            fltr.appendChild(blur);
-            this.paper.defs.appendChild(fltr);
-            this._blur = fltr;
-            $(this.node, {filter: "url(#" + fltr.id + ")"});
-        } else {
-            if (this._blur) {
-                this._blur.parentNode.removeChild(this._blur);
-                delete this._blur;
+(function () {
+    if (Raphael.vml) {
+        var reg = / progid:\S+Blur\([^\)]+\)/g;
+        Raphael.el.blur = function (size) {
+            var s = this.node.style,
+                f = s.filter;
+            f = f.replace(reg, "");
+            if (size != "none") {
+                s.filter = f + " progid:DXImageTransform.Microsoft.Blur(pixelradius=" + (+size || 1.5) + ")";
+                s.margin = Raphael.format("-{0}px 0 0 -{0}px", Math.round(+size || 1.5));
+            } else {
+                s.filter = f;
+                s.margin = 0;
             }
-            this.node.removeAttribute("filter");
-        }
-    };
-}
\ No newline at end of file
+        };
+    } else {
+        var $ = function (el, attr) {
+            if (attr) {
+                for (var key in attr) if (attr.hasOwnProperty(key)) {
+                    el.setAttribute(key, attr[key]);
+                }
+            } else {
+                return doc.createElementNS("http://www.w3.org/2000/svg", el);
+            }
+        };
+        Raphael.el.blur = function (size) {
+            // Experimental. No WebKit support.
+            if (size != "none") {
+                var fltr = $("filter"),
+                    blur = $("feGaussianBlur");
+                fltr.id = "r" + (Raphael.idGenerator++).toString(36);
+                $(blur, {stdDeviation: +size || 1.5});
+                fltr.appendChild(blur);
+                this.paper.defs.appendChild(fltr);
+                this._blur = fltr;
+                $(this.node, {filter: "url(#" + fltr.id + ")"});
+            } else {
+                if (this._blur) {
+                    this._blur.parentNode.removeChild(this._blur);
+                    delete this._blur;
+                }
+                this.node.removeAttribute("filter");
+            }
+        };
+    }
+})();
\ No newline at end of file