/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09i
 */
var Cufon=(function(){
	var m=function(){
		return m.replace.apply(null,arguments)
		};
		
	var x=m.DOM={
		ready:(function(){
			var C=false,E={
				loaded:1,
				complete:1
			};
			
			var B=[],D=function(){
				if(C){
					return
				}
				C=true;
				for(var F;F=B.shift();F()){}
			};
			
		if(document.addEventListener){
			document.addEventListener("DOMContentLoaded",D,false);
			window.addEventListener("pageshow",D,false)
			}
			if(!window.opera&&document.readyState){
			(function(){
				E[document.readyState]?D():setTimeout(arguments.callee,10)
				})()
			}
			if(document.readyState&&document.createStyleSheet){
			(function(){
				try{
					document.body.doScroll("left");
					D()
					}catch(F){
					setTimeout(arguments.callee,1)
					}
				})()
			}
			q(window,"load",D);
		return function(F){
			if(!arguments.length){
				D()
				}else{
				C?F():B.push(F)
				}
			}
	})(),
root:function(){
	return document.documentElement||document.body
	}
};

var n=m.CSS={
	Size:function(C,B){
		this.value=parseFloat(C);
		this.unit=String(C).match(/[a-z%]*$/)[0]||"px";
		this.convert=function(D){
			return D/B*this.value
			};
			
		this.convertFrom=function(D){
			return D/this.value*B
			};
			
		this.toString=function(){
			return this.value+this.unit
			}
		},
addClass:function(C,B){
	var D=C.className;
	C.className=D+(D&&" ")+B;
	return C
	},
color:j(function(C){
	var B={};
	
	B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){
		B.opacity=parseFloat(F);
		return"rgb("+D+")"
		});
	return B
	}),
fontStretch:j(function(B){
	if(typeof B=="number"){
		return B
		}
		if(/%$/.test(B)){
		return parseFloat(B)/100
		}
		return{
		"ultra-condensed":0.5,
		"extra-condensed":0.625,
		condensed:0.75,
		"semi-condensed":0.875,
		"semi-expanded":1.125,
		expanded:1.25,
		"extra-expanded":1.5,
		"ultra-expanded":2
	}
	[B]||1
	}),
getStyle:function(C){
	var B=document.defaultView;
	if(B&&B.getComputedStyle){
		return new a(B.getComputedStyle(C,null))
		}
		if(C.currentStyle){
		return new a(C.currentStyle)
		}
		return new a(C.style)
	},
gradient:j(function(F){
	var G={
		id:F,
		type:F.match(/^-([a-z]+)-gradient\(/)[1],
		stops:[]
	},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);
	for(var E=0,B=C.length,D;E<B;++E){
		D=C[E].split("=",2).reverse();
		G.stops.push([D[1]||E/(B-1),D[0]])
		}
		return G
	}),
quotedList:j(function(E){
	var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;
	while(B=C.exec(E)){
		D.push(B[3]||B[1])
		}
		return D
	}),
recognizesMedia:j(function(G){
	var E=document.createElement("style"),D,C,B;
	E.type="text/css";
	E.media=G;
	try{
		E.appendChild(document.createTextNode("/**/"))
		}catch(F){}
	C=g("head")[0];
	C.insertBefore(E,C.firstChild);
	D=(E.sheet||E.styleSheet);
	B=D&&!D.disabled;
	C.removeChild(E);
	return B
	}),
removeClass:function(D,C){
	var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");
	D.className=D.className.replace(B,"");
	return D
	},
supports:function(D,C){
	var B=document.createElement("span").style;
	if(B[D]===undefined){
		return false
		}
		B[D]=C;
	return B[D]===C
	},
textAlign:function(E,D,B,C){
	if(D.get("textAlign")=="right"){
		if(B>0){
			E=" "+E
			}
		}else{
	if(B<C-1){
		E+=" "
		}
	}
return E
},
textShadow:j(function(F){
	if(F=="none"){
		return null
		}
		var E=[],G={},B,C=0;
	var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;
	while(B=D.exec(F)){
		if(B[0]==","){
			E.push(G);
			G={};
			
			C=0
			}else{
			if(B[1]){
				G.color=B[1]
				}else{
				G[["offX","offY","blur"][C++]]=B[2]
				}
			}
	}
E.push(G);
return E
}),
textTransform:(function(){
	var B={
		uppercase:function(C){
			return C.toUpperCase()
			},
		lowercase:function(C){
			return C.toLowerCase()
			},
		capitalize:function(C){
			return C.replace(/\b./g,function(D){
				return D.toUpperCase()
				})
			}
		};
	
return function(E,D){
	var C=B[D.get("textTransform")];
	return C?C(E):E
	}
})(),
whiteSpace:(function(){
	var D={
		inline:1,
		"inline-block":1,
		"run-in":1
	};
	
	var C=/^\s+/,B=/\s+$/;
	return function(H,F,G,E){
		if(E){
			if(E.nodeName.toLowerCase()=="br"){
				H=H.replace(C,"")
				}
			}
		if(D[F.get("display")]){
		return H
		}
		if(!G.previousSibling){
		H=H.replace(C,"")
		}
		if(!G.nextSibling){
		H=H.replace(B,"")
		}
		return H
	}
})()
};

