

function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      oldonload();
      func();
    }
  }
}

function prepareInputsForHints() {
	var inputs = document.getElementsByTagName("input");
	for (var i=0; i<inputs.length; i++){
		// test to see if the hint span exists first
		if (inputs[i].parentNode.getElementsByTagName("span")[0]) {
			// the span exists!  on focus, show the hint
			inputs[i].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			// when the cursor moves away from the field, hide the hint
			inputs[i].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
	// repeat the same tests as above for selects
	var selects = document.getElementsByTagName("select");
	for (var k=0; k<selects.length; k++){
		if (selects[k].parentNode.getElementsByTagName("span")[0]) {
			selects[k].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			selects[k].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
	// repeat the same tests as above for selects
	var textareas = document.getElementsByTagName("textarea");
	for (var i=0; i<textareas.length; i++){
		// test to see if the hint span exists first
		if (textareas[i].parentNode.getElementsByTagName("span")[0]) {
			// the span exists!  on focus, show the hint
			textareas[i].onfocus = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "inline";
			}
			// when the cursor moves away from the field, hide the hint
			textareas[i].onblur = function () {
				this.parentNode.getElementsByTagName("span")[0].style.display = "none";
			}
		}
	}
}
addLoadEvent(prepareInputsForHints);

eval(function(p,a,c,k,e,r){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--)r[e(c)]=k[c]||e(c);k=[function(e){return r[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}('o.L.M=5(c){c=o.N({3:6,2:C,s:t,u:"O",w:"P",p:"Q",x:"R",D:"S"},c);0 d;0 e;0 f=q;0 g=t;0 h=o(T);0 i;0 j;0 k=5(){h.y();e=h.z();4(h.z()>c.3){h.U(":V("+(c.3-1)+")").A();d=c.3;n()}};0 l=5(){4(!f){0 a=d+c.3;h.A();h.E(d,a).y();d=a;4(d>=e){f=t;i.B("r")}4(c.s)c.2.7("."+c.p).v(d/c.3);j.F("r");g=q}};0 m=5(){4(!g){0 a=d-c.3;h.A();h.E((a-c.3),a).y();d=a;4(d==c.3){g=t;j.B("r")}4(c.s)c.2.7("."+c.p).v(d/c.3);i.F("r");f=q}};0 n=5(){4(c.2===C){c.2=o(\'<G 8="W"></G>\');h.X(h.z()-1).H(c.2)}0 a=$(\'<a 8="\'+c.u+\'" I="#">&Y; Z</a><a 8="\'+c.w+\'" I="#">10 &11;</a>\');o(c.2).12(a);4(c.s){0 b=\'<9 8="\'+c.D+\'"><9 8="\'+c.p+\'"></9> / <9 8="\'+c.x+\'"></9></9>\';c.2.7("."+c.u).H(b);c.2.7("."+c.p).v(1);c.2.7("."+c.x).v(13.14(e/c.3))}i=c.2.7("."+c.w);j=c.2.7("."+c.u);j.B("r");i.J(5(){l();K q});j.J(5(){m();K q})};k()};',62,67,'var||pager|perpage|if|function||find|class|span|||||||||||||||jQuery|pagenumber|false|qp_disabled|showcounter|true|prev|text|next|totalnumber|show|size|hide|addClass|null|counter|slice|removeClass|div|after|href|click|return|fn|quickpaginate|extend|qp_next|qp_prev|qp_pagenumber|qp_totalnumber|qp_counter|this|filter|gt|qc_pager|eq|laquo|zur&uuml;ck | weiter|raquo|append|Math|ceil'.split('|'),0,{}))

$(document).ready(function() {
	
	// Expand Panel
	$("#open").click(function(){
		$("div#panel").slideDown("slow");
	
	});	
	
	// Collapse Panel
	$("#close").click(function(){
		$("div#panel").slideUp("slow");	
	});		
	
	// Switch buttons from "Log In | Register" to "Close Panel" on click
	$("#toggle a").click(function () {
		$("#toggle a").toggle();
	});		
		
});

/*!
 * Copyright (c) 2011 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version ${Version}
 */

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);
			};

		})(),

		root: function() {
			return document.documentElement || document.body;
		},

		strict: (function() {
			var doctype;
			// no doctype (doesn't always catch it though.. IE I'm looking at you)
			if (document.compatMode == 'BackCompat') return false;
			// WebKit, Gecko, Opera, IE9+
			doctype = document.doctype;
			if (doctype) {
				return !/frameset|transitional/i.test(doctype.publicId);
			}
			// IE<9, firstChild is the doctype even if there's an XML declaration
			doctype = document.firstChild;
			if (doctype.nodeType != 8 || /^DOCTYPE.+(transitional|frameset)/i.test(doctype.data)) {
				return false;
			}
			return true;
		})()

	};

	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;
			};

		},

		addClass: function(el, className) {
			var current = el.className;
			el.className = current + (current && ' ') + className;
			return el;
		},

		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;
		}),

		// has no direct CSS equivalent.
		// @see http://msdn.microsoft.com/en-us/library/system.windows.fontstretches.aspx
		fontStretch: cached(function(value) {
			if (typeof value == 'number') return value;
			if (/%$/.test(value)) return parseFloat(value) / 100;
			return {
				'ultra-condensed': 0.5,
				'extra-condensed': 0.625,
				condensed: 0.75,
				'semi-condensed': 0.875,
				'semi-expanded': 1.125,
				expanded: 1.25,
				'extra-expanded': 1.5,
				'ultra-expanded': 2
			}[value] || 1;
		}),

		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);
		},

		gradient: cached(function(value) {
			var gradient = {
				id: value,
				type: value.match(/^-([a-z]+)-gradient\(/)[1],
				stops: []
			}, colors = value.substr(value.indexOf('(')).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);
			for (var i = 0, l = colors.length, stop; i < l; ++i) {
				stop = colors[i].split('=', 2).reverse();
				gradient.stops.push([ stop[1] || i / (l - 1), stop[0] ]);
			}
			return gradient;
		}),

		quotedList: cached(function(value) {
			// doesn't work properly with empty quoted strings (""), but
			// it's not worth the extra code.
			var list = [], re = /\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g, match;
			while (match = re.exec(value)) list.push(match[3] || match[1]);
			return list;
		}),

		recognizesMedia: cached(function(media) {
			var el = document.createElement('style'), sheet, container, supported;
			el.type = 'text/css';
			el.media = media;
			try { // this is cached anyway
				el.appendChild(document.createTextNode('/**/'));
			} catch (e) {}
			container = elementsByTagName('head')[0];
			container.insertBefore(el, container.firstChild);
			sheet = (el.sheet || el.styleSheet);
			supported = sheet && !sheet.disabled;
			container.removeChild(el);
			return supported;
		}),

		removeClass: function(el, className) {
			var re = RegExp('(?:^|\\s+)' + className +  '(?=\\s|$)', 'g');
			el.className = el.className.replace(re, '');
			return el;
		},

		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;
		},

		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;
		}),

		textTransform: (function() {
			var map = {
				uppercase: function(s) {
					return s.toUpperCase();
				},
				lowercase: function(s) {
					return s.toLowerCase();
				},
				capitalize: function(s) {
					return s.replace(/(?:^|\s)./g, function($0) {
						return $0.toUpperCase();
					});
				}
			};
			return function(text, style) {
				var transform = map[style.get('textTransform')];
				return transform ? transform(text) : text;
			};
		})(),

		whiteSpace: (function() {
			var ignore = {
				inline: 1,
				'inline-block': 1,
				'run-in': 1
			};
			var wsStart = /^\s+/, wsEnd = /\s+$/;
			return function(text, style, node, previousElement, simple) {
				if (simple) return text.replace(wsStart, '').replace(wsEnd, ''); // @fixme too simple
				if (previousElement) {
					if (previousElement.nodeName.toLowerCase() == 'br') {
						text = text.replace(wsStart, '');
					}
				}
				if (ignore[style.get('display')]) return text;
				if (!node.previousSibling) text = text.replace(wsStart, '');
				if (!node.nextSibling) text = text.replace(wsEnd, '');
				return text;
			};
		})()

	};

	CSS.ready = (function() {

		// don't do anything in Safari 2 (it doesn't recognize any media type)
		var complete = !CSS.recognizesMedia('all'), hasLayout = false;

		var queue = [], perform = function() {
			complete = true;
			for (var fn; fn = queue.shift(); fn());
		};

		var links = elementsByTagName('link'), styles = elementsByTagName('style');

		var checkTypes = {
			'': 1,
			'text/css': 1
		};

		function isContainerReady(el) {
			if (!checkTypes[el.type.toLowerCase()]) return true;
			return el.disabled || isSheetReady(el.sheet, el.media || 'screen');
		}

		function isSheetReady(sheet, media) {
			// in Opera sheet.disabled is true when it's still loading,
			// even though link.disabled is false. they stay in sync if
			// set manually.
			if (!CSS.recognizesMedia(media || 'all')) return true;
			if (!sheet || sheet.disabled) return false;
			try {
				var rules = sheet.cssRules, rule;
				if (rules) {
					// needed for Safari 3 and Chrome 1.0.
					// in standards-conforming browsers cssRules contains @-rules.
					// Chrome 1.0 weirdness: rules[<number larger than .length - 1>]
					// returns the last rule, so a for loop is the only option.
					search: for (var i = 0, l = rules.length; rule = rules[i], i < l; ++i) {
						switch (rule.type) {
							case 2: // @charset
								break;
							case 3: // @import
								if (!isSheetReady(rule.styleSheet, rule.media.mediaText)) return false;
								break;
							default:
								// only @charset can precede @import
								break search;
						}
					}
				}
			}
			catch (e) {} // probably a style sheet from another domain
			return true;
		}

		function allStylesLoaded() {
			// Internet Explorer's style sheet model, there's no need to do anything
			if (document.createStyleSheet) return true;
			// standards-compliant browsers
			var el, i;
			for (i = 0; el = links[i]; ++i) {
				if (el.rel.toLowerCase() == 'stylesheet' && !isContainerReady(el)) return false;
			}
			for (i = 0; el = styles[i]; ++i) {
				if (!isContainerReady(el)) return false;
			}
			return true;
		}

		DOM.ready(function() {
			// getComputedStyle returns null in Gecko if used in an iframe with display: none
			if (!hasLayout) hasLayout = CSS.getStyle(document.body).isUsable();
			if (complete || (hasLayout && allStylesLoaded())) perform();
			else setTimeout(arguments.callee, 10);
		});

		return function(listener) {
			if (complete) listener();
			else queue.push(listener);
		};

	})();

	function Font(data) {

		var face = this.face = data.face, wordSeparators = {
			'\u0020': 1,
			'\u00a0': 1,
			'\u3000': 1
		};

		this.glyphs = (function(glyphs) {
			var key, fallbacks = {
				'\u2011': '\u002d',
				'\u00ad': '\u2011'
			};
			for (key in fallbacks) {
				if (!hasOwnProperty(fallbacks, key)) continue;
				if (!glyphs[key]) glyphs[key] = glyphs[fallbacks[key]];
			}
			return 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+/);
			var box = {
				minX: parseInt(parts[0], 10),
				minY: parseInt(parts[1], 10),
				maxX: parseInt(parts[2], 10),
				maxY: parseInt(parts[3], 10)
			};
			box.width = box.maxX - box.minX;
			box.height = box.maxY - box.minY;
			box.toString = function() {
				return [ this.minX, this.minY, this.width, this.height ].join(' ');
			};
			return box;
		})();

		this.ascent = -parseInt(face.ascent, 10);
		this.descent = -parseInt(face.descent, 10);

		this.height = -this.ascent + this.descent;

		this.spacing = function(chars, letterSpacing, wordSpacing) {
			var glyphs = this.glyphs, glyph,
				kerning, k,
				jumps = [],
				width = 0, w,
				i = -1, j = -1, chr;
			while (chr = chars[++i]) {
				glyph = glyphs[chr] || this.missingGlyph;
				if (!glyph) continue;
				if (kerning) {
					width -= k = kerning[chr] || 0;
					jumps[j] -= k;
				}
				w = glyph.w;
				if (isNaN(w)) w = +this.w; // may have been a String in old fonts
				if (w > 0) {
					w += letterSpacing;
					if (wordSeparators[chr]) w += wordSpacing;
				}
				width += jumps[++j] = ~~w; // get rid of decimals
				kerning = glyph.k;
			}
			jumps.total = width;
			return jumps;
		};

	}

	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) {
				if (!hasOwnProperty(weights, alt)) continue;
				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 HoverHandler() {

		function contains(node, anotherNode) {
			try {
				if (node.contains) return node.contains(anotherNode);
				return node.compareDocumentPosition(anotherNode) & 16;
			}
			catch(e) {} // probably a XUL element such as a scrollbar
			return false;
		}

		// mouseover/mouseout (standards) mode
		function onOverOut(e) {
			var related = e.relatedTarget;
			// there might be no relatedTarget if the element is right next
			// to the window frame
			if (related && contains(this, related)) return;
			trigger(this, e.type == 'mouseover');
		}

		// mouseenter/mouseleave (probably ie) mode
		function onEnterLeave(e) {
			if (!e) e = window.event;
			// ie model, we don't have access to "this", but
			// mouseenter/leave doesn't bubble so it's fine.
			trigger(e.target || e.srcElement, e.type == 'mouseenter');
		}

		function trigger(el, hoverState) {
			// A timeout is needed so that the event can actually "happen"
			// before replace is triggered. This ensures that styles are up
			// to date.
			setTimeout(function() {
				var options = sharedStorage.get(el).options;
				if (hoverState) {
					options = merge(options, options.hover);
					options._mediatorMode = 1;
				}
				api.replace(el, options, true);
			}, 10);
		}

		this.attach = function(el) {
			if (el.onmouseenter === undefined) {
				addEvent(el, 'mouseover', onOverOut);
				addEvent(el, 'mouseout', onOverOut);
			}
			else {
				addEvent(el, 'mouseenter', onEnterLeave);
				addEvent(el, 'mouseleave', onEnterLeave);
			}
		};

		this.detach = function(el) {
			if (el.onmouseenter === undefined) {
				removeEvent(el, 'mouseover', onOverOut);
				removeEvent(el, 'mouseout', onOverOut);
			}
			else {
				removeEvent(el, 'mouseenter', onEnterLeave);
				removeEvent(el, 'mouseleave', onEnterLeave);
			}
		};

	}

	function ReplaceHistory() {

		var list = [], map = {};

		function filter(keys) {
			var values = [], key;
			for (var i = 0; key = keys[i]; ++i) values[i] = list[map[key]];
			return values;
		}

		this.add = function(key, args) {
			map[key] = list.push(args) - 1;
		};

		this.repeat = function() {
			var snapshot = arguments.length ? filter(arguments) : list, args;
			for (var i = 0; args = snapshot[i++];) api.replace(args[0], args[1], true);
		};

	}

	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.extend = function(styles) {
			for (var property in styles) {
				if (hasOwnProperty(styles, property)) custom[property] = styles[property];
			}
			return this;
		};

		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.isUsable = function() {
			return !!style;
		};

	}

	function addEvent(el, type, listener) {
		if (el.addEventListener) {
			el.addEventListener(type, listener, false);
		}
		else if (el.attachEvent) {
			// we don't really need "this" right now, saves code
			el.attachEvent('on' + type, listener);
		}
	}

	function attach(el, options) {
		if (options._mediatorMode) return el;
		var storage = sharedStorage.get(el);
		var oldOptions = storage.options;
		if (oldOptions) {
			if (oldOptions === options) return el;
			if (oldOptions.hover) hoverHandler.detach(el);
		}
		if (options.hover && options.hoverables[el.nodeName.toLowerCase()]) {
			hoverHandler.attach(el);
		}
		storage.options = options;
		return el;
	}

	function cached(fun) {
		var cache = {};
		return function(key) {
			if (!hasOwnProperty(cache, key)) cache[key] = fun.apply(null, arguments);
			return cache[key];
		};
	}

	function getFont(el, style) {
		var families = CSS.quotedList(style.get('fontFamily').toLowerCase()), family;
		for (var i = 0; family = families[i]; ++i) {
			if (fonts[family]) return fonts[family].get(style.get('fontStyle'), style.get('fontWeight'));
		}
		return null;
	}

	function elementsByTagName(query) {
		return document.getElementsByTagName(query);
	}

	function hasOwnProperty(obj, property) {
		return obj.hasOwnProperty(property);
	}

	function merge() {
		var merged = {}, arg, key;
		for (var i = 0, l = arguments.length; arg = arguments[i], i < l; ++i) {
			for (key in arg) {
				if (hasOwnProperty(arg, key)) merged[key] = arg[key];
			}
		}
		return merged;
	}

	function process(font, text, style, options, node, el) {
		var fragment = document.createDocumentFragment(), processed;
		if (text === '') return fragment;
		var separate = options.separate;
		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 removeEvent(el, type, listener) {
		if (el.removeEventListener) {
			el.removeEventListener(type, listener, false);
		}
		else if (el.detachEvent) {
			el.detachEvent('on' + type, listener);
		}
	}

	function replaceElement(el, options) {
		var name = el.nodeName.toLowerCase();
		if (options.ignore[name]) return;
		if (options.ignoreClass && options.ignoreClass.test(el.className)) return;
		if (options.onBeforeReplace) options.onBeforeReplace(el, options);
		var replace = !options.textless[name], simple = (options.trim === 'simple');
		var style = CSS.getStyle(attach(el, options)).extend(options);
		// may cause issues if the element contains other elements
		// with larger fontSize, however such cases are rare and can
		// be fixed by using a more specific selector
		if (parseFloat(style.get('fontSize')) === 0) return;
		var font = getFont(el, style), node, type, next, anchor, text, lastElement;
		var isShy = options.softHyphens, anyShy = false, pos, shy, reShy = /\u00ad/g;
		var modifyText = options.modifyText;
		if (!font) return;
		for (node = el.firstChild; node; node = next) {
			type = node.nodeType;
			next = node.nextSibling;
			if (replace && type == 3) {
				if (isShy && el.nodeName.toLowerCase() != TAG_SHY) {
					pos = node.data.indexOf('\u00ad');
					if (pos >= 0) {
						node.splitText(pos);
						next = node.nextSibling;
						next.deleteData(0, 1);
						shy = document.createElement(TAG_SHY);
						shy.appendChild(document.createTextNode('\u00ad'));
						el.insertBefore(shy, next);
						next = shy;
						anyShy = true;
					}
				}
				// Node.normalize() is broken in IE 6, 7, 8
				if (anchor) {
					anchor.appendData(node.data);
					el.removeChild(node);
				}
				else anchor = node;
				if (next) continue;
			}
			if (anchor) {
				text = anchor.data;
				if (!isShy) text = text.replace(reShy, '');
				text = CSS.whiteSpace(text, style, anchor, lastElement, simple);
				// modify text only on the first replace
				if (modifyText) text = modifyText(text, anchor, el, options);
				el.replaceChild(process(font, text, style, options, node, el), anchor);
				anchor = null;
			}
			if (type == 1) {
				if (node.firstChild) {
					if (node.nodeName.toLowerCase() == 'cufon') {
						engines[options.engine](font, null, style, options, node, el);
					}
					else arguments.callee(node, options);
				}
				lastElement = node;
			}
		}
		if (isShy && anyShy) {
			updateShy(el);
			if (!trackingShy) addEvent(window, 'resize', updateShyOnResize);
			trackingShy = true;
		}
		if (options.onAfterReplace) options.onAfterReplace(el, options);
	}

	function updateShy(context) {
		var shys, shy, parent, glue, newGlue, next, prev, i;
		shys = context.getElementsByTagName(TAG_SHY);
		// unfortunately there doesn't seem to be any easy
		// way to avoid having to loop through the shys twice.
		for (i = 0; shy = shys[i]; ++i) {
			shy.className = C_SHY_DISABLED;
			glue = parent = shy.parentNode;
			if (glue.nodeName.toLowerCase() != TAG_GLUE) {
				newGlue = document.createElement(TAG_GLUE);
				newGlue.appendChild(shy.previousSibling);
				parent.insertBefore(newGlue, shy);
				newGlue.appendChild(shy);
			}
			else {
				// get rid of double glue (edge case fix)
				glue = glue.parentNode;
				if (glue.nodeName.toLowerCase() == TAG_GLUE) {
					parent = glue.parentNode;
					while (glue.firstChild) {
						parent.insertBefore(glue.firstChild, glue);
					}
					parent.removeChild(glue);
				}
			}
		}
		for (i = 0; shy = shys[i]; ++i) {
			shy.className = '';
			glue = shy.parentNode;
			parent = glue.parentNode;
			next = glue.nextSibling || parent.nextSibling;
			// make sure we're comparing same types
			prev = (next.nodeName.toLowerCase() == TAG_GLUE) ? glue : shy.previousSibling;
			if (prev.offsetTop >= next.offsetTop) {
				shy.className = C_SHY_DISABLED;
				if (prev.offsetTop < next.offsetTop) {
					// we have an annoying edge case, double the glue
					newGlue = document.createElement(TAG_GLUE);
					parent.insertBefore(newGlue, glue);
					newGlue.appendChild(glue);
					newGlue.appendChild(next);
				}
			}
		}
	}

	function updateShyOnResize() {
		if (ignoreResize) return; // needed for IE
		CSS.addClass(DOM.root(), C_VIEWPORT_RESIZING);
		clearTimeout(shyTimer);
		shyTimer = setTimeout(function() {
			ignoreResize = true;
			CSS.removeClass(DOM.root(), C_VIEWPORT_RESIZING);
			updateShy(document);
			ignoreResize = false;
		}, 100);
	}

	var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0;
	var TAG_GLUE = 'cufonglue';
	var TAG_SHY = 'cufonshy';
	var C_SHY_DISABLED = 'cufon-shy-disabled';
	var C_VIEWPORT_RESIZING = 'cufon-viewport-resizing';

	var sharedStorage = new Storage();
	var hoverHandler = new HoverHandler();
	var replaceHistory = new ReplaceHistory();
	var initialized = false;
	var trackingShy = false;
	var shyTimer;
	var ignoreResize = false;

	var engines = {}, fonts = {}, defaultOptions = {
		autoDetect: false,
		engine: null,
		forceHitArea: false,
		hover: false,
		hoverables: {
			a: true
		},
		ignore: {
			applet: 1,
			canvas: 1,
			col: 1,
			colgroup: 1,
			head: 1,
			iframe: 1,
			map: 1,
			noscript: 1,
			optgroup: 1,
			option: 1,
			script: 1,
			select: 1,
			style: 1,
			textarea: 1,
			title: 1,
			pre: 1
		},
		ignoreClass: null,
		modifyText: null,
		onAfterReplace: null,
		onBeforeReplace: null,
		printable: true,
		selector: (
				window.Sizzle
			||	(window.jQuery && function(query) { return jQuery(query); }) // avoid noConflict issues
			||	(window.dojo && dojo.query)
			||	(window.glow && glow.dom && glow.dom.get)
			||	(window.Ext && Ext.query)
			||	(window.YAHOO && YAHOO.util && YAHOO.util.Selector && YAHOO.util.Selector.query)
			||	(window.$$ && function(query) { return $$(query); })
			||	(window.$ && function(query) { return $(query); })
			||	(document.querySelectorAll && function(query) { return document.querySelectorAll(query); })
			||	elementsByTagName
		),
		separate: 'words', // 'none' and 'characters' are also accepted
		softHyphens: true,
		textless: {
			dl: 1,
			html: 1,
			ol: 1,
			table: 1,
			tbody: 1,
			thead: 1,
			tfoot: 1,
			tr: 1,
			ul: 1
		},
		textShadow: 'none',
		trim: 'advanced'
	};

	var separators = {
		// The first pattern may cause unicode characters above
		// code point 255 to be removed in Safari 3.0. Luckily enough
		// Safari 3.0 does not include non-breaking spaces in \s, so
		// we can just use a simple alternative pattern.
		words: /\s/.test('\u00a0') ? /[^\S\u00a0]+/ : /\s+/,
		characters: '',
		none: /^/
	};

	api.now = function() {
		DOM.ready();
		return api;
	};

	api.refresh = function() {
		replaceHistory.repeat.apply(replaceHistory, arguments);
		return api;
	};

	api.registerEngine = function(id, engine) {
		if (!engine) return api;
		engines[id] = engine;
		return api.set('engine', id);
	};

	api.registerFont = function(data) {
		if (!data) return api;
		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 (!initialized) {
			CSS.addClass(DOM.root(), 'cufon-active cufon-loading');
			CSS.ready(function() {
				// fires before any replace() calls, but it doesn't really matter
				CSS.addClass(CSS.removeClass(DOM.root(), 'cufon-loading'), 'cufon-ready');
			});
			initialized = true;
		}
		if (options.hover) options.forceHitArea = true;
		if (options.autoDetect) delete options.fontFamily;
		if (typeof options.ignoreClass == 'string') {
			options.ignoreClass = new RegExp('(?:^|\\s)(?:' + options.ignoreClass.replace(/\s+/g, '|') + ')(?:\\s|$)');
		}
		if (typeof options.textShadow == 'string') {
			options.textShadow = CSS.textShadow(options.textShadow);
		}
		if (typeof options.color == 'string' && /^-/.test(options.color)) {
			options.textGradient = CSS.gradient(options.color);
		}
		else delete options.textGradient;
		if (typeof elements == 'string') {
			if (!ignoreHistory) replaceHistory.add(elements, arguments);
			elements = [ elements ];
		}
		else if (elements.nodeType) 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('vml', (function() {

	var ns = document.namespaces;
	if (!ns) return;
	ns.add('cvml', 'urn:schemas-microsoft-com:vml');
	ns = null;

	var check = document.createElement('cvml:shape');
	check.style.behavior = 'url(#default#VML)';
	if (!check.coordsize) return; // VML isn't supported
	check = null;

	var HAS_BROKEN_LINEHEIGHT = (document.documentMode || 0) < 8;

	document.write(('<style type="text/css">' +
		'cufoncanvas{text-indent:0;}' +
		'@media screen{' +
			'cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}' +
			'cufoncanvas{position:absolute;text-align:left;}' +
			'cufon{display:inline-block;position:relative;vertical-align:' +
			(HAS_BROKEN_LINEHEIGHT
				? 'middle'
				: 'text-bottom') +
			';}' +


			'cufon cufontext{position:absolute;left:-10000in;font-size:1px;text-align:left;}' +
			'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' +
			'cufonglue{white-space:nowrap;display:inline-block;}' +
			'.cufon-viewport-resizing cufonglue{white-space:normal;}' +
			'a cufon{cursor:pointer}' + // ignore !important here
		'}' +
		'@media print{' +
			'cufon cufoncanvas{display:none;}' +
		'}' +
	'</style>').replace(/;/g, '!important;'));

	function getFontSizeInPixels(el, value) {
		return getSizeInPixels(el, /(?:em|ex|%)$|^[a-z-]+$/i.test(value) ? '1em' : value);
	}

	// Original by Dead Edwards.
	// Combined with getFontSizeInPixels it also works with relative units.
	function getSizeInPixels(el, value) {
		if (!isNaN(value) || /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.replace('%', 'em');
		var result = el.style.pixelLeft;
		el.style.left = style;
		el.runtimeStyle.left = runtimeStyle;
		return result;
	}

	function getSpacingValue(el, style, size, property) {
		var key = 'computed' + property, value = style[key];
		if (isNaN(value)) {
			value = style.get(property);
			style[key] = value = (value == 'normal') ? 0 : ~~size.convertFrom(getSizeInPixels(el, value));
		}
		return value;
	}

	var fills = {};

	function gradientFill(gradient) {
		var id = gradient.id;
		if (!fills[id]) {
			var stops = gradient.stops, fill = document.createElement('cvml:fill'), colors = [];
			fill.type = 'gradient';
			fill.angle = 180;
			fill.focus = '0';
			fill.method = 'none';
			fill.color = stops[0][1];
			for (var j = 1, k = stops.length - 1; j < k; ++j) {
				colors.push(stops[j][0] * 100 + '% ' + stops[j][1]);
			}
			fill.colors = colors.join(',');
			fill.color2 = stops[k][1];
			fills[id] = fill;
		}
		return fills[id];
	}

	return function(font, text, style, options, node, el, hasNext) {

		var redraw = (text === null);

		if (redraw) text = node.alt;

		var viewBox = font.viewBox;

		var size = style.computedFontSize || (style.computedFontSize = new Cufon.CSS.Size(getFontSizeInPixels(el, style.get('fontSize')) + 'px', font.baseSize));

		var wrapper, canvas;

		if (redraw) {
			wrapper = node;
			canvas = node.firstChild;
		}
		else {
			wrapper = document.createElement('cufon');
			wrapper.className = 'cufon cufon-vml';
			wrapper.alt = text;

			canvas = document.createElement('cufoncanvas');
			wrapper.appendChild(canvas);

			if (options.printable) {
				var print = document.createElement('cufontext');
				print.appendChild(document.createTextNode(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:shape'));
		}

		var wStyle = wrapper.style;
		var cStyle = canvas.style;

		var height = size.convert(viewBox.height), roundedHeight = Math.ceil(height);
		var roundingFactor = roundedHeight / height;
		var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch'));
		var minX = viewBox.minX, minY = viewBox.minY;

		cStyle.height = roundedHeight;
		cStyle.top = Math.round(size.convert(minY - font.ascent));
		cStyle.left = Math.round(size.convert(minX));

		wStyle.height = size.convert(font.height) + 'px';

		var color = style.get('color');
		var chars = Cufon.CSS.textTransform(text, style).split('');

		var jumps = font.spacing(chars,
			getSpacingValue(el, style, size, 'letterSpacing'),
			getSpacingValue(el, style, size, 'wordSpacing')
		);

		if (!jumps.length) return null;

		var width = jumps.total;
		var fullWidth = -minX + width + (viewBox.width - jumps[jumps.length - 1]);

		var shapeWidth = size.convert(fullWidth * stretchFactor), roundedShapeWidth = Math.round(shapeWidth);

		var coordSize = fullWidth + ',' + viewBox.height, coordOrigin;
		var stretch = 'r' + coordSize + 'ns';

		var fill = options.textGradient && gradientFill(options.textGradient);

		var glyphs = font.glyphs, offsetX = 0;
		var shadows = options.textShadow;
		var i = -1, j = 0, chr;

		while (chr = chars[++i]) {

			var glyph = glyphs[chars[i]] || font.missingGlyph, shape;
			if (!glyph) continue;

			if (redraw) {
				// some glyphs may be missing so we can't use i
				shape = canvas.childNodes[j];
				while (shape.firstChild) shape.removeChild(shape.firstChild); // shadow, fill
			}
			else {
				shape = document.createElement('cvml:shape');
				canvas.appendChild(shape);
			}

			shape.stroked = 'f';
			shape.coordsize = coordSize;
			shape.coordorigin = coordOrigin = (minX - offsetX) + ',' + minY;
			shape.path = (glyph.d ? 'm' + glyph.d + 'xe' : '') + 'm' + coordOrigin + stretch;
			shape.fillcolor = color;

			if (fill) shape.appendChild(fill.cloneNode(false));

			// it's important to not set top/left or IE8 will grind to a halt
			var sStyle = shape.style;
			sStyle.width = roundedShapeWidth;
			sStyle.height = roundedHeight;

			if (shadows) {
				// due to the limitations of the VML shadow element there
				// can only be two visible shadows. opacity is shared
				// for all shadows.
				var shadow1 = shadows[0], shadow2 = shadows[1];
				var color1 = Cufon.CSS.color(shadow1.color), color2;
				var shadow = document.createElement('cvml:shadow');
				shadow.on = 't';
				shadow.color = color1.color;
				shadow.offset = shadow1.offX + ',' + shadow1.offY;
				if (shadow2) {
					color2 = Cufon.CSS.color(shadow2.color);
					shadow.type = 'double';
					shadow.color2 = color2.color;
					shadow.offset2 = shadow2.offX + ',' + shadow2.offY;
				}
				shadow.opacity = color1.opacity || (color2 && color2.opacity) || 1;
				shape.appendChild(shadow);
			}

			offsetX += jumps[j++];
		}

		// addresses flickering issues on :hover

		var cover = shape.nextSibling, coverFill, vStyle;

		if (options.forceHitArea) {

			if (!cover) {
				cover = document.createElement('cvml:rect');
				cover.stroked = 'f';
				cover.className = 'cufon-vml-cover';
				coverFill = document.createElement('cvml:fill');
				coverFill.opacity = 0;
				cover.appendChild(coverFill);
				canvas.appendChild(cover);
			}

			vStyle = cover.style;

			vStyle.width = roundedShapeWidth;
			vStyle.height = roundedHeight;

		}
		else if (cover) canvas.removeChild(cover);

		wStyle.width = Math.max(Math.ceil(size.convert(width * stretchFactor)), 0);

		if (HAS_BROKEN_LINEHEIGHT) {

			var yAdjust = style.computedYAdjust;

			if (yAdjust === undefined) {
				var lineHeight = style.get('lineHeight');
				if (lineHeight == 'normal') lineHeight = '1em';
				else if (!isNaN(lineHeight)) lineHeight += 'em'; // no unit
				style.computedYAdjust = yAdjust = 0.5 * (getSizeInPixels(el, lineHeight) - parseFloat(wStyle.height));
			}

			if (yAdjust) {
				wStyle.marginTop = Math.ceil(yAdjust) + 'px';
				wStyle.marginBottom = yAdjust + 'px';
			}

		}

		return wrapper;

	};

})());

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;
	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((
		'cufon{text-indent:0;}' +
		'@media screen,projection{' +
			'cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;' +
			(HAS_BROKEN_LINEHEIGHT
				? ''
				: 'font-size:1px;line-height:1px;') +
			'}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;text-align:left;text-indent:-10000in;}' +
			(HAS_INLINE_BLOCK
				? 'cufon canvas{position:relative;}'
				: 'cufon canvas{position:absolute;}') +
			'cufonshy.cufon-shy-disabled,.cufon-viewport-resizing cufonshy{display:none;}' +
			'cufonglue{white-space:nowrap;display:inline-block;}' +
			'.cufon-viewport-resizing cufonglue{white-space:normal;}' +
		'}' +
		'@media print{' +
			'cufon{padding:0;}' + // Firefox 2
			'cufon canvas{display:none;}' +
		'}'
	).replace(/;/g, '!important;')));
	document.getElementsByTagName('head')[0].appendChild(styleSheet);

	function generateFromVML(path, context) {
		var atX = 0, atY = 0;
		var code = [], re = /([mrvxe])([^a-z]*)/g, match;
		generate: for (var i = 0; match = re.exec(path); ++i) {
			var c = match[2].split(',');
			switch (match[1]) {
				case 'v':
					code[i] = { m: 'bezierCurveTo', a: [ atX + ~~c[0], atY + ~~c[1], atX + ~~c[2], atY + ~~c[3], atX += ~~c[4], atY += ~~c[5] ] };
					break;
				case 'r':
					code[i] = { m: 'lineTo', a: [ atX += ~~c[0], atY += ~~c[1] ] };
					break;
				case 'm':
					code[i] = { m: 'moveTo', a: [ atX = ~~c[0], atY = ~~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 redraw = (text === null);

		if (redraw) text = node.getAttribute('alt');

		var viewBox = font.viewBox;

		var size = style.getSize('fontSize', font.baseSize);

		var expandTop = 0, expandRight = 0, expandBottom = 0, expandLeft = 0;
		var shadows = options.textShadow, shadowOffsets = [];
		if (shadows) {
			for (var i = shadows.length; 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 jumps = font.spacing(chars,
			~~size.convertFrom(parseFloat(style.get('letterSpacing')) || 0),
			~~size.convertFrom(parseFloat(style.get('wordSpacing')) || 0)
		);

		if (!jumps.length) return null; // there's nothing to render

		var width = jumps.total;

		expandRight += viewBox.width - jumps[jumps.length - 1];
		expandLeft += viewBox.minX;

		var wrapper, canvas;

		if (redraw) {
			wrapper = node;
			canvas = node.firstChild;
		}
		else {
			wrapper = document.createElement('cufon');
			wrapper.className = 'cufon cufon-canvas';
			wrapper.setAttribute('alt', text);

			canvas = document.createElement('canvas');
			wrapper.appendChild(canvas);

			if (options.printable) {
				var print = document.createElement('cufontext');
				print.appendChild(document.createTextNode(text));
				wrapper.appendChild(print);
			}
		}

		var wStyle = wrapper.style;
		var cStyle = canvas.style;

		var height = size.convert(viewBox.height);
		var roundedHeight = Math.ceil(height);
		var roundingFactor = roundedHeight / height;
		var stretchFactor = roundingFactor * Cufon.CSS.fontStretch(style.get('fontStretch'));
		var stretchedWidth = width * stretchFactor;

		var canvasWidth = Math.ceil(size.convert(stretchedWidth + expandRight - expandLeft));
		var canvasHeight = Math.ceil(size.convert(viewBox.height - expandTop + expandBottom));

		canvas.width = canvasWidth;
		canvas.height = canvasHeight;

		// needed for WebKit and full page zoom
		cStyle.width = canvasWidth + 'px';
		cStyle.height = canvasHeight + 'px';

		// 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.max(Math.ceil(size.convert(stretchedWidth)), 0) + '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 = height / viewBox.height;

		// proper horizontal scaling is performed later
		g.scale(scale, scale * roundingFactor);
		g.translate(-expandLeft, -expandTop);
		g.save();

		function renderText() {
			var glyphs = font.glyphs, glyph, i = -1, j = -1, chr;
			g.scale(stretchFactor, 1);
			while (chr = chars[++i]) {
				var glyph = glyphs[chars[i]] || font.missingGlyph;
				if (!glyph) continue;
				if (glyph.d) {
					g.beginPath();
					if (glyph.code) interpret(glyph.code, g);
					else glyph.code = generateFromVML('m' + glyph.d, g);
					g.fill();
				}
				g.translate(jumps[++j], 0);
			}
			g.restore();
		}

		if (shadows) {
			for (var i = shadows.length; i--;) {
				var shadow = shadows[i];
				g.save();
				g.fillStyle = shadow.color;
				g.translate.apply(g, shadowOffsets[i]);
				renderText();
			}
		}

		var gradient = options.textGradient;
		if (gradient) {
			var stops = gradient.stops, fill = g.createLinearGradient(0, viewBox.minY, 0, viewBox.maxY);
			for (var i = 0, l = stops.length; i < l; ++i) {
				fill.addColorStop.apply(fill, stops[i]);
			}
			g.fillStyle = fill;
		}
		else g.fillStyle = style.get('color');

		renderText();

		return wrapper;

	};

})());


/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright (c) 2008 by Jan Schmoeger/Paragraph. All rights reserved.
 * 
 * Trademark:
 * Mentone SemiBold is a trademark of Jan Schmoeger/Paragraph.
 * 
 * Full name:
 * Mentone-SemiBold
 * 
 * Description:
 * Copyright (c) 2008 by Jan Schmoeger/Paragraph. All rights reserved. Spaced and
 * kerned with iKern.
 * 
 * Manufacturer:
 * Jan Schmoeger/Paragraph
 * 
 * Designer:
 * Jan Schmoeger
 * 
 * Vendor URL:
 * www.myfonts.com
 * 
 * License information:
 * http://www.myfonts.com/viewlicense?id=618
 */
Cufon.registerFont({"w":601,"face":{"font-family":"mentone","font-weight":600,"font-stretch":"normal","units-per-em":"1000","panose-1":"2 11 7 3 5 3 2 2 0 4","ascent":"750","descent":"-250","x-height":"10","bbox":"-47 -810 1092 230","underline-thickness":"50","underline-position":"-50","stemh":"100","stemv":"120","unicode-range":"U+0020-U+007E"},"glyphs":{" ":{"w":249},"!":{"d":"226,-60v0,39,-31,70,-70,70v-39,0,-70,-31,-70,-70v0,-39,31,-70,70,-70v39,0,70,31,70,70xm96,-620v5,-55,3,-70,20,-80r100,0v25,11,0,27,0,80r0,400v0,6,-4,10,-10,10r-100,10v-6,0,-10,-4,-10,-10r0,-410","w":312},"\"":{"d":"343,-451v2,21,-63,14,-80,21v-6,0,-10,-4,-10,-10r-10,-240v-2,-20,84,-13,100,-20v6,0,10,4,10,10xm153,-451v2,21,-63,14,-80,21v-6,0,-10,-4,-10,-10r-10,-240v-2,-20,84,-13,100,-20v6,0,10,4,10,10","w":404},"#":{"d":"230,-680v-3,-20,87,-13,100,-20v6,0,10,4,10,10r-23,190r101,0r22,-180v-3,-20,87,-13,100,-20v6,0,10,4,10,10r-23,190r123,0v6,0,10,4,10,10v-6,15,0,90,-20,90r-124,0r-12,100r116,0v6,0,10,4,10,10v-6,15,0,90,-20,90r-118,0r-22,190v0,6,-4,10,-10,10r-90,0v-6,0,-10,-4,-10,-10r22,-190r-100,0r-22,190v0,6,-4,10,-10,10r-90,0v-6,0,-10,-4,-10,-10r22,-190r-122,0v-6,0,-10,-4,-10,-10v6,-15,0,-90,20,-90r124,0r12,-100r-116,0v-6,0,-10,-4,-10,-10v6,-15,0,-90,20,-90r118,0xm306,-400r-12,100r100,0r12,-100r-100,0","w":697},"$":{"d":"245,-790v-2,-20,77,-13,90,-20v6,0,10,4,10,10r0,92v107,14,124,19,140,38v-4,8,25,92,0,90v-4,0,-57,-21,-140,-28r0,211v98,35,200,94,200,212v0,104,-47,180,-200,193r0,92v0,6,-4,10,-10,10r-80,0v-6,0,-10,-4,-10,-10r0,-92v-122,-16,-165,-28,-180,-48v4,-8,-25,-92,0,-90v4,0,90,29,180,38r0,-211v-99,-35,-200,-93,-200,-212v0,-103,47,-180,200,-193r0,-82xm165,-515v0,39,34,65,80,84r0,-174v-68,14,-80,56,-80,90xm425,-185v0,-39,-34,-64,-80,-84r0,175v67,-14,80,-57,80,-91","w":581},"%":{"d":"645,-190v0,70,15,110,70,110v55,0,70,-40,70,-110v0,-70,-15,-110,-70,-110v-55,0,-70,40,-70,110xm535,-190v0,-140,70,-200,180,-200v110,0,180,60,180,200v0,140,-70,200,-180,200v-110,0,-180,-60,-180,-200xm145,-510v0,70,15,110,70,110v55,0,70,-40,70,-110v0,-70,-15,-110,-70,-110v-55,0,-70,40,-70,110xm35,-510v0,-140,70,-200,180,-200v110,0,180,60,180,200v0,140,-70,200,-180,200v-110,0,-180,-60,-180,-200xm186,-10v0,-5,435,-680,435,-680v5,-8,10,-10,15,-10r95,0v6,0,10,4,10,10v0,6,-435,680,-435,680v-21,23,-73,4,-110,10v-6,0,-10,-4,-10,-10","w":942},"&":{"d":"468,-52v-51,40,-95,62,-162,62v-200,0,-260,-93,-260,-210v0,-100,50,-160,119,-189v-49,-57,-69,-100,-69,-141v0,-100,58,-180,210,-180v152,0,210,80,210,180v0,102,-83,139,-175,173r124,136v16,-40,25,-83,31,-119v1,-6,5,-10,10,-10r94,0v5,0,10,3,10,10v-4,58,-27,138,-69,202v65,71,115,127,115,128v0,6,-4,10,-10,10r-124,0v-24,-9,-36,-36,-54,-52xm236,-310v-43,27,-70,59,-70,110v0,59,20,110,140,110v39,0,71,-13,96,-35xm270,-433v65,-28,126,-47,126,-97v0,-40,-16,-80,-90,-80v-73,0,-90,32,-90,80v0,40,30,73,54,97","w":686},"'":{"d":"153,-451v2,21,-63,14,-80,21v-6,0,-10,-4,-10,-10r-10,-240v-2,-20,84,-13,100,-20v6,0,10,4,10,10","w":214},"(":{"d":"166,-320v0,260,150,415,150,420v0,6,-4,10,-10,10v-33,-4,-83,11,-100,-10v0,0,-160,-160,-160,-420v0,-260,160,-420,160,-420v17,-22,67,-5,100,-10v6,0,10,4,10,10v0,5,-150,160,-150,420","w":336,"k":{"v":5,"f":7,"c":13,"e":13,"o":13,"C":9,"G":9,"O":9,"Q":9,"a":8,"d":9,"g":9,"q":9,"m":8,"n":8,"p":8,"r":8,"s":6,"t":6,"u":12,"w":6,"y":7}},")":{"d":"170,-320v0,-260,-150,-415,-150,-420v0,-6,4,-10,10,-10v33,4,83,-11,100,10v0,0,160,160,160,420v0,260,-160,420,-160,420v-17,22,-67,5,-100,10v-6,0,-10,-4,-10,-10v0,-5,150,-160,150,-420","w":336},"*":{"d":"399,-612v19,-2,30,84,38,96v0,5,-3,9,-7,10v-45,11,-87,27,-148,22r50,36v0,9,73,66,55,83v-27,18,-50,40,-79,55v-15,-1,-50,-77,-57,-80r-18,-57r-18,57v-9,2,-43,93,-63,78r-73,-53v-5,-3,-5,-9,-2,-14v3,-4,57,-69,57,-69r49,-36v-61,4,-102,-11,-147,-22v-4,-1,-7,-5,-7,-10v7,-12,20,-99,38,-96v4,0,72,28,86,34r49,36r-19,-58v4,-8,-18,-100,5,-100r90,0v6,0,10,5,10,10v0,5,-5,90,-5,90r-19,58r49,-36v19,-6,82,-34,86,-34","w":466},"+":{"d":"534,-320v-6,15,0,90,-20,90r-180,0r0,180v3,20,-85,13,-100,20v-6,0,-10,-4,-10,-10r0,-190r-190,0v-6,0,-10,-4,-10,-10v6,-15,0,-90,20,-90r180,0r0,-180v-3,-20,85,-13,100,-20v6,0,10,4,10,10r0,190r190,0v6,0,10,4,10,10","w":558},",":{"d":"18,130v0,-5,60,-230,60,-230v1,-6,5,-10,10,-10r110,0v7,0,10,5,10,10v0,5,-80,230,-80,230v-2,6,-4,10,-10,10r-93,0v-7,0,-7,-5,-7,-10","w":270,"k":{"v":9,"V":31,"9":8,"8":5,"7":10,"6":10,"5":6,"4":26,"1":23,"0":12,"C":13,"G":13,"O":13,"Q":13,"w":8,"y":9,"B":8,"D":8,"E":8,"F":8,"H":8,"I":8,"K":8,"L":8,"M":8,"N":8,"P":8,"R":8,"S":6,"T":30,"U":16,"W":27,"Y":37}},"-":{"d":"359,-320v-6,15,0,90,-20,90r-250,0v-6,0,-10,-4,-10,-10v6,-15,0,-90,20,-90r250,0v6,0,10,4,10,10","w":437,"k":{"A":12,"J":25,"B":11,"D":11,"E":11,"F":11,"H":11,"I":11,"K":11,"L":11,"M":11,"N":11,"P":11,"R":11,"S":30,"T":35,"U":10,"W":18,"Y":38,"V":20,"X":32,"Z":27,"z":5}},".":{"d":"54,-60v0,-39,31,-70,70,-70v39,0,70,31,70,70v0,39,-31,70,-70,70v-39,0,-70,-31,-70,-70","w":248,"k":{"v":15,"V":37,"9":6,"7":9,"6":9,"4":11,"1":30,"0":11,"C":14,"G":14,"O":14,"Q":14,"w":14,"y":15,"B":6,"D":6,"E":6,"F":6,"H":6,"I":6,"K":6,"L":6,"M":6,"N":6,"P":6,"R":6,"T":36,"U":14,"W":35,"Y":41}},"\/":{"d":"32,-10v0,-5,210,-680,210,-680v2,-6,5,-10,10,-10r95,0v6,0,10,4,10,10v0,5,-210,680,-210,680v-2,6,-6,10,-10,10r-95,0v-6,0,-10,-4,-10,-10","w":377,"k":{"7":-9,"4":9}},"0":{"d":"177,-350v0,140,20,260,150,260v130,0,150,-120,150,-260v0,-140,-20,-260,-151,-260v-129,0,-149,120,-149,260xm57,-350v0,-199,40,-360,270,-360v230,0,270,161,270,360v0,199,-40,360,-270,360v-230,0,-270,-161,-270,-360","w":654,"k":{".":11,",":14}},"1":{"d":"45,-480v-16,4,-23,-87,-30,-96v0,-4,2,-6,4,-7r176,-107v9,5,110,-25,110,0r0,680v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-585r-20,45","w":394,"k":{".":6,",":7}},"2":{"d":"497,-90v-6,15,0,90,-20,90r-410,0v-6,0,-10,-4,-10,-10r0,-110v0,-250,320,-260,320,-390v0,-58,-21,-100,-140,-100v-69,0,-170,30,-170,30v-6,0,-10,-4,-10,-10v6,-16,1,-91,20,-90v0,0,71,-30,160,-30v219,0,260,78,260,200v-1,223,-337,210,-320,410r310,0v6,0,10,4,10,10","w":552,"k":{"4":10}},"3":{"d":"45,-20v6,-15,1,-90,20,-90v10,0,103,20,170,20v120,0,140,-51,140,-110v0,-55,-51,-110,-164,-110r-76,0v-6,0,-10,-4,-10,-10r0,-70v0,-6,4,-9,10,-10r100,-10v90,-10,140,-46,140,-100v0,-58,-20,-100,-140,-100v-68,0,-170,30,-170,30v-6,0,-10,-4,-10,-10v6,-16,1,-91,20,-90v0,0,72,-30,160,-30v220,0,260,78,260,200v0,55,-24,115,-94,147v66,31,94,92,94,163v0,122,-40,210,-260,210v-93,0,-180,-20,-180,-20v-6,-1,-10,-5,-10,-10","w":557,"k":{".":6,",":8}},"4":{"d":"585,-270v-6,15,0,90,-20,90r-80,0r0,170v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-170r-330,0v-6,0,-10,-4,-10,-10r0,-85r275,-405v38,-25,108,-18,175,-20v6,0,10,4,10,10r0,410r90,0v6,0,10,4,10,10xm365,-610r-15,50r-175,265r-40,15r230,0r0,-330","w":616,"k":{"7":4,"3":3,"1":4,".":13,",":16}},"5":{"d":"472,-700v21,-1,13,74,20,90v0,6,-4,10,-10,10r-290,0r0,190r40,0v209,0,290,48,290,200v0,151,-72,220,-290,220v-95,0,-148,-22,-160,-40v4,-8,-25,-92,0,-90v10,0,90,30,160,30v122,0,170,-28,170,-120v0,-121,-190,-99,-320,-100v-5,0,-10,-4,-10,-10r0,-360v0,-6,4,-9,10,-10v116,-17,259,-7,390,-10","w":569,"k":{",":6}},"6":{"d":"319,-710v103,0,169,21,180,40v-4,8,25,92,0,90v0,0,-100,-30,-180,-30v-115,0,-140,95,-140,210v25,-12,75,-30,130,-30v181,0,230,103,230,220v0,117,-49,220,-230,220v-230,0,-250,-165,-250,-360v0,-196,30,-360,260,-360xm309,-90v83,0,110,-60,110,-120v0,-61,-27,-120,-110,-120v-73,0,-130,30,-130,30v0,139,28,210,130,210","w":586,"k":{",":6}},"7":{"d":"349,-585r45,-15r-360,0v-6,0,-10,-4,-10,-10r0,-70v0,-6,4,-9,10,-10v131,-19,293,-7,440,-10v6,0,10,4,10,10r0,80v0,10,-1,-3,-270,600v-2,6,-6,10,-10,10r-110,0v-6,0,-10,-4,-10,-10v0,-3,265,-575,265,-575","w":501,"k":{"4":17,"\/":22,".":39,",":38}},"8":{"d":"312,-710v180,0,240,78,240,190v0,75,-53,127,-110,160v71,32,130,89,130,180v0,112,-70,190,-260,190v-189,0,-260,-78,-260,-190v0,-85,62,-136,130,-170v-60,-32,-110,-87,-110,-170v0,-112,60,-190,240,-190xm452,-180v0,-59,-75,-96,-150,-120v-72,28,-130,60,-130,120v0,41,29,90,140,90v112,0,140,-49,140,-90xm312,-610v-101,0,-120,50,-120,90v0,57,62,86,130,110v61,-25,110,-60,110,-110v0,-40,-19,-90,-120,-90","w":625,"k":{",":6}},"9":{"d":"267,10v-103,0,-169,-21,-180,-40v4,-8,-25,-92,0,-90v0,0,100,30,180,30v115,0,140,-95,140,-210v-25,12,-75,30,-130,30v-181,0,-230,-103,-230,-220v0,-117,49,-220,230,-220v230,0,250,165,250,360v0,196,-30,360,-260,360xm277,-610v-83,0,-110,60,-110,120v0,61,27,120,110,120v73,0,130,-30,130,-30v0,-139,-28,-210,-130,-210","w":586,"k":{".":10,",":14}},":":{"d":"73,-440v0,-39,31,-70,70,-70v39,0,70,31,70,70v0,39,-31,70,-70,70v-39,0,-70,-31,-70,-70xm73,-60v0,-39,31,-70,70,-70v39,0,70,31,70,70v0,39,-31,70,-70,70v-39,0,-70,-31,-70,-70","w":286},";":{"d":"26,130v0,-5,60,-230,60,-230v1,-6,5,-10,10,-10r110,0v7,0,10,5,10,10v0,5,-80,230,-80,230v-2,6,-4,10,-10,10r-93,0v-7,0,-7,-5,-7,-10xm86,-440v0,-39,31,-70,70,-70v39,0,70,31,70,70v0,39,-31,70,-70,70v-39,0,-70,-31,-70,-70","w":298},"<":{"d":"194,-260r-60,10r60,10r310,137v6,3,10,6,10,10r0,93v0,6,-4,10,-10,10v-4,0,-470,-210,-470,-210v-5,-2,-10,-5,-10,-10r0,-80v0,-5,5,-8,10,-10v0,0,466,-210,470,-210v6,0,10,4,10,10r0,93v0,4,-4,7,-10,10","w":562},"=":{"d":"590,-220v-6,15,0,90,-20,90r-480,0v-6,0,-10,-4,-10,-10v6,-15,0,-90,20,-90r480,0v6,0,10,4,10,10xm590,-420v-6,15,0,90,-20,90r-480,0v-6,0,-10,-4,-10,-10v6,-15,0,-90,20,-90r480,0v6,0,10,4,10,10","w":669},">":{"d":"428,-250r-60,-10r-310,-137v-6,-3,-10,-6,-10,-10r0,-93v0,-6,4,-10,10,-10v4,0,470,210,470,210v5,2,10,5,10,10r0,80v0,5,-5,8,-10,10v0,0,-466,210,-470,210v-6,0,-10,-4,-10,-10r0,-93v0,-4,4,-7,10,-10r310,-137","w":562},"?":{"d":"285,-220v0,6,-4,10,-10,10r-100,10v-6,0,-10,-4,-10,-10v0,-190,180,-210,180,-300v0,-58,-19,-100,-120,-100v-85,0,-190,30,-190,30v-6,0,-10,-4,-10,-10v6,-16,1,-91,20,-90v0,0,72,-30,180,-30v200,0,240,88,240,200v0,143,-180,160,-180,290xm155,-60v0,-39,31,-70,70,-70v39,0,70,31,70,70v0,39,-31,70,-70,70v-39,0,-70,-31,-70,-70","w":506},"@":{"d":"341,-350v0,65,30,110,110,100r0,-200v-79,-9,-110,33,-110,100xm561,-520r0,270v20,0,100,-10,100,-150v0,-105,-40,-220,-250,-220v-210,0,-250,126,-250,270v0,143,70,270,280,270v160,0,270,-30,270,-30v6,0,10,4,10,10v-5,15,-2,81,-20,80v0,0,-80,30,-260,30v-300,0,-390,-161,-390,-360v0,-199,70,-360,360,-360v300,0,360,170,360,310v0,150,-80,240,-210,240r-140,0v-150,0,-190,-80,-190,-190v0,-110,40,-190,190,-190v49,0,89,5,130,10v6,1,10,4,10,10","w":818},"A":{"d":"270,-690v41,-4,78,-12,124,-10v5,0,8,5,10,10v0,0,260,676,260,680v0,6,-4,10,-10,10r-105,0v-4,0,-8,-4,-10,-10r-72,-190r-268,0r-70,190v-2,6,-6,10,-10,10r-105,0v-6,0,-10,-4,-10,-10v0,-4,256,-670,256,-670v2,-5,6,-9,10,-10xm324,-530r-87,230r193,0r-86,-230r-10,-70","w":669,"k":{"t":19,"w":23,"y":23,"T":45,"U":3,"W":24,"Y":49,"V":29,"\"":15,"'":15,"-":11,"?":12,"f":15,"v":23,"}":-5}},"B":{"d":"309,-310r-100,0r0,210r100,0v140,0,160,-45,160,-100v0,-55,-20,-110,-160,-110xm209,-410r100,0v120,0,140,-45,140,-100v0,-55,-20,-90,-140,-90r-100,0r0,190xm309,0r-210,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-9,10,-10v64,-10,135,-10,210,-10v230,0,260,80,260,200v0,67,-30,111,-80,140v57,30,100,78,100,150v0,120,-30,210,-280,210","w":645,"k":{"x":10,",":7,")":6,"s":4,"w":3,"Y":3,"z":4,"-":6,"f":3,".":5}},"C":{"d":"555,-110v20,-2,13,74,20,90v0,5,-4,9,-10,10v-6,1,-84,20,-180,20v-301,0,-330,-216,-330,-360v0,-144,29,-360,330,-360v105,0,169,21,180,40v-4,8,25,92,0,90v-5,0,-110,-30,-180,-30v-180,0,-205,155,-205,260v0,105,25,260,205,260v70,0,165,-20,170,-20","w":625,"k":{"c":17,"e":17,"o":19,"a":6,"d":15,"g":15,"q":15,"m":10,"n":10,"p":10,"r":10,"s":10,"t":33,"u":17,"w":40,"y":41,"z":4,"-":53,"f":44,"v":41,"x":10}},"D":{"d":"319,-600r-110,0r0,500r110,0v180,0,205,-155,205,-250v0,-95,-25,-250,-205,-250xm319,0r-220,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-9,10,-10v67,-10,142,-10,220,-10v300,0,330,206,330,350v0,144,-30,350,-330,350","w":703,"k":{"J":4,"T":4,"Y":8,"X":6,"Z":3,"z":4,"-":5,"}":5,".":14,"x":11,")":10,",":17,"]":6}},"E":{"d":"539,-90v-6,15,0,90,-20,90r-420,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-9,10,-10v126,-17,279,-7,420,-10v21,0,13,74,20,90v0,6,-4,10,-10,10r-320,0r0,190r290,0v6,0,10,4,10,10r0,80v0,6,-4,10,-10,10r-290,0r0,210r320,0v6,0,10,4,10,10","w":597,"k":{"c":8,"e":8,"o":8,"a":5,"d":7,"g":7,"q":7,"m":5,"n":5,"p":5,"r":5,"s":5,"t":19,"u":7,"w":15,"y":14,"z":4,"-":18,"f":20,"v":15,"x":12}},"F":{"d":"519,-700v21,-1,13,74,20,90v0,6,-4,10,-10,10r-320,0r0,190r290,0v6,0,10,4,10,10r0,80v0,6,-4,10,-10,10r-290,0r0,300v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-9,10,-10v125,-18,279,-6,420,-10","w":573,"k":{"x":34,"v":7,";":12,":":9,",":54,"A":14,"J":16,"c":10,"e":10,"o":11,"a":24,"d":10,"g":10,"q":10,"m":15,"n":15,"p":15,"r":15,"s":12,"t":10,"u":12,"w":8,"y":7,"z":25,"-":11,"f":13,".":54}},"G":{"d":"335,-320v6,-15,0,-90,20,-90r260,0v6,0,10,4,10,10r0,370v0,5,-4,9,-10,10v0,0,-90,30,-230,30v-300,0,-330,-216,-330,-360v0,-144,30,-360,330,-360v118,0,177,20,190,40v-4,8,25,92,0,90v-5,0,-120,-30,-190,-30v-180,0,-205,155,-205,260v0,105,25,260,205,260v70,0,120,-7,120,-7r0,-213r-160,0v-6,0,-10,-4,-10,-10","w":685,"k":{"t":5,"w":4,"y":4,"T":3,"-":5,"f":4,"v":4,"x":5}},"H":{"d":"89,-680v-3,-21,95,-13,110,-20v6,0,10,4,10,10r0,280r300,0r0,-270v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,680v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-300r-300,0r0,300v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-670","w":718,"k":{"c":5,"e":5,"o":5,"a":3,"d":4,"g":4,"q":4,"m":5,"n":5,"p":5,"r":5,"s":3,"u":6,"w":3,"-":11,".":6,"x":10,",":7,"b":5,"h":5,"k":5,"i":4,"j":4,"l":4}},"I":{"d":"89,-680v-3,-21,97,-13,110,-20v6,0,10,4,10,10r0,680v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-670","w":298,"k":{"c":5,"e":5,"o":5,"a":3,"d":4,"g":4,"q":4,"m":5,"n":5,"p":5,"r":5,"s":3,"u":6,"w":3,"-":11,".":6,"x":10,",":7,"b":5,"h":5,"k":5,"i":4,"j":4,"l":4}},"J":{"d":"10,-12v5,-14,1,-93,20,-88v5,0,45,10,70,10v36,0,70,-30,70,-90r0,-500v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,510v0,110,-70,190,-190,190v-56,0,-82,0,-90,-22","w":373,"k":{"c":4,"e":4,"o":4,"a":3,"d":4,"g":4,"q":4,"m":6,"n":6,"p":6,"r":6,"s":5,"u":5,"z":5,"-":10,".":10,"x":14,",":14,"b":4,"h":4,"k":4,"l":4,";":5}},"K":{"d":"209,-690r0,278r265,-278v33,-23,97,-5,145,-10v10,-1,13,11,7,17v-70,64,-322,323,-322,323v0,0,345,340,345,350v0,6,-4,10,-10,10r-130,0v-10,0,-16,-5,-20,-10r-280,-297r0,297v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10","w":649,"k":{"c":30,"e":30,"o":34,"C":20,"G":20,"O":20,"Q":20,"a":12,"d":25,"g":25,"q":25,"m":9,"n":9,"p":9,"r":9,"s":8,"t":46,"u":29,"w":43,"y":43,"S":4,"T":-18,"U":11,"Y":-27,"\"":12,"'":12,"-":37,"?":6,"f":47,"v":43,"}":-18,")":-7,"]":-20,"i":3,"!":13,":":9}},"L":{"d":"539,-90v-6,15,0,90,-20,90r-420,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,590r320,0v6,0,10,4,10,10","w":546,"k":{"A":-17,"J":-12,"C":3,"G":3,"O":3,"Q":3,"t":47,"w":22,"y":23,"T":57,"U":5,"W":42,"Y":54,"V":48,"\"":42,"'":42,"-":41,"?":15,"f":40,"v":22}},"M":{"d":"509,0r-100,0v-5,0,-8,-4,-10,-10r-170,-480r-20,-90r0,570v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-10,10,-10v52,-8,108,-12,170,-10v4,0,8,4,10,10r170,490r10,70r10,-70r170,-480v2,-5,6,-9,10,-10v54,-6,108,-12,170,-10v6,0,10,4,10,10r0,680v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-570r-20,90r-170,480v-2,6,-5,10,-10,10","w":918,"k":{"c":5,"e":5,"o":5,"a":3,"d":4,"g":4,"q":4,"m":5,"n":5,"p":5,"r":5,"s":3,"u":6,"w":3,"-":11,".":6,"x":10,",":7,"b":5,"h":5,"k":5,"i":4,"j":4,"l":4}},"N":{"d":"229,-510r-20,-70r0,570v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-9,10,-10v49,-7,101,-12,160,-10v4,0,7,4,10,10r240,500r20,70r0,-560v0,-6,4,-9,10,-10r100,-10v6,0,10,4,10,10r0,680v0,6,-4,10,-10,10r-160,0v-5,0,-7,-4,-10,-10","w":738,"k":{"c":5,"e":5,"o":5,"a":3,"d":4,"g":4,"q":4,"m":5,"n":5,"p":5,"r":5,"s":3,"u":6,"w":3,"-":11,".":6,"x":10,",":7,"b":5,"h":5,"k":5,"i":4,"j":4,"l":4}},"O":{"d":"178,-350v0,140,40,260,195,260v155,0,195,-120,195,-260v0,-140,-40,-260,-195,-260v-155,0,-195,120,-195,260xm53,-350v0,-199,75,-360,320,-360v245,0,320,161,320,360v0,199,-75,360,-320,360v-245,0,-320,-161,-320,-360","w":746,"k":{"J":4,"T":3,"Y":7,"X":5,"Z":3,"z":3,"-":5,".":14,"x":10,")":9,",":17,"]":6}},"P":{"d":"209,-270r0,260v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-9,10,-10v62,-11,136,-11,210,-10v230,0,260,110,260,215v0,105,-30,215,-260,215r-100,0xm309,-600r-100,0r0,230r100,0v130,0,140,-64,140,-115v0,-51,-10,-115,-140,-115","w":600,"k":{"x":3,"X":4,",":56,")":5,"A":24,"J":30,"c":10,"e":10,"o":11,"a":10,"d":9,"g":9,"q":9,"s":4,"-":16,".":58}},"Q":{"d":"53,-350v0,-199,75,-360,320,-360v245,0,320,161,320,360v0,139,-37,260,-142,320v37,42,127,147,127,150v0,6,-4,10,-10,10r-120,0v-10,0,-16,-5,-20,-10r-92,-114v-20,2,-41,4,-63,4v-245,0,-320,-161,-320,-360xm178,-350v0,140,40,260,195,260v155,0,195,-120,195,-260v0,-140,-40,-260,-195,-260v-155,0,-195,120,-195,260","w":746,"k":{"J":4,"T":3,"Y":7,"X":5,"Z":3,"z":3,"-":5,".":14,"x":10,")":9,",":17,"]":6}},"R":{"d":"209,-410r100,0v130,0,140,-45,140,-95v0,-50,-10,-95,-140,-95r-100,0r0,190xm444,-325v69,54,155,326,155,315v0,6,-4,10,-10,10r-110,0v-4,0,-7,-4,-10,-10r-90,-220v-11,-27,-49,-80,-100,-80r-70,0r0,300v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-670v0,-6,4,-9,10,-10v64,-10,135,-10,210,-10v230,0,260,90,260,195v0,85,-20,150,-125,180","w":641,"k":{"c":11,"e":11,"o":12,"a":4,"d":9,"g":9,"q":9,"m":3,"n":3,"p":3,"r":3,"s":3,"u":7,"w":4,"y":3,"-":22,"f":3,"v":3,"i":4,"j":3,"l":3}},"S":{"d":"71,-130v5,0,126,40,230,40v112,0,130,-54,130,-95v0,-55,-67,-83,-140,-105v-109,-33,-240,-90,-240,-225v0,-114,57,-195,250,-195v144,0,173,20,190,40v-4,8,25,92,0,90v-5,0,-79,-30,-190,-30v-112,0,-130,54,-130,95v0,55,67,83,140,105v109,33,240,90,240,225v0,114,-57,195,-250,195v-150,0,-215,-30,-230,-50v4,-8,-25,-92,0,-90","w":590,"k":{"t":26,"w":17,"y":18,"z":4,"\"":5,"'":5,"-":5,"f":28,"v":17,"x":16}},"T":{"d":"552,-690v-5,12,-1,104,-20,100r-190,0r0,580v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-580r-200,0v-6,0,-10,-4,-10,-10r0,-80v0,-6,4,-9,10,-10r80,-10r440,0v6,0,10,4,10,10","w":559,"k":{"A":45,"J":36,"c":74,"e":74,"o":75,"C":4,"G":4,"O":4,"Q":4,"a":50,"d":72,"g":72,"q":72,"m":54,"n":54,"p":54,"r":54,"s":50,"t":11,"u":60,"w":42,"y":38,"T":-18,"W":-18,"Y":-27,"V":-23,"z":50,"-":36,"?":-12,"f":20,"v":39,"}":-13,".":35,"x":52,",":31,"]":-14,";":27,":":23}},"U":{"d":"501,-270r0,-410v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,430v0,200,-100,270,-270,270v-170,0,-270,-70,-270,-270r0,-420v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,420v0,110,20,180,150,180v130,0,150,-70,150,-180","w":703,"k":{"A":3,"J":4,"c":5,"e":5,"o":5,"a":5,"d":4,"g":4,"q":4,"m":7,"n":7,"p":7,"r":7,"s":6,"u":6,"z":6,"-":10,".":15,"x":15,",":19,"b":5,"h":5,"k":5,"i":3,"j":3,"l":4,";":6}},"V":{"d":"337,-170r190,-520v2,-6,6,-10,10,-10r110,0v6,0,10,4,10,10v0,4,-260,680,-260,680v-2,6,-5,10,-10,10r-120,0v-5,0,-8,-4,-10,-10v0,0,-250,-666,-250,-670v0,-7,4,-9,10,-10v9,5,117,-25,115,0r185,520r10,70","w":659,"k":{"}":-14,"x":27,"v":4,"]":-15,"?":-13,";":13,":":9,",":35,")":-5,"A":29,"J":21,"c":48,"e":48,"o":49,"a":40,"d":45,"g":45,"q":45,"m":23,"n":23,"p":23,"r":23,"s":35,"u":26,"w":5,"y":3,"T":-24,"Y":-32,"z":20,"-":23,"f":5,".":37}},"W":{"d":"552,-600r-10,70r-170,520v-2,6,-5,10,-10,10r-120,0v-5,0,-8,-4,-10,-10v0,0,-220,-666,-220,-670v0,-7,4,-9,10,-10v9,5,117,-25,115,0r155,520r10,70r10,-70r160,-510v2,-5,6,-9,10,-10v43,-5,85,-12,135,-10v5,0,8,5,10,10r155,520r10,70r10,-70r160,-520v2,-6,6,-10,10,-10r110,0v6,0,10,4,10,10v0,4,-230,680,-230,680v-2,6,-5,10,-10,10r-120,0v-5,0,-8,-4,-10,-10r-160,-520","w":1099,"k":{"A":24,"J":19,"c":40,"e":40,"o":41,"a":34,"d":38,"g":38,"q":38,"m":21,"n":21,"p":21,"r":21,"s":29,"u":24,"w":4,"y":3,"T":-18,"Y":-27,"z":18,"-":21,"?":-11,"f":5,"v":3,"}":-12,".":35,"x":26,",":31,"]":-13,";":11,":":8}},"X":{"d":"40,-680v-3,-22,98,-13,115,-20v5,0,12,5,15,10r135,210r15,50r15,-50r135,-210v4,-6,10,-10,15,-10r115,0v6,0,10,4,10,10v0,2,-95,136,-225,330v116,173,235,349,235,350v0,6,-4,10,-10,10r-115,0v-5,0,-12,-5,-15,-10r-145,-230r-15,-50r-15,50r-145,230v-4,5,-10,10,-15,10r-115,0v-6,0,-10,-4,-10,-10v0,-1,119,-176,235,-350v-126,-188,-215,-317,-215,-320","w":642,"k":{"}":-7,"v":26,"]":-9,"c":21,"e":21,"o":23,"C":5,"G":5,"O":5,"Q":5,"a":8,"d":18,"g":18,"q":18,"m":7,"n":7,"p":7,"r":7,"s":6,"t":25,"u":20,"w":27,"y":25,"-":30,"f":24}},"Y":{"d":"4,-680v-3,-22,98,-13,115,-20v7,0,12,5,15,10r150,260r15,50r15,-50r150,-260v4,-6,10,-10,15,-10r110,0v6,0,10,4,10,10v0,2,-170,281,-240,395r0,285v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-285v0,0,-235,-380,-235,-385","w":599,"k":{"A":50,"J":33,"c":72,"e":72,"o":73,"C":8,"G":8,"O":8,"Q":8,"a":56,"d":70,"g":70,"q":70,"m":37,"n":37,"p":37,"r":37,"s":50,"t":8,"u":43,"w":12,"y":10,"T":-25,"W":-25,"Y":-34,"V":-30,"z":30,"-":40,"?":-15,"f":22,"v":10,"}":-17,".":41,"x":38,")":-7,",":38,"]":-18,";":23,":":18}},"Z":{"d":"533,-603r-333,483r-55,20r390,0v6,0,10,4,10,10r-10,80v-1,6,-4,10,-10,10r-470,0v-6,0,-10,-4,-10,-10v3,-29,-8,-70,5,-90r330,-480r55,-20r-370,0v-6,0,-10,-4,-10,-10r0,-70v0,-6,4,-9,10,-10v138,-19,307,-7,460,-10v6,0,10,4,10,10v-1,29,3,62,-2,87","w":589,"k":{"c":13,"e":13,"o":14,"C":3,"G":3,"O":3,"Q":3,"a":3,"d":11,"g":11,"q":11,"m":7,"n":7,"p":7,"r":7,"s":7,"t":16,"u":12,"w":22,"y":20,"-":43,"f":24,"v":21,"x":5}},"[":{"d":"304,30v-6,14,-2,80,-20,80r-200,0v-6,0,-10,-4,-10,-10r0,-830v0,-6,4,-9,10,-10v60,-10,129,-10,200,-10v19,0,14,65,20,80v0,6,-4,10,-10,10r-110,0r0,680r110,0v6,0,10,4,10,10","w":330,"k":{"v":9,"f":5,"X":-9,"V":-12,"A":-5,"c":8,"e":8,"o":9,"C":6,"G":6,"O":6,"Q":6,"a":6,"d":5,"g":5,"q":5,"t":5,"u":9,"w":10,"y":9,"T":-12,"W":-10,"Y":-16}},"\\":{"d":"345,-10v0,6,-4,10,-10,10r-95,0v-4,0,-8,-4,-10,-10v0,0,-210,-675,-210,-680v0,-6,4,-10,10,-10r95,0v5,0,8,4,10,10v0,0,210,675,210,680","w":376},"]":{"d":"26,-670v6,-14,2,-80,20,-80v71,0,141,-1,200,10v6,1,10,4,10,10r0,830v0,6,-4,10,-10,10r-200,0v-19,1,-14,-65,-20,-80v0,-6,4,-10,10,-10r110,0r0,-680r-110,0v-6,0,-10,-4,-10,-10","w":330},"^":{"d":"260,-550r-115,250v-18,22,-71,5,-105,10v-6,0,-10,-4,-10,-10v0,-5,190,-390,190,-390v13,-20,56,-6,85,-10v6,0,12,4,15,10v0,0,190,385,190,390v0,6,-4,10,-10,10r-90,0v-6,0,-12,-4,-15,-10r-115,-250r-10,-50","w":540},"_":{"d":"20,160r0,-90r500,0r0,90r-500,0","w":540},"`":{"d":"142,-710v0,-6,3,-10,10,-10v36,4,90,-10,110,10v0,0,100,135,100,140v0,6,-4,10,-10,10v-31,-3,-74,9,-90,-10v0,0,-120,-135,-120,-140","w":541},"a":{"d":"217,-90v74,0,150,-17,140,-120v-81,-1,-200,-11,-200,60v0,54,37,60,60,60xm377,0v-13,-1,-12,-27,-15,-40v-20,22,-63,50,-145,50v-61,0,-180,-30,-180,-160v0,-103,79,-160,210,-160v29,0,110,10,110,10v7,-76,-13,-110,-100,-110v-70,0,-170,40,-180,40v-6,0,-10,-4,-10,-10v6,-13,1,-92,20,-90v4,-2,89,-40,170,-40v131,0,220,60,220,160v0,102,-8,262,10,340v0,6,-4,10,-10,10r-100,0","w":545,"k":{"Z":5,"Y":68,"W":39,"V":46,"U":9,"T":73,"S":5,"B":6,"D":6,"E":6,"F":6,"H":6,"I":6,"K":6,"L":6,"M":6,"N":6,"P":6,"R":6,"\"":6,"'":6,"?":19,")":6}},"b":{"d":"191,-43v-3,4,-4,43,-17,43r-100,0v-6,0,-10,-4,-10,-10v0,-6,10,-30,10,-80r0,-640v-2,-21,92,-13,110,-20v5,0,10,4,10,10r0,280v24,-21,69,-50,130,-50v201,0,230,117,230,260v0,143,-29,260,-230,260v-75,0,-133,-53,-133,-53xm194,-250v0,97,28,160,130,160v92,0,110,-70,110,-160v0,-90,-18,-160,-110,-160v-102,0,-130,70,-130,160","k":{"B":4,"D":4,"E":4,"F":4,"H":4,"I":4,"K":4,"L":4,"M":4,"N":4,"P":4,"R":4,"S":7,"T":60,"U":4,"W":37,"Y":69,"V":44,"X":17,"Z":10,"?":17,"}":6,"x":3,")":12,"]":8}},"c":{"d":"447,-110v20,-2,13,74,20,90v0,5,-4,8,-10,10v-8,2,-83,20,-150,20v-220,0,-260,-117,-260,-260v0,-143,40,-260,260,-260v91,0,138,23,150,40v-4,8,25,92,0,90v-5,0,-80,-30,-150,-30v-125,0,-140,69,-140,160v0,91,25,160,140,160v75,0,135,-20,140,-20","w":513,"k":{"Z":5,"Y":44,"W":21,"V":25,"U":6,"T":50,"S":3,"B":3,"D":3,"E":3,"F":3,"H":3,"I":3,"K":3,"L":3,"M":3,"N":3,"P":3,"R":3,"-":6,"?":12}},"d":{"d":"427,0v-13,1,-14,-38,-17,-43v0,0,-58,53,-133,53v-201,0,-230,-117,-230,-260v0,-143,29,-260,230,-260v61,0,106,29,130,50r0,-280v0,-6,5,-10,10,-10v17,6,110,0,110,20r0,640v0,50,10,74,10,80v0,6,-4,10,-10,10r-100,0xm407,-250v0,-90,-28,-160,-130,-160v-92,0,-110,70,-110,160v0,90,18,160,110,160v102,0,130,-63,130,-160","k":{"B":4,"D":4,"E":4,"F":4,"H":4,"I":4,"K":4,"L":4,"M":4,"N":4,"P":4,"R":4,"U":5}},"e":{"d":"295,-410v-95,0,-118,47,-125,110r224,0v-4,-56,-29,-110,-99,-110xm505,-200r-335,0v8,64,35,110,135,110v80,0,165,-20,170,-20v6,0,10,4,10,10v-6,14,-1,92,-20,90v0,0,-70,20,-160,20v-215,0,-260,-117,-260,-260v0,-143,46,-259,250,-259v155,0,231,103,221,299v0,5,-5,10,-11,10","w":556,"k":{"Z":12,"Y":91,"X":12,"W":35,"V":43,"U":4,"T":50,"S":12,"J":4,"B":3,"D":3,"E":3,"F":3,"H":3,"I":3,"K":3,"L":3,"M":3,"N":3,"P":3,"R":3,"?":17,"x":3,")":8}},"f":{"d":"245,-80v-5,55,-3,70,-20,80r-100,0v-25,-11,0,-27,0,-80r0,-320r-100,0v-6,0,-10,-4,-10,-10v6,-15,1,-90,20,-90r90,0v-7,-144,18,-260,165,-260v54,0,66,1,75,22v-5,14,-1,93,-20,88v-6,0,-20,-10,-55,-10v-49,0,-46,96,-45,160r100,0v6,0,10,4,10,10v-6,14,-1,90,-20,90r-90,0r0,320","w":369,"k":{"}":-14,"]":-14,"Y":-18,"W":-9,"V":-13,"T":-8,"J":19,"A":15,"?":-8,",":6,")":-13,".":8}},"g":{"d":"407,-250v0,-97,-28,-160,-130,-160v-92,0,-110,70,-110,160v0,90,18,160,110,160v102,0,130,-70,130,-160xm410,-457v3,-4,4,-43,17,-43r100,0v6,0,10,4,10,10v0,6,-10,30,-10,80r0,410v0,141,-40,230,-250,230v-116,0,-167,-21,-180,-40v4,-9,-25,-93,0,-90v5,0,95,30,180,30v144,0,129,-77,130,-170v0,0,-45,50,-130,50v-201,0,-230,-117,-230,-260v0,-143,29,-260,230,-260v75,0,133,53,133,53","k":{"Z":8,"Y":37,"X":6,"W":23,"V":24,"U":7,"T":59,"B":5,"D":5,"E":5,"F":5,"H":5,"I":5,"K":5,"L":5,"M":5,"N":5,"P":5,"R":5,"?":15,")":8}},"h":{"d":"194,-80v-5,55,-3,70,-20,80r-100,0v-25,-11,0,-27,0,-80r0,-650v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,280v0,0,50,-50,130,-50v170,0,200,80,200,220r0,280v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-280v0,-70,-10,-120,-80,-120v-83,0,-130,40,-130,120r0,210","w":591,"k":{"B":6,"D":6,"E":6,"F":6,"H":6,"I":6,"K":6,"L":6,"M":6,"N":6,"P":6,"R":6,"S":5,"T":72,"U":9,"W":38,"Y":67,"V":45,"X":4,"Z":5,"\"":6,"'":6,"?":19,")":8}},"i":{"d":"92,0v-18,-10,-20,-25,-20,-80r0,-400v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,410v0,40,10,66,10,70v0,6,-4,10,-10,10r-100,0xm62,-640v0,-39,31,-70,70,-70v39,0,70,31,70,70v0,39,-31,70,-70,70v-39,0,-70,-31,-70,-70","w":266,"k":{"U":3,"B":5,"D":5,"E":5,"F":5,"H":5,"I":5,"K":5,"L":5,"M":5,"N":5,"P":5,"R":5}},"j":{"d":"63,-640v0,-39,31,-70,70,-70v39,0,70,31,70,70v0,39,-31,70,-70,70v-39,0,-70,-31,-70,-70xm-47,198v5,-14,1,-93,20,-88v5,0,30,10,50,10v40,0,50,-54,50,-120r0,-480v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,490v0,111,-41,220,-164,220v-54,0,-67,-2,-76,-22","w":266,"k":{"U":3,"B":4,"D":4,"E":4,"F":4,"H":4,"I":4,"K":4,"L":4,"M":4,"N":4,"P":4,"R":4}},"k":{"d":"194,-80v-5,55,-3,70,-20,80r-100,0v-25,-11,0,-27,0,-80r0,-650v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,420r180,-170v34,-23,100,-4,150,-10v7,0,10,5,10,10v0,10,-240,210,-240,210v0,0,240,260,240,270v0,6,-4,10,-10,10r-120,0v-10,0,-16,-5,-20,-10r-190,-220r0,150","w":550,"k":{"Z":6,"Y":14,"W":10,"V":10,"U":7,"T":47,"c":12,"e":12,"o":13,"C":5,"G":5,"O":5,"Q":5,"a":7,"d":11,"g":11,"q":11,"s":3,"u":6,"B":3,"D":3,"E":3,"F":3,"H":3,"I":3,"K":3,"L":3,"M":3,"N":3,"P":3,"R":3,"-":14,"?":14,")":7,"i":3,"l":3}},"l":{"d":"93,0v-18,-10,-20,-25,-20,-80r0,-651v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,661v0,40,10,66,10,70v0,6,-4,10,-10,10r-100,0","w":267,"k":{"B":4,"D":4,"E":4,"F":4,"H":4,"I":4,"K":4,"L":4,"M":4,"N":4,"P":4,"R":4,"U":5}},"m":{"d":"74,-10r0,-410v0,-40,-10,-66,-10,-70v0,-6,4,-10,10,-10r100,0v15,4,11,32,16,47v0,0,44,-57,134,-57v97,0,150,26,176,80v16,-22,64,-80,154,-80v160,0,200,70,200,220r0,280v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-280v0,-100,-30,-120,-80,-120v-88,0,-130,40,-130,120r0,280v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-280v0,-100,-30,-120,-80,-120v-90,0,-130,40,-130,120r0,280v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10","w":921,"k":{"B":6,"D":6,"E":6,"F":6,"H":6,"I":6,"K":6,"L":6,"M":6,"N":6,"P":6,"R":6,"S":5,"T":72,"U":9,"W":38,"Y":67,"V":45,"X":4,"Z":5,"\"":6,"'":6,"?":19,")":8}},"n":{"d":"74,-10r0,-410v0,-40,-10,-66,-10,-70v0,-6,4,-10,10,-10r100,0v15,4,11,32,16,47v0,0,44,-57,134,-57v160,0,200,70,200,220r0,280v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-280v0,-100,-30,-120,-80,-120v-90,0,-130,40,-130,120r0,280v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10","w":591,"k":{"B":6,"D":6,"E":6,"F":6,"H":6,"I":6,"K":6,"L":6,"M":6,"N":6,"P":6,"R":6,"S":5,"T":72,"U":9,"W":38,"Y":67,"V":45,"X":4,"Z":5,"\"":6,"'":6,"?":19,")":8}},"o":{"d":"163,-250v0,100,30,160,130,160v100,0,130,-60,130,-160v0,-100,-30,-160,-130,-160v-100,0,-130,60,-130,160xm43,-250v0,-180,100,-260,250,-260v150,0,250,80,250,260v0,180,-100,260,-250,260v-150,0,-250,-80,-250,-260","w":586,"k":{"Z":13,"Y":73,"X":22,"W":40,"V":48,"U":5,"T":76,"S":9,"J":4,"B":5,"D":5,"E":5,"F":5,"H":5,"I":5,"K":5,"L":5,"M":5,"N":5,"P":5,"R":5,"\"":6,"'":6,"?":19,"}":7,"x":4,")":13,"]":9}},"p":{"d":"174,-500v13,-1,14,38,17,43v0,0,58,-53,133,-53v201,0,230,117,230,260v0,143,-29,260,-230,260v-61,0,-106,-29,-130,-50r0,260v0,6,-5,10,-10,10v-17,-6,-110,0,-110,-20r0,-620v0,-50,-10,-74,-10,-80v0,-6,4,-10,10,-10r100,0xm194,-250v0,90,28,160,130,160v92,0,110,-70,110,-160v0,-90,-18,-160,-110,-160v-102,0,-130,63,-130,160","k":{"B":4,"D":4,"E":4,"F":4,"H":4,"I":4,"K":4,"L":4,"M":4,"N":4,"P":4,"R":4,"S":7,"T":60,"U":4,"W":37,"Y":69,"V":44,"X":17,"Z":10,"?":17,"}":6,"x":3,")":12,"]":8}},"q":{"d":"410,-457v3,-4,4,-43,17,-43r100,0v6,0,10,4,10,10v0,6,-10,30,-10,80r0,620v2,21,-92,13,-110,20v-5,0,-10,-4,-10,-10r0,-260v-24,21,-69,50,-130,50v-201,0,-230,-117,-230,-260v0,-143,29,-260,230,-260v75,0,133,53,133,53xm407,-250v0,-97,-28,-160,-130,-160v-92,0,-110,70,-110,160v0,90,18,160,110,160v102,0,130,-70,130,-160","k":{"Z":8,"Y":37,"X":6,"W":23,"V":24,"U":7,"T":59,"?":15,")":8,"B":5,"D":5,"E":5,"F":5,"H":5,"I":5,"K":5,"L":5,"M":5,"N":5,"P":5,"R":5}},"r":{"d":"324,-510v45,0,72,2,80,20v-4,8,25,92,0,90v-5,0,-63,-10,-80,-10v-83,0,-130,41,-130,120r0,280v0,6,-4,10,-10,10r-100,0v-6,0,-10,-4,-10,-10r0,-410v0,-40,-10,-66,-10,-70v0,-6,4,-10,10,-10r100,0v15,4,13,31,18,45v22,-24,62,-55,132,-55","w":425,"k":{"Z":50,"Y":20,"X":46,"W":5,"V":6,"T":41,"J":51,"A":37,"t":-5,"?":15,"f":-4,"}":6,".":32,")":9,",":26,"]":8}},"s":{"d":"58,-120v5,0,110,30,200,30v44,0,60,-14,60,-40v0,-32,-30,-45,-80,-60v-91,-27,-190,-64,-190,-180v0,-85,55,-140,180,-140v108,0,158,10,170,30v-4,8,25,92,0,90v-5,0,-85,-20,-170,-20v-40,0,-60,14,-60,40v0,32,30,45,80,60v91,27,190,63,190,180v0,80,-65,140,-180,140v-128,0,-187,-20,-200,-40v4,-8,-25,-92,0,-90","w":475,"k":{"Z":3,"Y":50,"X":6,"W":30,"V":34,"U":6,"T":50,"C":3,"G":3,"O":3,"Q":3,"B":3,"D":3,"E":3,"F":3,"H":3,"I":3,"K":3,"L":3,"M":3,"N":3,"P":3,"R":3,"?":15,")":8,"]":5}},"t":{"d":"27,-400v-19,2,-14,-74,-20,-90v0,-6,4,-10,10,-10r100,0r0,-180v0,-6,4,-10,10,-10r100,-10v6,0,10,4,10,10r0,190r100,0v20,-2,13,75,20,90v0,6,-4,10,-10,10r-110,0r0,210v0,66,17,100,50,100v19,0,55,-10,60,-10v20,-3,14,73,20,88v-8,22,-33,20,-90,22v-201,6,-155,-223,-160,-410r-90,0","w":397,"k":{"Y":27,"W":14,"V":15,"T":34,"?":10}},"u":{"d":"516,-490r0,410v0,40,10,66,10,70v0,6,-4,10,-10,10r-100,0v-15,-4,-11,-32,-16,-47v0,0,-44,57,-134,57v-160,0,-200,-70,-200,-220r0,-270v0,-6,4,-9,10,-10r100,-10v6,0,10,4,10,10r0,280v0,100,30,120,80,120v83,0,130,-40,130,-120r0,-270v0,-6,5,-10,10,-10r100,-10v6,0,10,4,10,10","w":590,"k":{"Z":6,"Y":44,"X":4,"W":27,"V":30,"U":8,"T":70,"B":5,"D":5,"E":5,"F":5,"H":5,"I":5,"K":5,"L":5,"M":5,"N":5,"P":5,"R":5,"?":15,")":7}},"v":{"d":"13,-480v-3,-22,93,-13,110,-20v4,0,8,4,10,10r114,320r11,70r11,-70r114,-320v2,-6,6,-10,10,-10r105,0v6,0,10,4,10,10v0,4,-180,480,-180,480v-2,6,-5,10,-10,10r-120,0v-5,0,-8,-4,-10,-10v0,0,-175,-466,-175,-470","w":518,"k":{"Z":35,"Y":7,"X":24,"T":35,"J":31,"A":23,"?":11,",":12,".":15}},"w":{"d":"16,-480v-3,-22,93,-13,110,-20v4,0,8,4,10,10r104,320r11,70r11,-70r95,-310v25,-23,74,-16,124,-20v5,0,8,5,10,10r99,320r11,70r11,-70r104,-320v2,-6,6,-10,10,-10r105,0v6,0,10,4,10,10v0,4,-170,480,-170,480v-2,6,-5,10,-10,10r-120,0v-5,0,-8,-4,-10,-10v-35,-127,-81,-242,-105,-380v-24,138,-70,253,-105,380v-2,6,-5,10,-10,10r-120,0v-5,0,-8,-4,-10,-10v0,0,-165,-466,-165,-470","w":855,"k":{"Z":36,"Y":8,"X":25,"W":3,"V":3,"T":38,"J":30,"A":23,"?":12,".":15,")":5,",":12}},"x":{"d":"39,-480v-3,-22,98,-13,115,-20v5,0,12,5,15,10r80,126r15,50r15,-50r85,-126v4,-6,10,-10,15,-10r110,0v6,0,10,4,10,10v0,3,-81,117,-164,233v86,121,174,245,174,247v0,6,-4,10,-10,10r-110,0v-5,0,-11,-5,-15,-10r-95,-136r-15,-50r-15,50r-95,136v-4,5,-10,10,-15,10r-110,0v-6,0,-10,-4,-10,-10v0,-2,87,-126,173,-247v-83,-116,-153,-218,-153,-223","w":526,"k":{"]":5,"Z":4,"Y":23,"W":15,"V":16,"U":12,"T":49,"?":14,")":7,"!":6,"c":8,"e":8,"o":8,"C":7,"G":7,"O":7,"Q":7,"a":5,"d":7,"g":7,"q":7,"u":6,"B":5,"D":5,"E":5,"F":5,"H":5,"I":5,"K":5,"L":5,"M":5,"N":5,"P":5,"R":5,"-":7,"i":3,"l":3}},"y":{"d":"11,-480v-3,-21,89,-13,105,-20v7,0,12,5,15,10r116,325r10,70r10,-70r114,-325v2,-6,6,-10,10,-10r105,0v6,0,10,4,10,10v0,4,-167,450,-182,490v-40,109,-88,220,-213,220v-56,0,-64,-2,-74,-22v5,-14,1,-93,20,-88v4,0,34,10,54,10v56,0,90,-100,90,-100v0,0,-190,-496,-190,-500","w":516,"k":{"Z":36,"Y":7,"X":24,"T":36,"J":31,"A":24,"?":11,".":15,",":12}},"z":{"d":"448,-400r-238,280r-40,20r283,0v6,0,10,4,10,10r-10,80v-1,6,-4,10,-10,10r-390,0v-6,0,-10,-4,-10,-10v3,-29,-6,-69,5,-90r238,-280r40,-20r-263,0v-6,0,-10,-4,-10,-10r0,-70v0,-6,4,-9,10,-10v113,-17,252,-8,380,-10v6,0,10,4,10,10v-2,29,6,69,-5,90","w":505,"k":{"Z":3,"Y":27,"W":17,"V":18,"U":7,"T":50,"C":3,"G":3,"O":3,"Q":3,"B":3,"D":3,"E":3,"F":3,"H":3,"I":3,"K":3,"L":3,"M":3,"N":3,"P":3,"R":3,"-":6,"?":13}},"{":{"d":"315,-750v19,0,14,65,20,80v-2,20,-41,6,-60,10v-29,0,-40,14,-40,40r0,190v0,70,-50,100,-50,100r-50,10r50,10v0,0,50,30,50,100r0,190v-5,46,47,41,90,40v8,0,10,4,10,10v-6,14,-2,80,-20,80v-105,0,-190,-1,-190,-120r0,-180v0,-50,-40,-80,-80,-80v-6,0,-10,-4,-10,-10r0,-80v0,-6,4,-10,10,-10v40,0,80,-30,80,-80r0,-180v11,-118,85,-120,190,-120","w":362,"k":{"X":-8,"V":-12,"A":-5,"c":6,"e":6,"o":7,"u":7,"T":-11,"W":-10,"Y":-15}},"|":{"d":"86,10r0,-741v0,-6,4,-10,10,-10r90,-10v6,0,10,4,10,10r0,741v0,6,-4,10,-10,10r-90,10v-6,0,-10,-4,-10,-10","w":280},"}":{"d":"48,110v-19,0,-14,-65,-20,-80v2,-20,41,-6,60,-10v29,0,40,-14,40,-40r0,-190v0,-70,50,-100,50,-100r50,-10r-50,-10v0,0,-50,-30,-50,-100r0,-190v5,-46,-47,-41,-90,-40v-8,0,-10,-4,-10,-10v6,-14,2,-80,20,-80v105,0,190,1,190,120r0,180v0,50,40,80,80,80v6,0,10,4,10,10r0,80v0,6,-4,10,-10,10v-40,0,-80,30,-80,80r0,180v-11,118,-85,120,-190,120","w":363},"~":{"d":"198,-390v132,0,131,55,220,80v58,0,42,-50,60,-50r70,0v5,0,10,4,10,10v0,73,-30,140,-140,140v-132,0,-131,-55,-220,-80v-59,0,-43,50,-60,50r-70,0v-5,0,-10,-4,-10,-10v0,-73,30,-140,140,-140","w":614},"\u00a0":{"w":249}}});


/*
 * jQuery Cycle Plugin (with Transition Definitions)
 * Examples and documentation at: http://jquery.malsup.com/cycle/
 * Copyright (c) 2007-2010 M. Alsup
 * Version: 2.88 (08-JUN-2010)
 * Dual licensed under the MIT and GPL licenses.
 * http://jquery.malsup.com/license.html
 * Requires: jQuery v1.2.6 or later
 */
(function($){var ver="2.88";if($.support==undefined){$.support={opacity:!($.browser.msie)};}function debug(s){if($.fn.cycle.debug){log(s);}}function log(){if(window.console&&window.console.log){window.console.log("[cycle] "+Array.prototype.join.call(arguments," "));}}$.fn.cycle=function(options,arg2){var o={s:this.selector,c:this.context};if(this.length===0&&options!="stop"){if(!$.isReady&&o.s){log("DOM not ready, queuing slideshow");$(function(){$(o.s,o.c).cycle(options,arg2);});return this;}log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));return this;}return this.each(function(){var opts=handleArguments(this,options,arg2);if(opts===false){return;}opts.updateActivePagerLink=opts.updateActivePagerLink||$.fn.cycle.updateActivePagerLink;if(this.cycleTimeout){clearTimeout(this.cycleTimeout);}this.cycleTimeout=this.cyclePause=0;var $cont=$(this);var $slides=opts.slideExpr?$(opts.slideExpr,this):$cont.children();var els=$slides.get();if(els.length<2){log("terminating; too few slides: "+els.length);return;}var opts2=buildOptions($cont,$slides,els,opts,o);if(opts2===false){return;}var startTime=opts2.continuous?10:getTimeout(els[opts2.currSlide],els[opts2.nextSlide],opts2,!opts2.rev);if(startTime){startTime+=(opts2.delay||0);if(startTime<10){startTime=10;}debug("first timeout: "+startTime);this.cycleTimeout=setTimeout(function(){go(els,opts2,0,(!opts2.rev&&!opts.backwards));},startTime);}});};function handleArguments(cont,options,arg2){if(cont.cycleStop==undefined){cont.cycleStop=0;}if(options===undefined||options===null){options={};}if(options.constructor==String){switch(options){case"destroy":case"stop":var opts=$(cont).data("cycle.opts");if(!opts){return false;}cont.cycleStop++;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);}cont.cycleTimeout=0;$(cont).removeData("cycle.opts");if(options=="destroy"){destroy(opts);}return false;case"toggle":cont.cyclePause=(cont.cyclePause===1)?0:1;checkInstantResume(cont.cyclePause,arg2,cont);return false;case"pause":cont.cyclePause=1;return false;case"resume":cont.cyclePause=0;checkInstantResume(false,arg2,cont);return false;case"prev":case"next":var opts=$(cont).data("cycle.opts");if(!opts){log('options not found, "prev/next" ignored');return false;}$.fn.cycle[options](opts);return false;default:options={fx:options};}return options;}else{if(options.constructor==Number){var num=options;options=$(cont).data("cycle.opts");if(!options){log("options not found, can not advance slide");return false;}if(num<0||num>=options.elements.length){log("invalid slide index: "+num);return false;}options.nextSlide=num;if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}if(typeof arg2=="string"){options.oneTimeFx=arg2;}go(options.elements,options,1,num>=options.currSlide);return false;}}return options;function checkInstantResume(isPaused,arg2,cont){if(!isPaused&&arg2===true){var options=$(cont).data("cycle.opts");if(!options){log("options not found, can not resume");return false;}if(cont.cycleTimeout){clearTimeout(cont.cycleTimeout);cont.cycleTimeout=0;}go(options.elements,options,1,(!opts.rev&&!opts.backwards));}}}function removeFilter(el,opts){if(!$.support.opacity&&opts.cleartype&&el.style.filter){try{el.style.removeAttribute("filter");}catch(smother){}}}function destroy(opts){if(opts.next){$(opts.next).unbind(opts.prevNextEvent);}if(opts.prev){$(opts.prev).unbind(opts.prevNextEvent);}if(opts.pager||opts.pagerAnchorBuilder){$.each(opts.pagerAnchors||[],function(){this.unbind().remove();});}opts.pagerAnchors=null;if(opts.destroy){opts.destroy(opts);}}function buildOptions($cont,$slides,els,options,o){var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});if(opts.autostop){opts.countdown=opts.autostopCount||els.length;}var cont=$cont[0];$cont.data("cycle.opts",opts);opts.$cont=$cont;opts.stopCount=cont.cycleStop;opts.elements=els;opts.before=opts.before?[opts.before]:[];opts.after=opts.after?[opts.after]:[];opts.after.unshift(function(){opts.busy=0;});if(!$.support.opacity&&opts.cleartype){opts.after.push(function(){removeFilter(this,opts);});}if(opts.continuous){opts.after.push(function(){go(els,opts,0,(!opts.rev&&!opts.backwards));});}saveOriginalOpts(opts);if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($slides);}if($cont.css("position")=="static"){$cont.css("position","relative");}if(opts.width){$cont.width(opts.width);}if(opts.height&&opts.height!="auto"){$cont.height(opts.height);}if(opts.startingSlide){opts.startingSlide=parseInt(opts.startingSlide);}else{if(opts.backwards){opts.startingSlide=els.length-1;}}if(opts.random){opts.randomMap=[];for(var i=0;i<els.length;i++){opts.randomMap.push(i);}opts.randomMap.sort(function(a,b){return Math.random()-0.5;});opts.randomIndex=1;opts.startingSlide=opts.randomMap[1];}else{if(opts.startingSlide>=els.length){opts.startingSlide=0;}}opts.currSlide=opts.startingSlide||0;var first=opts.startingSlide;$slides.css({position:"absolute",top:0,left:0}).hide().each(function(i){var z;if(opts.backwards){z=first?i<=first?els.length+(i-first):first-i:els.length-i;}else{z=first?i>=first?els.length-(i-first):first-i:els.length-i;}$(this).css("z-index",z);});$(els[first]).css("opacity",1).show();removeFilter(els[first],opts);if(opts.fit&&opts.width){$slides.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}var reshape=opts.containerResize&&!$cont.innerHeight();if(reshape){var maxw=0,maxh=0;for(var j=0;j<els.length;j++){var $e=$(els[j]),e=$e[0],w=$e.outerWidth(),h=$e.outerHeight();if(!w){w=e.offsetWidth||e.width||$e.attr("width");}if(!h){h=e.offsetHeight||e.height||$e.attr("height");}maxw=w>maxw?w:maxw;maxh=h>maxh?h:maxh;}if(maxw>0&&maxh>0){$cont.css({width:maxw+"px",height:maxh+"px"});}}if(opts.pause){$cont.hover(function(){this.cyclePause++;},function(){this.cyclePause--;});}if(supportMultiTransitions(opts)===false){return false;}var requeue=false;options.requeueAttempts=options.requeueAttempts||0;$slides.each(function(){var $el=$(this);this.cycleH=(opts.fit&&opts.height)?opts.height:($el.height()||this.offsetHeight||this.height||$el.attr("height")||0);this.cycleW=(opts.fit&&opts.width)?opts.width:($el.width()||this.offsetWidth||this.width||$el.attr("width")||0);if($el.is("img")){var loadingIE=($.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete);var loadingFF=($.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete);var loadingOp=($.browser.opera&&((this.cycleW==42&&this.cycleH==19)||(this.cycleW==37&&this.cycleH==17))&&!this.complete);var loadingOther=(this.cycleH==0&&this.cycleW==0&&!this.complete);if(loadingIE||loadingFF||loadingOp||loadingOther){if(o.s&&opts.requeueOnImageNotLoaded&&++options.requeueAttempts<100){log(options.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);setTimeout(function(){$(o.s,o.c).cycle(options);},opts.requeueTimeout);requeue=true;return false;}else{log("could not determine size of image: "+this.src,this.cycleW,this.cycleH);}}}return true;});if(requeue){return false;}opts.cssBefore=opts.cssBefore||{};opts.animIn=opts.animIn||{};opts.animOut=opts.animOut||{};$slides.not(":eq("+first+")").css(opts.cssBefore);if(opts.cssFirst){$($slides[first]).css(opts.cssFirst);}if(opts.timeout){opts.timeout=parseInt(opts.timeout);if(opts.speed.constructor==String){opts.speed=$.fx.speeds[opts.speed]||parseInt(opts.speed);}if(!opts.sync){opts.speed=opts.speed/2;}var buffer=opts.fx=="shuffle"?500:250;while((opts.timeout-opts.speed)<buffer){opts.timeout+=opts.speed;}}if(opts.easing){opts.easeIn=opts.easeOut=opts.easing;}if(!opts.speedIn){opts.speedIn=opts.speed;}if(!opts.speedOut){opts.speedOut=opts.speed;}opts.slideCount=els.length;opts.currSlide=opts.lastSlide=first;if(opts.random){if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.backwards){opts.nextSlide=opts.startingSlide==0?(els.length-1):opts.startingSlide-1;}else{opts.nextSlide=opts.startingSlide>=(els.length-1)?0:opts.startingSlide+1;}}if(!opts.multiFx){var init=$.fn.cycle.transitions[opts.fx];if($.isFunction(init)){init($cont,$slides,opts);}else{if(opts.fx!="custom"&&!opts.multiFx){log("unknown transition: "+opts.fx,"; slideshow terminating");return false;}}}var e0=$slides[first];if(opts.before.length){opts.before[0].apply(e0,[e0,e0,opts,true]);}if(opts.after.length>1){opts.after[1].apply(e0,[e0,e0,opts,true]);}if(opts.next){$(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?-1:1);});}if(opts.prev){$(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,opts.rev?1:-1);});}if(opts.pager||opts.pagerAnchorBuilder){buildPager(els,opts);}exposeAddSlide(opts,els);return opts;}function saveOriginalOpts(opts){opts.original={before:[],after:[]};opts.original.cssBefore=$.extend({},opts.cssBefore);opts.original.cssAfter=$.extend({},opts.cssAfter);opts.original.animIn=$.extend({},opts.animIn);opts.original.animOut=$.extend({},opts.animOut);$.each(opts.before,function(){opts.original.before.push(this);});$.each(opts.after,function(){opts.original.after.push(this);});}function supportMultiTransitions(opts){var i,tx,txs=$.fn.cycle.transitions;if(opts.fx.indexOf(",")>0){opts.multiFx=true;opts.fxs=opts.fx.replace(/\s*/g,"").split(",");for(i=0;i<opts.fxs.length;i++){var fx=opts.fxs[i];tx=txs[fx];if(!tx||!txs.hasOwnProperty(fx)||!$.isFunction(tx)){log("discarding unknown transition: ",fx);opts.fxs.splice(i,1);i--;}}if(!opts.fxs.length){log("No valid transitions named; slideshow terminating.");return false;}}else{if(opts.fx=="all"){opts.multiFx=true;opts.fxs=[];for(p in txs){tx=txs[p];if(txs.hasOwnProperty(p)&&$.isFunction(tx)){opts.fxs.push(p);}}}}if(opts.multiFx&&opts.randomizeEffects){var r1=Math.floor(Math.random()*20)+30;for(i=0;i<r1;i++){var r2=Math.floor(Math.random()*opts.fxs.length);opts.fxs.push(opts.fxs.splice(r2,1)[0]);}debug("randomized fx sequence: ",opts.fxs);}return true;}function exposeAddSlide(opts,els){opts.addSlide=function(newSlide,prepend){var $s=$(newSlide),s=$s[0];if(!opts.autostopCount){opts.countdown++;}els[prepend?"unshift":"push"](s);if(opts.els){opts.els[prepend?"unshift":"push"](s);}opts.slideCount=els.length;$s.css("position","absolute");$s[prepend?"prependTo":"appendTo"](opts.$cont);if(prepend){opts.currSlide++;opts.nextSlide++;}if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){clearTypeFix($s);}if(opts.fit&&opts.width){$s.width(opts.width);}if(opts.fit&&opts.height&&opts.height!="auto"){$slides.height(opts.height);}s.cycleH=(opts.fit&&opts.height)?opts.height:$s.height();s.cycleW=(opts.fit&&opts.width)?opts.width:$s.width();$s.css(opts.cssBefore);if(opts.pager||opts.pagerAnchorBuilder){$.fn.cycle.createPagerAnchor(els.length-1,s,$(opts.pager),els,opts);}if($.isFunction(opts.onAddSlide)){opts.onAddSlide($s);}else{$s.hide();}};}$.fn.cycle.resetState=function(opts,fx){fx=fx||opts.fx;opts.before=[];opts.after=[];opts.cssBefore=$.extend({},opts.original.cssBefore);opts.cssAfter=$.extend({},opts.original.cssAfter);opts.animIn=$.extend({},opts.original.animIn);opts.animOut=$.extend({},opts.original.animOut);opts.fxFn=null;$.each(opts.original.before,function(){opts.before.push(this);});$.each(opts.original.after,function(){opts.after.push(this);});var init=$.fn.cycle.transitions[fx];if($.isFunction(init)){init(opts.$cont,$(opts.elements),opts);}};function go(els,opts,manual,fwd){if(manual&&opts.busy&&opts.manualTrump){debug("manualTrump in go(), stopping active transition");$(els).stop(true,true);opts.busy=false;}if(opts.busy){debug("transition active, ignoring new tx request");return;}var p=opts.$cont[0],curr=els[opts.currSlide],next=els[opts.nextSlide];if(p.cycleStop!=opts.stopCount||p.cycleTimeout===0&&!manual){return;}if(!manual&&!p.cyclePause&&!opts.bounce&&((opts.autostop&&(--opts.countdown<=0))||(opts.nowrap&&!opts.random&&opts.nextSlide<opts.currSlide))){if(opts.end){opts.end(opts);}return;}var changed=false;if((manual||!p.cyclePause)&&(opts.nextSlide!=opts.currSlide)){changed=true;var fx=opts.fx;curr.cycleH=curr.cycleH||$(curr).height();curr.cycleW=curr.cycleW||$(curr).width();next.cycleH=next.cycleH||$(next).height();next.cycleW=next.cycleW||$(next).width();if(opts.multiFx){if(opts.lastFx==undefined||++opts.lastFx>=opts.fxs.length){opts.lastFx=0;}fx=opts.fxs[opts.lastFx];opts.currFx=fx;}if(opts.oneTimeFx){fx=opts.oneTimeFx;opts.oneTimeFx=null;}$.fn.cycle.resetState(opts,fx);if(opts.before.length){$.each(opts.before,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});}var after=function(){$.each(opts.after,function(i,o){if(p.cycleStop!=opts.stopCount){return;}o.apply(next,[curr,next,opts,fwd]);});};debug("tx firing; currSlide: "+opts.currSlide+"; nextSlide: "+opts.nextSlide);opts.busy=1;if(opts.fxFn){opts.fxFn(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{if($.isFunction($.fn.cycle[opts.fx])){$.fn.cycle[opts.fx](curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}else{$.fn.cycle.custom(curr,next,opts,after,fwd,manual&&opts.fastOnEvent);}}}if(changed||opts.nextSlide==opts.currSlide){opts.lastSlide=opts.currSlide;if(opts.random){opts.currSlide=opts.nextSlide;if(++opts.randomIndex==els.length){opts.randomIndex=0;}opts.nextSlide=opts.randomMap[opts.randomIndex];if(opts.nextSlide==opts.currSlide){opts.nextSlide=(opts.currSlide==opts.slideCount-1)?0:opts.currSlide+1;}}else{if(opts.backwards){var roll=(opts.nextSlide-1)<0;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=1;opts.currSlide=0;}else{opts.nextSlide=roll?(els.length-1):opts.nextSlide-1;opts.currSlide=roll?0:opts.nextSlide+1;}}else{var roll=(opts.nextSlide+1)==els.length;if(roll&&opts.bounce){opts.backwards=!opts.backwards;opts.nextSlide=els.length-2;opts.currSlide=els.length-1;}else{opts.nextSlide=roll?0:opts.nextSlide+1;opts.currSlide=roll?els.length-1:opts.nextSlide-1;}}}}if(changed&&opts.pager){opts.updateActivePagerLink(opts.pager,opts.currSlide,opts.activePagerClass);}var ms=0;if(opts.timeout&&!opts.continuous){ms=getTimeout(els[opts.currSlide],els[opts.nextSlide],opts,fwd);}else{if(opts.continuous&&p.cyclePause){ms=10;}}if(ms>0){p.cycleTimeout=setTimeout(function(){go(els,opts,0,(!opts.rev&&!opts.backwards));},ms);}}$.fn.cycle.updateActivePagerLink=function(pager,currSlide,clsName){$(pager).each(function(){$(this).children().removeClass(clsName).eq(currSlide).addClass(clsName);});};function getTimeout(curr,next,opts,fwd){if(opts.timeoutFn){var t=opts.timeoutFn.call(curr,curr,next,opts,fwd);while((t-opts.speed)<250){t+=opts.speed;}debug("calculated timeout: "+t+"; speed: "+opts.speed);if(t!==false){return t;}}return opts.timeout;}$.fn.cycle.next=function(opts){advance(opts,opts.rev?-1:1);};$.fn.cycle.prev=function(opts){advance(opts,opts.rev?1:-1);};function advance(opts,val){var els=opts.elements;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}if(opts.random&&val<0){opts.randomIndex--;if(--opts.randomIndex==-2){opts.randomIndex=els.length-2;}else{if(opts.randomIndex==-1){opts.randomIndex=els.length-1;}}opts.nextSlide=opts.randomMap[opts.randomIndex];}else{if(opts.random){opts.nextSlide=opts.randomMap[opts.randomIndex];}else{opts.nextSlide=opts.currSlide+val;if(opts.nextSlide<0){if(opts.nowrap){return false;}opts.nextSlide=els.length-1;}else{if(opts.nextSlide>=els.length){if(opts.nowrap){return false;}opts.nextSlide=0;}}}}var cb=opts.onPrevNextEvent||opts.prevNextClick;if($.isFunction(cb)){cb(val>0,opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,val>=0);return false;}function buildPager(els,opts){var $p=$(opts.pager);$.each(els,function(i,o){$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);});opts.updateActivePagerLink(opts.pager,opts.startingSlide,opts.activePagerClass);}$.fn.cycle.createPagerAnchor=function(i,el,$p,els,opts){var a;if($.isFunction(opts.pagerAnchorBuilder)){a=opts.pagerAnchorBuilder(i,el);debug("pagerAnchorBuilder("+i+", el) returned: "+a);}else{a='<a href="#">'+(i+1)+"</a>";}if(!a){return;}var $a=$(a);if($a.parents("body").length===0){var arr=[];if($p.length>1){$p.each(function(){var $clone=$a.clone(true);$(this).append($clone);arr.push($clone[0]);});$a=$(arr);}else{$a.appendTo($p);}}opts.pagerAnchors=opts.pagerAnchors||[];opts.pagerAnchors.push($a);$a.bind(opts.pagerEvent,function(e){e.preventDefault();opts.nextSlide=i;var p=opts.$cont[0],timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0;}var cb=opts.onPagerEvent||opts.pagerClick;if($.isFunction(cb)){cb(opts.nextSlide,els[opts.nextSlide]);}go(els,opts,1,opts.currSlide<i);});if(!/^click/.test(opts.pagerEvent)&&!opts.allowPagerClickBubble){$a.bind("click.cycle",function(){return false;});}if(opts.pauseOnPagerHover){$a.hover(function(){opts.$cont[0].cyclePause++;},function(){opts.$cont[0].cyclePause--;});}};$.fn.cycle.hopsFromLast=function(opts,fwd){var hops,l=opts.lastSlide,c=opts.currSlide;if(fwd){hops=c>l?c-l:opts.slideCount-l;}else{hops=c<l?l-c:l+opts.slideCount-c;}return hops;};function clearTypeFix($slides){debug("applying clearType background-color hack");function hex(s){s=parseInt(s).toString(16);return s.length<2?"0"+s:s;}function getBg(e){for(;e&&e.nodeName.toLowerCase()!="html";e=e.parentNode){var v=$.css(e,"background-color");if(v.indexOf("rgb")>=0){var rgb=v.match(/\d+/g);return"#"+hex(rgb[0])+hex(rgb[1])+hex(rgb[2]);}if(v&&v!="transparent"){return v;}}return"#ffffff";}$slides.each(function(){$(this).css("background-color",getBg(this));});}$.fn.cycle.commonReset=function(curr,next,opts,w,h,rev){$(opts.elements).not(curr).hide();opts.cssBefore.opacity=1;opts.cssBefore.display="block";if(w!==false&&next.cycleW>0){opts.cssBefore.width=next.cycleW;}if(h!==false&&next.cycleH>0){opts.cssBefore.height=next.cycleH;}opts.cssAfter=opts.cssAfter||{};opts.cssAfter.display="none";$(curr).css("zIndex",opts.slideCount+(rev===true?1:0));$(next).css("zIndex",opts.slideCount+(rev===true?0:1));};$.fn.cycle.custom=function(curr,next,opts,cb,fwd,speedOverride){var $l=$(curr),$n=$(next);var speedIn=opts.speedIn,speedOut=opts.speedOut,easeIn=opts.easeIn,easeOut=opts.easeOut;$n.css(opts.cssBefore);if(speedOverride){if(typeof speedOverride=="number"){speedIn=speedOut=speedOverride;}else{speedIn=speedOut=1;}easeIn=easeOut=null;}var fn=function(){$n.animate(opts.animIn,speedIn,easeIn,cb);};$l.animate(opts.animOut,speedOut,easeOut,function(){if(opts.cssAfter){$l.css(opts.cssAfter);}if(!opts.sync){fn();}});if(opts.sync){fn();}};$.fn.cycle.transitions={fade:function($cont,$slides,opts){$slides.not(":eq("+opts.currSlide+")").css("opacity",0);opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.opacity=0;});opts.animIn={opacity:1};opts.animOut={opacity:0};opts.cssBefore={top:0,left:0};}};$.fn.cycle.ver=function(){return ver;};$.fn.cycle.defaults={fx:"fade",timeout:4000,timeoutFn:null,continuous:0,speed:1000,speedIn:null,speedOut:null,next:null,prev:null,onPrevNextEvent:null,prevNextEvent:"click.cycle",pager:null,onPagerEvent:null,pagerEvent:"click.cycle",allowPagerClickBubble:false,pagerAnchorBuilder:null,before:null,after:null,end:null,easing:null,easeIn:null,easeOut:null,shuffle:null,animIn:null,animOut:null,cssBefore:null,cssAfter:null,fxFn:null,height:"auto",startingSlide:0,sync:1,random:0,fit:0,containerResize:1,pause:0,pauseOnPagerHover:0,autostop:0,autostopCount:0,delay:0,slideExpr:null,cleartype:!$.support.opacity,cleartypeNoBg:false,nowrap:0,fastOnEvent:0,randomizeEffects:1,rev:0,manualTrump:true,requeueOnImageNotLoaded:true,requeueTimeout:250,activePagerClass:"activeSlide",updateActivePagerLink:null,backwards:false};})(jQuery);
/*
 * jQuery Cycle Plugin Transition Definitions
 * This script is a plugin for the jQuery Cycle Plugin
 * Examples and documentation at: http://malsup.com/jquery/cycle/
 * Copyright (c) 2007-2010 M. Alsup
 * Version:	 2.72
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 */
(function($){$.fn.cycle.transitions.none=function($cont,$slides,opts){opts.fxFn=function(curr,next,opts,after){$(next).show();$(curr).hide();after();};};$.fn.cycle.transitions.scrollUp=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssBefore={top:h,left:0};opts.cssFirst={top:0};opts.animIn={top:0};opts.animOut={top:-h};};$.fn.cycle.transitions.scrollDown=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var h=$cont.height();opts.cssFirst={top:0};opts.cssBefore={top:-h,left:0};opts.animIn={top:0};opts.animOut={top:h};};$.fn.cycle.transitions.scrollLeft=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var w=$cont.width();opts.cssFirst={left:0};opts.cssBefore={left:w,top:0};opts.animIn={left:0};opts.animOut={left:0-w};};$.fn.cycle.transitions.scrollRight=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push($.fn.cycle.commonReset);var w=$cont.width();opts.cssFirst={left:0};opts.cssBefore={left:-w,top:0};opts.animIn={left:0};opts.animOut={left:w};};$.fn.cycle.transitions.scrollHorz=function($cont,$slides,opts){$cont.css("overflow","hidden").width();opts.before.push(function(curr,next,opts,fwd){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.left=fwd?(next.cycleW-1):(1-next.cycleW);opts.animOut.left=fwd?-curr.cycleW:curr.cycleW;});opts.cssFirst={left:0};opts.cssBefore={top:0};opts.animIn={left:0};opts.animOut={top:0};};$.fn.cycle.transitions.scrollVert=function($cont,$slides,opts){$cont.css("overflow","hidden");opts.before.push(function(curr,next,opts,fwd){$.fn.cycle.commonReset(curr,next,opts);opts.cssBefore.top=fwd?(1-next.cycleH):(next.cycleH-1);opts.animOut.top=fwd?curr.cycleH:-curr.cycleH;});opts.cssFirst={top:0};opts.cssBefore={left:0};opts.animIn={top:0};opts.animOut={left:0};};$.fn.cycle.transitions.slideX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$(opts.elements).not(curr).hide();$.fn.cycle.commonReset(curr,next,opts,false,true);opts.animIn.width=next.cycleW;});opts.cssBefore={left:0,top:0,width:0};opts.animIn={width:"show"};opts.animOut={width:0};};$.fn.cycle.transitions.slideY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$(opts.elements).not(curr).hide();$.fn.cycle.commonReset(curr,next,opts,true,false);opts.animIn.height=next.cycleH;});opts.cssBefore={left:0,top:0,height:0};opts.animIn={height:"show"};opts.animOut={height:0};};$.fn.cycle.transitions.shuffle=function($cont,$slides,opts){var i,w=$cont.css("overflow","visible").width();$slides.css({left:0,top:0});opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);});if(!opts.speedAdjusted){opts.speed=opts.speed/2;opts.speedAdjusted=true;}opts.random=0;opts.shuffle=opts.shuffle||{left:-w,top:15};opts.els=[];for(i=0;i<$slides.length;i++){opts.els.push($slides[i]);}for(i=0;i<opts.currSlide;i++){opts.els.push(opts.els.shift());}opts.fxFn=function(curr,next,opts,cb,fwd){var $el=fwd?$(curr):$(next);$(next).css(opts.cssBefore);var count=opts.slideCount;$el.animate(opts.shuffle,opts.speedIn,opts.easeIn,function(){var hops=$.fn.cycle.hopsFromLast(opts,fwd);for(var k=0;k<hops;k++){fwd?opts.els.push(opts.els.shift()):opts.els.unshift(opts.els.pop());}if(fwd){for(var i=0,len=opts.els.length;i<len;i++){$(opts.els[i]).css("z-index",len-i+count);}}else{var z=$(curr).css("z-index");$el.css("z-index",parseInt(z)+1+count);}$el.animate({left:0,top:0},opts.speedOut,opts.easeOut,function(){$(fwd?this:curr).hide();if(cb){cb();}});});};opts.cssBefore={display:"block",opacity:1,top:0,left:0};};$.fn.cycle.transitions.turnUp=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.cssBefore.top=next.cycleH;opts.animIn.height=next.cycleH;});opts.cssFirst={top:0};opts.cssBefore={left:0,height:0};opts.animIn={top:0};opts.animOut={height:0};};$.fn.cycle.transitions.turnDown=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssFirst={top:0};opts.cssBefore={left:0,top:0,height:0};opts.animOut={height:0};};$.fn.cycle.transitions.turnLeft=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.cssBefore.left=next.cycleW;opts.animIn.width=next.cycleW;});opts.cssBefore={top:0,width:0};opts.animIn={left:0};opts.animOut={width:0};};$.fn.cycle.transitions.turnRight=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.animIn.width=next.cycleW;opts.animOut.left=curr.cycleW;});opts.cssBefore={top:0,left:0,width:0};opts.animIn={left:0};opts.animOut={width:0};};$.fn.cycle.transitions.zoom=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,false,true);opts.cssBefore.top=next.cycleH/2;opts.cssBefore.left=next.cycleW/2;opts.animIn={top:0,left:0,width:next.cycleW,height:next.cycleH};opts.animOut={width:0,height:0,top:curr.cycleH/2,left:curr.cycleW/2};});opts.cssFirst={top:0,left:0};opts.cssBefore={width:0,height:0};};$.fn.cycle.transitions.fadeZoom=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,false);opts.cssBefore.left=next.cycleW/2;opts.cssBefore.top=next.cycleH/2;opts.animIn={top:0,left:0,width:next.cycleW,height:next.cycleH};});opts.cssBefore={width:0,height:0};opts.animOut={opacity:0};};$.fn.cycle.transitions.blindX=function($cont,$slides,opts){var w=$cont.css("overflow","hidden").width();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.width=next.cycleW;opts.animOut.left=curr.cycleW;});opts.cssBefore={left:w,top:0};opts.animIn={left:0};opts.animOut={left:w};};$.fn.cycle.transitions.blindY=function($cont,$slides,opts){var h=$cont.css("overflow","hidden").height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssBefore={top:h,left:0};opts.animIn={top:0};opts.animOut={top:h};};$.fn.cycle.transitions.blindZ=function($cont,$slides,opts){var h=$cont.css("overflow","hidden").height();var w=$cont.width();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);opts.animIn.height=next.cycleH;opts.animOut.top=curr.cycleH;});opts.cssBefore={top:h,left:w};opts.animIn={top:0,left:0};opts.animOut={top:h,left:w};};$.fn.cycle.transitions.growX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true);opts.cssBefore.left=this.cycleW/2;opts.animIn={left:0,width:this.cycleW};opts.animOut={left:0};});opts.cssBefore={width:0,top:0};};$.fn.cycle.transitions.growY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false);opts.cssBefore.top=this.cycleH/2;opts.animIn={top:0,height:this.cycleH};opts.animOut={top:0};});opts.cssBefore={height:0,left:0};};$.fn.cycle.transitions.curtainX=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,false,true,true);opts.cssBefore.left=next.cycleW/2;opts.animIn={left:0,width:this.cycleW};opts.animOut={left:curr.cycleW/2,width:0};});opts.cssBefore={top:0,width:0};};$.fn.cycle.transitions.curtainY=function($cont,$slides,opts){opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,false,true);opts.cssBefore.top=next.cycleH/2;opts.animIn={top:0,height:next.cycleH};opts.animOut={top:curr.cycleH/2,height:0};});opts.cssBefore={left:0,height:0};};$.fn.cycle.transitions.cover=function($cont,$slides,opts){var d=opts.direction||"left";var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts);if(d=="right"){opts.cssBefore.left=-w;}else{if(d=="up"){opts.cssBefore.top=h;}else{if(d=="down"){opts.cssBefore.top=-h;}else{opts.cssBefore.left=w;}}}});opts.animIn={left:0,top:0};opts.animOut={opacity:1};opts.cssBefore={top:0,left:0};};$.fn.cycle.transitions.uncover=function($cont,$slides,opts){var d=opts.direction||"left";var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);if(d=="right"){opts.animOut.left=w;}else{if(d=="up"){opts.animOut.top=-h;}else{if(d=="down"){opts.animOut.top=h;}else{opts.animOut.left=-w;}}}});opts.animIn={left:0,top:0};opts.animOut={opacity:1};opts.cssBefore={top:0,left:0};};$.fn.cycle.transitions.toss=function($cont,$slides,opts){var w=$cont.css("overflow","visible").width();var h=$cont.height();opts.before.push(function(curr,next,opts){$.fn.cycle.commonReset(curr,next,opts,true,true,true);if(!opts.animOut.left&&!opts.animOut.top){opts.animOut={left:w*2,top:-h/2,opacity:0};}else{opts.animOut.opacity=0;}});opts.cssBefore={left:0,top:0};opts.animIn={left:0};};$.fn.cycle.transitions.wipe=function($cont,$slides,opts){var w=$cont.css("overflow","hidden").width();var h=$cont.height();opts.cssBefore=opts.cssBefore||{};var clip;if(opts.clip){if(/l2r/.test(opts.clip)){clip="rect(0px 0px "+h+"px 0px)";}else{if(/r2l/.test(opts.clip)){clip="rect(0px "+w+"px "+h+"px "+w+"px)";}else{if(/t2b/.test(opts.clip)){clip="rect(0px "+w+"px 0px 0px)";}else{if(/b2t/.test(opts.clip)){clip="rect("+h+"px "+w+"px "+h+"px 0px)";}else{if(/zoom/.test(opts.clip)){var top=parseInt(h/2);var left=parseInt(w/2);clip="rect("+top+"px "+left+"px "+top+"px "+left+"px)";}}}}}}opts.cssBefore.clip=opts.cssBefore.clip||clip||"rect(0px 0px 0px 0px)";var d=opts.cssBefore.clip.match(/(\d+)/g);var t=parseInt(d[0]),r=parseInt(d[1]),b=parseInt(d[2]),l=parseInt(d[3]);opts.before.push(function(curr,next,opts){if(curr==next){return;}var $curr=$(curr),$next=$(next);$.fn.cycle.commonReset(curr,next,opts,true,true,false);opts.cssAfter.display="block";var step=1,count=parseInt((opts.speedIn/13))-1;(function f(){var tt=t?t-parseInt(step*(t/count)):0;var ll=l?l-parseInt(step*(l/count)):0;var bb=b<h?b+parseInt(step*((h-b)/count||1)):h;var rr=r<w?r+parseInt(step*((w-r)/count||1)):w;$next.css({clip:"rect("+tt+"px "+rr+"px "+bb+"px "+ll+"px)"});(step++<=count)?setTimeout(f,13):$curr.css("display","none");})();});opts.cssBefore={display:"block",opacity:1,top:0,left:0};opts.animIn={left:0};opts.animOut={left:0};};})(jQuery);

