function duplicate(f,t) {
var e = getE(f), g, a, p = e && e.parentNode, m;
if(e) {
while(p.parentNode && p.nodeName != '{$string:namespace}svg' &&
(p.nodeName != '{$string:namespace}g' || !p.getAttributeNS(null,'clip-path'))) {
p.nodeName == '{$string:namespace}a' && (a = p);
p = p.parentNode;
}
g = e.cloneNode(true);
setattr(g,'opacity',0);
e.id = t;
if(a) {
a = a.cloneNode(false);
a.appendChild(g);
g = a;
}
a = p.getScreenCTM();
if(a.a == 1 && a.b == 0 && a.c == 0 &&
a.d == 1 && a.e == 0 && a.f == 0) {
a = e.getCTM();
} else {
a = e.getScreenCTM().inverse().multiply(a);
}
setattr(g,'transform', 'matrix(' + a.a + ' ' + a.b + ' ' + a.c + ' ' + a.d + ' ' + a.e + ' ' + a.f + ')');
p.appendChild(g);
}
}
function initDups() {
for(var d in dups)
duplicate(d,dups[d]);
}
|