n.ready=(function(){
	var B=!n.recognizesMedia("all"),E=false;
	var D=[],H=function(){
		B=true;
		for(var K;K=D.shift();K()){}
	};
	
var I=g("link"),J=g("style");
	function C(K){
	return K.disabled||G(K.sheet,K.media||"screen")
	}
	function G(M,P){
	if(!n.recognizesMedia(P||"all")){
		return true
		}
		if(!M||M.disabled){
		return false
		}
		try{
		var Q=M.cssRules,O;
		if(Q){
			search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){
				switch(O.type){
					case 2:
						break;
					case 3:
						if(!G(O.styleSheet,O.media.mediaText)){
						return false
						}
						break;
					default:
						break search
						}
					}
			}
		}catch(N){}
return true
}
function F(){
	if(document.createStyleSheet){
		return true
		}
		var L,K;
	for(K=0;L=I[K];++K){
		if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){
			return false
			}
		}
	for(K=0;L=J[K];++K){
	if(!C(L)){
		return false
		}
	}
return true
}
x.ready(function(){
	if(!E){
		E=n.getStyle(document.body).isUsable()
		}
		if(B||(E&&F())){
		H()
		}else{
		setTimeout(arguments.callee,10)
		}
	});
return function(K){
	if(B){
		K()
		}else{
		D.push(K)
		}
	}
})();
function s(D){
	var C=this.face=D.face,B={
		"\u0020":1,
		"\u00a0":1,
		"\u3000":1
	};
	
	this.glyphs=D.glyphs;
	this.w=D.w;
	this.baseSize=parseInt(C["units-per-em"],10);
	this.family=C["font-family"].toLowerCase();
	this.weight=C["font-weight"];
	this.style=C["font-style"]||"normal";
	this.viewBox=(function(){
		var F=C.bbox.split(/\s+/);
		var E={
			minX:parseInt(F[0],10),
			minY:parseInt(F[1],10),
			maxX:parseInt(F[2],10),
			maxY:parseInt(F[3],10)
			};
			
		E.width=E.maxX-E.minX;
		E.height=E.maxY-E.minY;
		E.toString=function(){
			return[this.minX,this.minY,this.width,this.height].join(" ")
			};
			
		return E
		})();
	this.ascent=-parseInt(C.ascent,10);
	this.descent=-parseInt(C.descent,10);
	this.height=-this.ascent+this.descent;
	this.spacing=function(L,N,E){
		var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;
		while(H=L[++J]){
			M=O[H]||this.missingGlyph;
			if(!M){
				continue
			}
			if(K){
				F-=G=K[H]||0;
				P[I]-=G
				}
				F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);
			K=M.k
			}
			P.total=F;
		return P
		}
	}
function f(){
	var C={},B={
		oblique:"italic",
		italic:"oblique"
	};
	
	this.add=function(D){
		(C[D.style]||(C[D.style]={}))[D.weight]=D
		};
		
	this.get=function(H,I){
		var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;
		if(!G){
			return null
			}
			I={
			normal:400,
			bold:700
		}
		[I]||parseInt(I,10);
		if(G[I]){
			return G[I]
			}
			var E={
			1:1,
			99:0
		}
		[I%100],K=[],F,D;
		if(E===undefined){
			E=I>400
			}
			if(I==500){
			I=400
			}
			for(var J in G){
			if(!k(G,J)){
				continue
			}
			J=parseInt(J,10);
			if(!F||J<F){
				F=J
				}
				if(!D||J>D){
				D=J
				}
				K.push(J)
			}
			if(I<F){
			I=F
			}
			if(I>D){
			I=D
			}
			K.sort(function(M,L){
			return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1
			});
		return G[K[0]]
		}
	}