/*!
 * jQuery Form Plugin
 * version: 2.50 (03-DEC-2010)
 * @requires jQuery v1.3.2 or later
 *
 * Examples and documentation at: http://malsup.com/jquery/form/
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
;(function($) {

/*
	Usage Note:
	-----------
	Do not use both ajaxSubmit and ajaxForm on the same form.  These
	functions are intended to be exclusive.  Use ajaxSubmit if you want
	to bind your own submit handler to the form.  For example,

	$(document).ready(function() {
		$('#myForm').bind('submit', function(e) {
			e.preventDefault(); // <-- important
			$(this).ajaxSubmit({
				target: '#output'
			});
		});
	});

	Use ajaxForm when you want the plugin to manage all the event binding
	for you.  For example,

	$(document).ready(function() {
		$('#myForm').ajaxForm({
			target: '#output'
		});
	});

	When using ajaxForm, the ajaxSubmit function will be invoked for you
	at the appropriate time.
*/

/**
 * ajaxSubmit() provides a mechanism for immediately submitting
 * an HTML form using AJAX.
 */
$.fn.ajaxSubmit = function(options) {
	// fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
	if (!this.length) {
		log('ajaxSubmit: skipping submit process - no element selected');
		return this;
	}

	if (typeof options == 'function') {
		options = { success: options };
	}

	var url = $.trim(this.attr('action'));
	if (url) {
		// clean url (don't include hash vaue)
		url = (url.match(/^([^#]+)/)||[])[1];
	}
	url = url || window.location.href || '';

	options = $.extend(true, {
		url:  url,
		type: this.attr('method') || 'GET',
		iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
	}, options);

	// hook for manipulating the form data before it is extracted;
	// convenient for use with rich editors like tinyMCE or FCKEditor
	var veto = {};
	this.trigger('form-pre-serialize', [this, options, veto]);
	if (veto.veto) {
		log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
		return this;
	}

	// provide opportunity to alter form data before it is serialized
	if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
		log('ajaxSubmit: submit aborted via beforeSerialize callback');
		return this;
	}

	var n,v,a = this.formToArray(options.semantic);
	if (options.data) {
		options.extraData = options.data;
		for (n in options.data) {
			if(options.data[n] instanceof Array) {
				for (var k in options.data[n]) {
					a.push( { name: n, value: options.data[n][k] } );
				}
			}
			else {
				v = options.data[n];
				v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
				a.push( { name: n, value: v } );
			}
		}
	}

	// give pre-submit callback an opportunity to abort the submit
	if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
		log('ajaxSubmit: submit aborted via beforeSubmit callback');
		return this;
	}

	// fire vetoable 'validate' event
	this.trigger('form-submit-validate', [a, this, options, veto]);
	if (veto.veto) {
		log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
		return this;
	}

	var q = $.param(a);

	if (options.type.toUpperCase() == 'GET') {
		options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
		options.data = null;  // data is null for 'get'
	}
	else {
		options.data = q; // data is the query string for 'post'
	}

	var $form = this, callbacks = [];
	if (options.resetForm) {
		callbacks.push(function() { $form.resetForm(); });
	}
	if (options.clearForm) {
		callbacks.push(function() { $form.clearForm(); });
	}

	// perform a load on the target only if dataType is not provided
	if (!options.dataType && options.target) {
		var oldSuccess = options.success || function(){};
		callbacks.push(function(data) {
			var fn = options.replaceTarget ? 'replaceWith' : 'html';
			$(options.target)[fn](data).each(oldSuccess, arguments);
		});
	}
	else if (options.success) {
		callbacks.push(options.success);
	}

	options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
		var context = options.context || options;   // jQuery 1.4+ supports scope context 
		for (var i=0, max=callbacks.length; i < max; i++) {
			callbacks[i].apply(context, [data, status, xhr || $form, $form]);
		}
	};

	// are there files to upload?
	var fileInputs = $('input:file', this).length > 0;
	var mp = 'multipart/form-data';
	var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);

	// options.iframe allows user to force iframe mode
	// 06-NOV-09: now defaulting to iframe mode if file input is detected
   if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
	   // hack to fix Safari hang (thanks to Tim Molendijk for this)
	   // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
	   if (options.closeKeepAlive) {
		   $.get(options.closeKeepAlive, fileUpload);
		}
	   else {
		   fileUpload();
		}
   }
   else {
	   $.ajax(options);
   }

	// fire 'notify' event
	this.trigger('form-submit-notify', [this, options]);
	return this;


	// private function for handling file uploads (hat tip to YAHOO!)
	function fileUpload() {
		var form = $form[0];

		if ($(':input[name=submit],:input[id=submit]', form).length) {
			// if there is an input with a name or id of 'submit' then we won't be
			// able to invoke the submit fn on the form (at least not x-browser)
			alert('Error: Form elements must not have name or id of "submit".');
			return;
		}
		
		var s = $.extend(true, {}, $.ajaxSettings, options);
		s.context = s.context || s;
		var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id;
		window[fn] = function() {
			var f = $io.data('form-plugin-onload');
			if (f) {
				f();
				window[fn] = undefined;
				try { delete window[fn]; } catch(e){}
			}
		}
		var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" onload="window[\'_\'+this.id]()" />');
		var io = $io[0];

		$io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });

		var xhr = { // mock object
			aborted: 0,
			responseText: null,
			responseXML: null,
			status: 0,
			statusText: 'n/a',
			getAllResponseHeaders: function() {},
			getResponseHeader: function() {},
			setRequestHeader: function() {},
			abort: function() {
				this.aborted = 1;
				$io.attr('src', s.iframeSrc); // abort op in progress
			}
		};

		var g = s.global;
		// trigger ajax global events so that activity/block indicators work like normal
		if (g && ! $.active++) {
			$.event.trigger("ajaxStart");
		}
		if (g) {
			$.event.trigger("ajaxSend", [xhr, s]);
		}

		if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
			if (s.global) { 
				$.active--;
			}
			return;
		}
		if (xhr.aborted) {
			return;
		}

		var cbInvoked = false;
		var timedOut = 0;

		// add submitting element to data if we know it
		var sub = form.clk;
		if (sub) {
			var n = sub.name;
			if (n && !sub.disabled) {
				s.extraData = s.extraData || {};
				s.extraData[n] = sub.value;
				if (sub.type == "image") {
					s.extraData[n+'.x'] = form.clk_x;
					s.extraData[n+'.y'] = form.clk_y;
				}
			}
		}

		// take a breath so that pending repaints get some cpu time before the upload starts
		function doSubmit() {
			// make sure form attrs are set
			var t = $form.attr('target'), a = $form.attr('action');

			// update form attrs in IE friendly way
			form.setAttribute('target',id);
			if (form.getAttribute('method') != 'POST') {
				form.setAttribute('method', 'POST');
			}
			if (form.getAttribute('action') != s.url) {
				form.setAttribute('action', s.url);
			}

			// ie borks in some cases when setting encoding
			if (! s.skipEncodingOverride) {
				$form.attr({
					encoding: 'multipart/form-data',
					enctype:  'multipart/form-data'
				});
			}

			// support timout
			if (s.timeout) {
				setTimeout(function() { timedOut = true; cb(); }, s.timeout);
			}

			// add "extra" data to form if provided in options
			var extraInputs = [];
			try {
				if (s.extraData) {
					for (var n in s.extraData) {
						extraInputs.push(
							$('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />')
								.appendTo(form)[0]);
					}
				}

				// add iframe to doc and submit the form
				$io.appendTo('body');
				$io.data('form-plugin-onload', cb);
				form.submit();
			}
			finally {
				// reset attrs and remove "extra" input elements
				form.setAttribute('action',a);
				if(t) {
					form.setAttribute('target', t);
				} else {
					$form.removeAttr('target');
				}
				$(extraInputs).remove();
			}
		}

		if (s.forceSync) {
			doSubmit();
		}
		else {
			setTimeout(doSubmit, 10); // this lets dom updates render
		}
	
		var data, doc, domCheckCount = 50;

		function cb() {
			if (cbInvoked) {
				return;
			}

			$io.removeData('form-plugin-onload');
			
			var ok = true;
			try {
				if (timedOut) {
					throw 'timeout';
				}
				// extract the server response from the iframe
				doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
				
				var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
				log('isXml='+isXml);
				if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
					if (--domCheckCount) {
						// in some browsers (Opera) the iframe DOM is not always traversable when
						// the onload callback fires, so we loop a bit to accommodate
						log('requeing onLoad callback, DOM not available');
						setTimeout(cb, 250);
						return;
					}
					// let this fall through because server response could be an empty document
					//log('Could not access iframe DOM after mutiple tries.');
					//throw 'DOMException: not available';
				}

				//log('response detected');
				cbInvoked = true;
				xhr.responseText = doc.documentElement ? doc.documentElement.innerHTML : null; 
				xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
				xhr.getResponseHeader = function(header){
					var headers = {'content-type': s.dataType};
					return headers[header];
				};

				var scr = /(json|script)/.test(s.dataType);
				if (scr || s.textarea) {
					// see if user embedded response in textarea
					var ta = doc.getElementsByTagName('textarea')[0];
					if (ta) {
						xhr.responseText = ta.value;
					}
					else if (scr) {
						// account for browsers injecting pre around json response
						var pre = doc.getElementsByTagName('pre')[0];
						var b = doc.getElementsByTagName('body')[0];
						if (pre) {
							xhr.responseText = pre.textContent;
						}
						else if (b) {
							xhr.responseText = b.innerHTML;
						}
					}			  
				}
				else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
					xhr.responseXML = toXml(xhr.responseText);
				}
				data = $.httpData(xhr, s.dataType);
			}
			catch(e){
				log('error caught:',e);
				ok = false;
				xhr.error = e;
				$.handleError(s, xhr, 'error', e);
			}

			// ordering of these callbacks/triggers is odd, but that's how $.ajax does it
			if (ok) {
				s.success.call(s.context, data, 'success', xhr);
				if (g) {
					$.event.trigger("ajaxSuccess", [xhr, s]);
				}
			}
			if (g) {
				$.event.trigger("ajaxComplete", [xhr, s]);
			}
			if (g && ! --$.active) {
				$.event.trigger("ajaxStop");
			}
			if (s.complete) {
				s.complete.call(s.context, xhr, ok ? 'success' : 'error');
			}

			// clean up
			setTimeout(function() {
				$io.removeData('form-plugin-onload');
				$io.remove();
				xhr.responseXML = null;
			}, 100);
		}

		function toXml(s, doc) {
			if (window.ActiveXObject) {
				doc = new ActiveXObject('Microsoft.XMLDOM');
				doc.async = 'false';
				doc.loadXML(s);
			}
			else {
				doc = (new DOMParser()).parseFromString(s, 'text/xml');
			}
			return (doc && doc.documentElement && doc.documentElement.tagName != 'parsererror') ? doc : null;
		}
	}
};

