/*
 * FancyBox - simple jQuery plugin for fancy image zooming
 * Examples and documentation at: http://fancy.klade.lv/
 * Version: 1.0.0 (29/04/2008)
 * Copyright (c) 2008 Janis Skarnelis
 * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
 * Requires: jQuery v1.2.1 or later
*/
(function($) {
	var opts = {}, 
		imgPreloader = new Image, imgTypes = ['png', 'jpg', 'jpeg', 'gif'], 
		loadingTimer, loadingFrame = 1;

   $.fn.fancybox = function(settings) {
		opts.settings = $.extend({}, $.fn.fancybox.defaults, settings);

		$.fn.fancybox.init();

		return this.each(function() {
			var $this = $(this);
			var o = $.metadata ? $.extend({}, opts.settings, $this.metadata()) : opts.settings;

			$this.unbind('click').click(function() {
				$.fn.fancybox.start(this, o); return false;
			});
		});
	};

	$.fn.fancybox.start = function(el, o) {
		if (opts.animating) return false;

		if (o.overlayShow) {
			$("#fancy_wrap").prepend('<div id="fancy_overlay"></div>');
			$("#fancy_overlay").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': o.overlayOpacity});

			if ($.browser.msie) {
				$("#fancy_wrap").prepend('<iframe id="fancy_bigIframe" scrolling="no" frameborder="0"></iframe>');
				$("#fancy_bigIframe").css({'width': $(window).width(), 'height': $(document).height(), 'opacity': 0});
			}

			$("#fancy_overlay").click($.fn.fancybox.close);
		}

		opts.itemArray	= [];
		opts.itemNum	= 0;

		if (jQuery.isFunction(o.itemLoadCallback)) {
		   o.itemLoadCallback.apply(this, [opts]);

			var c	= $(el).children("img:first").length ? $(el).children("img:first") : $(el);
			var tmp	= {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)}

		   for (var i = 0; i < opts.itemArray.length; i++) {
				opts.itemArray[i].o = $.extend({}, o, opts.itemArray[i].o);
				
				if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) {
					opts.itemArray[i].orig = tmp;
				}
		   }

		} else {
			if (!el.rel || el.rel == '') {
				var item = {url: el.href, title: el.title, o: o};

				if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) {
					var c = $(el).children("img:first").length ? $(el).children("img:first") : $(el);
					item.orig = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)}
				}

				opts.itemArray.push(item);

			} else {
				var arr	= $("a[@rel=" + el.rel + "]").get();

				for (var i = 0; i < arr.length; i++) {
					var tmp		= $.metadata ? $.extend({}, o, $(arr[i]).metadata()) : o;
   					var item	= {url: arr[i].href, title: arr[i].title, o: tmp};

   					if (o.zoomSpeedIn > 0 || o.zoomSpeedOut > 0) {
						var c = $(arr[i]).children("img:first").length ? $(arr[i]).children("img:first") : $(el);

						item.orig = {'width': c.width(), 'height': c.height(), 'pos': $.fn.fancybox.getPosition(c)}
					}

					if (arr[i].href == el.href) opts.itemNum = i;

					opts.itemArray.push(item);
				}
			}
		}

		$.fn.fancybox.changeItem(opts.itemNum);
	};

	$.fn.fancybox.changeItem = function(n) {
		$.fn.fancybox.showLoading();

		opts.itemNum = n;

		$("#fancy_nav").empty();
		$("#fancy_outer").stop();
		$("#fancy_title").hide();
		$(document).unbind("keydown");

		imgRegExp = imgTypes.join('|');
    	imgRegExp = new RegExp('\.' + imgRegExp + '$', 'i');

		var url = opts.itemArray[n].url;

		if (url.match(/#/)) {
			var target = window.location.href.split('#')[0]; target = url.replace(target,'');

	        $.fn.fancybox.showItem('<div id="fancy_div">' + $(target).html() + '</div>');

	        $("#fancy_loading").hide();

		} else if (url.match(imgRegExp)) {
			$(imgPreloader).unbind('load').bind('load', function() {
				$("#fancy_loading").hide();

				opts.itemArray[n].o.frameWidth	= imgPreloader.width;
				opts.itemArray[n].o.frameHeight	= imgPreloader.height;

				$.fn.fancybox.showItem('<img id="fancy_img" src="' + imgPreloader.src + '" />');

			}).attr('src', url + '?rand=' + Math.floor(Math.random() * 999999999) );

		} else {
			$.fn.fancybox.showItem('<iframe id="fancy_frame" onload="$.fn.fancybox.showIframe()" name="fancy_iframe' + Math.round(Math.random()*1000) + '" frameborder="0" hspace="0" src="' + url + '"></iframe>');
		}
	};

	$.fn.fancybox.showIframe = function() {
		$("#fancy_loading").hide();
		$("#fancy_frame").show();
	};

	$.fn.fancybox.showItem = function(val) {
		$.fn.fancybox.preloadNeighborImages();

		var viewportPos	= $.fn.fancybox.getViewport();
		var itemSize	= $.fn.fancybox.getMaxSize(viewportPos[0] - 50, viewportPos[1] - 100, opts.itemArray[opts.itemNum].o.frameWidth, opts.itemArray[opts.itemNum].o.frameHeight);

		var itemLeft	= viewportPos[2] + Math.round((viewportPos[0] - itemSize[0]) / 2) - 20;
		var itemTop		= viewportPos[3] + Math.round((viewportPos[1] - itemSize[1]) / 2) - 40;

		var itemOpts = {
			'left':		itemLeft, 
			'top':		itemTop, 
			'width':	itemSize[0] + 'px', 
			'height':	itemSize[1] + 'px'	
		}

		if (opts.active) {
			$('#fancy_content').fadeOut("normal", function() {
				$("#fancy_content").empty();
				
				$("#fancy_outer").animate(itemOpts, "normal", function() {
					$("#fancy_content").append($(val)).fadeIn("normal");
					$.fn.fancybox.updateDetails();
				});
			});

		} else {
			opts.active = true;

			$("#fancy_content").empty();

			if ($("#fancy_content").is(":animated")) {
				console.info('animated!');
			}

			if (opts.itemArray[opts.itemNum].o.zoomSpeedIn > 0) {
				opts.animating		= true;
				itemOpts.opacity	= "show";

				$("#fancy_outer").css({
					'top':		opts.itemArray[opts.itemNum].orig.pos.top - 18,
					'left':		opts.itemArray[opts.itemNum].orig.pos.left - 18,
					'height':	opts.itemArray[opts.itemNum].orig.height,
					'width':	opts.itemArray[opts.itemNum].orig.width
				});

				$("#fancy_content").append($(val)).show();

				$("#fancy_outer").animate(itemOpts, opts.itemArray[opts.itemNum].o.zoomSpeedIn, function() {
					opts.animating = false;
					$.fn.fancybox.updateDetails();
				});

			} else {
				$("#fancy_content").append($(val)).show();
				$("#fancy_outer").css(itemOpts).show();
				$.fn.fancybox.updateDetails();
			}
		 }
	};

	$.fn.fancybox.updateDetails = function() {
		$("#fancy_bg,#fancy_close").show();

		if (opts.itemArray[opts.itemNum].title !== undefined && opts.itemArray[opts.itemNum].title !== '') {
			$('#fancy_title div').html(opts.itemArray[opts.itemNum].title);
			$('#fancy_title').show();
		}

		if (opts.itemArray[opts.itemNum].o.hideOnContentClick) {
			$("#fancy_content").click($.fn.fancybox.close);
		} else {
			$("#fancy_content").unbind('click');
		}

		if (opts.itemNum != 0) {
			$("#fancy_nav").append('<a id="fancy_left" href="javascript:;"></a>');

			$('#fancy_left').click(function() {
				$.fn.fancybox.changeItem(opts.itemNum - 1); return false;
			});
		}

		if (opts.itemNum != (opts.itemArray.length - 1)) {
			$("#fancy_nav").append('<a id="fancy_right" href="javascript:;"></a>');
			
			$('#fancy_right').click(function(){
				$.fn.fancybox.changeItem(opts.itemNum + 1); return false;
			});
		}

		$(document).keydown(function(event) {
			if (event.keyCode == 27) {
            	$.fn.fancybox.close();

			} else if(event.keyCode == 37 && opts.itemNum != 0) {
            	$.fn.fancybox.changeItem(opts.itemNum - 1);

			} else if(event.keyCode == 39 && opts.itemNum != (opts.itemArray.length - 1)) {
            	$.fn.fancybox.changeItem(opts.itemNum + 1);
			}
		});
	};

	$.fn.fancybox.preloadNeighborImages = function() {
		if ((opts.itemArray.length - 1) > opts.itemNum) {
			preloadNextImage = new Image();
			preloadNextImage.src = opts.itemArray[opts.itemNum + 1].url;
		}

		if (opts.itemNum > 0) {
			preloadPrevImage = new Image();
			preloadPrevImage.src = opts.itemArray[opts.itemNum - 1].url;
		}
	};

	$.fn.fancybox.close = function() {
		if (opts.animating) return false;

		$(imgPreloader).unbind('load');
		$(document).unbind("keydown");

		$("#fancy_loading,#fancy_title,#fancy_close,#fancy_bg").hide();

		$("#fancy_nav").empty();

		opts.active	= false;

		if (opts.itemArray[opts.itemNum].o.zoomSpeedOut > 0) {
			var itemOpts = {
				'top':		opts.itemArray[opts.itemNum].orig.pos.top - 18,
				'left':		opts.itemArray[opts.itemNum].orig.pos.left - 18,
				'height':	opts.itemArray[opts.itemNum].orig.height,
				'width':	opts.itemArray[opts.itemNum].orig.width,
				'opacity':	'hide'
			};

			opts.animating = true;

			$("#fancy_outer").animate(itemOpts, opts.itemArray[opts.itemNum].o.zoomSpeedOut, function() {
				$("#fancy_content").hide().empty();
				$("#fancy_overlay,#fancy_bigIframe").remove();
				opts.animating = false;
			});

		} else {
			$("#fancy_outer").hide();
			$("#fancy_content").hide().empty();
			$("#fancy_overlay,#fancy_bigIframe").fadeOut("fast").remove();
		}
	};

	$.fn.fancybox.showLoading = function() {
		clearInterval(loadingTimer);

		var pos = $.fn.fancybox.getViewport();

		$("#fancy_loading").css({'left': ((pos[0] - 40) / 2 + pos[2]), 'top': ((pos[1] - 40) / 2 + pos[3])}).show();
		$("#fancy_loading").bind('click', $.fn.fancybox.close);
		
		loadingTimer = setInterval($.fn.fancybox.animateLoading, 66);
	};

	$.fn.fancybox.animateLoading = function(el, o) {
		if (!$("#fancy_loading").is(':visible')){
			clearInterval(loadingTimer);
			return;
		}

		$("#fancy_loading > div").css('top', (loadingFrame * -40) + 'px');

		loadingFrame = (loadingFrame + 1) % 12;
	};

	$.fn.fancybox.init = function() {
		if (!$('#fancy_wrap').length) {
			$('<div id="fancy_wrap"><div id="fancy_loading"><div></div></div><div id="fancy_outer"><div id="fancy_inner"><div id="fancy_nav"></div><div id="fancy_close"></div><div id="fancy_content"></div><div id="fancy_title"></div></div></div></div>').appendTo("body");
			$('<div id="fancy_bg"><div class="fancy_bg fancy_bg_n"></div><div class="fancy_bg fancy_bg_ne"></div><div class="fancy_bg fancy_bg_e"></div><div class="fancy_bg fancy_bg_se"></div><div class="fancy_bg fancy_bg_s"></div><div class="fancy_bg fancy_bg_sw"></div><div class="fancy_bg fancy_bg_w"></div><div class="fancy_bg fancy_bg_nw"></div></div>').prependTo("#fancy_inner");
			
			$('<table cellspacing="0" cellpadding="0" border="0"><tr><td id="fancy_title_left"></td><td id="fancy_title_main"><div></div></td><td id="fancy_title_right"></td></tr></table>').appendTo('#fancy_title');
		}

		if ($.browser.msie) {
			$("#fancy_inner").prepend('<iframe id="fancy_freeIframe" scrolling="no" frameborder="0"></iframe>');
		}

		if (jQuery.fn.pngFix) $(document).pngFix();

    	$("#fancy_close").click($.fn.fancybox.close);
	};

	$.fn.fancybox.getPosition = function(el) {
		var pos = el.offset();

		pos.top	+= $.fn.fancybox.num(el, 'paddingTop');
		pos.top	+= $.fn.fancybox.num(el, 'borderTopWidth');

 		pos.left += $.fn.fancybox.num(el, 'paddingLeft');
		pos.left += $.fn.fancybox.num(el, 'borderLeftWidth');

		return pos;
	};

	$.fn.fancybox.num = function (el, prop) {
		return parseInt($.curCSS(el.jquery?el[0]:el,prop,true))||0;
	};

	$.fn.fancybox.getPageScroll = function() {
		var xScroll, yScroll;

		if (self.pageYOffset) {
			yScroll = self.pageYOffset;
			xScroll = self.pageXOffset;
		} else if (document.documentElement && document.documentElement.scrollTop) {
			yScroll = document.documentElement.scrollTop;
			xScroll = document.documentElement.scrollLeft;
		} else if (document.body) {
			yScroll = document.body.scrollTop;
			xScroll = document.body.scrollLeft;	
		}

		return [xScroll, yScroll]; 
	};

	$.fn.fancybox.getViewport = function() {
		var scroll = $.fn.fancybox.getPageScroll();

		return [$(window).width(), $(window).height(), scroll[0], scroll[1]];
	};

	$.fn.fancybox.getMaxSize = function(maxWidth, maxHeight, imageWidth, imageHeight) {
		var r = Math.min(Math.min(maxWidth, imageWidth) / imageWidth, Math.min(maxHeight, imageHeight) / imageHeight);

		return [Math.round(r * imageWidth), Math.round(r * imageHeight)];
	};

	$.fn.fancybox.defaults = {
		hideOnContentClick:	false,
		zoomSpeedIn:		500,
		zoomSpeedOut:		500,
		frameWidth:			600,
		frameHeight:		400,
		overlayShow:		false,
		overlayOpacity:		0.8,
		itemLoadCallback:	null
	};
})(jQuery);