function r(){
	function D(F,G){
		if(F.contains){
			return F.contains(G)
			}
			return F.compareDocumentPosition(G)&16
		}
		function B(G){
		var F=G.relatedTarget;
		if(!F||D(this,F)){
			return
		}
		C(this,G.type=="mouseover")
		}
		function E(F){
		C(this,F.type=="mouseenter")
		}
		function C(F,G){
		setTimeout(function(){
			var H=d.get(F).options;
			m.replace(F,G?h(H,H.hover):H,true)
			},10)
		}
		this.attach=function(F){
		if(F.onmouseenter===undefined){
			q(F,"mouseover",B);
			q(F,"mouseout",B)
			}else{
			q(F,"mouseenter",E);
			q(F,"mouseleave",E)
			}
		}
}
function u(){
	var C=[],D={};
	
	function B(H){
		var E=[],G;
		for(var F=0;G=H[F];++F){
			E[F]=C[D[G]]
			}
			return E
		}
		this.add=function(F,E){
		D[F]=C.push(E)-1
		};
		
	this.repeat=function(){
		var E=arguments.length?B(arguments):C,F;
		for(var G=0;F=E[G++];){
			m.replace(F[0],F[1],true)
			}
		}
	}
function A(){
	var D={},B=0;
	function C(E){
		return E.cufid||(E.cufid=++B)
		}
		this.get=function(E){
		var F=C(E);
		return D[F]||(D[F]={})
		}
	}
function a(B){
	var D={},C={};
	
	this.extend=function(E){
		for(var F in E){
			if(k(E,F)){
				D[F]=E[F]
				}
			}
		return this
	};
	
this.get=function(E){
	return D[E]!=undefined?D[E]:B[E]
	};
	
this.getSize=function(F,E){
	return C[F]||(C[F]=new n.Size(this.get(F),E))
	};
	
this.isUsable=function(){
	return !!B
	}
}
function q(C,B,D){
	if(C.addEventListener){
		C.addEventListener(B,D,false)
		}else{
		if(C.attachEvent){
			C.attachEvent("on"+B,function(){
				return D.call(C,window.event)
				})
			}
		}
}
function v(C,B){
	var D=d.get(C);
	if(D.options){
		return C
		}
		if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){
		b.attach(C)
		}
		D.options=B;
	return C
	}
	function j(B){
	var C={};
	
	return function(D){
		if(!k(C,D)){
			C[D]=B.apply(null,arguments)
			}
			return C[D]
		}
	}
function c(F,E){
	var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;
	for(var C=0;D=B[C];++C){
		if(i[D]){
			return i[D].get(E.get("fontStyle"),E.get("fontWeight"))
			}
		}
	return null
}
function g(B){
	return document.getElementsByTagName(B)
	}
	function k(C,B){
	return C.hasOwnProperty(B)
	}
	function h(){
	var C={},B,F;
	for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){
		for(F in B){
			if(k(B,F)){
				C[F]=B[F]
				}
			}
		}
		return C
}
function o(E,M,C,N,F,D){
	var K=document.createDocumentFragment(),H;
	if(M===""){
		return K
		}
		var L=N.separate;
	var I=M.split(p[L]),B=(L=="words");
	if(B&&t){
		if(/^\s/.test(M)){
			I.unshift("")
			}
			if(/\s$/.test(M)){
			I.push("")
			}
		}
	for(var J=0,G=I.length;J<G;++J){
	H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);
	if(H){
		K.appendChild(H)
		}
	}