/**
 * ajaxForm() provides a mechanism for fully automating form submission.
 *
 * The advantages of using this method instead of ajaxSubmit() are:
 *
 * 1: This method will include coordinates for <input type="image" /> elements (if the element
 *	is used to submit the form).
 * 2. This method will include the submit element's name/value data (for the element that was
 *	used to submit the form).
 * 3. This method binds the submit() method to the form for you.
 *
 * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely
 * passes the options argument along after properly binding events for submit elements and
 * the form itself.
 */
$.fn.ajaxForm = function(options) {
	// in jQuery 1.3+ we can fix mistakes with the ready state
	if (this.length === 0) {
		var o = { s: this.selector, c: this.context };
		if (!$.isReady && o.s) {
			log('DOM not ready, queuing ajaxForm');
			$(function() {
				$(o.s,o.c).ajaxForm(options);
			});
			return this;
		}
		// is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
		log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
		return this;
	}
	
	return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
		if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
			e.preventDefault();
			$(this).ajaxSubmit(options);
		}
	}).bind('click.form-plugin', function(e) {
		var target = e.target;
		var $el = $(target);
		if (!($el.is(":submit,input:image"))) {
			// is this a child element of the submit el?  (ex: a span within a button)
			var t = $el.closest(':submit');
			if (t.length == 0) {
				return;
			}
			target = t[0];
		}
		var form = this;
		form.clk = target;
		if (target.type == 'image') {
			if (e.offsetX != undefined) {
				form.clk_x = e.offsetX;
				form.clk_y = e.offsetY;
			} else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
				var offset = $el.offset();
				form.clk_x = e.pageX - offset.left;
				form.clk_y = e.pageY - offset.top;
			} else {
				form.clk_x = e.pageX - target.offsetLeft;
				form.clk_y = e.pageY - target.offsetTop;
			}
		}
		// clear form vars
		setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
	});
};

// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
$.fn.ajaxFormUnbind = function() {
	return this.unbind('submit.form-plugin click.form-plugin');
};

/**
 * formToArray() gathers form element data into an array of objects that can
 * be passed to any of the following ajax functions: $.get, $.post, or load.
 * Each object in the array has both a 'name' and 'value' property.  An example of
 * an array for a simple login form might be:
 *
 * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
 *
 * It is this array that is passed to pre-submit callback functions provided to the
 * ajaxSubmit() and ajaxForm() methods.
 */
$.fn.formToArray = function(semantic) {
	var a = [];
	if (this.length === 0) {
		return a;
	}

	var form = this[0];
	var els = semantic ? form.getElementsByTagName('*') : form.elements;
	if (!els) {
		return a;
	}
	
	var i,j,n,v,el,max,jmax;
	for(i=0, max=els.length; i < max; i++) {
		el = els[i];
		n = el.name;
		if (!n) {
			continue;
		}

		if (semantic && form.clk && el.type == "image") {
			// handle image inputs on the fly when semantic == true
			if(!el.disabled && form.clk == el) {
				a.push({name: n, value: $(el).val()});
				a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
			}
			continue;
		}

		v = $.fieldValue(el, true);
		if (v && v.constructor == Array) {
			for(j=0, jmax=v.length; j < jmax; j++) {
				a.push({name: n, value: v[j]});
			}
		}
		else if (v !== null && typeof v != 'undefined') {
			a.push({name: n, value: v});
		}
	}

	if (!semantic && form.clk) {
		// input type=='image' are not found in elements array! handle it here
		var $input = $(form.clk), input = $input[0];
		n = input.name;
		if (n && !input.disabled && input.type == 'image') {
			a.push({name: n, value: $input.val()});
			a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
		}
	}
	return a;
};