/*
 * jQuery UI Accordion 1.6
 * 
 * Copyright (c) 2007 Jšrn Zaefferer
 *
 * http://docs.jquery.com/UI/Accordion
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.accordion.js 4876 2008-03-08 11:49:04Z joern.zaefferer $
 *
 */

;(function($) {
	
// If the UI scope is not available, add it
$.ui = $.ui || {};

$.fn.extend({
	accordion: function(options, data) {
		var args = Array.prototype.slice.call(arguments, 1);

		return this.each(function() {
			if (typeof options == "string") {
				var accordion = $.data(this, "ui-accordion");
				accordion[options].apply(accordion, args);
			// INIT with optional options
			} else if (!$(this).is(".ui-accordion"))
				$.data(this, "ui-accordion", new $.ui.accordion(this, options));
		});
	},
	// deprecated, use accordion("activate", index) instead
	activate: function(index) {
		return this.accordion("activate", index);
	}
});

$.ui.accordion = function(container, options) {
	
	// setup configuration
	this.options = options = $.extend({}, $.ui.accordion.defaults, options);
	this.element = container;
	
	$(container).addClass("ui-accordion");
	
	if ( options.navigation ) {
		var current = $(container).find("a").filter(options.navigationFilter);
		if ( current.length ) {
			if ( current.filter(options.header).length ) {
				options.active = current;
			} else {
				options.active = current.parent().parent().prev();
				current.addClass("current");
			}
		}
	}
	
	// calculate active if not specified, using the first header
	options.headers = $(container).find(options.header);
	options.active = findActive(options.headers, options.active);

	if ( options.fillSpace ) {
		var maxHeight = $(container).parent().height();
		options.headers.each(function() {
			maxHeight -= $(this).outerHeight();
		});
		var maxPadding = 0;
		options.headers.next().each(function() {
			maxPadding = Math.max(maxPadding, $(this).innerHeight() - $(this).height());
		}).height(maxHeight - maxPadding);
	} else if ( options.autoheight ) {
		var maxHeight = 0;
		options.headers.next().each(function() {
			maxHeight = Math.max(maxHeight, $(this).outerHeight());
		}).height(maxHeight);
	}

	options.headers
		.not(options.active || "")
		.next()
		.hide();
	options.active.parent().andSelf().addClass(options.selectedClass);
	
	if (options.event)
		$(container).bind((options.event) + ".ui-accordion", clickHandler);
};

$.ui.accordion.prototype = {
	activate: function(index) {
		// call clickHandler with custom event
		clickHandler.call(this.element, {
			target: findActive( this.options.headers, index )[0]
		});
	},
	
	enable: function() {
		this.options.disabled = false;
	},
	disable: function() {
		this.options.disabled = true;
	},
	destroy: function() {
		this.options.headers.next().css("display", "");
		if ( this.options.fillSpace || this.options.autoheight ) {
			this.options.headers.next().css("height", "");
		}
		$.removeData(this.element, "ui-accordion");
		$(this.element).removeClass("ui-accordion").unbind(".ui-accordion");
	}
}

function scopeCallback(callback, scope) {
	return function() {
		return callback.apply(scope, arguments);
	};
}

function completed(cancel) {
	// if removed while animated data can be empty
	if (!$.data(this, "ui-accordion"))
		return;
	var instance = $.data(this, "ui-accordion");
	var options = instance.options;
	options.running = cancel ? 0 : --options.running;
	if ( options.running )
		return;
	if ( options.clearStyle ) {
		options.toShow.add(options.toHide).css({
			height: "",
			overflow: ""
		});
	}
	$(this).triggerHandler("change.ui-accordion", [options.data], options.change);
}

function toggle(toShow, toHide, data, clickedActive, down) {
	var options = $.data(this, "ui-accordion").options;
	options.toShow = toShow;
	options.toHide = toHide;
	options.data = data;
	var complete = scopeCallback(completed, this);
	
	// count elements to animate
	options.running = toHide.size() == 0 ? toShow.size() : toHide.size();
	
	if ( options.animated ) {
		if ( !options.alwaysOpen && clickedActive ) {
			$.ui.accordion.animations[options.animated]({
				toShow: jQuery([]),
				toHide: toHide,
				complete: complete,
				down: down,
				autoheight: options.autoheight
			});
		} else {
			$.ui.accordion.animations[options.animated]({
				toShow: toShow,
				toHide: toHide,
				complete: complete,
				down: down,
				autoheight: options.autoheight
			});
		}
	} else {
		if ( !options.alwaysOpen && clickedActive ) {
			toShow.toggle();
		} else {
			toHide.hide();
			toShow.show();
		}
		complete(true);
	}
}

function clickHandler(event) {
	var options = $.data(this, "ui-accordion").options;
	if (options.disabled)
		return false;
	
	// called only when using activate(false) to close all parts programmatically
	if ( !event.target && !options.alwaysOpen ) {
		options.active.parent().andSelf().toggleClass(options.selectedClass);
		var toHide = options.active.next(),
			data = {
				instance: this,
				options: options,
				newHeader: jQuery([]),
				oldHeader: options.active,
				newContent: jQuery([]),
				oldContent: toHide
			},
			toShow = options.active = $([]);
		toggle.call(this, toShow, toHide, data );
		return false;
	}
	// get the click target
	var clicked = $(event.target);
	
	// due to the event delegation model, we have to check if one
	// of the parent elements is our actual header, and find that
	if ( clicked.parents(options.header).length )
		while ( !clicked.is(options.header) )
			clicked = clicked.parent();
	
	var clickedActive = clicked[0] == options.active[0];
	
	// if animations are still active, or the active header is the target, ignore click
	if (options.running || (options.alwaysOpen && clickedActive))
		return false;
	if (!clicked.is(options.header))
		return;

	// switch classes
	options.active.parent().andSelf().toggleClass(options.selectedClass);
	if ( !clickedActive ) {
		clicked.parent().andSelf().addClass(options.selectedClass);
	}

	// find elements to show and hide
	var toShow = clicked.next(),
		toHide = options.active.next(),
		//data = [clicked, options.active, toShow, toHide],
		data = {
			instance: this,
			options: options,
			newHeader: clicked,
			oldHeader: options.active,
			newContent: toShow,
			oldContent: toHide
		},
		down = options.headers.index( options.active[0] ) > options.headers.index( clicked[0] );
	
	options.active = clickedActive ? $([]) : clicked;
	toggle.call(this, toShow, toHide, data, clickedActive, down );

	return false;
};

function findActive(headers, selector) {
	return selector != undefined
		? typeof selector == "number"
			? headers.filter(":eq(" + selector + ")")
			: headers.not(headers.not(selector))
		: selector === false
			? $([])
			: headers.filter(":eq(0)");
}

$.extend($.ui.accordion, {
	defaults: {
		selectedClass: "selected",
		alwaysOpen: true,
		animated: 'slide',
		event: "click",
		header: "a",
		autoheight: true,
		running: 0,
		navigationFilter: function() {
			return this.href.toLowerCase() == location.href.toLowerCase();
		}
	},
	animations: {
		slide: function(options, additions) {
			options = $.extend({
				easing: "swing",
				duration: 300
			}, options, additions);
			if ( !options.toHide.size() ) {
				options.toShow.animate({height: "show"}, options);
				return;
			}
			var hideHeight = options.toHide.height(),
				showHeight = options.toShow.height(),
				difference = showHeight / hideHeight;
			options.toShow.css({ height: 0, overflow: 'hidden' }).show();
			options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate({height:"hide"},{
				step: function(now) {
					var current = (hideHeight - now) * difference;
					if ($.browser.msie || $.browser.opera) {
						current = Math.ceil(current);
					}
					options.toShow.height( current );
				},
				duration: options.duration,
				easing: options.easing,
				complete: function() {
					if ( !options.autoheight ) {
						options.toShow.css("height", "auto");
					}
					options.complete();
				}
			});
		},
		bounceslide: function(options) {
			this.slide(options, {
				easing: options.down ? "bounceout" : "swing",
				duration: options.down ? 1000 : 200
			});
		},
		easeslide: function(options) {
			this.slide(options, {
				easing: "easeinout",
				duration: 700
			})
		}
	}
});

})(jQuery);

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