return K
}
function l(D,M){
	var C=D.nodeName.toLowerCase();
	if(M.ignore[C]){
		return
	}
	var E=!M.textless[C];
	var B=n.getStyle(v(D,M)).extend(M);
	var F=c(D,B),G,K,I,H,L,J;
	if(!F){
		return
	}
	for(G=D.firstChild;G;G=I){
		K=G.nodeType;
		I=G.nextSibling;
		if(E&&K==3){
			if(H){
				H.appendData(G.data);
				D.removeChild(G)
				}else{
				H=G
				}
				if(I){
				continue
			}
		}
		if(H){
		D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);
		H=null
		}
		if(K==1){
		if(G.firstChild){
			if(G.nodeName.toLowerCase()=="cufon"){
				z[M.engine](F,null,B,M,G,D)
				}else{
				arguments.callee(G,M)
				}
			}
		J=G
	}
	}
}
var t=" ".split(/\s+/).length==0;
var d=new A();
var b=new r();
var y=new u();
var e=false;
var z={},i={},w={
	autoDetect:false,
	engine:null,
	forceHitArea:false,
	hover:false,
	hoverables:{
		a:true
	},
	ignore:{
		applet:1,
		canvas:1,
		col:1,
		colgroup:1,
		head:1,
		iframe:1,
		map:1,
		optgroup:1,
		option:1,
		script:1,
		select:1,
		style:1,
		textarea:1,
		title:1,
		pre:1
	},
	printable:true,
	selector:(window.Sizzle||(window.jQuery&&function(B){
		return jQuery(B)
		})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){
		return $$(B)
		})||(window.$&&function(B){
		return $(B)
		})||(document.querySelectorAll&&function(B){
		return document.querySelectorAll(B)
		})||g),
	separate:"words",
	textless:{
		dl:1,
		html:1,
		ol:1,
		table:1,
		tbody:1,
		thead:1,
		tfoot:1,
		tr:1,
		ul:1
	},
	textShadow:"none"
};

var p={
	words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,
	characters:"",
	none:/^/
};

m.now=function(){
	x.ready();
	return m
	};
	
m.refresh=function(){
	y.repeat.apply(y,arguments);
	return m
	};
	
m.registerEngine=function(C,B){
	if(!B){
		return m
		}
		z[C]=B;
	return m.set("engine",C)
	};
	
m.registerFont=function(D){
	if(!D){
		return m
		}
		var B=new s(D),C=B.family;
	if(!i[C]){
		i[C]=new f()
		}
		i[C].add(B);
	return m.set("fontFamily",'"'+C+'"')
	};
	
m.replace=function(D,C,B){
	C=h(w,C);
	if(!C.engine){
		return m
		}
		if(!e){
		n.addClass(x.root(),"cufon-active cufon-loading");
		n.ready(function(){
			n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")
			});
		e=true
		}
		if(C.hover){
		C.forceHitArea=true
		}
		if(C.autoDetect){
		delete C.fontFamily
		}
		if(typeof C.textShadow=="string"){
		C.textShadow=n.textShadow(C.textShadow)
		}
		if(typeof C.color=="string"&&/^-/.test(C.color)){
		C.textGradient=n.gradient(C.color)
		}else{
		delete C.textGradient
		}
		if(!B){
		y.add(D,arguments)
		}
		if(D.nodeType||typeof D=="string"){
		D=[D]
		}
		n.ready(function(){
		for(var F=0,E=D.length;F<E;++F){
			var G=D[F];
			if(typeof G=="string"){
				m.replace(C.selector(G),C,true)
				}else{
				l(G,C)
				}
			}
		});
return m
};

m.set=function(B,C){
	w[B]=C;
	return m
	};
	