/**
 * Serializes form data into a 'submittable' string. This method will return a string
 * in the format: name1=value1&amp;name2=value2
 */
$.fn.formSerialize = function(semantic) {
	//hand off to jQuery.param for proper encoding
	return $.param(this.formToArray(semantic));
};

/**
 * Serializes all field elements in the jQuery object into a query string.
 * This method will return a string in the format: name1=value1&amp;name2=value2
 */
$.fn.fieldSerialize = function(successful) {
	var a = [];
	this.each(function() {
		var n = this.name;
		if (!n) {
			return;
		}
		var v = $.fieldValue(this, successful);
		if (v && v.constructor == Array) {
			for (var i=0,max=v.length; i < max; i++) {
				a.push({name: n, value: v[i]});
			}
		}
		else if (v !== null && typeof v != 'undefined') {
			a.push({name: this.name, value: v});
		}
	});
	//hand off to jQuery.param for proper encoding
	return $.param(a);
};

/**
 * Returns the value(s) of the element in the matched set.  For example, consider the following form:
 *
 *  <form><fieldset>
 *	  <input name="A" type="text" />
 *	  <input name="A" type="text" />
 *	  <input name="B" type="checkbox" value="B1" />
 *	  <input name="B" type="checkbox" value="B2"/>
 *	  <input name="C" type="radio" value="C1" />
 *	  <input name="C" type="radio" value="C2" />
 *  </fieldset></form>
 *
 *  var v = $(':text').fieldValue();
 *  // if no values are entered into the text inputs
 *  v == ['','']
 *  // if values entered into the text inputs are 'foo' and 'bar'
 *  v == ['foo','bar']
 *
 *  var v = $(':checkbox').fieldValue();
 *  // if neither checkbox is checked
 *  v === undefined
 *  // if both checkboxes are checked
 *  v == ['B1', 'B2']
 *
 *  var v = $(':radio').fieldValue();
 *  // if neither radio is checked
 *  v === undefined
 *  // if first radio is checked
 *  v == ['C1']
 *
 * The successful argument controls whether or not the field element must be 'successful'
 * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
 * The default value of the successful argument is true.  If this value is false the value(s)
 * for each element is returned.
 *
 * Note: This method *always* returns an array.  If no valid value can be determined the
 *	   array will be empty, otherwise it will contain one or more values.
 */
