

/*!
 * Copyright (c) 2008 Simo Kinnunen.
 * Licensed under the MIT license.
 */

var Cufon = (function() {
	
	var api = function() {	
		return api.replace.apply(null, arguments);
	};
	
	var DOM = api.DOM = {
			
		ready: (function() {
		
			var complete = false, readyStatus = { loaded: 1, complete: 1 };
		
			var queue = [], perform = function() {
				if (complete) return;
				complete = true;
				for (var fn; fn = queue.shift(); fn());
			};
			
			// Gecko, Opera, WebKit r26101+
			
			if (document.addEventListener) {
				document.addEventListener('DOMContentLoaded', perform, false);
				window.addEventListener('pageshow', perform, false); // For cached Gecko pages
			}
			
			// Old WebKit, Internet Explorer
			
			if (!window.opera && document.readyState) (function() {
				readyStatus[document.readyState] ? perform() : setTimeout(arguments.callee, 10);
			})();
			
			// Internet Explorer
			
			if (document.readyState && document.createStyleSheet) (function() {
				try {
					document.body.doScroll('left');
					perform();
				}
				catch (e) {
					setTimeout(arguments.callee, 1);
				}
			})();
			
			addEvent(window, 'load', perform); // Fallback
			
			return function(listener) {
				if (!arguments.length) perform();
				else complete ? listener() : queue.push(listener);
			};
			
		})()
		
	};

	var CSS = api.CSS = {
	
		Size: function(value, base) {
		
			this.value = parseFloat(value);
			this.unit = String(value).match(/[a-z%]*$/)[0] || 'px';
		
			this.convert = function(value) {
				return value / base * this.value;
			};
			
			this.convertFrom = function(value) {
				return value / this.value * base;
			};
			
			this.toString = function() {
				return this.value + this.unit;
			};

		},
	
		getStyle: function(el) {
			var view = document.defaultView;
			if (view && view.getComputedStyle) return new Style(view.getComputedStyle(el, null));
			if (el.currentStyle) return new Style(el.currentStyle);
			return new Style(el.style);
		},
		
		ready: (function() {
			
			var complete = false;
			
			var queue = [], perform = function() {
				complete = true;
				for (var fn; fn = queue.shift(); fn());
			};
			
			// Safari 2 does not include <style> elements in document.styleSheets.
			// Safari 2 also does not support Object.prototype.propertyIsEnumerable.
			
			var styleElements = Object.prototype.propertyIsEnumerable ? elementsByTagName('style') : { length: 0 };
			var linkElements = elementsByTagName('link');
			
			DOM.ready(function() {
				// These checks are actually only needed for WebKit-based browsers, but don't really hurt other browsers.
				var linkStyles = 0, link;
				for (var i = 0, l = linkElements.length; link = linkElements[i], i < l; ++i) {
					// WebKit does not load alternate stylesheets.
					if (!link.disabled && link.rel.toLowerCase() == 'stylesheet') ++linkStyles;
				}
				if (document.styleSheets.length >= styleElements.length + linkStyles) perform();
				else setTimeout(arguments.callee, 10);
			});
			
			return function(listener) {
				if (complete) listener();
				else queue.push(listener);
			};
			
		})(),

		supports: function(property, value) {
			var checker = document.createElement('span').style;
			if (checker[property] === undefined) return false;
			checker[property] = value;
			return checker[property] === value;
		},
		
		textAlign: function(word, style, position, wordCount) {
			if (style.get('textAlign') == 'right') {
				if (position > 0) word = ' ' + word;
			}
			else if (position < wordCount - 1) word += ' ';
			return word;
		},
		
		textDecoration: function(el, style) {
			if (!style) style = this.getStyle(el);
			var types = {
				underline: null,
				overline: null,
				'line-through': null
			};
			for (var search = el; search.parentNode && search.parentNode.nodeType == 1; ) {
				var foundAll = true;
				for (var type in types) {
					if (types[type]) continue;
					if (style.get('textDecoration').indexOf(type) != -1) types[type] = style.get('color');
					foundAll = false;
				}
				if (foundAll) break; // this is rather unlikely to happen
				style = this.getStyle(search = search.parentNode);
			}
			return types;
		},
		
		textShadow: cached(function(value) {
			if (value == 'none') return null;
			var shadows = [], currentShadow = {}, result, offCount = 0;
			var re = /(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;
			while (result = re.exec(value)) {
				if (result[0] == ',') {
					shadows.push(currentShadow);
					currentShadow = {}, offCount = 0;
				}
				else if (result[1]) {
					currentShadow.color = result[1];
				}
				else {
					currentShadow[[ 'offX', 'offY', 'blur' ][offCount++]] = result[2];
				}
			}
			shadows.push(currentShadow);
			return shadows;
		}),
		
		color: cached(function(value) {
			var parsed = {};
			parsed.color = value.replace(/^rgba\((.*?),\s*([\d.]+)\)/, function($0, $1, $2) {
				parsed.opacity = parseFloat($2);
				return 'rgb(' + $1 + ')';
			});
			return parsed;
		}),
		
		textTransform: function(text, style) {
			return text[{
				uppercase: 'toUpperCase',
				lowercase: 'toLowerCase'
			}[style.get('textTransform')] || 'toString']();
		}
		
	};
	
	api.VML = {
	
		parsePath: function(path) {
			var cmds = [], re = /([mrvxe])([^a-z]*)/g, match;
			while (match = re.exec(path)) {
				cmds.push({
					type: match[1],
					coords: match[2].split(',')
				});
			}
			return cmds;
		}
			
	};
	
	function Font(data) {
		
		var face = this.face = data.face;
		this.glyphs = data.glyphs;
		this.w = data.w;
		this.baseSize = parseInt(face['units-per-em'], 10);
		
		this.family = face['font-family'].toLowerCase();
		this.weight = face['font-weight'];
		this.style = face['font-style'] || 'normal';
		
		this.viewBox = (function () {
			var parts = face.bbox.split(/\s+/);
			return {
				minX: parseInt(parts[0], 10),
				minY: parseInt(parts[1], 10),
				width: parseInt(parts[2], 10) - parseInt(parts[0], 10),
				height: parseInt(parts[3], 10) - parseInt(parts[1], 10),
				toString: function() {
					return [ this.minX, this.minY, this.width, this.height ].join(' ');
				}
			};
		})();
		
		this.ascent = -parseInt(face.ascent, 10);
		this.descent = -parseInt(face.descent, 10);
		
		this.height = -this.ascent + this.descent;
		
	}
	
	function FontFamily() {

		var styles = {}, mapping = {
			oblique: 'italic',
			italic: 'oblique'
		};
		
		this.add = function(font) {
			(styles[font.style] || (styles[font.style] = {}))[font.weight] = font;
		};
		
		this.get = function(style, weight) {
			var weights = styles[style] || styles[mapping[style]]
				|| styles.normal || styles.italic || styles.oblique;
			if (!weights) return null;
			// we don't have to worry about "bolder" and "lighter"
			// because IE's currentStyle returns a numeric value for it,
			// and other browsers use the computed value anyway
			weight = {
				normal: 400,
				bold: 700
			}[weight] || parseInt(weight, 10);
			if (weights[weight]) return weights[weight];
			// http://www.w3.org/TR/CSS21/fonts.html#propdef-font-weight
			// Gecko uses x99/x01 for lighter/bolder
			var up = {
				1: 1,
				99: 0
			}[weight % 100], alts = [], min, max;
			if (up === undefined) up = weight > 400;
			if (weight == 500) weight = 400;
			for (var alt in weights) {
				alt = parseInt(alt, 10);
				if (!min || alt < min) min = alt;
				if (!max || alt > max) max = alt;
				alts.push(alt);
			}
			if (weight < min) weight = min;
			if (weight > max) weight = max;
			alts.sort(function(a, b) {
				return (up
					? (a > weight && b > weight) ? a < b : a > b
					: (a < weight && b < weight) ? a > b : a < b) ? -1 : 1;
			});
			return weights[alts[0]];
		};
	
	}
	
	function Storage() {
		
		var map = {}, at = 0;
		
		function identify(el) {
			return el.cufid || (el.cufid = ++at);
		}
		
		this.get = function(el) {
			var id = identify(el);
			return map[id] || (map[id] = {});
		};
		
	}
	
	function Style(style) {
		
		var custom = {}, sizes = {};
		
		this.get = function(property) {
			return custom[property] != undefined ? custom[property] : style[property];
		};
		
		this.getSize = function(property, base) {
			return sizes[property] || (sizes[property] = new CSS.Size(this.get(property), base));
		};
		
		this.extend = function(styles) {
			for (var property in styles) custom[property] = styles[property];
			return this;
		};
		
	}
	
	function addEvent(el, type, listener) {
		if (el.addEventListener) {
			el.addEventListener(type, listener, false);
		}
		else if (el.attachEvent) {
			el.attachEvent('on' + type, function() {
				return listener.apply(el, arguments);
			});
		}
	}
	
	function cached(fun) {
		var cache = {};
		return function(key) {
			if (!cache.hasOwnProperty(key)) cache[key] = fun.apply(null, arguments);
			return cache[key];
		};	
	}
	
	function getFont(el, style) {
		if (!style) style = CSS.getStyle(el);
		var families = style.get('fontFamily').split(/\s*,\s*/), family;
		for (var i = 0, l = families.length; i < l; ++i) {
			family = families[i].replace(/^(["'])(.*?)\1$/, '$2').toLowerCase();
			if (fonts[family]) return fonts[family].get(style.get('fontStyle'), style.get('fontWeight'));
		}
		return null;
	}
	
	function elementsByTagName(query) {
		return document.getElementsByTagName(query);
	}
	
	function merge() {
		var merged = {}, key;
		for (var i = 0, l = arguments.length; i < l; ++i) {
			for (key in arguments[i]) merged[key] = arguments[i][key];
		}
		return merged;
	}
	
	function process(font, text, style, options, node, el) {
		var separate = options.separate;
		if (separate == 'none') return engines[options.engine].apply(null, arguments);
		var fragment = document.createDocumentFragment(), processed;
		var parts = text.split(separators[separate]), needsAligning = (separate == 'words');
		if (needsAligning && HAS_BROKEN_REGEXP) {
			// @todo figure out a better way to do this
			if (/^\s/.test(text)) parts.unshift('');
			if (/\s$/.test(text)) parts.push('');
		}
		for (var i = 0, l = parts.length; i < l; ++i) {
			processed = engines[options.engine](font,
				needsAligning ? CSS.textAlign(parts[i], style, i, l) : parts[i],
				style, options, node, el, i < l - 1);
			if (processed) fragment.appendChild(processed);
		}
		return fragment;
	}
	
	function replaceElement(el, options) {
		var storage = sharedStorage.get(el);
		if (!options) options = storage.options;
		var font, style, nextNode;
		for (var node = el.firstChild; node; node = nextNode) {
			nextNode = node.nextSibling;
			if (node.nodeType == 1) {
				if (!node.firstChild) continue;
				if (!/cufon/.test(node.className)) {
					arguments.callee(node, options);
					continue;
				}
			}
			var text = node.nodeType == 3 ? node.data : node.alt;
			if (text === '') continue;
			if (!style) style = CSS.getStyle(el).extend(options);
			if (!font) font = getFont(el, style);
			if (!font) continue;
			var processed = process(font, text, style, options, node, el);
			if (processed) node.parentNode.replaceChild(processed, node);
			else node.parentNode.removeChild(node);
		}
		if (!storage.options) {
			storage.options = options;
		}
	}
	
	var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0;
	
	var sharedStorage = new Storage();
	var replaceHistory = [];
	
	var engines = {}, fonts = {}, defaultOptions = {
		enableTextDecoration: false,
		engine: null,
		//fontScale: 1,
		//fontScaling: false,
		//hover: false,
		printable: true,
		//rotation: 0,
		//selectable: false,
		selector: (
				window.Sizzle
			||	(window.dojo && dojo.query)
			||	(window.$$ && function(query) { return $$(query); })
			||	window.$
			||	(document.querySelectorAll && function(query) { return document.querySelectorAll(query); })
			||	elementsByTagName
		),
		separate: 'words', // 'none' and 'characters' are also accepted
		textShadow: 'none'
	};
	
	var separators = {
		words: /\s+/,
		characters: ''
	};
	
	api.now = function() {
		DOM.ready();
		return api;
	};
	
	api.refresh = function() {
		var currentHistory = replaceHistory.splice(0, replaceHistory.length);
		for (var i = 0, l = currentHistory.length; i < l; ++i) {
			api.replace.apply(null, currentHistory[i]);
		}
		return api;
	};
	
	api.registerEngine = function(id, engine) {
		if (!engine) return api;
		engines[id] = engine;
		return api.set('engine', id);
	};
	
	api.registerFont = function(data) {
		var font = new Font(data), family = font.family;
		if (!fonts[family]) fonts[family] = new FontFamily();
		fonts[family].add(font);
		return api.set('fontFamily', family);
	};
	
	api.replace = function(elements, options, ignoreHistory) {
		options = merge(defaultOptions, options);
		if (!options.engine) return api; // there's no browser support so we'll just stop here
		if (typeof options.textShadow == 'string')
			options.textShadow = CSS.textShadow(options.textShadow);
		if (!ignoreHistory) replaceHistory.push(arguments);
		if (elements.nodeType || typeof elements == 'string') elements = [ elements ];
		CSS.ready(function() {
			for (var i = 0, l = elements.length; i < l; ++i) {
				var el = elements[i];
				if (typeof el == 'string') api.replace(options.selector(el), options, true);
				else replaceElement(el, options);
			}
		});
		return api;
	};
	
	api.set = function(option, value) {
		defaultOptions[option] = value;
		return api;
	};
	
	return api;
	
})();

Cufon.registerEngine('canvas', (function() {

	// Safari 2 doesn't support .apply() on native methods
	
	var check = document.createElement('canvas');
	if (!check || !check.getContext || !check.getContext.apply) return null;
	check = null;
	
	var HAS_INLINE_BLOCK = Cufon.CSS.supports('display', 'inline-block');
	
	// Firefox 2 w/ non-strict doctype (almost standards mode)
	var HAS_BROKEN_LINEHEIGHT = !HAS_INLINE_BLOCK && (document.compatMode == 'BackCompat' || /frameset|transitional/i.test(document.doctype.publicId));
	
	var styleSheet = document.createElement('style');
	styleSheet.type = 'text/css';
	styleSheet.appendChild(document.createTextNode(
		'@media screen,projection{' +
			'.cufon-canvas{display:inline;display:inline-block;position:relative;vertical-align:middle' + 
			(HAS_BROKEN_LINEHEIGHT
				? ''
				: ';font-size:1px;line-height:1px') +
			'}.cufon-canvas .cufon-alt{display:none}' +
			(HAS_INLINE_BLOCK
				? '.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(styleSheet);

	function generateFromVML(path, context) {
		var atX = 0, atY = 0;
		var cmds = Cufon.VML.parsePath(path);
		var code = new Array(cmds.length - 1);
		generate: for (var i = 0, l = cmds.length; i < l; ++i) {
			var c = cmds[i].coords;
			switch (cmds[i].type) {
				case 'v':
					code[i] = { m: 'bezierCurveTo', a: [ atX + Number(c[0]), atY + Number(c[1]), atX + Number(c[2]), atY + Number(c[3]), atX += Number(c[4]), atY += Number(c[5]) ] };
					break;
				case 'r':
					code[i] = { m: 'lineTo', a: [ atX += Number(c[0]), atY += Number(c[1]) ] };
					break;
				case 'm':
					code[i] = { m: 'moveTo', a: [ atX = Number(c[0]), atY = Number(c[1]) ] };
					break;
				case 'x':
					code[i] = { m: 'closePath' };
					break;
				case 'e':
					break generate;
			}
			context[code[i].m].apply(context, code[i].a);
		}
		return code;
	}
	
	function interpret(code, context) {
		for (var i = 0, l = code.length; i < l; ++i) {
			var line = code[i];
			context[line.m].apply(context, line.a);
		}
	}
	
	return function(font, text, style, options, node, el) {
		
		var viewBox = font.viewBox;
		
		var size = style.getSize('fontSize', font.baseSize);
		
		var letterSpacing = style.get('letterSpacing');
		letterSpacing = (letterSpacing == 'normal') ? 0 : size.convertFrom(parseInt(letterSpacing, 10));
		
		var expandTop = 0, expandRight = 0, expandBottom = 0, expandLeft = 0;
		var shadows = options.textShadow, shadowOffsets = [];
		if (shadows) {
			for (var i = 0, l = shadows.length; i < l; ++i) {
				var shadow = shadows[i];
				var x = size.convertFrom(parseFloat(shadow.offX));
				var y = size.convertFrom(parseFloat(shadow.offY));
				shadowOffsets[i] = [ x, y ];
				if (y < expandTop) expandTop = y;
				if (x > expandRight) expandRight = x;
				if (y > expandBottom) expandBottom = y;
				if (x < expandLeft) expandLeft = x;
			}
		}
		
		var chars = Cufon.CSS.textTransform(text, style).split('');
		
		var width = 0, lastWidth = null;
		
		for (var i = 0, l = chars.length; i < l; ++i) {
			var glyph = font.glyphs[chars[i]] || font.missingGlyph;
			if (!glyph) continue;
			width += lastWidth = Number(glyph.w || font.w) + letterSpacing;
		}
		
		if (lastWidth === null) return null; // there's nothing to render
		
		expandRight += (viewBox.width - lastWidth);
		expandLeft += viewBox.minX;
		
		var wrapper = document.createElement('span');
		wrapper.className = 'cufon cufon-canvas';
		wrapper.alt = text;
		
		var canvas = document.createElement('canvas');
		
		var wStyle = wrapper.style;
		var cStyle = canvas.style;
		
		var height = size.convert(viewBox.height - expandTop + expandBottom);
		var roundedHeight = Math.ceil(height);
		var roundingFactor = roundedHeight / height;
		
		canvas.width = Math.ceil(size.convert(width + expandRight - expandLeft) * roundingFactor);
		canvas.height = roundedHeight;
		
		// minY has no part in canvas.height
		expandTop += viewBox.minY;
		
		cStyle.top = Math.round(size.convert(expandTop - font.ascent)) + 'px';
		cStyle.left = Math.round(size.convert(expandLeft)) + 'px';
		
		var wrapperWidth = Math.ceil(size.convert(width * roundingFactor)) + 'px';
		
		if (HAS_INLINE_BLOCK) {
			wStyle.width = wrapperWidth;
			wStyle.height = size.convert(font.height) + 'px';
		}
		else {
			wStyle.paddingLeft = wrapperWidth;
			wStyle.paddingBottom = (size.convert(font.height) - 1) + 'px';
		}
		
		var g = canvas.getContext('2d'), scale = roundedHeight / viewBox.height;
		
		g.scale(scale, scale);
		g.translate(-expandLeft, -expandTop);
		
		g.lineWidth = font.face['underline-thickness'];
		
		g.save();
		
		function line(y, color) {
			g.strokeStyle = color;
			
			g.beginPath();
			
			g.moveTo(0, y);
			g.lineTo(width, y);
			
			g.stroke();
		}
		
		var textDecoration = options.enableTextDecoration ? Cufon.CSS.textDecoration(el, style) : {};
		
		if (textDecoration.underline) line(-font.face['underline-position'], textDecoration.underline);
		if (textDecoration.overline) line(font.ascent, textDecoration.overline);
		
		g.fillStyle = style.get('color');
		
		function renderText() {
			for (var i = 0, l = chars.length; i < l; ++i) {
				var glyph = font.glyphs[chars[i]] || font.missingGlyph;
				if (!glyph) continue;
				g.beginPath();
				if (glyph.d) {
					if (glyph.code) interpret(glyph.code, g);
					else glyph.code = generateFromVML('m' + glyph.d, g);
				}
				g.fill();
				g.translate(Number(glyph.w || font.w) + letterSpacing, 0);
			}
		}
		
		if (shadows) {
			for (var i = 0, l = shadows.length; i < l; ++i) {
				var shadow = shadows[i];
				g.save();
				g.fillStyle = shadow.color;
				g.translate.apply(g, shadowOffsets[i]);
				renderText();
				g.restore();
			}
		}
		
		renderText();
		
		g.restore();
		
		if (textDecoration['line-through']) line(-font.descent, textDecoration['line-through']);
		
		wrapper.appendChild(canvas);
		
		if (options.printable) {
			var print = document.createElement('span');
			print.className = 'cufon-alt';
			print.appendChild(document.createTextNode(text));
			wrapper.appendChild(print);
		}
		
		return wrapper;
			
	};
	
})());

Cufon.registerEngine('vml', (function() {

	if (!document.namespaces) return;

	// isn't undocumented stuff great?
	document.write('<!--[if vml]><script type="text/javascript">Cufon.vmlEnabled=true;</script><![endif]-->');
	if (!Cufon.vmlEnabled) return;
	
	if (document.namespaces['cvml'] == null) {
		document.namespaces.add('cvml', 'urn:schemas-microsoft-com:vml');
		document.write('<style type="text/css">' +
			'@media screen{' + 
				'cvml\\:shape,cvml\\:group,cvml\\:shapetype,cvml\\:fill{behavior:url(#default#VML);display:inline-block;antialias:true;position:absolute}' +
				'.cufon-vml{display:inline-block;position:relative;vertical-align:middle}' +
				'.cufon-vml .cufon-alt{display:none}' +
				'a .cufon-vml{cursor:pointer}' +
			'}' +
			'@media print{' + 
				'.cufon-vml *{display:none}' +
				'.cufon-vml .cufon-alt{display:inline}' +
			'}' +
		'</style>');
		// modified by Nathan 03/03/09.
		/*document.write('<style type="text/css">' +
			'@media screen{' + 
				'cvml\\:shape,cvml\\:group,cvml\\:shapetype,cvml\\:fill{behavior:url(#default#VML);display:inline-block;antialias:true}' +
				'.cufon-vml{display:inline-block;position:relative;vertical-align:middle}' +
				'.cufon-vml .cufon-alt{display:none}' +
				'a .cufon-vml{cursor:pointer}' +
			'}' +
			'@media print{' + 
				'.cufon-vml *{display:none}' +
				'.cufon-vml .cufon-alt{display:inline}' +
			'}' +
		'</style>');*/
	}

	var typeIndex = 0; // this is used to reference VML ShapeTypes

	function getFontSizeInPixels(el, value) {
		return getSizeInPixels(el, /(?:em|ex|%)$/i.test(value) ? '1em' : value);
	}
	
	// Original by Dead Edwards.
	// Combined with getFontSizeInPixels it also works with relative units.
	function getSizeInPixels(el, value) {
		if (/px$/i.test(value)) return parseFloat(value);
		var style = el.style.left, runtimeStyle = el.runtimeStyle.left;
		el.runtimeStyle.left = el.currentStyle.left;
		el.style.left = value;
		var result = el.style.pixelLeft;
		el.style.left = style;
		el.runtimeStyle.left = runtimeStyle;
		return result;
	}
	
	function createType(glyph, viewBox) {
		var shapeType = document.createElement('cvml:shapetype');
		shapeType.id = 'cufon-glyph-' + typeIndex++;
		glyph.typeRef = '#' + shapeType.id;
		shapeType.stroked = 'f';
		shapeType.coordsize = viewBox.width + ',' + viewBox.height;
		shapeType.coordorigin = viewBox.minX + ',' + viewBox.minY;
		var ensureSize = 'm' + viewBox.minX + ',' + viewBox.minY + ' r' + viewBox.width + ',' + viewBox.height;
		shapeType.path = (glyph.d ? 'm' + glyph.d + 'x' : '') + ensureSize;
		document.body.insertBefore(shapeType, document.body.firstChild);
	}
	
	return function(font, text, style, options, node, el, hasNext) {
	
		// @todo word-spacing, text-decoration
	
		var viewBox = font.viewBox;
		
		var size = style.computedFontSize || (style.computedFontSize = new Cufon.CSS.Size(getFontSizeInPixels(el, style.get('fontSize')) + 'px', font.baseSize));
		
		var letterSpacing = style.computedLSpacing;
		
		if (letterSpacing == undefined) {
			letterSpacing = style.get('letterSpacing');
			style.computedLSpacing = letterSpacing = (letterSpacing == 'normal') ? 0 : size.convertFrom(getSizeInPixels(el, letterSpacing));
		}
		
		var wrapper = document.createElement('span');
		wrapper.className = 'cufon cufon-vml';
		wrapper.alt = text;
		
		var canvas = document.createElement('cvml:group');
		
		var wStyle = wrapper.runtimeStyle;
		var cStyle = canvas.runtimeStyle;
		
		var height = size.convert(viewBox.height);
		
		cStyle.height = Math.ceil(height);
		cStyle.top = Math.round(size.convert(viewBox.minY - font.ascent));
		cStyle.left = Math.round(size.convert(viewBox.minX));
		
		var roundingFactor = parseInt(cStyle.height, 10) / height;
		
		wStyle.height = size.convert(-font.ascent + font.descent) + 'px';
		
		var textDecoration = options.enableTextDecoration ? Cufon.CSS.textDecoration(el, style) : {};
		
		var color = style.get('color');
		var chars = Cufon.CSS.textTransform(text, style).split('');
		
		var width = 0, offsetX = 0, advance = null;
		
		var shadows = options.textShadow;
		
		for (var i = 0, l = chars.length; i < l; ++i) {
		
			var glyph = font.glyphs[chars[i]] || font.missingGlyph;
			if (!glyph) continue;
			
			if (!glyph.typeRef) createType(glyph, viewBox);
			
			var shape = document.createElement('cvml:shape');
			shape.type = glyph.typeRef;
			var sStyle = shape.runtimeStyle;
			sStyle.width = viewBox.width;
			sStyle.height = viewBox.height;
			sStyle.top = 0;
			sStyle.left = offsetX;
			sStyle.zIndex = 1;
			shape.fillcolor = color;
			canvas.appendChild(shape);
			
			if (shadows) {
				// the VML shadow element is not used because it can only support
				// up to 2 shadows. and it breaks text selection.
				for (var z = 0, p = shadows.length; z < p; ++z) {
					var shadow = shadows[z];
					var shadowColor = Cufon.CSS.color(shadow.color);
					var shadowNode = shape.cloneNode(false), zStyle = shadowNode.runtimeStyle;
					zStyle.top = size.convertFrom(parseFloat(shadow.offY));
					zStyle.left = offsetX + size.convertFrom(parseFloat(shadow.offX));
					zStyle.zIndex = 0;
					shadowNode.fillcolor = shadowColor.color;
					if (shadowColor.opacity) {
						var shadowFill = document.createElement('cvml:fill');
						shadowFill.opacity = shadowColor.opacity;
						shadowNode.appendChild(shadowFill);
					}
					canvas.appendChild(shadowNode);
				}
			}
			
			advance = Number(glyph.w || font.w) + letterSpacing;
			
			width += advance;
			offsetX += advance;
			
		}
		
		if (advance === null) return null;
		
		var fullWidth = -viewBox.minX + width + (viewBox.width - advance);
		
		canvas.coordsize = fullWidth + ',' + viewBox.height;
		
		cStyle.width = size.convert(fullWidth * roundingFactor);
		
		wStyle.width = Math.max(Math.ceil(size.convert(width * roundingFactor)), 0);
		
		wrapper.appendChild(canvas);
	
		if (options.printable) {
			var print = document.createElement('span');
			print.className = 'cufon-alt';
			print.innerText = text;
			wrapper.appendChild(print);
		}
		
		// ie6, for some reason, has trouble rendering the last VML element in the document.
		// we can work around this by injecting a dummy element where needed.
		// @todo find a better solution
		if (!hasNext) wrapper.appendChild(document.createElement('cvml:group'));
		
		return wrapper;
		
	};
	
})());


Cufon.registerFont({"w":556,"face":{"font-family":"Helvetica Neue","font-weight":500,"font-stretch":"normal","units-per-em":"1000","panose-1":"2 11 6 0 0 0 0 0 0 0","ascent":"779","descent":"-221","x-height":"14","bbox":"-29 -809 938 214","underline-thickness":"50","underline-position":"-100","stemh":"90","stemv":"114","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":278},"\u00a0":{"w":278},"!":{"d":"77,-508r0,-206r125,0r0,206r-33,309r-59,0xm72,0r0,-125r134,0r0,125r-134,0","w":278},"\"":{"d":"83,-432r0,-282r102,0r0,282r-102,0xm259,-432r0,-282r102,0r0,282r-102,0","w":444},"#":{"d":"495,-285r0,75r-95,0r-30,210r-80,0r29,-210r-110,0r-30,210r-80,0r29,-210r-94,0r0,-75r105,0r18,-130r-94,0r0,-75r104,0r29,-210r81,0r-30,210r111,0r29,-210r81,0r-30,210r86,0r0,75r-96,0r-18,130r85,0xm348,-415r-111,0r-18,130r111,0"},"$":{"d":"302,-306r0,233v72,-5,123,-39,123,-119v0,-75,-61,-98,-123,-114xm17,-217r114,0v-1,88,37,141,128,144r0,-242v-109,-30,-227,-74,-227,-220v0,-127,108,-196,227,-196r0,-78r43,0r0,78v120,0,219,63,219,195r-114,0v-3,-67,-34,-105,-105,-105r0,211v121,32,237,77,237,222v0,150,-104,219,-237,225r0,78r-43,0r0,-78v-144,-3,-244,-85,-242,-234xm259,-441r0,-200v-72,0,-113,28,-113,98v0,65,57,88,113,102"},"%":{"d":"260,24r389,-748r76,0r-387,748r-78,0xm751,14v-121,0,-167,-90,-167,-199v0,-108,50,-199,167,-199v117,0,167,91,167,199v0,109,-46,199,-167,199xm674,-185v0,75,20,134,76,134v56,0,78,-59,78,-134v0,-67,-16,-134,-78,-134v-62,0,-76,67,-76,134xm249,-316v-121,0,-167,-90,-167,-199v0,-108,50,-199,167,-199v117,0,167,91,167,199v0,109,-46,199,-167,199xm172,-515v0,75,20,134,76,134v56,0,78,-59,78,-134v0,-67,-16,-134,-78,-134v-62,0,-76,67,-76,134","w":1000},"&":{"d":"302,-646v-42,0,-76,31,-76,79v0,47,39,83,65,119v43,-29,84,-59,84,-116v0,-47,-29,-82,-73,-82xm396,-156r-140,-174v-42,26,-110,49,-110,134v0,77,49,120,115,120v83,0,113,-51,135,-80xm522,0r-65,-80v-53,65,-117,94,-200,94v-131,0,-225,-78,-225,-212v0,-101,82,-165,164,-207v-37,-47,-72,-94,-72,-156v0,-103,78,-170,175,-170v92,0,178,57,178,171v0,84,-60,144,-129,181r111,134v8,-22,17,-50,22,-96r100,0v-7,62,-24,125,-56,175r137,166r-140,0","w":648},"(":{"d":"286,191r-93,0v-80,-127,-144,-270,-144,-461v0,-161,53,-321,144,-461r93,0v-161,277,-167,646,0,922","w":278},")":{"d":"-8,-731r93,0v80,128,144,271,144,462v0,161,-53,321,-144,460r-93,0v161,-276,167,-645,0,-922","w":278},"*":{"d":"130,-534r-111,-38r22,-65r110,43r0,-120r68,0r0,120r109,-43r24,65r-114,38r70,94r-53,39r-71,-98r-68,98r-56,-39","w":370},"+":{"d":"249,-304r0,-202r102,0r0,202r201,0r0,102r-201,0r0,202r-102,0r0,-202r-201,0r0,-102r201,0","w":600},",":{"d":"69,0r0,-135r139,0r0,135v-1,82,-56,142,-135,158r0,-61v44,-11,66,-54,65,-97r-69,0","w":278},"-":{"d":"49,-218r0,-108r291,0r0,108r-291,0","w":389},"\u00ad":{"d":"49,-218r0,-108r291,0r0,108r-291,0","w":389},".":{"d":"69,0r0,-135r139,0r0,135r-139,0","w":278},"\/":{"d":"-22,17r287,-748r109,0r-287,748r-109,0","w":352},"0":{"d":"278,-81v100,0,128,-123,128,-269v0,-146,-28,-269,-128,-269v-100,0,-128,123,-128,269v0,146,28,269,128,269xm278,-714v201,0,242,205,242,364v0,159,-41,364,-242,364v-201,0,-242,-205,-242,-364v0,-159,41,-364,242,-364"},"1":{"d":"53,-494r0,-90v96,1,187,-32,204,-116r93,0r0,700r-125,0r0,-494r-172,0"},"2":{"d":"517,-102r0,102r-478,0v1,-115,60,-202,154,-265v91,-66,209,-121,211,-230v1,-50,-20,-124,-118,-124v-90,0,-117,77,-120,175r-114,0v0,-155,85,-270,241,-270v171,0,225,125,225,215v0,111,-76,180,-156,236v-81,56,-166,99,-186,161r341,0"},"3":{"d":"228,-325r0,-85v76,3,155,-24,155,-110v0,-59,-46,-99,-109,-99v-79,0,-118,71,-116,143r-114,0v6,-136,91,-238,232,-238v109,0,221,63,221,187v2,72,-36,124,-99,152v79,16,127,85,127,175v0,132,-114,214,-248,214v-162,0,-243,-98,-246,-244r114,0v-3,85,43,149,132,149v76,0,134,-45,134,-125v0,-109,-93,-123,-183,-119"},"4":{"d":"522,-256r0,90r-90,0r0,166r-108,0r0,-166r-300,0r0,-113r300,-421r108,0r0,444r90,0xm322,-564r-210,308r212,0r0,-308r-2,0"},"5":{"d":"48,-317r75,-383r362,0r0,102r-277,0r-36,178r2,2v31,-34,82,-53,129,-53v139,0,219,100,219,234v0,112,-70,251,-242,251v-135,0,-240,-73,-245,-213r114,0v7,75,55,118,129,118v97,0,130,-69,130,-154v0,-77,-41,-146,-133,-146v-48,0,-95,15,-113,64r-114,0"},"6":{"d":"285,-81v82,0,123,-71,123,-146v0,-75,-41,-143,-123,-143v-83,0,-126,66,-126,143v0,76,43,146,126,146xm509,-523r-114,0v-5,-57,-43,-96,-102,-96v-124,0,-138,148,-145,240r2,2v31,-55,89,-83,151,-83v139,0,221,101,221,235v0,136,-93,239,-233,239v-206,0,-255,-162,-255,-366v0,-167,66,-362,264,-362v111,0,205,77,211,191"},"7":{"d":"35,-598r0,-102r479,0r0,95v-146,165,-243,352,-261,605r-125,0v15,-221,126,-436,270,-598r-363,0"},"8":{"d":"278,-76v76,0,133,-48,133,-130v0,-77,-57,-123,-133,-123v-76,0,-133,46,-133,123v0,82,57,130,133,130xm278,14v-142,0,-247,-83,-247,-220v-2,-90,54,-148,128,-173v-63,-24,-99,-76,-99,-144v0,-119,79,-191,218,-191v139,0,218,72,218,191v2,70,-40,118,-99,146v78,20,128,83,128,171v0,137,-105,220,-247,220xm278,-624v-61,0,-110,38,-110,107v0,66,47,103,110,103v63,0,110,-37,110,-103v0,-69,-49,-107,-110,-107"},"9":{"d":"270,-619v-83,0,-122,67,-122,143v0,76,39,147,122,147v85,0,127,-70,127,-147v0,-75,-42,-143,-127,-143xm47,-177r114,0v5,57,43,96,102,96v124,0,138,-148,145,-240r-2,-2v-30,54,-87,84,-151,84v-132,0,-221,-93,-221,-236v0,-136,88,-239,241,-239v198,0,247,162,247,366v0,167,-66,362,-264,362v-111,0,-205,-77,-211,-191"},":":{"d":"69,-371r0,-135r139,0r0,135r-139,0xm69,0r0,-135r139,0r0,135r-139,0","w":278},";":{"d":"69,0r0,-135r139,0r0,135v-1,82,-56,142,-135,158r0,-61v44,-11,66,-54,65,-97r-69,0xm69,-371r0,-135r139,0r0,135r-139,0","w":278},"<":{"d":"554,-94r0,102r-508,-225r0,-72r508,-225r0,102r-374,159","w":600},"=":{"d":"552,-405r0,102r-504,0r0,-102r504,0xm552,-203r0,102r-504,0r0,-102r504,0","w":600},">":{"d":"46,-94r374,-159r-374,-159r0,-102r508,225r0,72r-508,225r0,-102","w":600},"?":{"d":"507,-529v1,186,-182,149,-176,335r-108,0v0,-117,25,-157,78,-203v43,-37,81,-61,81,-128v0,-81,-62,-111,-98,-111v-82,0,-121,59,-121,149r-114,0v-1,-147,93,-244,240,-244v122,0,218,73,218,202xm208,0r0,-125r134,0r0,125r-134,0"},"@":{"d":"361,-216v79,0,137,-105,137,-178v0,-47,-36,-88,-79,-88v-83,0,-138,100,-138,175v0,53,31,91,80,91xm615,-542r-72,263v-10,31,-17,69,10,69v62,0,130,-94,130,-216v0,-149,-121,-240,-267,-240v-170,0,-287,133,-287,300v0,195,127,318,296,318v87,0,171,-37,225,-99r70,0v-64,103,-176,164,-299,164v-206,0,-372,-158,-372,-387v0,-202,168,-361,367,-361v178,0,335,121,335,293v0,201,-155,298,-236,298v-34,2,-54,-24,-61,-58v-27,30,-69,57,-112,57v-83,0,-146,-71,-146,-157v0,-127,88,-259,219,-259v47,0,87,21,112,72r18,-57r70,0","w":800},"A":{"d":"331,-591r-108,307r218,0r-107,-307r-3,0xm-7,0r274,-714r133,0r275,714r-134,0r-67,-189r-285,0r-67,189r-129,0","w":667},"B":{"d":"201,-325r0,223r221,0v76,0,120,-41,120,-113v0,-70,-44,-110,-120,-110r-221,0xm76,0r0,-714r347,0v128,0,212,58,212,177v2,74,-41,122,-102,154v87,19,134,87,134,184v0,112,-78,199,-263,199r-328,0xm201,-612r0,197r204,0v60,0,105,-35,105,-99v0,-72,-37,-98,-105,-98r-204,0","w":704},"C":{"d":"683,-487r-125,0v-21,-82,-74,-142,-178,-142v-153,0,-217,135,-217,272v0,137,64,272,217,272v111,0,172,-83,182,-187r122,0v-10,171,-131,289,-304,289v-214,0,-342,-170,-342,-374v0,-204,128,-374,342,-374v161,1,288,90,303,244","w":722},"D":{"d":"201,-612r0,510r123,0v196,0,238,-112,238,-255v0,-143,-42,-255,-238,-255r-123,0xm76,0r0,-714r296,0v220,0,315,160,315,357v0,197,-95,357,-315,357r-296,0","w":722},"E":{"d":"76,0r0,-714r514,0r0,108r-389,0r0,187r360,0r0,102r-360,0r0,209r396,0r0,108r-521,0","w":630},"F":{"d":"76,0r0,-714r493,0r0,108r-368,0r0,187r323,0r0,102r-323,0r0,317r-125,0","w":593},"G":{"d":"699,-376r0,376r-80,0r-19,-84v-67,76,-128,101,-215,101v-214,0,-342,-170,-342,-374v0,-204,128,-374,342,-374v156,0,287,83,306,244r-122,0v-12,-94,-94,-142,-184,-142v-153,0,-217,135,-217,272v0,137,64,272,217,272v128,2,198,-75,200,-196r-190,0r0,-95r304,0","w":759},"H":{"d":"73,0r0,-714r125,0r0,284r325,0r0,-284r125,0r0,714r-125,0r0,-322r-325,0r0,322r-125,0","w":722},"I":{"d":"76,0r0,-714r125,0r0,714r-125,0","w":278},"J":{"d":"461,-714r0,484v0,124,-30,247,-235,247v-165,-3,-221,-111,-213,-267r125,0v-3,94,8,168,98,165v81,0,100,-49,100,-138r0,-491r125,0","w":537},"K":{"d":"76,0r0,-714r125,0r0,325r318,-325r154,0r-285,285r305,429r-156,0r-234,-341r-102,101r0,240r-125,0","w":685},"L":{"d":"76,0r0,-714r125,0r0,606r363,0r0,108r-488,0","w":574},"M":{"d":"74,0r0,-714r176,0r197,559r2,0r192,-559r174,0r0,714r-119,0r0,-551r-2,0r-198,551r-103,0r-198,-551r-2,0r0,551r-119,0","w":889},"N":{"d":"71,0r0,-714r132,0r326,526r2,0r0,-526r119,0r0,714r-132,0r-325,-525r-3,0r0,525r-119,0","w":722},"O":{"d":"380,-731v214,0,342,170,342,374v0,204,-128,374,-342,374v-214,0,-342,-170,-342,-374v0,-204,128,-374,342,-374xm380,-629v-153,0,-217,135,-217,272v0,137,64,272,217,272v153,0,217,-135,217,-272v0,-137,-64,-272,-217,-272","w":760},"P":{"d":"201,-612r0,236v143,-8,298,43,308,-118v-1,-167,-167,-107,-308,-118xm76,0r0,-714r315,0v204,0,243,132,243,221v0,88,-39,220,-243,219r-190,0r0,274r-125,0","w":667},"Q":{"d":"460,-102r-72,-63r60,-69r87,76v118,-154,74,-471,-155,-471v-153,0,-217,135,-217,272v0,137,64,272,217,272v26,0,55,-5,80,-17xm621,-83r92,80r-61,68r-104,-91v-53,30,-112,43,-168,43v-214,0,-342,-170,-342,-374v0,-204,128,-374,342,-374v214,0,342,170,342,374v0,98,-30,206,-101,274","w":760},"R":{"d":"201,-612r0,223r205,0v79,0,122,-39,122,-114v0,-91,-59,-109,-124,-109r-203,0xm76,0r0,-714r341,0v156,0,236,72,236,193v1,140,-97,168,-118,182v43,6,106,38,106,151v0,83,12,159,39,188r-134,0v-19,-31,-19,-70,-19,-105v0,-131,-27,-189,-142,-189r-184,0r0,294r-125,0","w":704},"S":{"d":"33,-238r125,0v0,110,81,153,181,153v110,0,151,-54,151,-108v0,-55,-30,-77,-59,-88v-50,-19,-115,-32,-213,-59v-122,-33,-158,-107,-158,-181v0,-143,132,-210,261,-210v149,0,274,79,274,228r-125,0v-6,-92,-68,-126,-154,-126v-58,0,-131,21,-131,93v0,50,34,78,85,92v11,3,169,44,206,55v94,28,139,108,139,182v0,160,-142,224,-284,224v-163,0,-295,-78,-298,-255","w":648},"T":{"d":"8,-606r0,-108r578,0r0,108r-227,0r0,606r-125,0r0,-606r-226,0","w":593},"U":{"d":"68,-257r0,-457r125,0r0,416v0,96,6,207,168,207v162,0,168,-111,168,-207r0,-416r125,0r0,457v0,183,-117,274,-293,274v-176,0,-293,-91,-293,-274","w":722},"V":{"d":"233,0r-238,-714r130,0r179,565r2,0r183,-565r127,0r-244,714r-139,0","w":611},"W":{"d":"194,0r-188,-714r127,0r129,546r2,0r144,-546r128,0r140,546r2,0r133,-546r127,0r-197,714r-127,0r-143,-546r-2,0r-146,546r-129,0","w":944},"X":{"d":"250,-370r-236,-344r149,0r162,252r169,-252r140,0r-236,344r253,370r-152,0r-178,-273r-181,273r-143,0","w":648},"Y":{"d":"262,0r0,-280r-268,-434r145,0r189,320r186,-320r140,0r-267,434r0,280r-125,0","w":648},"Z":{"d":"55,-606r0,-108r543,0r0,95r-416,511r426,0r0,108r-585,0r0,-102r416,-504r-384,0","w":630},"[":{"d":"72,191r0,-922r223,0r0,90r-115,0r0,742r115,0r0,90r-223,0","w":296},"\\":{"d":"87,-731r287,748r-109,0r-287,-748r109,0","w":352},"]":{"d":"224,-731r0,922r-223,0r0,-90r115,0r0,-742r-115,0r0,-90r223,0","w":296},"^":{"d":"186,-335r-102,0r180,-365r72,0r180,365r-102,0r-114,-247","w":600},"_":{"d":"500,125r-500,0r0,-50r500,0r0,50","w":500},"a":{"d":"379,-259v-71,46,-232,-1,-233,117v0,51,65,66,105,66v50,0,128,-26,128,-98r0,-85xm493,-381r0,266v-2,42,19,42,55,37r0,79v-62,20,-150,24,-160,-50v-105,100,-353,90,-356,-88v0,-129,103,-150,199,-161v82,-15,155,-6,155,-73v0,-59,-61,-70,-107,-70v-64,0,-109,26,-114,82r-114,0v8,-133,121,-172,235,-172v101,0,207,41,207,150"},"b":{"d":"318,-76v200,0,184,-367,0,-365v-96,0,-145,73,-145,183v0,104,53,182,145,182xm63,0r0,-714r114,0r0,264r2,0v31,-50,96,-81,154,-81v163,0,242,124,242,275v0,139,-70,270,-223,270v-70,0,-145,-17,-179,-85r-2,0r0,71r-108,0","w":611},"c":{"d":"523,-344r-114,0v-9,-63,-55,-97,-118,-97v-59,0,-142,31,-142,188v0,86,38,177,137,177v66,0,112,-44,123,-118r114,0v-21,134,-104,208,-237,208v-162,0,-251,-115,-251,-267v0,-156,85,-278,255,-278v120,0,222,60,233,187"},"d":{"d":"149,-253v0,89,44,177,143,177v102,0,145,-93,145,-183v0,-114,-55,-182,-143,-182v-107,0,-145,95,-145,188xm547,-714r0,714r-108,0v-2,-22,4,-52,-2,-70v-30,59,-95,84,-160,84v-163,0,-242,-121,-242,-276v0,-187,111,-269,224,-269v67,-2,136,27,174,81r0,-264r114,0","w":611},"e":{"d":"529,-229r-380,0v0,81,44,153,139,153v66,0,106,-29,126,-86r108,0v-25,113,-121,176,-234,176v-162,0,-253,-113,-253,-272v0,-147,96,-273,250,-273v163,0,263,147,244,302xm149,-304r266,0v-4,-72,-53,-137,-130,-137v-79,0,-133,60,-136,137"},"f":{"d":"9,-432r0,-85r85,0r0,-43v0,-169,111,-162,223,-147r0,89v-44,-9,-112,-18,-109,48r0,53r97,0r0,85r-97,0r0,432r-114,0r0,-432r-85,0","w":315},"g":{"d":"285,-90v101,0,139,-92,139,-180v0,-89,-40,-171,-139,-171v-101,0,-136,94,-136,180v0,85,41,171,136,171xm538,-517r0,490v0,155,-91,232,-254,232v-104,0,-221,-40,-231,-161r114,0v14,65,66,76,124,76v92,0,133,-47,133,-132v-2,-25,4,-58,-2,-79v-32,57,-91,91,-155,91v-164,0,-232,-124,-232,-272v0,-139,87,-259,234,-259v67,-2,122,31,155,85r0,-71r114,0","w":593},"h":{"d":"60,0r0,-714r114,0r0,265r2,0v28,-47,87,-82,155,-82v112,0,183,60,183,176r0,355r-114,0r0,-325v-2,-81,-34,-116,-101,-116v-76,0,-125,60,-125,136r0,305r-114,0","w":574},"i":{"d":"63,0r0,-517r114,0r0,517r-114,0xm63,-606r0,-108r114,0r0,108r-114,0","w":241},"j":{"d":"63,39r0,-556r114,0r0,561v7,122,-74,178,-199,157r0,-90v15,2,28,4,39,4v42,0,46,-25,46,-76xm63,-606r0,-108r114,0r0,108r-114,0","w":241},"k":{"d":"63,0r0,-714r114,0r0,406r206,-209r140,0r-198,190r217,327r-139,0r-158,-251r-68,66r0,185r-114,0","w":537},"l":{"d":"63,0r0,-714r114,0r0,714r-114,0","w":241},"m":{"d":"60,0r0,-517r108,0r0,72r3,0v34,-51,77,-86,159,-86v63,0,122,27,145,86v38,-53,87,-86,162,-86v109,0,173,48,173,174r0,357r-114,0r0,-302v0,-82,-5,-139,-94,-139v-77,0,-110,51,-110,138r0,303r-114,0r0,-332v0,-71,-22,-109,-91,-109v-59,0,-113,48,-113,134r0,307r-114,0","w":870},"n":{"d":"60,0r0,-517r108,0v2,25,-3,57,2,78v34,-57,93,-92,161,-92v112,0,183,60,183,176r0,355r-114,0r0,-325v-2,-81,-34,-116,-101,-116v-76,0,-125,60,-125,136r0,305r-114,0","w":574},"o":{"d":"297,-76v198,-2,198,-363,0,-365v-199,2,-197,363,0,365xm297,14v-166,0,-261,-114,-261,-273v0,-158,95,-272,261,-272v166,0,261,114,261,272v0,159,-95,273,-261,273","w":593},"p":{"d":"318,-76v200,0,184,-367,0,-365v-96,0,-145,73,-145,183v0,104,53,182,145,182xm63,191r0,-708r108,0v2,22,-4,52,2,70v32,-59,94,-84,160,-84v163,0,242,124,242,275v0,139,-70,270,-223,270v-68,2,-136,-27,-175,-81r0,258r-114,0","w":611},"q":{"d":"149,-258v0,90,39,182,143,182v99,0,145,-74,145,-182v0,-112,-50,-183,-145,-183v-94,0,-143,89,-143,183xm547,-517r0,708r-114,0r0,-258r-2,0v-36,57,-107,81,-173,81v-153,0,-223,-131,-223,-270v0,-151,79,-275,242,-275v68,-2,126,29,162,84r0,-70r108,0","w":611},"r":{"d":"60,0r0,-517r107,0v2,32,-4,72,2,100v16,-66,102,-131,194,-111r0,110v-114,-24,-185,38,-189,172r0,246r-114,0","w":352},"s":{"d":"32,-166r114,0v6,66,56,90,117,90v43,0,118,-9,115,-68v-3,-60,-86,-67,-169,-86v-84,-18,-166,-48,-166,-153v0,-113,122,-148,216,-148v106,0,202,44,216,159r-119,0v-10,-54,-55,-69,-105,-69v-33,0,-94,8,-94,53v0,56,84,64,168,83v83,19,167,49,167,151v0,123,-124,168,-231,168v-130,0,-227,-58,-229,-180","w":519},"t":{"d":"8,-432r0,-85r86,0r0,-155r114,0r0,155r103,0r0,85r-103,0r0,276v0,47,4,71,55,71v16,0,32,0,48,-4r0,88v-25,2,-49,6,-74,6v-119,0,-141,-46,-143,-132r0,-305r-86,0","w":333},"u":{"d":"514,-517r0,517r-112,0v-2,-23,4,-53,-2,-72v-28,52,-90,86,-147,86v-135,0,-193,-68,-193,-203r0,-328r114,0r0,317v0,91,37,124,99,124v95,0,127,-61,127,-141r0,-300r114,0","w":574},"v":{"d":"197,0r-188,-517r124,0r131,397r2,0r126,-397r118,0r-185,517r-128,0","w":519},"w":{"d":"173,0r-160,-517r121,0r101,386r2,0r97,-386r115,0r93,386r2,0r105,-386r116,0r-162,517r-117,0r-96,-384r-2,0r-95,384r-120,0","w":778},"x":{"d":"4,0r195,-272r-179,-245r138,0r108,159r113,-159r132,0r-176,239r198,278r-137,0r-131,-191r-127,191r-134,0","w":537},"y":{"d":"199,-2r-196,-515r125,0r135,386r2,0r131,-386r119,0r-201,545v-37,93,-64,177,-183,177v-27,0,-53,-2,-79,-6r0,-96v18,3,36,7,54,7v70,3,74,-61,93,-112","w":519},"z":{"d":"42,-427r0,-90r420,0r0,80r-296,347r311,0r0,90r-455,0r0,-80r286,-347r-266,0","w":500},"{":{"d":"-4,-225r0,-90v28,0,94,-15,94,-73r0,-206v0,-94,85,-137,128,-137r91,0r0,90r-55,0v-51,0,-56,40,-56,70r0,195v0,84,-75,97,-104,107v32,3,103,14,104,111r0,189v0,30,5,70,56,70r55,0r0,90r-91,0v-43,0,-128,-43,-128,-137r0,-198v0,-65,-66,-81,-94,-81","w":296},"|":{"d":"60,214r0,-1000r102,0r0,1000r-102,0","w":222},"}":{"d":"300,-315r0,90v-28,0,-94,15,-94,73r0,206v0,94,-85,137,-128,137r-91,0r0,-90r55,0v51,0,56,-40,56,-70r0,-195v0,-84,75,-97,104,-107v-32,-3,-103,-14,-104,-111r0,-189v0,-30,-5,-70,-56,-70r-55,0r0,-90r91,0v43,0,128,43,128,137r0,198v0,65,66,81,94,81","w":296},"~":{"d":"194,-338v66,-2,155,64,213,68v40,0,65,-37,88,-68r36,84v-30,42,-63,86,-125,86v-80,0,-130,-70,-217,-68v-44,0,-68,37,-84,68r-36,-84v22,-42,58,-86,125,-86","w":600},"'":{"d":"88,-432r0,-282r102,0r0,282r-102,0","w":278},"`":{"d":"-29,-731r134,0r91,143r-83,0","w":241}}});

Cufon.registerFont({"w":556,"face":{"font-family":"Helvetica Neue","font-weight":300,"font-style":"italic","font-stretch":"normal","units-per-em":"1000","panose-1":"2 11 4 0 0 0 0 0 0 0","ascent":"786","descent":"-214","x-height":"15","bbox":"-137 -786 978 214","underline-thickness":"50","underline-position":"-100","slope":"-12","stemh":"53","stemv":"63","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":278},"\u00a0":{"w":278},"!":{"d":"107,0r-84,0r23,-106r85,0xm122,-178r-38,0r53,-314r48,-222r67,0r-48,223","w":278},"\"":{"d":"137,-471r0,-243r58,0r0,243r-58,0xm262,-471r0,-243r58,0r0,243r-58,0","w":370},"#":{"d":"497,-268r-10,45r-101,0r-31,223r-50,0r31,-223r-141,0r-31,223r-50,0r31,-223r-110,0r10,-45r106,0r22,-156r-110,0r10,-45r106,0r31,-222r50,0r-31,222r141,0r31,-222r50,0r-31,222r105,0r-10,45r-101,0r-22,156r105,0xm364,-424r-141,0r-22,156r141,0"},"$":{"d":"268,-406r56,-265v-92,0,-190,37,-190,143v0,82,69,103,134,122xm297,-332r-61,288v103,6,215,-41,218,-152v0,-93,-83,-116,-157,-136xm573,-506r-68,0v-1,-106,-48,-150,-137,-161r-58,274v104,32,212,60,212,188v0,70,-44,220,-276,220v-8,0,-16,0,-23,-1r-18,86r-45,0r20,-91v-125,-18,-210,-96,-203,-244r68,0v-6,117,52,172,147,186r63,-296v-99,-23,-192,-68,-189,-180v0,-153,136,-204,270,-204r11,-52r45,0r-12,56v116,15,200,78,193,219"},"%":{"d":"104,32r570,-755r55,0r-571,755r-54,0xm202,-327v-88,0,-135,-59,-135,-141v0,-111,60,-238,186,-238v82,0,134,58,134,139v0,111,-58,240,-185,240xm203,-372v94,0,131,-114,131,-192v0,-56,-23,-97,-84,-97v-91,0,-130,121,-130,195v0,49,27,94,83,94xm581,15v-88,0,-135,-59,-135,-141v0,-111,60,-238,186,-238v82,0,134,58,134,139v0,111,-58,240,-185,240xm581,-30v94,0,131,-114,131,-192v0,-56,-23,-97,-84,-97v-91,0,-130,121,-130,195v0,49,27,94,83,94","w":833},"&":{"d":"278,-420v56,-31,147,-77,147,-152v0,-59,-43,-89,-96,-89v-57,0,-107,42,-107,102v0,48,33,99,56,139xm396,-130r-141,-221v-78,38,-175,87,-175,187v0,70,60,126,133,126v77,0,132,-30,183,-92xm489,-315r63,0v-15,67,-40,129,-85,187r83,128r-71,0r-54,-84v-51,62,-124,99,-207,99v-117,0,-201,-64,-201,-183v0,-124,109,-179,210,-227v-36,-54,-68,-99,-68,-166v0,-93,76,-153,172,-153v80,0,157,45,157,130v0,105,-101,161,-182,206r128,199v28,-35,45,-88,55,-136","w":611},"(":{"d":"156,191r-43,0v-44,-123,-71,-248,-64,-379v11,-212,108,-395,244,-541r52,0v-213,244,-300,564,-189,920","w":259},")":{"d":"87,-729r43,0v44,123,71,248,64,379v-11,212,-108,395,-244,541r-52,0v213,-244,300,-564,189,-920","w":259},"*":{"d":"173,-561r-101,-55r21,-35r102,57r26,-120r39,0r-25,124r116,-24r5,38r-115,25r60,102r-38,19r-59,-106r-86,92r-28,-27","w":352},"+":{"d":"274,-278r0,-225r53,0r0,225r225,0r0,53r-225,0r0,225r-53,0r0,-225r-225,0r0,-53r225,0","w":600},",":{"d":"-12,137r8,-40v47,-14,58,-54,69,-97r-42,0r24,-106r84,0r-33,140v-15,64,-45,86,-110,103","w":278},"-":{"d":"38,-246r12,-58r251,0r-12,58r-251,0","w":370},"\u00ad":{"d":"38,-246r12,-58r251,0r-12,58r-251,0","w":370},".":{"d":"107,0r-84,0r23,-106r85,0","w":278},"\/":{"d":"391,-729r-411,744r-59,0r411,-744r59,0","w":333},"0":{"d":"216,15v-150,0,-191,-131,-191,-259v0,-176,91,-462,308,-462v149,0,198,113,198,245v0,188,-85,476,-315,476xm468,-468v0,-95,-28,-185,-142,-185v-170,0,-238,297,-238,429v0,96,31,186,143,186v174,0,237,-296,237,-430"},"1":{"d":"134,-525r13,-50v86,-13,175,-49,222,-125r48,0r-150,700r-63,0r124,-581v-61,32,-127,45,-194,56"},"2":{"d":"523,-526v-6,258,-393,266,-461,468r391,0r-11,58r-453,0v8,-149,126,-221,241,-285v116,-64,230,-121,230,-243v0,-85,-68,-125,-144,-125v-107,0,-168,86,-173,187r-63,0v6,-138,104,-240,242,-240v110,0,201,63,201,180"},"3":{"d":"9,-222r63,0v-6,109,44,184,154,184v103,0,189,-70,189,-174v-2,-108,-86,-134,-190,-129r11,-53v113,2,217,-5,222,-137v0,-80,-65,-122,-136,-122v-102,0,-159,65,-175,166r-63,0v24,-134,100,-219,240,-219v104,0,197,58,197,173v2,90,-66,151,-147,170v69,17,104,76,104,147v0,147,-120,231,-247,231v-165,0,-226,-98,-222,-237"},"4":{"d":"407,-592r-335,365r258,0r79,-363xm10,-233r429,-467r56,0r-102,473r106,0r-12,53r-105,0r-38,174r-63,0r38,-174r-320,0"},"5":{"d":"60,-335r115,-356r357,0r-14,58r-306,0r-75,224v42,-36,97,-57,156,-55v121,0,194,90,194,206v0,159,-107,273,-267,273v-130,0,-213,-82,-205,-213r63,0v-9,101,49,160,149,160v119,0,197,-98,197,-209v0,-97,-51,-164,-153,-164v-62,0,-122,22,-155,81"},"6":{"d":"436,-252v0,-93,-68,-151,-159,-151v-108,0,-178,99,-178,200v0,91,57,165,153,165v121,0,184,-104,184,-214xm36,-221v1,-205,95,-492,316,-485v119,0,194,60,194,183r-63,0v-3,-88,-47,-130,-135,-130v-151,0,-206,181,-235,296r2,0v38,-64,108,-99,184,-99v123,0,200,94,200,212v0,151,-103,259,-255,259v-142,0,-208,-102,-208,-236"},"7":{"d":"110,-633r14,-58r447,0r-13,54v-175,170,-314,401,-387,637r-70,0v80,-259,223,-457,390,-633r-381,0"},"8":{"d":"81,-183v0,100,73,145,165,145v102,0,181,-63,181,-167v0,-104,-76,-140,-172,-140v-97,0,-174,62,-174,162xm490,-202v7,264,-473,305,-472,18v0,-112,81,-185,185,-196r0,-2v-62,-20,-100,-77,-100,-140v0,-117,101,-184,210,-184v106,0,209,47,209,169v1,89,-65,153,-148,169v77,22,116,89,116,166xm317,-653v-79,0,-151,48,-151,134v0,83,65,121,142,121v83,0,151,-47,151,-135v0,-84,-64,-120,-142,-120"},"9":{"d":"302,-653v-121,0,-184,104,-184,214v0,93,68,151,159,151v108,0,178,-99,178,-200v0,-91,-57,-165,-153,-165xm518,-470v-1,205,-95,492,-316,485v-119,0,-194,-60,-194,-183r63,0v3,88,47,130,135,130v151,0,206,-181,235,-296r-2,0v-38,64,-108,99,-184,99v-123,0,-200,-94,-200,-212v0,-151,103,-259,255,-259v142,0,208,102,208,236"},":":{"d":"107,0r-84,0r23,-106r85,0xm197,-394r-84,0r23,-106r85,0","w":278},";":{"d":"-12,137r8,-40v47,-14,58,-54,69,-97r-42,0r24,-106r84,0r-33,140v-15,64,-45,86,-110,103xm197,-394r-84,0r23,-106r85,0","w":278},"<":{"d":"554,-47r0,55r-508,-234r0,-54r508,-234r0,55r-446,206","w":600},"=":{"d":"552,-378r0,53r-503,0r0,-53r503,0xm552,-181r0,53r-503,0r0,-53r503,0","w":600},">":{"d":"46,-47r446,-206r-446,-206r0,-55r508,234r0,54r-508,234r0,-55","w":600},"?":{"d":"258,-182r-63,0v16,-116,60,-148,148,-211v56,-37,114,-90,114,-159v0,-81,-55,-124,-134,-124v-105,0,-165,80,-173,183r-63,0v6,-144,95,-236,239,-236v101,0,194,56,194,168v0,109,-77,167,-160,222v-69,43,-86,81,-102,157xm147,0r23,-106r85,0r-24,106r-84,0","w":537},"@":{"d":"426,-510v-102,0,-170,137,-170,231v0,60,35,97,83,97v93,0,166,-147,166,-235v0,-47,-40,-93,-79,-93xm561,-544r53,0r-96,288v-14,43,-20,83,13,83v89,0,169,-136,169,-248v0,-165,-130,-263,-284,-263v-187,0,-316,147,-316,331v0,182,136,323,318,323v98,0,200,-50,258,-133r51,0v-60,110,-184,178,-309,178v-215,0,-371,-164,-371,-375v0,-208,163,-369,367,-369v193,0,339,127,339,311v0,161,-120,290,-232,290v-36,2,-60,-28,-69,-67v-30,32,-76,66,-127,66v-82,0,-132,-66,-132,-145v0,-138,95,-289,237,-289v44,0,84,24,106,84","w":800},"A":{"d":"-75,0r437,-714r74,0r130,714r-71,0r-36,-222r-326,0r-132,222r-76,0xm386,-656r-219,376r282,0r-61,-376r-2,0","w":630},"B":{"d":"148,-343r-62,285r242,0v99,0,204,-46,204,-158v-6,-179,-221,-115,-384,-127xm5,0r155,-714r277,0v107,0,196,44,196,163v2,96,-67,160,-155,180v74,9,122,73,122,147v0,168,-138,224,-287,224r-308,0xm216,-656r-55,255r225,0v92,-2,179,-46,179,-143v-1,-160,-204,-101,-349,-112","w":667},"C":{"d":"688,-488r-68,0v-2,-120,-81,-183,-199,-183v-215,0,-319,194,-319,388v0,146,88,240,236,240v114,0,207,-76,242,-201r68,0v-33,146,-138,259,-321,259v-186,0,-293,-124,-293,-304v0,-228,143,-440,388,-440v150,0,264,82,266,241","w":704},"D":{"d":"216,-656r-130,598r172,0v237,2,336,-185,336,-383v0,-143,-72,-215,-215,-215r-163,0xm5,0r155,-714r230,0v205,0,272,114,272,286v0,225,-135,428,-391,428r-266,0","w":685},"E":{"d":"5,0r152,-714r479,0r-13,58r-410,0r-55,258r383,0r-13,58r-382,0r-60,282r420,0r-13,58r-488,0","w":574},"F":{"d":"5,0r153,-714r457,0r-12,58r-389,0r-55,258r345,0r-11,58r-347,0r-73,340r-68,0","w":537},"G":{"d":"706,-494r-68,0v-4,-119,-91,-177,-221,-177v-188,0,-315,191,-315,383v0,146,78,245,231,245v157,0,261,-113,285,-262r-246,0r14,-58r305,0r-75,363r-46,0v2,-39,13,-85,10,-120v-60,94,-148,135,-259,135v-185,0,-287,-116,-287,-299v0,-230,134,-445,389,-445v179,0,278,87,283,235","w":741},"H":{"d":"5,0r152,-714r68,0r-66,310r413,0r66,-310r68,0r-152,714r-68,0r74,-346r-413,0r-74,346r-68,0","w":704},"I":{"d":"5,0r151,-714r68,0r-151,714r-68,0","w":222},"J":{"d":"-11,-229r68,0v-5,29,-9,59,-9,88v0,73,57,98,124,98v103,0,135,-78,153,-162r109,-509r68,0r-114,534v-27,124,-85,195,-221,195v-106,0,-187,-46,-187,-163v0,-27,3,-55,9,-81","w":500},"K":{"d":"5,0r152,-714r68,0r-82,381r2,2r461,-383r95,0r-366,298r255,416r-78,0r-227,-374r-159,127r-53,247r-68,0","w":648},"L":{"d":"5,0r154,-714r68,0r-141,656r395,0r-14,58r-462,0","w":537},"M":{"d":"2,0r155,-714r99,0r111,641r392,-641r99,0r-153,714r-67,0r147,-646r-2,0r-395,646r-68,0r-115,-656r-2,0r-135,656r-66,0","w":852},"N":{"d":"0,0r154,-714r77,0r285,638r2,0r132,-638r66,0r-156,714r-75,0r-285,-638r-2,0r-133,638r-65,0","w":704},"O":{"d":"650,-413v0,-148,-72,-258,-229,-258v-215,0,-319,194,-319,388v0,146,88,240,236,240v194,0,312,-193,312,-370xm327,15v-186,0,-293,-124,-293,-304v0,-228,143,-440,388,-440v182,0,296,119,296,299v0,233,-139,445,-391,445","w":741},"P":{"d":"5,0r154,-714r288,0v107,0,190,66,190,176v0,148,-103,232,-246,232r-252,0r-66,306r-68,0xm215,-656r-63,292r241,0v99,0,176,-61,176,-164v5,-173,-199,-120,-354,-128","w":630},"Q":{"d":"558,-62r91,85r-40,41r-100,-94v-51,29,-112,45,-182,45v-186,0,-293,-124,-293,-304v0,-228,143,-440,388,-440v182,0,296,119,296,299v0,147,-56,286,-160,368xm382,-149r39,-41r90,84v89,-69,139,-191,139,-307v0,-148,-72,-258,-229,-258v-215,0,-319,194,-319,388v0,146,88,240,236,240v46,0,88,-12,124,-32","w":741},"R":{"d":"5,0r152,-714r304,0v119,0,187,61,187,178v2,108,-81,185,-181,197v121,21,87,162,81,277v0,17,2,48,12,62r-70,0v-22,-59,-1,-136,0,-201v0,-68,-25,-116,-98,-116r-252,0r-67,317r-68,0xm213,-656r-60,281r241,0v103,0,186,-50,186,-156v0,-84,-35,-125,-122,-125r-245,0","w":648},"S":{"d":"607,-506r-68,0v-1,-125,-67,-165,-189,-165v-88,0,-182,41,-182,143v2,107,115,111,196,141v98,30,192,62,192,182v0,70,-44,220,-276,220v-160,0,-277,-77,-269,-250r68,0v-7,139,76,192,206,192v93,0,203,-46,203,-153v-4,-129,-152,-125,-247,-163v-83,-24,-141,-74,-141,-166v0,-143,126,-204,253,-204v145,0,262,58,254,223","w":630},"T":{"d":"69,-656r12,-58r558,0r-12,58r-245,0r-143,656r-68,0r143,-656r-245,0"},"U":{"d":"54,-248r96,-466r68,0r-95,454v-34,137,44,220,188,217v128,0,206,-68,231,-188r101,-483r68,0r-102,488v-35,168,-144,241,-307,241v-144,5,-288,-85,-248,-263","w":704},"V":{"d":"176,0r-112,-714r70,0r91,656r2,0r366,-656r74,0r-412,714r-79,0","w":593},"W":{"d":"124,0r-53,-714r68,0r37,635r2,0r304,-635r82,0r49,629r2,0r292,-629r71,0r-344,714r-74,0r-47,-649r-2,0r-312,649r-75,0","w":907},"X":{"d":"-68,0r328,-372r-176,-342r75,0r148,300r259,-300r81,0r-310,353r186,361r-72,0r-159,-318r-280,318r-80,0","w":574},"Y":{"d":"299,-352r299,-362r83,0r-358,426r-63,288r-69,0r65,-295r-190,-419r72,0","w":574},"Z":{"d":"98,-656r13,-58r515,0r-12,57r-571,599r476,0r-13,58r-556,0r13,-60r569,-596r-434,0","w":574},"[":{"d":"133,191r-161,0r195,-920r163,0r-11,53r-98,0r-175,814r97,0","w":241},"\\":{"d":"353,15r-411,-744r59,0r411,744r-59,0","w":333},"]":{"d":"123,-729r161,0r-195,920r-163,0r11,-53r98,0r175,-814r-97,0","w":241},"^":{"d":"102,-238r-58,0r230,-453r52,0r230,453r-57,0r-200,-390","w":600},"_":{"d":"500,125r-500,0r0,-50r500,0r0,50","w":500},"a":{"d":"354,-189v4,-29,19,-63,18,-89v-20,25,-82,27,-114,29v-77,6,-204,10,-204,118v0,66,55,93,115,93v101,0,165,-61,185,-151xm459,-416v-2,89,-69,305,-66,348v2,27,35,21,58,19r-9,50v-49,12,-111,5,-107,-51v-1,-9,4,-24,0,-30v-65,127,-346,142,-344,-48v-5,-169,210,-160,343,-175v41,-10,62,-33,62,-101v0,-61,-61,-74,-109,-74v-80,0,-149,30,-162,116r-63,0v17,-117,107,-169,218,-169v70,0,179,24,179,115","w":519},"b":{"d":"238,-38v143,0,218,-154,218,-280v0,-96,-46,-160,-148,-160v-138,0,-211,166,-211,283v0,87,46,157,141,157xm-11,0r152,-714r63,0r-61,289r2,0v36,-62,100,-106,178,-106v131,0,196,92,196,215v0,157,-97,331,-273,331v-89,2,-153,-52,-175,-133r-25,118r-57,0","w":574},"c":{"d":"487,-355r-63,0v5,-77,-50,-123,-124,-123v-151,0,-223,146,-223,280v0,92,46,160,144,160v83,0,143,-54,170,-129r63,0v-38,118,-116,182,-241,182v-128,0,-199,-86,-199,-213v0,-161,103,-333,280,-333v112,0,197,56,193,176","w":519},"d":{"d":"216,-38v145,0,225,-163,225,-291v0,-90,-52,-149,-144,-149v-145,0,-220,160,-220,286v0,88,44,154,139,154xm591,-714r-153,714r-61,0r23,-93r-2,0v-44,68,-97,108,-188,108v-132,0,-196,-85,-196,-211v0,-158,109,-335,282,-335v83,-2,143,35,170,112r62,-295r63,0","w":574},"e":{"d":"484,-241r-404,0v-16,113,31,203,147,203v82,0,145,-53,169,-128r63,0v-34,115,-113,181,-235,181v-136,0,-210,-85,-210,-219v0,-163,102,-327,279,-327v157,-1,218,127,191,290xm88,-294r337,0v12,-110,-38,-183,-140,-184v-104,0,-175,88,-197,184","w":519},"f":{"d":"296,-516r-12,53r-101,0r-102,463r-63,0r102,-463r-90,0r12,-53r89,0v19,-99,36,-203,154,-198v22,0,44,1,65,7r-11,52v-66,-16,-123,2,-130,67r-15,72r102,0","w":259},"g":{"d":"84,-226v0,87,43,162,139,162v128,0,206,-140,206,-256v0,-92,-39,-158,-141,-158v-129,0,-204,137,-204,252xm536,-516r-98,462v-38,180,-99,260,-259,260v-105,0,-197,-44,-199,-167r63,0v1,88,71,114,145,114v160,0,180,-169,202,-257r-2,-2v-35,60,-106,95,-176,95v-125,0,-191,-91,-191,-210v0,-152,99,-310,264,-310v81,-2,152,44,171,121r22,-106r58,0"},"h":{"d":"-11,0r154,-714r63,0r-63,292r2,0v36,-61,104,-109,181,-109v90,0,156,40,156,139v-17,136,-55,262,-79,392r-63,0r72,-333v4,-16,7,-35,7,-52v0,-68,-52,-93,-108,-93v-91,0,-174,82,-202,213r-57,265r-63,0","w":537},"i":{"d":"-11,0r111,-516r63,0r-111,516r-63,0xm121,-613r22,-101r63,0r-22,101r-63,0","w":185},"j":{"d":"-28,86r128,-602r63,0r-129,604v-13,83,-78,116,-171,98r12,-52v49,13,91,-7,97,-48xm121,-613r21,-101r64,0r-22,101r-63,0","w":185},"k":{"d":"-11,0r152,-714r63,0r-96,448r2,2r302,-252r84,0r-244,199r156,317r-69,0r-137,-279r-110,92r-40,187r-63,0","w":463},"l":{"d":"-11,0r154,-714r63,0r-154,714r-63,0","w":185},"m":{"d":"-11,0r111,-516r58,0v-4,30,-19,65,-18,92v37,-60,105,-107,182,-107v75,-2,115,42,127,110v40,-63,104,-110,181,-110v123,0,160,87,136,195r-72,336r-63,0r73,-338v19,-77,-4,-140,-92,-140v-186,3,-192,306,-239,478r-63,0r72,-336v17,-71,0,-141,-81,-142v-91,0,-167,96,-193,216r-56,262r-63,0","w":833},"n":{"d":"-11,0r111,-516r58,0v-4,30,-17,67,-16,94v39,-61,107,-109,184,-109v90,0,156,40,156,139v-17,136,-55,262,-79,392r-63,0r72,-333v4,-16,7,-35,7,-52v0,-68,-52,-93,-108,-93v-91,0,-174,82,-202,213r-57,265r-63,0","w":537},"o":{"d":"302,-531v120,0,204,75,204,202v0,174,-95,344,-286,344v-133,0,-206,-86,-206,-215v0,-169,104,-331,288,-331xm232,-38v138,0,211,-158,211,-278v0,-96,-51,-162,-152,-162v-138,0,-214,151,-214,272v0,100,50,168,155,168"},"p":{"d":"327,-478v-145,0,-225,163,-225,291v0,90,52,149,144,149v145,0,220,-160,220,-286v0,-88,-44,-154,-139,-154xm-46,191r152,-707r57,0v-4,30,-18,67,-18,93v44,-68,97,-108,188,-108v132,0,196,85,196,211v0,158,-109,335,-282,335v-84,2,-148,-38,-167,-118r-63,294r-63,0","w":574},"q":{"d":"303,-478v-143,0,-218,154,-218,280v0,96,46,160,148,160v138,0,211,-166,211,-283v0,-87,-46,-157,-141,-157xm554,-516r-152,707r-63,0r61,-282r-2,0v-38,62,-102,106,-180,106v-131,0,-196,-92,-196,-215v0,-157,97,-331,273,-331v88,-2,153,52,179,118r22,-103r58,0","w":574},"r":{"d":"-11,0r111,-516r57,0r-26,119r2,0v46,-83,105,-137,221,-125r-14,63v-140,-15,-206,82,-230,189r-58,270r-63,0","w":315},"s":{"d":"-1,-168r63,0v-1,100,73,130,146,130v56,0,130,-29,130,-95v0,-67,-71,-88,-139,-114v-69,-27,-138,-58,-138,-143v0,-100,108,-141,191,-141v108,0,186,47,184,166r-63,0v5,-79,-50,-113,-121,-113v-55,0,-128,17,-128,88v0,48,51,72,109,95v71,28,168,57,168,152v0,116,-110,158,-208,158v-99,0,-200,-54,-194,-183","w":481},"t":{"d":"31,-463r12,-53r93,0r33,-156r63,0r-33,156r103,0r-10,53r-105,0r-71,331v-9,42,-18,85,26,85v25,0,49,-2,74,-6r-11,55v-73,6,-159,17,-159,-70v0,-135,54,-265,78,-395r-93,0","w":296},"u":{"d":"513,-516r-111,516r-58,0v4,-30,17,-67,16,-94v-39,61,-107,109,-184,109v-90,0,-156,-40,-156,-139v17,-136,55,-262,79,-392r63,0r-72,333v-4,16,-7,35,-7,52v0,68,52,93,108,93v91,0,174,-82,202,-213r57,-265r63,0","w":537},"v":{"d":"116,0r-81,-516r66,0r61,445r2,0r242,-445r69,0r-291,516r-68,0","w":463},"w":{"d":"90,0r-60,-516r66,0r41,440r2,0r213,-440r74,0r35,436r2,0r219,-436r67,0r-271,516r-68,0r-37,-433r-2,0r-212,433r-69,0","w":741},"x":{"d":"-58,0r246,-272r-121,-244r72,0r94,203r178,-203r76,0r-227,250r137,266r-72,0r-110,-225r-198,225r-75,0","w":463},"y":{"d":"-55,186r12,-51v66,13,114,-9,135,-53r47,-82r-95,-516r66,0r74,438r2,0r238,-438r68,0r-367,638v-34,62,-99,78,-180,64","w":463},"z":{"d":"44,-463r11,-53r388,0r-11,50r-401,413r331,0r-11,53r-409,0r11,-51r399,-412r-308,0","w":426},"{":{"d":"178,191v-83,14,-132,-39,-112,-125v13,-74,38,-153,42,-232v0,-44,-13,-76,-50,-76r11,-53v100,-8,110,-204,137,-309v23,-95,63,-137,164,-125r-11,53v-62,-1,-67,-2,-95,103r-29,141v-22,112,-93,152,-106,164v9,6,42,37,42,105v-5,82,-39,184,-47,257v0,17,3,44,39,44r26,0","w":333},"|":{"d":"85,214r0,-1000r53,0r0,1000r-53,0","w":222},"}":{"d":"131,-729v83,-14,132,39,112,125v-13,74,-38,153,-42,232v0,44,13,76,50,76r-11,53v-100,8,-110,204,-137,309v-23,95,-63,137,-164,125r11,-53v62,1,67,2,95,-103r29,-141v22,-112,93,-152,106,-164v-9,-6,-42,-37,-42,-105v5,-82,39,-184,47,-257v0,-17,-3,-44,-39,-44r-26,0","w":333},"~":{"d":"194,-311v68,-2,156,62,213,65v40,0,65,-34,88,-69r36,36v-30,42,-63,86,-125,86v-78,1,-140,-65,-217,-65v-44,0,-68,34,-84,69r-36,-36v22,-42,58,-86,125,-86","w":600},"'":{"d":"153,-471r0,-243r58,0r0,243r-58,0","w":278},"`":{"d":"67,-729r74,0r82,144r-50,0","w":185}}});

Cufon.replace('h1');

/*(function($){
	$.fn.makeAbsolute = function(ob) {
	    return this.each(function() {
			var el = $(this);
		    var pos = el.position();
		
		    el.css({
				position	: 'absolute',
		        marginLeft	: 0,
				marginTop	: 0,
		        top			: pos.top,
				left		: pos.left
			});

		    el.appendTo(ob);
	    });
	}
})(jQuery);

$(function() {
	var email	= $('#email');
	var pass	= $('#password');
	
	$("#dialog").dialog({
		bgiframe	: true,
		autoOpen	: false,
		height		: 230,
		width		: 350,
		modal		: true,
		draggable	: false,
		resizable	: false,
		buttons		: {'Login': function() {
						$.ajax({
							url			: 'login.php',
			   				data		: 'email='+email.val()+'&pass='+pass.val(),
			   				success		: function(msg) {
			    							//$('#dialog').dialog('close');
			    							location.reload();
			   				}
						});
					},
					'Cancel': function() {
						$(this).dialog('close');
					}
		}
	});
	
	$('#admin').click(function() {
		email.val('');
		pass.val('');
		
		$('#dialog').dialog('open');
	});
	
	function show_edit(divs, tag) {
      	for (var i=0; i<divs.length; i++) {
      		var new_n	= 'edit_button_'+(i+1);
				
			$._img_()
				.addClass('edit_tag_'+(i+1))
				.attr('src', 'images/icons/cms/pencil_add.png')
				.css({
					cursor	: 'pointer',
					display	: 'inline'
				}).hover(function() {
					$('.left .inner .title.bold')
						.css({
							color	: '#ff0000'
						});
				}, function() {
					$('.left .inner .title.bold')
						.css({
							color	: '#000'
						});
				})
				.appendTo(divs[i]);
				
			$('.edit_tag_'+(i+1)).makeAbsolute('#content');
      	}
    }
    
    if ($('#logged_in').size()>0) {
    	show_edit($('.edit').get());
    }
    
    $('.left .inner .title.bold').editable('http://www.example.com/save.php');
    $('.edit_tag_1').click(function() {
    	$('.left .inner .title.bold').click();
   	});
   	
   	$('.right .inner .title.bold:first').editable('http://www.example.com/save.php');
    $('.edit_tag_2').click(function() {
    	$('.right .inner .title.bold:first').click();
   	});
   	
   	$('.right .inner .title.bold:last').editable('http://www.example.com/save.php');
    $('.edit_tag_3').click(function() {
    	$('.right .inner .title.bold:last').click();
   	});
});*/

//MooTools, My Object Oriented Javascript Tools. Copyright (c) 2006 Valerio Proietti, <http://mad4milk.net>, MIT Style License.

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('h 7A={7a:\'1.11\'};7 $3q(I){6(I!=6r)};7 $m(I){c(!$3q(I))6 O;c(I.2q)6\'L\';h m=3F I;c(m==\'28\'&&I.6O){1E(I.43){P 1:6\'L\';P 3:6(/\\S/).1Q(I.5v)?\'6T\':\'6Y\'}}c(m==\'28\'||m==\'7\'){1E(I.63){P 1i:6\'R\';P 49:6\'70\';P 17:6\'5t\'}c(3F I.H==\'3b\'){c(I.1G)6\'71\';c(I.5W)6\'G\'}}6 m};7 $2l(){h 2R={};F(h i=0;i<G.H;i++){F(h q 14 G[i]){h 35=G[i][q];h 30=2R[q];c(30&&$m(35)==\'28\'&&$m(30)==\'28\')2R[q]=$2l(30,35);M 2R[q]=35}}6 2R};h $J=7(){h K=G;c(!K[1])K=[5,K[0]];F(h q 14 K[1])K[0][q]=K[1][q];6 K[0]};h $2u=7(){F(h i=0,l=G.H;i<l;i++){G[i].J=7(12){F(h 18 14 12){c(!5.X[18])5.X[18]=12[18];c(!5[18])5[18]=$2u.3g(18)}}}};$2u.3g=7(18){6 7(v){6 5.X[18].2z(v,1i.X.6t.1v(G,1))}};$2u(4O,1i,3O,6s);7 $2L(I){6!!(I||I===0)};7 $4g(I,6e){6 $3q(I)?I:6e};7 $4H(29,1y){6 1l.72(1l.4H()*(1y-29+1)+29)};7 $1I(){6 Q 6Z().6W()};7 $4y(1q){79(1q);76(1q);6 Y};h 2t=7(I){I=I||{};I.J=$J;6 I};h 6U=Q 2t(t);h 6S=Q 2t(C);C.6l=C.3J(\'6l\')[0];t.5M=!!(C.6R);c(t.6P)t.1u=t[t.78?\'7M\':\'5V\']=15;M c(C.5I&&!C.7F&&!7G.7H)t.2c=t[t.5M?\'7i\':\'3l\']=15;M c(C.7j!=Y)t.4V=15;t.7k=t.2c;7h.J=$J;c(3F 2I==\'6r\'){h 2I=7(){};c(t.2c)C.6w("7d");2I.X=(t.2c)?t["[[7e.X]]"]:{}}2I.X.2q=7(){};c(t.5V)3P{C.7l("7m",O,15)}3N(e){};h 17=7(1H){h 2Q=7(){6(G[0]!==Y&&5.1A&&$m(5.1A)==\'7\')?5.1A.2z(5,G):5};$J(2Q,5);2Q.X=1H;2Q.63=17;6 2Q};17.1W=7(){};17.X={J:7(1H){h 33=Q 5(Y);F(h q 14 1H){h 64=33[q];33[q]=17.61(64,1H[q])}6 Q 17(33)},68:7(){F(h i=0,l=G.H;i<l;i++)$J(5.X,G[i])}};17.61=7(1V,2b){c(1V&&1V!=2b){h m=$m(2b);c(m!=$m(1V))6 2b;1E(m){P\'7\':h 4N=7(){5.22=G.5W.22;6 2b.2z(5,G)};4N.22=1V;6 4N;P\'28\':6 $2l(1V,2b)}}6 2b};h 67=Q 17({7r:7(r){5.2d=5.2d||[];5.2d.1h(r);6 5},6o:7(){c(5.2d&&5.2d.H)5.2d.6E().1j(10,5)},7q:7(){5.2d=[]}});h 1F=Q 17({1x:7(m,r){c(r!=17.1W){5.$E=5.$E||{};5.$E[m]=5.$E[m]||[];5.$E[m].4J(r)}6 5},1L:7(m,K,1j){c(5.$E&&5.$E[m]){5.$E[m].1f(7(r){r.1B({\'v\':5,\'1j\':1j,\'G\':K})()},5)}6 5},3C:7(m,r){c(5.$E&&5.$E[m])5.$E[m].2y(r);6 5}});h 6b=Q 17({6m:7(){5.B=$2l.2z(Y,[5.B].J(G));c(5.1x){F(h 2M 14 5.B){c($m(5.B[2M]==\'7\')&&(/^3K[A-Z]/).1Q(2M))5.1x(2M,5.B[2M])}}6 5}});1i.J({3I:7(r,v){F(h i=0,j=5.H;i<j;i++)r.1v(v,5[i],i,5)},56:7(r,v){h 2x=[];F(h i=0,j=5.H;i<j;i++){c(r.1v(v,5[i],i,5))2x.1h(5[i])}6 2x},1U:7(r,v){h 2x=[];F(h i=0,j=5.H;i<j;i++)2x[i]=r.1v(v,5[i],i,5);6 2x},34:7(r,v){F(h i=0,j=5.H;i<j;i++){c(!r.1v(v,5[i],i,5))6 O}6 15},7n:7(r,v){F(h i=0,j=5.H;i<j;i++){c(r.1v(v,5[i],i,5))6 15}6 O},2e:7(1G,T){h 2v=5.H;F(h i=(T<0)?1l.1y(0,2v+T):T||0;i<2v;i++){c(5[i]===1G)6 i}6-1},6K:7(1g,H){1g=1g||0;c(1g<0)1g=5.H+1g;H=H||(5.H-1g);h 4L=[];F(h i=0;i<H;i++)4L[i]=5[1g++];6 4L},2y:7(1G){h i=0;h 2v=5.H;44(i<2v){c(5[i]===1G){5.2V(i,1);2v--}M{i++}}6 5},W:7(1G,T){6 5.2e(1G,T)!=-1},7o:7(19){h I={},H=1l.29(5.H,19.H);F(h i=0;i<H;i++)I[19[i]]=5[i];6 I},J:7(R){F(h i=0,j=R.H;i<j;i++)5.1h(R[i]);6 5},2l:7(R){F(h i=0,l=R.H;i<l;i++)5.4J(R[i]);6 5},4J:7(1G){c(!5.W(1G))5.1h(1G);6 5},7p:7(){6 5[$4H(0,5.H-1)]||Y},5C:7(){6 5[5.H-1]||Y}});1i.X.1f=1i.X.3I;1i.1f=1i.3I;7 $A(R){6 1i.6K(R)};7 $1f(20,r,v){c(20&&3F 20.H==\'3b\'&&$m(20)!=\'28\'){1i.3I(20,r,v)}M{F(h 1m 14 20)r.1v(v||20,20[1m],1m)}};1i.X.1Q=1i.X.W;3O.J({1Q:7(3G,5K){6(($m(3G)==\'26\')?Q 49(3G,5K):3G).1Q(5)},31:7(){6 2J(5,10)},6x:7(){6 4m(5)},4o:7(){6 5.25(/-\\D/g,7(1D){6 1D.3U(1).6D()})},4Y:7(){6 5.25(/\\w[A-Z]/g,7(1D){6(1D.3U(0)+\'-\'+1D.3U(1).3a())})},5D:7(){6 5.25(/\\b[a-z]/g,7(1D){6 1D.6D()})},6A:7(){6 5.25(/^\\s+|\\s+$/g,\'\')},4a:7(){6 5.25(/\\s{2,}/g,\' \').6A()},3e:7(R){h 1z=5.1D(/\\d{1,3}/g);6(1z)?1z.3e(R):O},41:7(R){h 2a=5.1D(/^#?(\\w{1,2})(\\w{1,2})(\\w{1,2})$/);6(2a)?2a.6t(1).41(R):O},W:7(26,s){6(s)?(s+5+s).2e(s+26+s)>-1:5.2e(26)>-1},7f:7(){6 5.25(/([.*+?^${}()|[\\]\\/\\\\])/g,\'\\\\$1\')}});1i.J({3e:7(R){c(5.H<3)6 O;c(5.H==4&&5[3]==0&&!R)6\'7g\';h 2a=[];F(h i=0;i<3;i++){h 2p=(5[i]-0).7u(16);2a.1h((2p.H==1)?\'0\'+2p:2p)}6 R?2a:\'#\'+2a.23(\'\')},41:7(R){c(5.H!=3)6 O;h 1z=[];F(h i=0;i<3;i++){1z.1h(2J((5[i].H==1)?5[i]+5[i]:5[i],16))}6 R?1z:\'1z(\'+1z.23(\',\')+\')\'}});4O.J({1B:7(B){h r=5;B=$2l({\'v\':r,\'o\':O,\'G\':Y,\'1j\':O,\'2h\':O,\'2X\':O},B);c($2L(B.G)&&$m(B.G)!=\'R\')B.G=[B.G];6 7(o){h K;c(B.o){o=o||t.o;K=[(B.o===15)?o:Q B.o(o)];c(B.G)K.J(B.G)}M K=B.G||G;h 1P=7(){6 r.2z($4g(B.v,r),K)};c(B.1j)6 7v(1P,B.1j);c(B.2h)6 7E(1P,B.2h);c(B.2X)3P{6 1P()}3N(7y){6 O};6 1P()}},7c:7(K,v){6 5.1B({\'G\':K,\'v\':v})},2X:7(K,v){6 5.1B({\'G\':K,\'v\':v,\'2X\':15})()},v:7(v,K){6 5.1B({\'v\':v,\'G\':K})},7C:7(v,K){6 5.1B({\'v\':v,\'o\':15,\'G\':K})},1j:7(1j,v,K){6 5.1B({\'1j\':1j,\'v\':v,\'G\':K})()},2h:7(6G,v,K){6 5.1B({\'2h\':6G,\'v\':v,\'G\':K})()}});6s.J({31:7(){6 2J(5)},6x:7(){6 4m(5)},6f:7(29,1y){6 1l.29(1y,1l.1y(29,5))},4w:7(2K){2K=1l.6L(10,2K||0);6 1l.4w(5*2K)/2K},77:7(r){F(h i=0;i<5;i++)r(i)}});h u=Q 17({1A:7(k,12){c($m(k)==\'26\'){c(t.1u&&12&&(12.1m||12.m)){h 1m=(12.1m)?\' 1m="\'+12.1m+\'"\':\'\';h m=(12.m)?\' m="\'+12.m+\'"\':\'\';3X 12.1m;3X 12.m;k=\'<\'+k+1m+m+\'>\'}k=C.6w(k)}k=$(k);6(!12||!k)?k:k.3p(12)}});h 2g=Q 17({1A:7(N){6(N)?$J(N,5):5}});2g.J=7(12){F(h 18 14 12){5.X[18]=12[18];5[18]=$2u.3g(18)}};7 $(k){c(!k)6 Y;c(k.2q)6 1k.2C(k);c([t,C].W(k))6 k;h m=$m(k);c(m==\'26\'){k=C.74(k);m=(k)?\'L\':O}c(m!=\'L\')6 Y;c(k.2q)6 1k.2C(k);c([\'28\',\'73\'].W(k.5q.3a()))6 k;$J(k,u.X);k.2q=7(){};6 1k.2C(k)};C.6B=C.3J;7 $$(){h N=[];F(h i=0,j=G.H;i<j;i++){h 2D=G[i];1E($m(2D)){P\'L\':N.1h(2D);P\'6X\':1r;P O:1r;P\'26\':2D=C.6B(2D,15);3R:N.J(2D)}}6 $$.3Y(N)};$$.3Y=7(R){h N=[];F(h i=0,l=R.H;i<l;i++){c(R[i].$3y)5U;h L=$(R[i]);c(L&&!L.$3y){L.$3y=15;N.1h(L)}}F(h n=0,d=N.H;n<d;n++)N[n].$3y=Y;6 Q 2g(N)};2g.55=7(q){6 7(){h K=G;h 3H=[];h N=15;F(h i=0,j=5.H,1P;i<j;i++){1P=5[i][q].2z(5[i],K);c($m(1P)!=\'L\')N=O;3H.1h(1P)};6(N)?$$.3Y(3H):3H}};u.J=7(1H){F(h q 14 1H){2I.X[q]=1H[q];u.X[q]=1H[q];u[q]=$2u.3g(q);h 5G=(1i.X[q])?q+\'2g\':q;2g.X[5G]=2g.55(q)}};u.J({3p:7(12){F(h 18 14 12){h 2G=12[18];1E(18){P\'6N\':5.5c(2G);1r;P\'E\':c(5.3S)5.3S(2G);1r;P\'1H\':5.5m(2G);1r;3R:5.3s(18,2G)}}6 5},2o:7(k,5H){k=$(k);1E(5H){P\'5h\':k.1Y.3L(5,k);1r;P\'5n\':h 2N=k.5z();c(!2N)k.1Y.48(5);M k.1Y.3L(5,2N);1r;P\'1O\':h 3Q=k.4e;c(3Q){k.3L(5,3Q);1r}3R:k.48(5)}6 5},7z:7(k){6 5.2o(k,\'5h\')},7D:7(k){6 5.2o(k,\'5n\')},7L:7(k){6 5.2o(k,\'4S\')},7I:7(k){6 5.2o(k,\'1O\')},7s:7(){h N=[];$1f(G,7(5r){N=N.7t(5r)});$$(N).2o(5);6 5},2y:7(){6 5.1Y.5j(5)},7J:7(5l){h k=$(5.7K(5l!==O));c(!k.$E)6 k;k.$E={};F(h m 14 5.$E)k.$E[m]={\'19\':$A(5.$E[m].19),\'1d\':$A(5.$E[m].1d)};6 k.3k()},7x:7(k){k=$(k);5.1Y.7w(k,5);6 k},5i:7(1K){5.48(C.7B(1K));6 5},4c:7(1a){6 5.1a.W(1a,\' \')},5A:7(1a){c(!5.4c(1a))5.1a=(5.1a+\' \'+1a).4a();6 5},5w:7(1a){5.1a=5.1a.25(Q 49(\'(^|\\\\s)\'+1a+\'(?:\\\\s|$)\'),\'$1\').4a();6 5},6Q:7(1a){6 5.4c(1a)?5.5w(1a):5.5A(1a)},5a:7(q,1b){1E(q){P\'1p\':6 5.5b(4m(1b));P\'6M\':q=(t.1u)?\'7b\':\'75\'}q=q.4o();1E($m(1b)){P\'3b\':c(![\'6V\',\'53\'].W(q))1b+=\'4b\';1r;P\'R\':1b=\'1z(\'+1b.23(\',\')+\')\'}5.U[q]=1b;6 5},5c:7(1S){1E($m(1S)){P\'28\':u.3o(5,\'5a\',1S);1r;P\'26\':5.U.4i=1S}6 5},5b:7(1p){c(1p==0){c(5.U.3f!="4X")5.U.3f="4X"}M{c(5.U.3f!="54")5.U.3f="54"}c(!5.3i||!5.3i.8i)5.U.53=1;c(t.1u)5.U.56=(1p==1)?\'\':"9h(1p="+1p*9i+")";5.U.1p=5.$1X.1p=1p;6 5},2f:7(q){q=q.4o();h V=5.U[q];c(!$2L(V)){c(q==\'1p\')6 5.$1X.1p;V=[];F(h U 14 u.2s){c(q==U){u.2s[U].1f(7(s){h U=5.2f(s);V.1h(2J(U)?U:\'51\')},5);c(q==\'1R\'){h 34=V.34(7(2p){6(2p==V[0])});6(34)?V[0]:O}6 V.23(\' \')}}c(q.W(\'1R\')){c(u.2s.1R.W(q)){6[\'5J\',\'9j\',\'9g\'].1U(7(p){6 5.2f(q+p)},5).23(\' \')}M c(u.5s.W(q)){6[\'58\',\'5k\',\'5e\',\'59\'].1U(7(p){6 5.2f(\'1R\'+p+q.25(\'1R\',\'\'))},5).23(\' \')}}c(C.5f)V=C.5f.9f(5,Y).9c(q.4Y());M c(5.3i)V=5.3i[q]}c(t.1u)V=u.5F(q,V,5);c(V&&q.1Q(/4x/i)&&V.W(\'1z\')){6 V.9d(\'1z\').2V(1,4).1U(7(4x){6 4x.3e()}).23(\' \')}6 V},9e:7(){6 u.3T(5,\'2f\',G)},2P:7(3n,1g){3n+=\'9k\';h k=(1g)?5[1g]:5[3n];44(k&&$m(k)!=\'L\')k=k[3n];6 $(k)},9l:7(){6 5.2P(\'1V\')},5z:7(){6 5.2P(\'2N\')},9r:7(){6 5.2P(\'2N\',\'4e\')},5C:7(){6 5.2P(\'1V\',\'9s\')},9t:7(){6 $(5.1Y)},9q:7(){6 $$(5.5I)},3W:7(k){6!!$A(5.3J(\'*\')).W(k)},4f:7(q){h 1M=u.3B[q];c(1M)6 5[1M];h 45=u.4Z[q]||0;c(!t.1u||45)6 5.9p(q,45);h 47=5.9m[q];6(47)?47.5v:Y},9n:7(q){h 1M=u.3B[q];c(1M)5[1M]=\'\';M 5.9o(q);6 5},9b:7(){6 u.3T(5,\'4f\',G)},3s:7(q,1b){h 1M=u.3B[q];c(1M)5[1M]=1b;M 5.9a(q,1b);6 5},5m:7(1S){6 u.3o(5,\'3s\',1S)},5u:7(){5.5p=$A(G).23(\'\');6 5},8X:7(1K){h 21=5.4U();c([\'U\',\'2A\'].W(21)){c(t.1u){c(21==\'U\')5.5o.4i=1K;M c(21==\'2A\')5.3s(\'1K\',1K);6 5}M{5.5j(5.4e);6 5.5i(1K)}}5[$3q(5.4C)?\'4C\':\'5y\']=1K;6 5},8Y:7(){h 21=5.4U();c([\'U\',\'2A\'].W(21)){c(t.1u){c(21==\'U\')6 5.5o.4i;M c(21==\'2A\')6 5.4f(\'1K\')}M{6 5.5p}}6($4g(5.4C,5.5y))},4U:7(){6 5.5q.3a()},1W:7(){1k.3h(5.3J(\'*\'));6 5.5u(\'\')}});u.5F=7(q,V,L){c($2L(2J(V)))6 V;c([\'4R\',\'2F\'].W(q)){h 1d=(q==\'2F\')?[\'1Z\',\'4I\']:[\'1O\',\'4S\'];h 2i=0;1d.1f(7(1b){2i+=L.2f(\'1R-\'+1b+\'-2F\').31()+L.2f(\'4K-\'+1b).31()});6 L[\'4s\'+q.5D()]-2i+\'4b\'}M c(q.1Q(/1R(.+)5J|5d|4K/)){6\'51\'}6 V};u.2s={\'1R\':[],\'4K\':[],\'5d\':[]};[\'58\',\'5k\',\'5e\',\'59\'].1f(7(5E){F(h U 14 u.2s)u.2s[U].1h(U+5E)});u.5s=[\'8Z\',\'8W\',\'8V\'];u.3T=7(k,3u,19){h V={};$1f(19,7(1s){V[1s]=k[3u](1s)});6 V};u.3o=7(k,3u,42){F(h 1s 14 42)k[3u](1s,42[1s]);6 k};u.3B=Q 2t({\'5t\':\'1a\',\'F\':\'8R\',\'8S\':\'8T\',\'8U\':\'90\',\'91\':\'97\',\'9v\':\'99\',\'96\':\'95\',\'92\':\'93\',\'94\':\'9u\',\'1b\':\'1b\',\'5x\':\'5x\',\'5g\':\'5g\',\'57\':\'57\',\'52\':\'52\'});u.4Z={\'3c\':2,\'3w\':2};u.1T={3m:{2j:7(m,r){c(5.3M)5.3M(m,r,O);M 5.9x(\'3K\'+m,r);6 5},6F:7(m,r){c(5.4W)5.4W(m,r,O);M 5.9J(\'3K\'+m,r);6 5}}};t.J(u.1T.3m);C.J(u.1T.3m);u.J(u.1T.3m);h 1k={N:[],2C:7(k){c(!k.$1X){1k.N.1h(k);k.$1X={\'1p\':1}}6 k},3h:7(N){F(h i=0,j=N.H,k;i<j;i++){c(!(k=N[i])||!k.$1X)5U;c(k.$E)k.1L(\'3h\').3k();F(h p 14 k.$1X)k.$1X[p]=Y;F(h d 14 u.X)k[d]=Y;1k.N[1k.N.2e(k)]=Y;k.2q=k.$1X=k=Y}1k.N.2y(Y)},1W:7(){1k.2C(t);1k.2C(C);1k.3h(1k.N)}};t.2j(\'5X\',7(){t.2j(\'4M\',1k.1W);c(t.1u)t.2j(\'4M\',9K)});h 1t=Q 17({1A:7(o){c(o&&o.$6C)6 o;5.$6C=15;o=o||t.o;5.o=o;5.m=o.m;5.1J=o.1J||o.9H;c(5.1J.43==3)5.1J=5.1J.1Y;5.6E=o.9I;5.9F=o.9z;5.7N=o.9y;5.9G=o.9w;c([\'4Q\',\'2w\'].W(5.m)){5.9A=(o.6H)?o.6H/9B:-(o.9E||0)/3}M c(5.m.W(\'1s\')){5.3j=o.6I||o.9D;F(h 1m 14 1t.19){c(1t.19[1m]==5.3j){5.1s=1m;1r}}c(5.m==\'5Y\'){h 3x=5.3j-9C;c(3x>0&&3x<13)5.1s=\'f\'+3x}5.1s=5.1s||3O.98(5.3j).3a()}M c(5.m.1Q(/(4v|8P|89)/)){5.8a={\'x\':o.3Z||o.6z+C.1w.2T,\'y\':o.3V||o.6v+C.1w.2S};5.88={\'x\':o.3Z?o.3Z-t.5T:o.6z,\'y\':o.3V?o.3V-t.5S:o.6v};5.87=(o.6I==3)||(o.85==2);1E(5.m){P\'4E\':5.1c=o.1c||o.86;1r;P\'4F\':5.1c=o.1c||o.4j}5.6u()}6 5},1C:7(){6 5.3E().36()},3E:7(){c(5.o.3E)5.o.3E();M 5.o.8b=15;6 5},36:7(){c(5.o.36)5.o.36();M 5.o.8c=O;6 5}});1t.3z={1c:7(){c(5.1c&&5.1c.43==3)5.1c=5.1c.1Y},6y:7(){3P{1t.3z.1c.1v(5)}3N(e){5.1c=5.1J}}};1t.X.6u=(t.4V)?1t.3z.6y:1t.3z.1c;1t.19=Q 2t({\'8h\':13,\'8Q\':38,\'8g\':40,\'1Z\':37,\'4I\':39,\'8f\':27,\'8d\':32,\'8e\':8,\'84\':9,\'3X\':46});u.1T.1F={1x:7(m,r){5.$E=5.$E||{};5.$E[m]=5.$E[m]||{\'19\':[],\'1d\':[]};c(5.$E[m].19.W(r))6 5;5.$E[m].19.1h(r);h 2U=m;h 1e=u.1F[m];c(1e){c(1e.4T)1e.4T.1v(5,r);c(1e.1U)r=1e.1U;c(1e.m)2U=1e.m}c(!5.3M)r=r.1B({\'v\':5,\'o\':15});5.$E[m].1d.1h(r);6(u.4P.W(2U))?5.2j(2U,r):5},3C:7(m,r){c(!5.$E||!5.$E[m])6 5;h 2W=5.$E[m].19.2e(r);c(2W==-1)6 5;h 1s=5.$E[m].19.2V(2W,1)[0];h 1b=5.$E[m].1d.2V(2W,1)[0];h 1e=u.1F[m];c(1e){c(1e.2y)1e.2y.1v(5,r);c(1e.m)m=1e.m}6(u.4P.W(m))?5.6F(m,1b):5},3S:7(1S){6 u.3o(5,\'1x\',1S)},3k:7(m){c(!5.$E)6 5;c(!m){F(h 3d 14 5.$E)5.3k(3d);5.$E=Y}M c(5.$E[m]){5.$E[m].19.1f(7(r){5.3C(m,r)},5);5.$E[m]=Y}6 5},1L:7(m,K,1j){c(5.$E&&5.$E[m]){5.$E[m].19.1f(7(r){r.1B({\'v\':5,\'1j\':1j,\'G\':K})()},5)}6 5},6J:7(T,m){c(!T.$E)6 5;c(!m){F(h 3d 14 T.$E)5.6J(T,3d)}M c(T.$E[m]){T.$E[m].19.1f(7(r){5.1x(m,r)},5)}6 5}};t.J(u.1T.1F);C.J(u.1T.1F);u.J(u.1T.1F);u.1F=Q 2t({\'6q\':{m:\'4E\',1U:7(o){o=Q 1t(o);c(o.1c!=5&&!5.3W(o.1c))5.1L(\'6q\',o)}},\'5Z\':{m:\'4F\',1U:7(o){o=Q 1t(o);c(o.1c!=5&&!5.3W(o.1c))5.1L(\'5Z\',o)}},\'2w\':{m:(t.4V)?\'4Q\':\'2w\'}});u.4P=[\'4v\',\'83\',\'7T\',\'7U\',\'2w\',\'4Q\',\'4E\',\'4F\',\'7S\',\'5Y\',\'7R\',\'7O\',\'5N\',\'4M\',\'5X\',\'7P\',\'7Q\',\'7V\',\'7W\',\'6h\',\'81\',\'82\',\'80\',\'7Z\',\'7X\',\'7Y\',\'2E\'];4O.J({5B:7(v,K){6 5.1B({\'v\':v,\'G\':K,\'o\':1t})}});u.J({24:7(x,y){5.2T=x;5.2S=y},4q:7(){6{\'2E\':{\'x\':5.2T,\'y\':5.2S},\'2i\':{\'x\':5.4D,\'y\':5.4d},\'4t\':{\'x\':5.3r,\'y\':5.2Y}}},2k:7(1o){1o=1o||[];h k=5,1Z=0,1O=0;8j{1Z+=k.8k||0;1O+=k.8F||0;k=k.8G}44(k);1o.1f(7(L){1Z-=L.2T||0;1O-=L.2S||0});6{\'x\':1Z,\'y\':1O}},8E:7(1o){6 5.2k(1o).y},8D:7(1o){6 5.2k(1o).x},8B:7(1o){h 4G=5.2k(1o);h I={\'2F\':5.4D,\'4R\':5.4d,\'1Z\':4G.x,\'1O\':4G.y};I.4I=I.1Z+I.2F;I.4S=I.1O+I.4R;6 I}});u.1F.4k={4T:7(r){c(t.3v){r.1v(5);6}h 2H=7(){c(t.3v)6;t.3v=15;t.1q=$4y(t.1q);5.1L(\'4k\')}.v(5);c(C.3A&&t.2c){t.1q=7(){c([\'3v\',\'5O\'].W(C.3A))2H()}.2h(50)}M c(C.3A&&t.1u){c(!$(\'4h\')){h 3w=(t.2n.8C==\'8H:\')?\'://0\':\'8I:8N(0)\';C.8O(\'<2A 8M="4h" 8L 3w="\'+3w+\'"><\\/2A>\');$(\'4h\').8J=7(){c(5.3A==\'5O\')2H()}}}M{t.2j("5N",2H);C.2j("8K",2H)}}};t.8A=7(r){6 5.1x(\'4k\',r)};t.J({5R:7(){c(5.3l)6 5.8z;c(5.5P)6 C.2Z.5L;6 C.1w.5L},65:7(){c(5.3l)6 5.8p;c(5.5P)6 C.2Z.5Q;6 C.1w.5Q},66:7(){c(5.1u)6 1l.1y(C.1w.4D,C.1w.3r);c(5.2c)6 C.2Z.3r;6 C.1w.3r},6k:7(){c(5.1u)6 1l.1y(C.1w.4d,C.1w.2Y);c(5.2c)6 C.2Z.2Y;6 C.1w.2Y},6j:7(){6 5.5T||C.1w.2T},6i:7(){6 5.5S||C.1w.2S},4q:7(){6{\'2i\':{\'x\':5.5R(),\'y\':5.65()},\'4t\':{\'x\':5.66(),\'y\':5.6k()},\'2E\':{\'x\':5.6j(),\'y\':5.6i()}}},2k:7(){6{\'x\':0,\'y\':0}}});h 2B={};2B.4z=Q 17({B:{4B:17.1W,3D:17.1W,69:17.1W,6p:7(p){6-(1l.8q(1l.8o*p)-1)/2},4l:8n,8l:\'4b\',4n:15,6a:50},1A:7(B){5.L=5.L||Y;5.6m(B);c(5.B.1A)5.B.1A.1v(5)},6g:7(){h 1I=$1I();c(1I<5.1I+5.B.4l){5.6n=5.B.6p((1I-5.1I)/5.B.4l);5.4u();5.4r()}M{5.1C(15);5.3p(5.1n);5.1L(\'3D\',5.L,10);5.6o()}},3p:7(1n){5.2m=1n;5.4r();6 5},4u:7(){5.2m=5.4p(5.T,5.1n)},4p:7(T,1n){6(1n-T)*5.6n+T},1g:7(T,1n){c(!5.B.4n)5.1C();M c(5.1q)6 5;5.T=T;5.1n=1n;5.6h=5.1n-5.T;5.1I=$1I();5.1q=5.6g.2h(1l.4w(8m/5.B.6a),5);5.1L(\'4B\',5.L);6 5},1C:7(3t){c(!5.1q)6 5;5.1q=$4y(5.1q);c(!3t)5.1L(\'69\',5.L);6 5},1e:7(T,1n){6 5.1g(T,1n)},8r:7(3t){6 5.1C(3t)}});2B.4z.68(Q 67,Q 1F,Q 6b);2B.62=2B.4z.J({B:{1o:[],4s:{\'x\':0,\'y\':0},6c:15},1A:7(L,B){5.2m=[];5.L=$(L);5.4A={\'1C\':5.1C.v(5,O)};5.22(B);c(5.B.6c){5.1x(\'4B\',7(){C.1x(\'2w\',5.4A.1C)}.v(5));5.1x(\'3D\',7(){C.3C(\'2w\',5.4A.1C)}.v(5))}},4u:7(){F(h i=0;i<2;i++)5.2m[i]=5.4p(5.T[i],5.1n[i])},24:7(x,y){c(5.1q&&5.B.4n)6 5;h k=5.L.4q();h 1d={\'x\':x,\'y\':y};F(h z 14 k.2i){h 1y=k.4t[z]-k.2i[z];c($2L(1d[z]))1d[z]=($m(1d[z])==\'3b\')?1d[z].6f(0,1y):1y;M 1d[z]=k.2E[z];1d[z]+=5.B.4s[z]}6 5.1g([k.2E.x,k.2E.y],[1d.x,1d.y])},8s:7(){6 5.24(O,0)},8x:7(){6 5.24(O,\'6d\')},8y:7(){6 5.24(0,O)},8w:7(){6 5.24(\'6d\',O)},4j:7(k){h 22=5.L.2k(5.B.1o);h 1J=$(k).2k(5.B.1o);6 5.24(1J.x-22.x,1J.y-22.y)},4r:7(){5.L.24(5.2m[0],5.2m[1])}});h 8v=2B.62.J({1A:7(B){5.22(t,B);5.2O=(5.B.2O)?$$(5.B.2O):$$(C.2O);h 2n=t.2n.3c.1D(/^[^#]*/)[0]+\'#\';5.2O.1f(7(2r){c(2r.3c.2e(2n)!=0)6;h 1N=2r.3c.8t(2n.H);c(1N&&$(1N))5.60(2r,1N)},5);c(!t.3l)5.1x(\'3D\',7(){t.2n.8u=5.1N})},60:7(2r,1N){2r.1x(\'4v\',7(o){5.1N=1N;5.4j(1N);o.1C()}.5B(5))}});',62,605,'|||||this|return|function|||||if|||||var|||el||type||event||property|fn||window|Element|bind||||||options|document||events|for|arguments|length|obj|extend|args|element|else|elements|false|case|new|array||from|style|result|contains|prototype|null||||props||in|true||Class|prop|keys|className|value|relatedTarget|values|custom|each|start|push|Array|delay|Garbage|Math|name|to|overflown|opacity|timer|break|key|Event|ie|call|documentElement|addEvent|max|rgb|initialize|create|stop|match|switch|Events|item|properties|time|target|text|fireEvent|index|anchor|top|returns|test|border|source|Methods|map|previous|empty|tmp|parentNode|left|iterable|tag|parent|join|scrollTo|replace|string||object|min|hex|current|webkit|chains|indexOf|getStyle|Elements|periodical|size|addListener|getPosition|merge|now|location|inject|bit|htmlElement|link|Styles|Abstract|native|len|mousewheel|results|remove|apply|script|Fx|collect|selector|scroll|width|val|domReady|HTMLElement|parseInt|precision|chk|option|next|links|walk|klass|mix|scrollTop|scrollLeft|realType|splice|pos|attempt|scrollHeight|body|mp|toInt||proto|every|ap|preventDefault||||toLowerCase|number|href|evType|rgbToHex|visibility|generic|trash|currentStyle|code|removeEvents|webkit419|Listeners|brother|setMany|set|defined|scrollWidth|setProperty|end|method|loaded|src|fKey|included|fix|readyState|Properties|removeEvent|onComplete|stopPropagation|typeof|regex|items|forEach|getElementsByTagName|on|insertBefore|addEventListener|catch|String|try|first|default|addEvents|getMany|charAt|pageY|hasChild|delete|unique|pageX||hexToRgb|pairs|nodeType|while|flag||node|appendChild|RegExp|clean|px|hasClass|offsetHeight|firstChild|getProperty|pick|ie_ready|cssText|toElement|domready|duration|parseFloat|wait|camelCase|compute|getSize|increase|offset|scrollSize|setNow|click|round|color|clear|Base|bound|onStart|innerText|offsetWidth|mouseover|mouseout|position|random|right|include|padding|newArray|unload|merged|Function|NativeEvents|DOMMouseScroll|height|bottom|add|getTag|gecko|removeEventListener|hidden|hyphenate|PropertiesIFlag||0px|selected|zoom|visible|Multi|filter|multiple|Top|Left|setStyle|setOpacity|setStyles|margin|Bottom|defaultView|checked|before|appendText|removeChild|Right|contents|setProperties|after|styleSheet|innerHTML|tagName|argument|borderShort|class|setHTML|nodeValue|removeClass|disabled|textContent|getNext|addClass|bindWithEvent|getLast|capitalize|direction|fixStyle|elementsProperty|where|childNodes|Width|params|clientWidth|xpath|load|complete|opera|clientHeight|getWidth|pageYOffset|pageXOffset|continue|ie6|callee|beforeunload|keydown|mouseleave|useLink|Merge|Scroll|constructor|pp|getHeight|getScrollWidth|Chain|implement|onCancel|fps|Options|wheelStops|full|picked|limit|step|change|getScrollTop|getScrollLeft|getScrollHeight|head|setOptions|delta|callChain|transition|mouseenter|undefined|Number|slice|fixRelatedTarget|clientY|createElement|toFloat|relatedTargetGecko|clientX|trim|getElementsBySelector|extended|toUpperCase|shift|removeListener|interval|wheelDelta|which|cloneEvents|copy|pow|float|styles|nodeName|ActiveXObject|toggleClass|evaluate|Document|textnode|Window|zIndex|getTime|boolean|whitespace|Date|regexp|collection|floor|embed|getElementById|cssFloat|clearInterval|times|XMLHttpRequest|clearTimeout|version|styleFloat|pass|iframe|DOMElement|escapeRegExp|transparent|Object|webkit420|getBoxObjectFor|khtml|execCommand|BackgroundImageCache|some|associate|getRandom|clearChain|chain|adopt|concat|toString|setTimeout|replaceChild|replaceWith|err|injectBefore|MooTools|createTextNode|bindAsEventListener|injectAfter|setInterval|all|navigator|taintEnabled|injectTop|clone|cloneNode|injectInside|ie7|alt|keyup|resize|move|keypress|mousemove|mouseup|mousedown|focus|blur|abort|contextmenu|error|select|submit|reset|dblclick|tab|button|fromElement|rightClick|client|menu|page|cancelBubble|returnValue|space|backspace|esc|down|enter|hasLayout|do|offsetLeft|unit|1000|500|PI|innerHeight|cos|clearTimer|toTop|substr|hash|SmoothScroll|toRight|toBottom|toLeft|innerWidth|onDomReady|getCoordinates|protocol|getLeft|getTop|offsetTop|offsetParent|https|javascript|onreadystatechange|DOMContentLoaded|defer|id|void|write|mouse|up|htmlFor|colspan|colSpan|rowspan|borderColor|borderStyle|setText|getText|borderWidth|rowSpan|accesskey|readonly|readOnly|frameborder|maxLength|maxlength|accessKey|fromCharCode|tabIndex|setAttribute|getProperties|getPropertyValue|split|getStyles|getComputedStyle|Color|alpha|100|Style|Sibling|getPrevious|attributes|removeProperty|removeAttribute|getAttribute|getChildren|getFirst|lastChild|getParent|frameBorder|tabindex|metaKey|attachEvent|altKey|ctrlKey|wheel|120|111|keyCode|detail|control|meta|srcElement|shiftKey|detachEvent|CollectGarbage'.split('|'),0,{}))


Cufon.replace('h2');

window.addEvent('domready', function() { 
	new SmoothScroll({
		duration	:500
	}); 
});