return m
})();
Cufon.registerEngine("vml",(function(){
	var e=document.namespaces;
	if(!e){
		return
	}
	e.add("cvml","urn:schemas-microsoft-com:vml");
	e=null;
	var b=document.createElement("cvml:shape");
	b.style.behavior="url(#default#VML)";
	if(!b.coordsize){
		return
	}
	b=null;
	var h=(document.documentMode||0)<8;
	document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));
	function c(i,j){
		return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)
		}
		function a(l,m){
		if(m==="0"){
			return 0
			}
			if(/px$/i.test(m)){
			return parseFloat(m)
			}
			var k=l.style.left,j=l.runtimeStyle.left;
		l.runtimeStyle.left=l.currentStyle.left;
		l.style.left=m.replace("%","em");
		var i=l.style.pixelLeft;
		l.style.left=k;
		l.runtimeStyle.left=j;
		return i
		}
		function f(l,k,j,n){
		var i="computed"+n,m=k[i];
		if(isNaN(m)){
			m=k.get(n);
			k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))
			}
			return m
		}
		var g={};
	
	function d(p){
		var q=p.id;
		if(!g[q]){
			var n=p.stops,o=document.createElement("cvml:fill"),i=[];
			o.type="gradient";
			o.angle=180;
			o.focus="0";
			o.method="sigma";
			o.color=n[0][1];
			for(var m=1,l=n.length-1;m<l;++m){
				i.push(n[m][0]*100+"% "+n[m][1])
				}
				o.colors=i.join(",");
			o.color2=n[l][1];
			g[q]=o
			}
			return g[q]
		}
		return function(ac,G,Y,C,K,ad,W){
		var n=(G===null);
		if(n){
			G=K.alt
			}
			var I=ac.viewBox;
		var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));
		var y,q;
		if(n){
			y=K;
			q=K.firstChild
			}else{
			y=document.createElement("cufon");
			y.className="cufon cufon-vml";
			y.alt=G;
			q=document.createElement("cufoncanvas");
			y.appendChild(q);
			if(C.printable){
				var Z=document.createElement("cufontext");
				Z.appendChild(document.createTextNode(G));
				y.appendChild(Z)
				}
				if(!W){
				y.appendChild(document.createElement("cvml:shape"))
				}
			}
		var ai=y.style;
	var R=q.style;
	var l=p.convert(I.height),af=Math.ceil(l);
	var V=af/l;
	var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));
	var U=I.minX,T=I.minY;
	R.height=af;
	R.top=Math.round(p.convert(T-ac.ascent));
	R.left=Math.round(p.convert(U));
	ai.height=p.convert(ac.height)+"px";
	var F=Y.get("color");
	var ag=Cufon.CSS.textTransform(G,Y).split("");
	var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));
	if(!L.length){
		return null
		}
		var k=L.total;
	var x=-U+k+(I.width-L[L.length-1]);
	var ah=p.convert(x*P),X=Math.round(ah);
	var O=x+","+I.height,m;
	var J="r"+O+"ns";
	var u=C.textGradient&&d(C.textGradient);
	var o=ac.glyphs,S=0;
	var H=C.textShadow;
	var ab=-1,aa=0,w;
	while(w=ag[++ab]){
		var D=o[ag[ab]]||ac.missingGlyph,v;
		if(!D){
			continue
		}
		if(n){
			v=q.childNodes[aa];
			while(v.firstChild){
				v.removeChild(v.firstChild)
				}
			}else{
		v=document.createElement("cvml:shape");
		q.appendChild(v)
		}
		v.stroked="f";
	v.coordsize=O;
	v.coordorigin=m=(U-S)+","+T;
	v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;
	v.fillcolor=F;
	if(u){
		v.appendChild(u.cloneNode(false))
		}
		var ae=v.style;
	ae.width=X;
	ae.height=af;
	if(H){
		var s=H[0],r=H[1];
		var B=Cufon.CSS.color(s.color),z;
		var N=document.createElement("cvml:shadow");
		N.on="t";
		N.color=B.color;
		N.offset=s.offX+","+s.offY;
		if(r){
			z=Cufon.CSS.color(r.color);
			N.type="double";
			N.color2=z.color;
			N.offset2=r.offX+","+r.offY
			}
			N.opacity=B.opacity||(z&&z.opacity)||1;
		v.appendChild(N)
		}
		S+=L[aa++]
	}
	var M=v.nextSibling,t,A;
if(C.forceHitArea){
	if(!M){
		M=document.createElement("cvml:rect");
		M.stroked="f";
		M.className="cufon-vml-cover";
		t=document.createElement("cvml:fill");
		t.opacity=0;
		M.appendChild(t);
		q.appendChild(M)
		}
		A=M.style;
	A.width=X;
	A.height=af
	}else{
	if(M){
		q.removeChild(M)
		}
	}