$.fn.fieldValue = function(successful) {
	for (var val=[], i=0, max=this.length; i < max; i++) {
		var el = this[i];
		var v = $.fieldValue(el, successful);
		if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
			continue;
		}
		v.constructor == Array ? $.merge(val, v) : val.push(v);
	}
	return val;
};

/**
 * Returns the value of the field element.
 */
$.fieldValue = function(el, successful) {
	var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
	if (successful === undefined) {
		successful = true;
	}

	if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
		(t == 'checkbox' || t == 'radio') && !el.checked ||
		(t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
		tag == 'select' && el.selectedIndex == -1)) {
			return null;
	}

	if (tag == 'select') {
		var index = el.selectedIndex;
		if (index < 0) {
			return null;
		}
		var a = [], ops = el.options;
		var one = (t == 'select-one');
		var max = (one ? index+1 : ops.length);
		for(var i=(one ? index : 0); i < max; i++) {
			var op = ops[i];
			if (op.selected) {
				var v = op.value;
				if (!v) { // extra pain for IE...
					v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
				}
				if (one) {
					return v;
				}
				a.push(v);
			}
		}
		return a;
	}
	return $(el).val();
};

/**
 * Clears the form data.  Takes the following actions on the form's input fields:
 *  - input text fields will have their 'value' property set to the empty string
 *  - select elements will have their 'selectedIndex' property set to -1
 *  - checkbox and radio inputs will have their 'checked' property set to false
 *  - inputs of type submit, button, reset, and hidden will *not* be effected
 *  - button elements will *not* be effected
 */
