/* http://keith-wood.name/svg.html SVG/jQuery DOM compatibility for jQuery v1.4.2. Written by Keith Wood (kbwood{at}iinet.com.au) April 2009. Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. Please attribute the author if you use it. */ (function($){var j=$.fn.addClass;$.fn.addClass=function(d){d=d||'';return this.each(function(){if(isSVGElem(this)){var c=this;$.each(d.split(/\s+/),function(i,a){var b=(c.className?c.className.baseVal:c.getAttribute('class'));if($.inArray(a,b.split(/\s+/))==-1){b+=(b?' ':'')+a;(c.className?c.className.baseVal=b:c.setAttribute('class',b))}})}else{j.apply($(this),[d])}})};var k=$.fn.removeClass;$.fn.removeClass=function(d){d=d||'';return this.each(function(){if(isSVGElem(this)){var c=this;$.each(d.split(/\s+/),function(i,a){var b=(c.className?c.className.baseVal:c.getAttribute('class'));b=$.grep(b.split(/\s+/),function(n,i){return n!=a}).join(' ');(c.className?c.className.baseVal=b:c.setAttribute('class',b))})}else{k.apply($(this),[d])}})};var l=$.fn.toggleClass;$.fn.toggleClass=function(a,b){return this.each(function(){if(isSVGElem(this)){if(typeof b!=='boolean'){b=!$(this).hasClass(a)}$(this)[(b?'add':'remove')+'Class'](a)}else{l.apply($(this),[a,b])}})};var m=$.fn.hasClass;$.fn.hasClass=function(b){b=b||'';var c=false;this.each(function(){if(isSVGElem(this)){var a=(this.className?this.className.baseVal:this.getAttribute('class')).split(/\s+/);c=($.inArray(b,a)>-1)}else{c=(m.apply($(this),[b]))}return!c});return c};var o=$.fn.attr;$.fn.attr=function(a,b,c){if(typeof a==='string'&&b===undefined){var d=o.apply(this,[a,b,c]);return(d&&d.baseVal?d.baseVal.valueAsString:d)}var e=a;if(typeof a==='string'){e={};e[a]=b}return this.each(function(){if(isSVGElem(this)){for(var n in e){this.setAttribute(n,(typeof e[n]=='function'?e[n]():e[n]))}}else{o.apply($(this),[a,b,c])}})};var p=$.fn.removeAttr;$.fn.removeAttr=function(a){return this.each(function(){if(isSVGElem(this)){(this[a]&&this[a].baseVal?this[a].baseVal.value='':this.setAttribute(a,''))}else{p.apply($(this),[a])}})};var q=$.expr.relative['+'];var r=$.expr.relative['>'];var s=$.expr.relative[''];var t=$.expr.relative['~'];var u=$.expr.find.ID;var v=$.expr.find.TAG;var w=$.expr.preFilter.CLASS;var x=$.expr.filter.CLASS;var y=$.expr.filter.ATTR;function anySVG(a){for(var i=0;i']=function(a,b,c){r(a,b,c||anySVG(a))};$.expr.relative['']=function(a,b,c){s(a,b,c||anySVG(a))};$.expr.relative['~']=function(a,b,c){t(a,b,c||anySVG(a))};$.expr.find.ID=function(a,b,c){return(isSVGElem(b)?[b.ownerDocument.getElementById(a[1])]:u(a,b,c))};var z=document.createElement('div');z.appendChild(document.createComment(''));if(z.getElementsByTagName('*').length>0){$.expr.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==='*'){var d=[];for(var i=0;c[i]||c.item(i);i++){if((c[i]||c.item(i)).nodeType===1){d.push(c[i]||c.item(i))}}c=d}return c}}$.expr.preFilter.CLASS=function(a,b,c,d,f,g){a=' '+a[1].replace(/\\/g,'')+' ';if(g){return a}for(var i=0,elem={};elem!=null;i++){elem=b[i];if(!elem){try{elem=b.item(i)}catch(e){}}if(elem){var h=(!isSVGElem(elem)?elem.className:(elem.className?elem.className.baseVal:'')||elem.getAttribute('class'));if(f^(h&&(' '+h+' ').indexOf(a)>-1)){if(!c)d.push(elem)}else if(c){b[i]=false}}}return false};$.expr.filter.CLASS=function(a,b){var c=(!isSVGElem(a)?a.className:(a.className?a.className.baseVal:a.getAttribute('class')));return(' '+c+' ').indexOf(b)>-1};$.expr.filter.ATTR=function(c,d){var e=null;if(isSVGElem(c)){e=d[1];$.expr.attrHandle[e]=function(a){var b=a.getAttribute(e);return b&&b.baseVal||b}}var f=y(c,d);if(e){$.expr.attrHandle[e]=null}return f};function isSVGElem(a){return(a.nodeType==1&&a.namespaceURI==$.svg.svgNS)}})(jQuery);