ai.width=Math.max(Math.ceil(p.convert(k*P)),0);
	if(h){
	var Q=Y.computedYAdjust;
	if(Q===undefined){
		var E=Y.get("lineHeight");
		if(E=="normal"){
			E="1em"
			}else{
			if(!isNaN(E)){
				E+="em"
				}
			}
		Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))
	}
	if(Q){
	ai.marginTop=Math.ceil(Q)+"px";
	ai.marginBottom=Q+"px"
	}
}
return y
}
})());
Cufon.registerEngine("canvas",(function(){
	var b=document.createElement("canvas");
	if(!b||!b.getContext||!b.getContext.apply){
		return
	}
	b=null;
	var a=Cufon.CSS.supports("display","inline-block");
	var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));
	var f=document.createElement("style");
	f.type="text/css";
	f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));
	document.getElementsByTagName("head")[0].appendChild(f);
	function d(p,h){
		var n=0,m=0;
		var g=[],o=/([mrvxe])([^a-z]*)/g,k;
			generate:for(var j=0;k=o.exec(p);++j){
			var l=k[2].split(",");
			switch(k[1]){
				case"v":
					g[j]={
					m:"bezierCurveTo",
					a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]
					};
					
				break;
				case"r":
					g[j]={
					m:"lineTo",
					a:[n+=~~l[0],m+=~~l[1]]
					};
					
				break;
				case"m":
					g[j]={
					m:"moveTo",
					a:[n=~~l[0],m=~~l[1]]
					};
					
				break;
				case"x":
					g[j]={
					m:"closePath"
				};
				
				break;
				case"e":
					break generate
					}
					h[g[j].m].apply(h,g[j].a)
			}
			return g
		}
		function c(m,k){
		for(var j=0,h=m.length;j<h;++j){
			var g=m[j];
			k[g.m].apply(k,g.a)
			}
		}
		return function(V,w,P,t,C,W){
	var k=(w===null);
	if(k){
		w=C.getAttribute("alt")
		}
		var A=V.viewBox;
	var m=P.getSize("fontSize",V.baseSize);
	var B=0,O=0,N=0,u=0;
	var z=t.textShadow,L=[];
	if(z){
		for(var U=z.length;U--;){
			var F=z[U];
			var K=m.convertFrom(parseFloat(F.offX));
			var I=m.convertFrom(parseFloat(F.offY));
			L[U]=[K,I];
			if(I<B){
				B=I
				}
				if(K>O){
				O=K
				}
				if(I>N){
				N=I
				}
				if(K<u){
				u=K
				}
			}
		}
	var Z=Cufon.CSS.textTransform(w,P).split("");
	var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));
	if(!E.length){
	return null
	}
	var h=E.total;
O+=A.width-E[E.length-1];
u+=A.minX;
var s,n;
if(k){
	s=C;
	n=C.firstChild
	}else{
	s=document.createElement("cufon");
	s.className="cufon cufon-canvas";
	s.setAttribute("alt",w);
	n=document.createElement("canvas");
	s.appendChild(n);
	if(t.printable){
		var S=document.createElement("cufontext");
		S.appendChild(document.createTextNode(w));
		s.appendChild(S)
		}
	}
var aa=s.style;
var H=n.style;
var j=m.convert(A.height);
	var Y=Math.ceil(j);
	var M=Y/j;
	var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));
	var J=h*G;
	var Q=Math.ceil(m.convert(J+O-u));
	var o=Math.ceil(m.convert(A.height-B+N));
	n.width=Q;
	n.height=o;
	H.width=Q+"px";
	H.height=o+"px";
	B+=A.minY;
	H.top=Math.round(m.convert(B-V.ascent))+"px";
	H.left=Math.round(m.convert(u))+"px";
	var r=Math.max(Math.ceil(m.convert(J)),0)+"px";
	if(a){
	aa.width=r;
	aa.height=m.convert(V.height)+"px"
	}else{
	aa.paddingLeft=r;
	aa.paddingBottom=(m.convert(V.height)-1)+"px"
	}
	var X=n.getContext("2d"),D=j/A.height;
	X.scale(D,D*M);
	X.translate(-u,-B);
	X.save();
	function T(){
	var x=V.glyphs,ab,l=-1,g=-1,y;
	X.scale(G,1);
	while(y=Z[++l]){
		var ab=x[Z[l]]||V.missingGlyph;
		if(!ab){
			continue
		}
		if(ab.d){
			X.beginPath();
			if(ab.code){
				c(ab.code,X)
				}else{
				ab.code=d("m"+ab.d,X)
				}
				X.fill()
			}
			X.translate(E[++g],0)
		}
		X.restore()
	}
	if(z){
	for(var U=z.length;U--;){
		var F=z[U];
		X.save();
		X.fillStyle=F.color;
		X.translate.apply(X,L[U]);
		T()
		}
	}
	var q=t.textGradient;
if(q){
	var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);
	for(var U=0,R=v.length;U<R;++U){
		p.addColorStop.apply(p,v[U])
		}
		X.fillStyle=p
	}else{
	X.fillStyle=P.get("color")
	}
	T();
return s
}
})());