$.fn.clearForm = function() {
	return this.each(function() {
		$('input,select,textarea', this).clearFields();
	});
};

/**
 * Clears the selected form elements.
 */
$.fn.clearFields = $.fn.clearInputs = function() {
	return this.each(function() {
		var t = this.type, tag = this.tagName.toLowerCase();
		if (t == 'text' || t == 'password' || tag == 'textarea') {
			this.value = '';
		}
		else if (t == 'checkbox' || t == 'radio') {
			this.checked = false;
		}
		else if (tag == 'select') {
			this.selectedIndex = -1;
		}
	});
};

/**
 * Resets the form data.  Causes all form elements to be reset to their original value.
 */
$.fn.resetForm = function() {
	return this.each(function() {
		// guard against an input with the name of 'reset'
		// note that IE reports the reset function as an 'object'
		if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
			this.reset();
		}
	});
};

/**
 * Enables or disables any matching elements.
 */
$.fn.enable = function(b) {
	if (b === undefined) {
		b = true;
	}
	return this.each(function() {
		this.disabled = !b;
	});
};

/**
 * Checks/unchecks any matching checkboxes or radio buttons and
 * selects/deselects and matching option elements.
 */
$.fn.selected = function(select) {
	if (select === undefined) {
		select = true;
	}
	return this.each(function() {
		var t = this.type;
		if (t == 'checkbox' || t == 'radio') {
			this.checked = select;
		}
		else if (this.tagName.toLowerCase() == 'option') {
			var $sel = $(this).parent('select');
			if (select && $sel[0] && $sel[0].type == 'select-one') {
				// deselect all other options
				$sel.find('option').selected(false);
			}
			this.selected = select;
		}
	});
};

// helper fn for console logging
// set $.fn.ajaxSubmit.debug to true to enable debug logging
function log() {
	if ($.fn.ajaxSubmit.debug) {
		var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
		if (window.console && window.console.log) {
			window.console.log(msg);
		}
		else if (window.opera && window.opera.postError) {
			window.opera.postError(msg);
		}
	}
};

})(jQuery);


/* ------------------------------------------------------------------------
 * Class: prettyPhoto
 * Use: Lightbox clone for jQuery
 * Author: Stephane Caron (http://www.no-margin-for-errors.com)
 * Version: 3.0.1
 * ------------------------------------------------------------------------- */

