/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 */
var Cufon=function(){function d(a){var b=this.face=a.face;this.glyphs=a.glyphs,this.w=a.w,this.baseSize=parseInt(b["units-per-em"],10),this.family=b["font-family"].toLowerCase(),this.weight=b["font-weight"],this.style=b["font-style"]||"normal",this.viewBox=function(){var a=b.bbox.split(/\s+/),c={minX:parseInt(a[0],10),minY:parseInt(a[1],10),maxX:parseInt(a[2],10),maxY:parseInt(a[3],10)};return c.width=c.maxX-c.minX,c.height=c.maxY-c.minY,c.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")},c}(),this.ascent=-parseInt(b.ascent,10),this.descent=-parseInt(b.descent,10),this.height=-this.ascent+this.descent}function e(){var a={},b={oblique:"italic",italic:"oblique"};this.add=function(b){(a[b.style]||(a[b.style]={}))[b.weight]=b},this.get=function(c,d){var e=a[c]||a[b[c]]||a.normal||a.italic||a.oblique;if(!e)return null;d={normal:400,bold:700}[d]||parseInt(d,10);if(e[d])return e[d];var f={1:1,99:0}[d%100],g=[],h,i;f===undefined&&(f=d>400),d==500&&(d=400);for(var j in e){if(!n(e,j))continue;j=parseInt(j,10);if(!h||j<h)h=j;if(!i||j>i)i=j;g.push(j)}return d<h&&(d=h),d>i&&(d=i),g.sort(function(a,b){return(f?a>d&&b>d?a<b:a>b:a<d&&b<d?a>b:a<b)?-1:1}),e[g[0]]}}function f(){function b(a,b){return a.contains?a.contains(b):a.compareDocumentPosition(b)&16}function c(a){var c=a.relatedTarget;if(!c||b(this,c))return;e(this)}function d(a){e(this)}function e(b){setTimeout(function(){a.replace(b,s.get(b).options,!0)},10)}this.attach=function(a){a.onmouseenter===undefined?(i(a,"mouseover",c),i(a,"mouseout",c)):(i(a,"mouseenter",d),i(a,"mouseleave",d))}}function g(){function c(a){return a.cufid||(a.cufid=++b)}var a={},b=0;this.get=function(b){var d=c(b);return a[d]||(a[d]={})}}function h(a){var b={},d={};this.extend=function(a){for(var c in a)n(a,c)&&(b[c]=a[c]);return this},this.get=function(c){return b[c]!=undefined?b[c]:a[c]},this.getSize=function(a,b){return d[a]||(d[a]=new c.Size(this.get(a),b))},this.isUsable=function(){return!!a}}function i(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,function(){return c.call(a,window.event)})}function j(a,b){var c=s.get(a);return c.options?a:(b.hover&&b.hoverables[a.nodeName.toLowerCase()]&&t.attach(a),c.options=b,a)}function k(a){var b={};return function(c){return n(b,c)||(b[c]=a.apply(null,arguments)),b[c]}}function l(a,b){b||(b=c.getStyle(a));var d=c.quotedList(b.get("fontFamily").toLowerCase()),e;for(var f=0,g=d.length;f<g;++f){e=d[f];if(w[e])return w[e].get(b.get("fontStyle"),b.get("fontWeight"))}return null}function m(a){return document.getElementsByTagName(a)}function n(a,b){return a.hasOwnProperty(b)}function o(){var a={},b,c;for(var d=0,e=arguments.length;b=arguments[d],d<e;++d)for(c in b)n(b,c)&&(a[c]=b[c]);return a}function p(a,b,d,e,f,g){var h=e.separate;if(h=="none")return v[e.engine].apply(null,arguments);var i=document.createDocumentFragment(),j,k=b.split(y[h]),l=h=="words";l&&r&&(/^\s/.test(b)&&k.unshift(""),/\s$/.test(b)&&k.push(""));for(var m=0,n=k.length;m<n;++m)j=v[e.engine](a,l?c.textAlign(k[m],d,m,n):k[m],d,e,f,g,m<n-1),j&&i.appendChild(j);return i}function q(a,b){var d,e,f,g,h,i;for(f=j(a,b).firstChild;f;f=h){g=f.nodeType,h=f.nextSibling,i=!1;if(g==1){if(!f.firstChild)continue;if(!/cufon/.test(f.className)){arguments.callee(f,b);continue}i=!0}else if(g!=3)continue;e||(e=c.getStyle(a).extend(b)),d||(d=l(a,e));if(!d)continue;if(i){v[b.engine](d,null,e,b,f,a);continue}var k=c.whiteSpace(f.data,e,f);if(k==="")continue;var m=p(d,k,e,b,f,a);m?f.parentNode.replaceChild(m,f):f.parentNode.removeChild(f)}}var a=function(){return a.replace.apply(null,arguments)},b=a.DOM={ready:function(){var a=!1,b={loaded:1,complete:1},c=[],d=function(){if(a)return;a=!0;for(var b;b=c.shift();b());};return document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("pageshow",d,!1)),!window.opera&&document.readyState&&function(){b[document.readyState]?d():setTimeout(arguments.callee,10)}(),document.readyState&&document.createStyleSheet&&function(){try{document.body.doScroll("left"),d()}catch(a){setTimeout(arguments.callee,1)}}(),i(window,"load",d),function(b){arguments.length?a?b():c.push(b):d()}}()},c=a.CSS={Size:function(a,b){this.value=parseFloat(a),this.unit=String(a).match(/[a-z%]*$/)[0]||"px",this.convert=function(a){return a/b*this.value},this.convertFrom=function(a){return a/this.value*b},this.toString=function(){return this.value+this.unit}},color:k(function(a){var b={};return b.color=a.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(a,c,d){return b.opacity=parseFloat(d),"rgb("+c+")"}),b}),getStyle:function(a){var b=document.defaultView;return b&&b.getComputedStyle?new h(b.getComputedStyle(a,null)):a.currentStyle?new h(a.currentStyle):new h(a.style)},gradient:k(function(a){var b={id:a,type:a.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},c=a.substr(a.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var d=0,e=c.length,f;d<e;++d)f=c[d].split("=",2).reverse(),b.stops.push([f[1]||d/(e-1),f[0]]);return b}),quotedList:k(function(a){var b=[],c=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,d;while(d=c.exec(a))b.push(d[3]||d[1]);return b}),recognizesMedia:k(function(a){var b=document.createElement("style"),c,d;return b.type="text/css",b.media=a,c=m("head")[0],c.insertBefore(b,c.firstChild),d=!!b.sheet||!!b.styleSheet,c.removeChild(b),d}),supports:function(a,b){var c=document.createElement("span").style;return c[a]===undefined?!1:(c[a]=b,c[a]===b)},textAlign:function(a,b,c,d){return b.get("textAlign")=="right"?c>0&&(a=" "+a):c<d-1&&(a+=" "),a},textDecoration:function(a,b){b||(b=this.getStyle(a));var c={underline:null,overline:null,"line-through":null};for(var d=a;d.parentNode&&d.parentNode.nodeType==1;){var e=!0;for(var f in c){if(!n(c,f)||c[f])continue;b.get("textDecoration").indexOf(f)!=-1&&(c[f]=b.get("color")),e=!1}if(e)break;b=this.getStyle(d=d.parentNode)}return c},textShadow:k(function(a){if(a=="none")return null;var b=[],c={},d,e=0,f=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(d=f.exec(a))d[0]==","?(b.push(c),c={},e=0):d[1]?c.color=d[1]:c[["offX","offY","blur"][e++]]=d[2];return b.push(c),b}),textTransform:function(a,b){return a[{uppercase:"toUpperCase",lowercase:"toLowerCase"}[b.get("textTransform")]||"toString"]()},whiteSpace:function(){var a={inline:1,"inline-block":1,"run-in":1};return function(b,c,d){return a[c.get("display")]?b:(d.previousSibling||(b=b.replace(/^\s+/,"")),d.nextSibling||(b=b.replace(/\s+$/,"")),b)}}()};c.ready=function(){function i(){var a,b,d;for(b=0;d=g[b];++b){if(d.disabled||!h[d.rel.toLowerCase()]||!c.recognizesMedia(d.media||"screen"))continue;a=d.sheet||d.styleSheet;if(!a||a.disabled)return!1}return!0}var a=!c.recognizesMedia("all"),d=!1,e=[],f=function(){a=!0;for(var b;b=e.shift();b());},g=m("link"),h={stylesheet:1};return b.ready(function(){d||(d=c.getStyle(document.body).isUsable()),a||d&&i()?f():setTimeout(arguments.callee,10)}),function(b){a?b():e.push(b)}}();var r=" ".split(/\s+/).length==0,s=new g,t=new f,u=[],v={},w={},x={enableTextDecoration:!1,engine:null,hover:!1,hoverables:{a:!0},printable:!0,selector:window.Sizzle||window.jQuery&&function(a){return jQuery(a)}||window.dojo&&dojo.query||window.$$&&function(a){return $$(a)}||window.$&&function(a){return $(a)}||document.querySelectorAll&&function(a){return document.querySelectorAll(a)}||m,separate:"words",textShadow:"none"},y={words:/[^\S\u00a0]+/,characters:""};return a.now=function(){return b.ready(),a},a.refresh=function(){var b=u.splice(0,u.length);for(var c=0,d=b.length;c<d;++c)a.replace.apply(null,b[c]);return a},a.registerEngine=function(b,c){return c?(v[b]=c,a.set("engine",b)):a},a.registerFont=function(b){var c=new d(b),f=c.family;return w[f]||(w[f]=new e),w[f].add(c),a.set("fontFamily",'"'+f+'"')},a.replace=function(b,d,e){d=o(x,d);if(!d.engine)return a;typeof d.textShadow=="string"&&(d.textShadow=c.textShadow(d.textShadow)),typeof d.color=="string"&&/^-/.test(d.color)&&(d.textGradient=c.gradient(d.color)),e||u.push(arguments);if(b.nodeType||typeof b=="string")b=[b];return c.ready(function(){for(var c=0,e=b.length;c<e;++c){var f=b[c];typeof f=="string"?a.replace(d.selector(f),d,!0):q(f,d)}}),a},a.set=function(b,c){return x[b]=c,a},a}();Cufon.registerEngine("canvas",function(){function e(a,b){var c=0,d=0,e=[],f=/([mrvxe])([^a-z]*)/g,g;a:for(var h=0;g=f.exec(a);++h){var i=g[2].split(",");switch(g[1]){case"v":e[h]={m:"bezierCurveTo",a:[c+~~i[0],d+~~i[1],c+~~i[2],d+~~i[3],c+=~~i[4],d+=~~i[5]]};break;case"r":e[h]={m:"lineTo",a:[c+=~~i[0],d+=~~i[1]]};break;case"m":e[h]={m:"moveTo",a:[c=~~i[0],d=~~i[1]]};break;case"x":e[h]={m:"closePath"};break;case"e":break a}b[e[h].m].apply(b,e[h].a)}return e}function f(a,b){for(var c=0,d=a.length;c<d;++c){var e=a[c];b[e.m].apply(b,e.a)}}var a=document.createElement("canvas");if(!a||!a.getContext||!a.getContext.apply)return;a=null;var b=Cufon.CSS.supports("display","inline-block"),c=!b&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId)),d=document.createElement("style");return d.type="text/css",d.appendChild(document.createTextNode(".cufon-canvas{text-indent:0}@media screen,projection{.cufon-canvas{display:inline;display:inline-block;position:relative;vertical-align:middle"+(c?"":";font-size:1px;line-height:1px")+"}.cufon-canvas .cufon-alt{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden}"+(b?".cufon-canvas canvas{position:relative}":".cufon-canvas canvas{position:absolute}")+"}@media print{.cufon-canvas{padding:0 !important}.cufon-canvas canvas{display:none}.cufon-canvas .cufon-alt{display:inline}}")),document.getElementsByTagName("head")[0].appendChild(d),function(a,c,d,g,h,i){function Q(a,b){O.strokeStyle=b,O.beginPath(),O.moveTo(0,a),O.lineTo(y,a),O.stroke()}function S(){O.scale(M,1);for(var b=0,c=x.length;b<c;++b){var d=a.glyphs[x[b]]||a.missingGlyph;if(!d)continue;d.d&&(O.beginPath(),d.code?f(d.code,O):d.code=e("m"+d.d,O),O.fill()),O.translate(Number(d.w||a.w)+m,0)}O.restore()}var j=c===null,k=a.viewBox,l=d.getSize("fontSize",a.baseSize),m=d.get("letterSpacing");m=m=="normal"?0:l.convertFrom(parseInt(m,10));var n=0,o=0,p=0,q=0,r=g.textShadow,s=[];if(r)for(var t=r.length;t--;){var u=r[t],v=l.convertFrom(parseFloat(u.offX)),w=l.convertFrom(parseFloat(u.offY));s[t]=[v,w],w<n&&(n=w),v>o&&(o=v),w>p&&(p=w),v<q&&(q=v)}var x=Cufon.CSS.textTransform(j?h.alt:c,d).split(""),y=0,z=null;for(var t=0,B=x.length;t<B;++t){var E=a.glyphs[x[t]]||a.missingGlyph;if(!E)continue;y+=z=Number(E.w||a.w)+m}if(z===null)return null;o+=k.width-z,q+=k.minX;var F,G;if(j)F=h,G=h.firstChild;else{F=document.createElement("span"),F.className="cufon cufon-canvas",F.alt=c,G=document.createElement("canvas"),F.appendChild(G);if(g.printable){var H=document.createElement("span");H.className="cufon-alt",H.appendChild(document.createTextNode(c)),F.appendChild(H)}}var I=F.style,J=G.style,K=l.convert(k.height),L=Math.ceil(K),M=L/K;G.width=Math.ceil(l.convert(y*M+o-q)),G.height=Math.ceil(l.convert(k.height-n+p)),n+=k.minY,J.top=Math.round(l.convert(n-a.ascent))+"px",J.left=Math.round(l.convert(q))+"px";var N=Math.ceil(l.convert(y*M))+"px";b?(I.width=N,I.height=l.convert(a.height)+"px"):(I.paddingLeft=N,I.paddingBottom=l.convert(a.height)-1+"px");var O=G.getContext("2d"),P=K/k.height;O.scale(P,P*M),O.translate(-q,-n),O.lineWidth=a.face["underline-thickness"],O.save();var R=g.enableTextDecoration?Cufon.CSS.textDecoration(i,d):{};R.underline&&Q(-a.face["underline-position"],R.underline),R.overline&&Q(a.ascent,R.overline);if(r)for(var t=r.length;t--;){var u=r[t];O.save(),O.fillStyle=u.color,O.translate.apply(O,s[t]),S()}var T=g.textGradient;if(T){var U=T.stops,V=O.createLinearGradient(0,k.minY,0,k.maxY);for(var t=0,B=U.length;t<B;++t)V.addColorStop.apply(V,U[t]);O.fillStyle=V}else O.fillStyle=d.get("color");return S(),R["line-through"]&&Q(-a.descent,R["line-through"]),F}}()),Cufon.registerEngine("vml",function(){function b(a,b){return c(a,/(?:em|ex|%)$/i.test(b)?"1em":b)}function c(a,b){if(/px$/i.test(b))return parseFloat(b);var c=a.style.left,d=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left,a.style.left=b;var e=a.style.pixelLeft;return a.style.left=c,a.runtimeStyle.left=d,e}function e(a){var b=a.id;if(!d[b]){var c=a.stops,e=document.createElement("cvml:fill"),f=[];e.type="gradient",e.angle=180,e.focus="0",e.method="sigma",e.color=c[0][1];for(var g=1,h=c.length-1;g<h;++g)f.push(c[g][0]*100+"% "+c[g][1]);e.colors=f.join(","),e.color2=c[h][1],d[b]=e}return d[b]}if(!document.namespaces)return;document.namespaces.cvml==null&&document.namespaces.add("cvml","urn:schemas-microsoft-com:vml");var a=document.createElement("cvml:shape");a.style.behavior="url(#default#VML)";if(!a.coordsize)return;a=null,document.write('<style type="text/css">.cufon-vml-canvas{text-indent:0}@media screen{cvml\\:shape,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute}.cufon-vml-canvas{position:absolute;text-align:left}.cufon-vml{display:inline-block;position:relative;vertical-align:middle}.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px}a .cufon-vml{cursor:pointer}}@media print{.cufon-vml *{display:none}.cufon-vml .cufon-alt{display:inline}}</style>');var d={};return function(a,d,f,g,h,i,j){var k=d===null;k&&(d=h.alt);var l=a.viewBox,m=f.computedFontSize||(f.computedFontSize=new Cufon.CSS.Size(b(i,f.get("fontSize"))+"px",a.baseSize)),n=f.computedLSpacing;n==undefined&&(n=f.get("letterSpacing"),f.computedLSpacing=n=n=="normal"?0:~~m.convertFrom(c(i,n)));var o,p;if(k)o=h,p=h.firstChild;else{o=document.createElement("span"),o.className="cufon cufon-vml",o.alt=d,p=document.createElement("span"),p.className="cufon-vml-canvas",o.appendChild(p);if(g.printable){var q=document.createElement("span");q.className="cufon-alt",q.appendChild(document.createTextNode(d)),o.appendChild(q)}j||o.appendChild(document.createElement("cvml:shape"))}var r=o.style,s=p.style,t=m.convert(l.height),u=Math.ceil(t),v=u/t,w=l.minX,x=l.minY;s.height=u,s.top=Math.round(m.convert(x-a.ascent)),s.left=Math.round(m.convert(w)),r.height=m.convert(a.height)+"px";var y=g.enableTextDecoration?Cufon.CSS.textDecoration(i,f):{},z=f.get("color"),B=Cufon.CSS.textTransform(d,f).split(""),E=0,F=0,G=null,H,I,J=g.textShadow;for(var K=0,L=0,M=B.length;K<M;++K)H=a.glyphs[B[K]]||a.missingGlyph,H&&(E+=G=~~(H.w||a.w)+n);if(G===null)return null;var N=-w+E+(l.width-G),O=m.convert(N*v),P=Math.round(O),Q=N+","+l.height,R,S="r"+Q+"ns",T=g.textGradient&&e(g.textGradient);for(K=0;K<M;++K){H=a.glyphs[B[K]]||a.missingGlyph;if(!H)continue;k?(I=p.childNodes[L],I.firstChild&&I.removeChild(I.firstChild)):(I=document.createElement("cvml:shape"),p.appendChild(I)),I.stroked="f",I.coordsize=Q,I.coordorigin=R=w-F+","+x,I.path=(H.d?"m"+H.d+"xe":"")+"m"+R+S,I.fillcolor=z,T&&I.appendChild(T.cloneNode(!1));var U=I.style;U.width=P,U.height=u;if(J){var V=J[0],W=J[1],X=Cufon.CSS.color(V.color),Y,Z=document.createElement("cvml:shadow");Z.on="t",Z.color=X.color,Z.offset=V.offX+","+V.offY,W&&(Y=Cufon.CSS.color(W.color),Z.type="double",Z.color2=Y.color,Z.offset2=W.offX+","+W.offY),Z.opacity=X.opacity||Y&&Y.opacity||1,I.appendChild(Z)}F+=~~(H.w||a.w)+n,++L}return r.width=Math.max(Math.ceil(m.convert(E*v)),0),o}}())