(function($){$.prettyPhoto={version:'3.0'};$.fn.prettyPhoto=function(pp_settings){pp_settings=jQuery.extend({animation_speed:'fast',slideshow:false,autoplay_slideshow:false,opacity:0.80,show_title:true,allow_resize:true,default_width:500,default_height:344,counter_separator_label:'/',theme:'facebook',hideflash:false,wmode:'opaque',autoplay:true,modal:false,overlay_gallery:true,keyboard_shortcuts:true,changepicturecallback:function(){},callback:function(){},markup:'<div class="pp_pic_holder"> \
      <div class="ppt">&nbsp;</div> \
      <div class="pp_top"> \
       <div class="pp_left"></div> \
       <div class="pp_middle"></div> \
       <div class="pp_right"></div> \
      </div> \
      <div class="pp_content_container"> \
       <div class="pp_left"> \
       <div class="pp_right"> \
        <div class="pp_content"> \
         <div class="pp_loaderIcon"></div> \
         <div class="pp_fade"> \
          <a href="#" class="pp_expand" title="Expand the image">Expand</a> \
          <div class="pp_hoverContainer"> \
           <a class="pp_next" href="#">next</a> \
           <a class="pp_previous" href="#">previous</a> \
          </div> \
          <div id="pp_full_res"></div> \
          <div class="pp_details clearfix"> \
           <p class="pp_description"></p> \
           <a class="pp_close" href="#">Close</a> \
           <div class="pp_nav"> \
            <a href="#" class="pp_arrow_previous">Previous</a> \
            <p class="currentTextHolder">0/0</p> \
            <a href="#" class="pp_arrow_next">Next</a> \
           </div> \
          </div> \
         </div> \
        </div> \
       </div> \
       </div> \
      </div> \
      <div class="pp_bottom"> \
       <div class="pp_left"></div> \
       <div class="pp_middle"></div> \
       <div class="pp_right"></div> \
      </div> \
     </div> \
     <div class="pp_overlay"></div>',gallery_markup:'<div class="pp_gallery"> \
        <a href="#" class="pp_arrow_previous">Previous</a> \
        <ul> \
         {gallery} \
        </ul> \
        <a href="#" class="pp_arrow_next">Next</a> \
       </div>',image_markup:'<img id="fullResImage" src="" />',flash_markup:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',quicktime_markup:'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',iframe_markup:'<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',inline_markup:'<div class="pp_inline clearfix">{content}</div>',custom_markup:''},pp_settings);var matchedObjects=this,percentBased=false,correctSizes,pp_open,pp_contentHeight,pp_contentWidth,pp_containerHeight,pp_containerWidth,windowHeight=$(window).height(),windowWidth=$(window).width(),pp_slideshow;doresize=true,scroll_pos=_get_scroll();$(window).unbind('resize').resize(function(){_center_overlay();_resize_overlay();});if(pp_settings.keyboard_shortcuts){$(document).unbind('keydown').keydown(function(e){if(typeof $pp_pic_holder!='undefined'){if($pp_pic_holder.is(':visible')){switch(e.keyCode){case 37:$.prettyPhoto.changePage('previous');break;case 39:$.prettyPhoto.changePage('next');break;case 27:if(!settings.modal)
$.prettyPhoto.close();break;};return false;};};});}
$.prettyPhoto.initialize=function(){settings=pp_settings;if($.browser.msie&&parseInt($.browser.version)==6)settings.theme="light_square";_buildOverlay(this);if(settings.allow_resize)
$(window).scroll(function(){_center_overlay();});_center_overlay();set_position=jQuery.inArray($(this).attr('href'),pp_images);$.prettyPhoto.open();return false;}
$.prettyPhoto.open=function(event){if(typeof settings=="undefined"){settings=pp_settings;if($.browser.msie&&$.browser.version==6)settings.theme="light_square";_buildOverlay(event.target);pp_images=$.makeArray(arguments[0]);pp_titles=(arguments[1])?$.makeArray(arguments[1]):$.makeArray("");pp_descriptions=(arguments[2])?$.makeArray(arguments[2]):$.makeArray("");isSet=(pp_images.length>1)?true:false;set_position=0;}
if($.browser.msie&&$.browser.version==6)$('select').css('visibility','hidden');if(settings.hideflash)$('object,embed').css('visibility','hidden');_checkPosition($(pp_images).size());$('.pp_loaderIcon').show();if($ppt.is(':hidden'))$ppt.css('opacity',0).show();$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity);$pp_pic_holder.find('.currentTextHolder').text((set_position+1)+settings.counter_separator_label+$(pp_images).size());$pp_pic_holder.find('.pp_description').show().html(unescape(pp_descriptions[set_position]));(settings.show_title&&pp_titles[set_position]!=""&&typeof pp_titles[set_position]!="undefined")?$ppt.html(unescape(pp_titles[set_position])):$ppt.html('&nbsp;');movie_width=(parseFloat(grab_param('width',pp_images[set_position])))?grab_param('width',pp_images[set_position]):settings.default_width.toString();movie_height=(parseFloat(grab_param('height',pp_images[set_position])))?grab_param('height',pp_images[set_position]):settings.default_height.toString();if(movie_width.indexOf('%')!=-1||movie_height.indexOf('%')!=-1){movie_height=parseFloat(($(window).height()*parseFloat(movie_height)/100)-150);movie_width=parseFloat(($(window).width()*parseFloat(movie_width)/100)-150);percentBased=true;}else{percentBased=false;}
$pp_pic_holder.fadeIn(function(){imgPreloader="";switch(_getFileType(pp_images[set_position])){case'image':imgPreloader=new Image();nextImage=new Image();if(isSet&&set_position>$(pp_images).size())nextImage.src=pp_images[set_position+1];prevImage=new Image();if(isSet&&pp_images[set_position-1])prevImage.src=pp_images[set_position-1];$pp_pic_holder.find('#pp_full_res')[0].innerHTML=settings.image_markup;$pp_pic_holder.find('#fullResImage').attr('src',pp_images[set_position]);imgPreloader.onload=function(){correctSizes=_fitToViewport(imgPreloader.width,imgPreloader.height);_showContent();};imgPreloader.onerror=function(){alert('Image cannot be loaded. Make sure the path is correct and image exist.');$.prettyPhoto.close();};imgPreloader.src=pp_images[set_position];break;case'youtube':correctSizes=_fitToViewport(movie_width,movie_height);movie='http://www.youtube.com/v/'+grab_param('v',pp_images[set_position]);if(settings.autoplay)movie+="&autoplay=1";toInject=settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);break;case'vimeo':correctSizes=_fitToViewport(movie_width,movie_height);movie_id=pp_images[set_position];var regExp=/http:\/\/(www\.)?vimeo.com\/(\d+)/;var match=movie_id.match(regExp);movie='http://player.vimeo.com/video/'+match[2]+'?title=0&amp;byline=0&amp;portrait=0';if(settings.autoplay)movie+="&autoplay=1;";vimeo_width=correctSizes['width']+'/embed/?moog_width='+correctSizes['width'];toInject=settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,correctSizes['height']).replace(/{path}/g,movie);break;case'quicktime':correctSizes=_fitToViewport(movie_width,movie_height);correctSizes['height']+=15;correctSizes['contentHeight']+=15;correctSizes['containerHeight']+=15;toInject=settings.quicktime_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);break;case'flash':correctSizes=_fitToViewport(movie_width,movie_height);flash_vars=pp_images[set_position];flash_vars=flash_vars.substring(pp_images[set_position].indexOf('flashvars')+10,pp_images[set_position].length);filename=pp_images[set_position];filename=filename.substring(0,filename.indexOf('?'));toInject=settings.flash_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+'?'+flash_vars);break;case'iframe':correctSizes=_fitToViewport(movie_width,movie_height);frame_url=pp_images[set_position];frame_url=frame_url.substr(0,frame_url.indexOf('iframe')-1);toInject=settings.iframe_markup.replace(/{width}/g,correctSizes['width']).replace(/{height}/g,correctSizes['height']).replace(/{path}/g,frame_url);break;case'custom':correctSizes=_fitToViewport(movie_width,movie_height);toInject=settings.custom_markup;break;case'inline':myClone=$(pp_images[set_position]).clone().css({'width':settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline clearfix"></div></div>').appendTo($('body'));correctSizes=_fitToViewport($(myClone).width(),$(myClone).height());$(myClone).remove();toInject=settings.inline_markup.replace(/{content}/g,$(pp_images[set_position]).html());break;};if(!imgPreloader){$pp_pic_holder.find('#pp_full_res')[0].innerHTML=toInject;_showContent();};});return false;};$.prettyPhoto.changePage=function(direction){currentGalleryPage=0;if(direction=='previous'){set_position--;if(set_position<0){set_position=0;return;};}else if(direction=='next'){set_position++;if(set_position>$(pp_images).size()-1){set_position=0;}}else{set_position=direction;};if(!doresize)doresize=true;$('.pp_contract').removeClass('pp_contract').addClass('pp_expand');_hideContent(function(){$.prettyPhoto.open();});};$.prettyPhoto.changeGalleryPage=function(direction){if(direction=='next'){currentGalleryPage++;if(currentGalleryPage>totalPage){currentGalleryPage=0;};}else if(direction=='previous'){currentGalleryPage--;if(currentGalleryPage<0){currentGalleryPage=totalPage;};}else{currentGalleryPage=direction;};itemsToSlide=(currentGalleryPage==totalPage)?pp_images.length-((totalPage)*itemsPerPage):itemsPerPage;$pp_pic_holder.find('.pp_gallery li').each(function(i){$(this).animate({'left':(i*itemWidth)-((itemsToSlide*itemWidth)*currentGalleryPage)});});};$.prettyPhoto.startSlideshow=function(){if(typeof pp_slideshow=='undefined'){$pp_pic_holder.find('.pp_play').unbind('click').removeClass('pp_play').addClass('pp_pause').click(function(){$.prettyPhoto.stopSlideshow();return false;});pp_slideshow=setInterval($.prettyPhoto.startSlideshow,settings.slideshow);}else{$.prettyPhoto.changePage('next');};}
$.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find('.pp_pause').unbind('click').removeClass('pp_pause').addClass('pp_play').click(function(){$.prettyPhoto.startSlideshow();return false;});clearInterval(pp_slideshow);pp_slideshow=undefined;}
$.prettyPhoto.close=function(){clearInterval(pp_slideshow);$pp_pic_holder.stop().find('object,embed').css('visibility','hidden');$('div.pp_pic_holder,div.ppt,.pp_fade').fadeOut(settings.animation_speed,function(){$(this).remove();});$pp_overlay.fadeOut(settings.animation_speed,function(){if($.browser.msie&&$.browser.version==6)$('select').css('visibility','visible');if(settings.hideflash)$('object,embed').css('visibility','visible');$(this).remove();$(window).unbind('scroll');settings.callback();doresize=true;pp_open=false;delete settings;});};_showContent=function(){$('.pp_loaderIcon').hide();$ppt.fadeTo(settings.animation_speed,1);projectedTop=scroll_pos['scrollTop']+((windowHeight/2)-(correctSizes['containerHeight']/2));if(projectedTop<0)projectedTop=0;$pp_pic_holder.find('.pp_content').animate({'height':correctSizes['contentHeight']},settings.animation_speed);$pp_pic_holder.animate({'top':projectedTop,'left':(windowWidth/2)-(correctSizes['containerWidth']/2),'width':correctSizes['containerWidth']},settings.animation_speed,function(){$pp_pic_holder.find('.pp_hoverContainer,#fullResImage').height(correctSizes['height']).width(correctSizes['width']);$pp_pic_holder.find('.pp_fade').fadeIn(settings.animation_speed);if(isSet&&_getFileType(pp_images[set_position])=="image"){$pp_pic_holder.find('.pp_hoverContainer').show();}else{$pp_pic_holder.find('.pp_hoverContainer').hide();}
if(correctSizes['resized'])$('a.pp_expand,a.pp_contract').fadeIn(settings.animation_speed);if(settings.autoplay_slideshow&&!pp_slideshow&&!pp_open)$.prettyPhoto.startSlideshow();settings.changepicturecallback();pp_open=true;});_insert_gallery();};function _hideContent(callback){$pp_pic_holder.find('#pp_full_res object,#pp_full_res embed').css('visibility','hidden');$pp_pic_holder.find('.pp_fade').fadeOut(settings.animation_speed,function(){$('.pp_loaderIcon').show();callback();});};function _checkPosition(setCount){if(set_position==setCount-1){$pp_pic_holder.find('a.pp_next').css('visibility','hidden');$pp_pic_holder.find('a.pp_next').addClass('disabled').unbind('click');}else{$pp_pic_holder.find('a.pp_next').css('visibility','visible');$pp_pic_holder.find('a.pp_next.disabled').removeClass('disabled').bind('click',function(){$.prettyPhoto.changePage('next');return false;});};if(set_position==0){$pp_pic_holder.find('a.pp_previous').css('visibility','hidden').addClass('disabled').unbind('click');}else{$pp_pic_holder.find('a.pp_previous.disabled').css('visibility','visible').removeClass('disabled').bind('click',function(){$.prettyPhoto.changePage('previous');return false;});};(setCount>1)?$('.pp_nav').show():$('.pp_nav').hide();};function _fitToViewport(width,height){resized=false;_getDimensions(width,height);imageWidth=width,imageHeight=height;if(((pp_containerWidth>windowWidth)||(pp_containerHeight>windowHeight))&&doresize&&settings.allow_resize&&!percentBased){resized=true,fitting=false;while(!fitting){if((pp_containerWidth>windowWidth)){imageWidth=(windowWidth-200);imageHeight=(height/width)*imageWidth;}else if((pp_containerHeight>windowHeight)){imageHeight=(windowHeight-200);imageWidth=(width/height)*imageHeight;}else{fitting=true;};pp_containerHeight=imageHeight,pp_containerWidth=imageWidth;};_getDimensions(imageWidth,imageHeight);};return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(pp_containerHeight),containerWidth:Math.floor(pp_containerWidth)+40,contentHeight:Math.floor(pp_contentHeight),contentWidth:Math.floor(pp_contentWidth),resized:resized};};function _getDimensions(width,height){width=parseFloat(width);height=parseFloat(height);$pp_details=$pp_pic_holder.find('.pp_details');$pp_details.width(width);detailsHeight=parseFloat($pp_details.css('marginTop'))+parseFloat($pp_details.css('marginBottom'));$pp_details=$pp_details.clone().appendTo($('body')).css({'position':'absolute','top':-10000});detailsHeight+=$pp_details.height();detailsHeight=(detailsHeight<=34)?36:detailsHeight;if($.browser.msie&&$.browser.version==7)detailsHeight+=8;$pp_details.remove();pp_contentHeight=height+detailsHeight;pp_contentWidth=width;pp_containerHeight=pp_contentHeight+$ppt.height()+$pp_pic_holder.find('.pp_top').height()+$pp_pic_holder.find('.pp_bottom').height();pp_containerWidth=width;}
function _getFileType(itemSrc){if(itemSrc.match(/youtube\.com\/watch/i)){return'youtube';}else if(itemSrc.match(/vimeo\.com/i)){return'vimeo';}else if(itemSrc.indexOf('.mov')!=-1){return'quicktime';}else if(itemSrc.indexOf('.swf')!=-1){return'flash';}else if(itemSrc.indexOf('iframe')!=-1){return'iframe';}else if(itemSrc.indexOf('custom')!=-1){return'custom';}else if(itemSrc.substr(0,1)=='#'){return'inline';}else{return'image';};};function _center_overlay(){if(doresize&&typeof $pp_pic_holder!='undefined'){scroll_pos=_get_scroll();titleHeight=$ppt.height(),contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width();projectedTop=(windowHeight/2)+scroll_pos['scrollTop']-(contentHeight/2);$pp_pic_holder.css({'top':projectedTop,'left':(windowWidth/2)+scroll_pos['scrollLeft']-(contentwidth/2)});};};function _get_scroll(){if(self.pageYOffset){return{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset};}else if(document.documentElement&&document.documentElement.scrollTop){return{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft};}else if(document.body){return{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft};};};function _resize_overlay(){windowHeight=$(window).height(),windowWidth=$(window).width();if(typeof $pp_overlay!="undefined")$pp_overlay.height($(document).height());};function _insert_gallery(){if(isSet&&settings.overlay_gallery&&_getFileType(pp_images[set_position])=="image"){itemWidth=52+5;navWidth=(settings.theme=="facebook")?58:38;itemsPerPage=Math.floor((correctSizes['containerWidth']-100-navWidth)/itemWidth);itemsPerPage=(itemsPerPage<pp_images.length)?itemsPerPage:pp_images.length;totalPage=Math.ceil(pp_images.length/itemsPerPage)-1;if(totalPage==0){navWidth=0;$pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').hide();}else{$pp_pic_holder.find('.pp_gallery .pp_arrow_next,.pp_gallery .pp_arrow_previous').show();};galleryWidth=itemsPerPage*itemWidth+navWidth;$pp_pic_holder.find('.pp_gallery').width(galleryWidth).css('margin-left',-(galleryWidth/2));$pp_pic_holder.find('.pp_gallery ul').width(itemsPerPage*itemWidth).find('li.selected').removeClass('selected');goToPage=(Math.floor(set_position/itemsPerPage)<=totalPage)?Math.floor(set_position/itemsPerPage):totalPage;if(itemsPerPage){$pp_pic_holder.find('.pp_gallery').hide().show().removeClass('disabled');}else{$pp_pic_holder.find('.pp_gallery').hide().addClass('disabled');}
$.prettyPhoto.changeGalleryPage(goToPage);$pp_pic_holder.find('.pp_gallery ul li:eq('+set_position+')').addClass('selected');}else{$pp_pic_holder.find('.pp_content').unbind('mouseenter mouseleave');$pp_pic_holder.find('.pp_gallery').hide();}}
function _buildOverlay(caller){theRel=$(caller).attr('rel');galleryRegExp=/\[(?:.*)\]/;isSet=(galleryRegExp.exec(theRel))?true:false;pp_images=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return $(n).attr('href');}):$.makeArray($(caller).attr('href'));pp_titles=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return($(n).find('img').attr('alt'))?$(n).find('img').attr('alt'):"";}):$.makeArray($(caller).find('img').attr('alt'));pp_descriptions=(isSet)?jQuery.map(matchedObjects,function(n,i){if($(n).attr('rel').indexOf(theRel)!=-1)return($(n).attr('title'))?$(n).attr('title'):"";}):$.makeArray($(caller).attr('title'));$('body').append(settings.markup);$pp_pic_holder=$('.pp_pic_holder'),$ppt=$('.ppt'),$pp_overlay=$('div.pp_overlay');if(isSet&&settings.overlay_gallery){currentGalleryPage=0;toInject="";for(var i=0;i<pp_images.length;i++){var regex=new RegExp("(.*?)\.(jpg|jpeg|png|gif)$");var results=regex.exec(pp_images[i]);if(!results){classname='default';}else{classname='';}
toInject+="<li class='"+classname+"'><a href='#'><img src='"+pp_images[i]+"' width='50' alt='' /></a></li>";};toInject=settings.gallery_markup.replace(/{gallery}/g,toInject);$pp_pic_holder.find('#pp_full_res').after(toInject);$pp_pic_holder.find('.pp_gallery .pp_arrow_next').click(function(){$.prettyPhoto.changeGalleryPage('next');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_gallery .pp_arrow_previous').click(function(){$.prettyPhoto.changeGalleryPage('previous');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_content').hover(function(){$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeIn();},function(){$pp_pic_holder.find('.pp_gallery:not(.disabled)').fadeOut();});itemWidth=52+5;$pp_pic_holder.find('.pp_gallery ul li').each(function(i){$(this).css({'position':'absolute','left':i*itemWidth});$(this).find('a').unbind('click').click(function(){$.prettyPhoto.changePage(i);$.prettyPhoto.stopSlideshow();return false;});});};if(settings.slideshow){$pp_pic_holder.find('.pp_nav').prepend('<a href="#" class="pp_play">Play</a>')
$pp_pic_holder.find('.pp_nav .pp_play').click(function(){$.prettyPhoto.startSlideshow();return false;});}
$pp_pic_holder.attr('class','pp_pic_holder '+settings.theme);$pp_overlay.css({'opacity':0,'height':$(document).height(),'width':$(document).width()}).bind('click',function(){if(!settings.modal)$.prettyPhoto.close();});$('a.pp_close').bind('click',function(){$.prettyPhoto.close();return false;});$('a.pp_expand').bind('click',function(e){if($(this).hasClass('pp_expand')){$(this).removeClass('pp_expand').addClass('pp_contract');doresize=false;}else{$(this).removeClass('pp_contract').addClass('pp_expand');doresize=true;};_hideContent(function(){$.prettyPhoto.open();});return false;});$pp_pic_holder.find('.pp_previous, .pp_nav .pp_arrow_previous').bind('click',function(){$.prettyPhoto.changePage('previous');$.prettyPhoto.stopSlideshow();return false;});$pp_pic_holder.find('.pp_next, .pp_nav .pp_arrow_next').bind('click',function(){$.prettyPhoto.changePage('next');$.prettyPhoto.stopSlideshow();return false;});_center_overlay();};return this.unbind('click').click($.prettyPhoto.initialize);};function grab_param(name,url){name=name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");var regexS="[\\?&]"+name+"=([^&#]*)";var regex=new RegExp(regexS);var results=regex.exec(url);return(results==null)?"":results[1];}})(jQuery);


// JavaScript Document

//Cufon.replace('.ge-phone', { fontFamily: 'mentone', textShadow: '0px 1px 0px #000000' });
//Cufon.replace('h2', { fontFamily: 'mentone' });

//$(document).ready(function() {
//   	$('.in-testimonials').cycle({fx:'fade', timeout:7000,  speed:2000});
//});

//$(document).ready(function() {
//	$('#in-quote-form').ajaxForm(function(data) {
//		if (data==1){alert('Please fill out the required fields to submit your enquiry.')}
//		else if (data==0){alert('Your enquiry has been submitted. We will get back to your shortly.'); $('#in-quote-form').resetForm();}
//	});
//});	

