/*
 * jQuery hashchange event - v1.3 - 7/21/2010
 * http://benalman.com/projects/jquery-hashchange-plugin/
 * 
 * Copyright (c) 2010 "Cowboy" Ben Alman
 * Dual licensed under the MIT and GPL licenses.
 * http://benalman.com/about/license/
 */
(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);

(function($) { 
	
	function calendarWidget(el, params) { 
		
		var now   = new Date();
		var thismonth = now.getMonth();
		var thisyear  = now.getYear() + 1900;
		
		var opts = {
			month: thismonth,
			year: thisyear
		};
		
		$.extend(opts, params);
		
		var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
		var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
		month = i = parseInt(opts.month);
		year = parseInt(opts.year);
		var m = 0;
		var table = '';
		
			// next month
			if (month == 11) {
				var next_month = '<a href="?month=' + 1 + '&amp;year=' + (year + 1) + '" title="' + monthNames[0] + ' ' + (year + 1) + '">' + monthNames[0] + ' ' + (year + 1) + '</a>';
			} else {
				var next_month = '<a href="?month=' + (month + 2) + '&amp;year=' + (year) + '" title="' + monthNames[month + 1] + ' ' + (year) + '">' + monthNames[month + 1] + ' ' + (year) + '</a>';
			}
				
			// previous month
			if (month == 0) {
				var prev_month = '<a href="?month=' + 12 + '&amp;year=' + (year - 1) + '" title="' + monthNames[11] + ' ' + (year - 1) + '">' + monthNames[11] + ' ' + (year - 1) + '</a>';
			} else {
				var prev_month = '<a href="?month=' + (month) + '&amp;year=' + (year) + '" title="' + monthNames[month - 1] + ' ' + (year) + '">' + monthNames[month - 1] + ' ' + (year) + '</a>';
			}		
				
			table += ('<h3 id="current-month">'+monthNames[month]+' '+year+'</h3>');
			// uncomment the following lines if you'd like to display calendar month based on 'month' and 'view' paramaters from the URL
			//table += ('<div class="nav-prev">'+ prev_month +'</div>');
			//table += ('<div class="nav-next">'+ next_month +'</div>');
			table += ('<table class="calendar-month " ' +'id="calendar-month'+i+' " cellspacing="0">');	
		
			table += '<tr>';
			
			for (d=0; d<7; d++) {
				table += '<th class="weekday">' + dayNames[d] + '</th>';
			}
			
			table += '</tr>';
		
			var days = getDaysInMonth(month,year);
            var firstDayDate=new Date(year,month,1);
            var firstDay=firstDayDate.getDay();
			
			var prev_days = getDaysInMonth(month,year);
            var firstDayDate=new Date(year,month,1);
            var firstDay=firstDayDate.getDay();
			
			var prev_m = month == 0 ? 11 : month-1;
			var prev_y = prev_m == 11 ? year - 1 : year;
			var prev_days = getDaysInMonth(prev_m, prev_y);
			firstDay = (firstDay == 0 && firstDayDate) ? 7 : firstDay;
	
			var i = 0;
            for (j=0;j<42;j++){
			  
              if ((j<firstDay)){
                table += ('<td class="other-month"><span class="day">'+ (prev_days-firstDay+j+1) +'</span></td>');
			  } else if ((j>=firstDay+getDaysInMonth(month,year))) {
				i = i+1;
                table += ('<td class="other-month"><span class="day">'+ i +'</span></td>');			 
              }else{
                table += ('<td class="current-month day'+(j-firstDay+1)+'"><span class="day">'+(j-firstDay+1)+'</span></td>');
              }
              if (j%7==6)  table += ('</tr>');
            }

            table += ('</table>');

		el.html(table);
	}
	
	function getDaysInMonth(month,year)  {
		var daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31];
		if ((month==1)&&(year%4==0)&&((year%100!=0)||(year%400==0))){
		  return 29;
		}else{
		  return daysInMonth[month];
		}
	}
	
	
	// jQuery plugin initialisation
	$.fn.calendarWidget = function(params) {    
		calendarWidget(this, params);		
		return this; 
	}; 

})(jQuery);

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

Cufon.registerFont({"w":79,"face":{"font-family":"AMB Kabel Four","font-weight":600,"font-stretch":"normal","units-per-em":"360","panose-1":"2 0 7 6 2 0 0 2 0 4","ascent":"288","descent":"-72","x-height":"6","bbox":"-60 -321 360 90","underline-thickness":"18","underline-position":"-18","stemh":"46","stemv":"46","unicode-range":"U+0020-U+2212"},"glyphs":{" ":{"w":100},"!":{"d":"80,-78r-38,0r-7,-169r52,0xm31,-28v0,-17,13,-30,30,-30v17,0,31,13,31,30v0,17,-14,31,-31,31v-17,0,-30,-14,-30,-31","w":119},"\"":{"d":"71,-149r0,-98r40,0r0,98r-40,0xm8,-149r0,-98r41,0r0,98r-41,0","w":119},"#":{"d":"179,-105r-2,33r-32,0r-10,72r-33,0r9,-72r-34,0r-10,72r-34,0r9,-72r-31,0r1,-33r35,0r6,-43r-31,0r1,-32r35,0r10,-67r34,0r-10,67r34,0r10,-67r34,0r-9,67r28,0r-1,32r-32,0r-6,43r29,0xm122,-148r-35,0r-6,43r35,0","w":200},"$":{"d":"71,41r0,-36v-22,-2,-44,-12,-55,-24r0,-53v12,13,34,32,67,32v41,0,41,-43,11,-55v-37,-15,-77,-25,-77,-82v0,-36,22,-61,54,-71r0,-49r43,0r0,45v14,2,28,7,38,14r0,53v-15,-21,-84,-38,-86,6v0,25,33,31,51,40v23,12,48,30,48,68v0,35,-19,61,-51,71r0,41r-43,0","w":175},"%":{"d":"161,-62v0,-34,27,-62,62,-62v34,0,62,28,62,62v0,35,-28,62,-62,62v-35,0,-62,-27,-62,-62xm223,-88v-14,0,-26,11,-26,26v0,15,12,26,26,26v14,0,26,-11,26,-26v0,-15,-12,-26,-26,-26xm88,-247v32,0,57,26,86,26v23,0,47,-13,59,-32r24,0r-177,259r-29,0r143,-209v-15,5,-32,3,-47,0v13,42,-20,81,-59,80v-35,0,-62,-27,-62,-62v0,-34,27,-62,62,-62xm88,-211v-14,0,-26,11,-26,26v0,15,12,26,26,26v14,0,26,-11,26,-26v0,-15,-12,-26,-26,-26","w":320},"&":{"d":"63,-134v-48,-35,-26,-119,42,-119v37,0,67,22,67,60v0,28,-23,50,-44,65r31,33r69,-75r0,61r-40,45r59,64r-62,0r-28,-30v-20,21,-36,36,-69,36v-48,0,-76,-33,-76,-68v0,-36,24,-53,51,-72xm62,-64v2,37,54,24,66,2v-12,-12,-25,-31,-37,-39v-15,10,-29,20,-29,37xm105,-215v-33,1,-26,47,-5,57v16,-10,29,-21,29,-35v0,-13,-11,-22,-24,-22","w":240},"\u2019":{"d":"39,-247r43,0r-40,85r-29,0","w":91},"(":{"d":"92,42v-103,-75,-103,-243,0,-318r19,23v-88,65,-89,207,0,272","w":110},")":{"d":"19,-276v103,75,103,243,0,318r-19,-23v88,-65,89,-207,0,-272","w":110},"*":{"d":"58,-186r-35,-17r6,-26r41,22r-3,-39r26,-7r-2,47r33,-24r19,22r-42,20r37,17r-8,28r-37,-24r1,39r-27,6r2,-46r-32,23r-20,-22","w":159},"+":{"d":"88,-112r0,-71r40,0r0,71r71,0r0,41r-71,0r0,71r-40,0r0,-71r-71,0r0,-41r71,0","w":216},",":{"d":"50,-54r52,0r-51,104r-35,0","w":118},"-":{"d":"13,-101r0,-40r97,0r0,40r-97,0","w":122},".":{"d":"16,-29v0,-18,14,-32,32,-32v18,0,32,14,32,32v0,18,-14,32,-32,32v-18,0,-32,-14,-32,-32","w":96,"k":{"W":43,"C":14,"A":-11}},"\/":{"d":"-5,6r118,-259r32,0r-119,259r-31,0","w":139},"0":{"d":"107,-210v-29,0,-43,28,-43,87v0,59,14,86,43,86v29,0,43,-27,43,-86v0,-59,-14,-87,-43,-87xm107,-253v65,0,91,57,91,130v0,73,-26,129,-91,129v-65,0,-91,-56,-91,-129v0,-73,26,-130,91,-130","w":213},"1":{"d":"75,-170r-62,42r0,-52r108,-73r0,253r-46,0r0,-170","w":144},"2":{"d":"185,0r-180,0r78,-89v19,-22,51,-54,51,-82v0,-21,-11,-37,-35,-37v-28,0,-39,19,-36,49r-48,0v-3,-47,19,-94,84,-94v49,0,83,33,83,81v0,46,-50,93,-77,126r80,0r0,46","w":200},"3":{"d":"45,-107r0,-40v30,2,56,-5,56,-32v0,-41,-64,-34,-87,-14r0,-49v54,-30,134,2,134,57v0,27,-15,48,-40,56v81,30,49,135,-45,135v-19,0,-40,-5,-54,-13r0,-47v25,18,99,26,98,-17v-1,-31,-31,-38,-62,-36","w":167},"4":{"d":"117,-178v-20,26,-35,56,-54,83r54,0r0,-83xm163,-247r0,152r39,0r0,43r-39,0r0,52r-46,0r0,-52r-110,0r0,-35r101,-160r55,0","w":209},"5":{"d":"16,-64v18,27,106,43,106,-16v0,-49,-62,-49,-95,-28r0,-139r136,0r0,43r-88,0r0,43v55,-7,92,26,95,82v5,76,-103,108,-154,65r0,-50","w":186},"6":{"d":"104,-247r61,0r-81,94v52,-24,104,19,104,73v0,50,-44,86,-88,86v-55,0,-91,-39,-91,-92v0,-60,62,-119,95,-161xm99,-38v24,0,41,-19,41,-42v0,-23,-19,-40,-42,-40v-24,0,-41,16,-41,40v0,24,18,42,42,42","w":200},"7":{"d":"4,-201r0,-46r176,0r-103,247r-55,0r87,-201r-105,0","w":174},"8":{"d":"99,-37v22,0,38,-13,38,-35v0,-21,-13,-35,-38,-35v-25,0,-39,14,-39,35v0,22,17,35,39,35xm99,-147v20,0,32,-12,32,-32v0,-19,-14,-31,-32,-31v-18,0,-33,12,-33,31v0,20,13,32,33,32xm99,6v-81,0,-121,-101,-46,-135v-61,-28,-37,-124,46,-124v82,0,106,96,45,124v76,33,37,135,-45,135","w":197},"9":{"d":"97,0r-61,0r81,-94v-52,24,-104,-19,-104,-73v0,-50,43,-86,87,-86v55,0,92,39,92,92v0,60,-62,119,-95,161xm102,-209v-24,0,-42,19,-42,42v0,23,20,40,43,40v24,0,41,-16,41,-40v0,-24,-18,-42,-42,-42","w":204},":":{"d":"17,-150v0,-18,14,-33,32,-33v18,0,32,15,32,33v0,18,-14,31,-32,31v-18,0,-32,-13,-32,-31xm17,-29v0,-18,14,-32,32,-32v18,0,32,14,32,32v0,18,-14,32,-32,32v-18,0,-32,-14,-32,-32","w":100},";":{"d":"27,-58r53,0r-47,112r-36,0xm19,-150v0,-18,13,-33,31,-33v18,0,32,15,32,33v0,18,-14,31,-32,31v-18,0,-31,-13,-31,-31","w":100},"<":{"d":"199,-36r0,39r-182,-78r0,-33r182,-77r0,38r-130,56","w":216},"=":{"d":"199,-151r0,40r-182,0r0,-40r182,0xm199,-72r0,40r-182,0r0,-40r182,0","w":216},">":{"d":"17,-36r130,-55r-130,-56r0,-38r182,77r0,33r-182,78r0,-39","w":216},"?":{"d":"68,-75v-12,-62,54,-63,54,-107v0,-19,-13,-28,-26,-28v-19,0,-30,11,-30,30r-45,0v0,-49,35,-73,74,-73v46,0,73,34,73,72v0,60,-58,54,-56,106r-44,0xm62,-27v0,-16,13,-29,29,-29v16,0,29,13,29,29v0,16,-13,30,-29,30v-16,0,-29,-14,-29,-30","w":180},"@":{"d":"131,-88v32,3,47,-65,6,-67v-19,0,-29,18,-29,36v0,24,14,31,23,31xm205,-41r0,33v-80,37,-192,-4,-192,-115v0,-66,52,-130,128,-130v75,0,120,53,120,112v0,44,-24,86,-68,86v-11,0,-23,-8,-27,-20v-26,35,-90,28,-93,-44v-2,-50,59,-94,94,-52r4,-14r30,0r-11,92v0,4,2,10,8,10v14,0,30,-21,30,-57v0,-50,-37,-82,-87,-82v-59,0,-95,46,-95,99v1,96,87,116,159,82","w":269},"A":{"d":"195,0r-29,-57r-94,0r-27,57r-52,0r125,-253r130,253r-53,0xm118,-154r-27,55r54,0","w":240,"k":{"Y":11,"W":36,"V":31,"T":29,"O":7,"M":-4,"A":-11}},"B":{"d":"73,-201r0,55v29,2,58,-2,58,-28v0,-26,-29,-29,-58,-27xm25,0r0,-247r83,0v87,5,91,88,43,118v66,21,51,129,-33,129r-93,0xm141,-77v0,-31,-34,-33,-68,-31r0,62v34,2,68,0,68,-31","w":203},"C":{"d":"13,-123v0,-89,93,-158,176,-118r0,51v-51,-35,-127,-3,-127,67v0,70,76,100,127,66r0,51v-81,39,-176,-27,-176,-117","w":203,"k":{"O":5}},"D":{"d":"71,-45v58,4,95,-23,95,-78v0,-55,-36,-84,-95,-79r0,157xm88,0r-63,0r0,-247r63,0v79,0,125,56,125,124v0,68,-46,123,-125,123","w":225,"k":{"A":7}},"E":{"d":"25,-247r141,0r0,46r-93,0r0,53r85,0r0,45r-85,0r0,57r93,0r0,46r-141,0r0,-247","w":183},"F":{"d":"25,0r0,-247r137,0r0,45r-89,0r0,57r86,0r0,46r-86,0r0,99r-48,0","w":169,"k":{"A":13}},"G":{"d":"212,-182v-49,-46,-150,-24,-150,59v0,62,64,99,116,74r0,-47r-57,0r0,-45r104,0r0,117v-13,14,-42,30,-86,30v-71,0,-126,-57,-126,-129v0,-101,115,-161,199,-113r0,54","w":243},"H":{"d":"173,-150r0,-97r47,0r0,247r-47,0r0,-105r-100,0r0,105r-48,0r0,-247r48,0r0,97r100,0","w":245},"I":{"d":"73,0r-48,0r0,-247r48,0r0,247","w":97},"J":{"d":"64,-247r47,0r0,175v2,58,-47,87,-104,72r0,-45v28,6,56,7,57,-35r0,-167","w":134},"K":{"d":"156,-247r59,0r-88,116r89,131r-60,0r-83,-129r0,129r-48,0r0,-247r48,0r0,110","w":213},"L":{"d":"163,0r-138,0r0,-247r48,0r0,201r90,0r0,46","w":169,"k":{"W":32,"V":36,"T":29}},"M":{"d":"315,0r-51,0r-33,-129r-72,134r-73,-134r-32,129r-50,0r64,-253r91,164r92,-164","w":318,"k":{"Y":18,"W":7,"T":7,"O":4,"A":-4}},"N":{"d":"75,0r-50,0r1,-253r151,146r0,-140r50,0r-1,253r-151,-144r0,138","w":252},"O":{"d":"62,-123v0,47,31,82,77,82v46,0,78,-35,78,-82v0,-47,-32,-83,-78,-83v-46,0,-77,36,-77,83xm13,-123v0,-72,55,-130,126,-130v71,0,127,58,127,130v0,72,-56,129,-127,129v-71,0,-126,-57,-126,-129","w":278,"k":{"W":9,"V":9,"T":13,"M":4,"A":7}},"P":{"d":"73,-136v33,2,63,-3,63,-33v0,-30,-30,-36,-63,-33r0,66xm73,-91r0,91r-48,0r0,-247v81,-3,160,-4,160,78v0,62,-48,83,-112,78","w":197,"k":{"A":36}},"Q":{"d":"13,-123v0,-72,56,-130,127,-130v104,0,165,132,99,211r32,34r-30,29r-33,-35v-83,54,-195,-11,-195,-109xm63,-123v0,60,56,100,112,74r-36,-37r32,-29r35,37v30,-54,-3,-128,-66,-128v-46,0,-77,36,-77,83","w":280},"R":{"d":"73,-131r0,131r-48,0r0,-247v83,-3,167,-5,167,78v0,39,-30,60,-51,66r61,103r-57,0xm73,-136v35,2,70,0,70,-33v0,-32,-35,-35,-70,-33r0,66","w":207},"S":{"d":"152,-238r0,53v-15,-21,-84,-38,-86,6v0,25,33,31,51,40v23,12,48,30,48,68v0,75,-107,100,-149,52r0,-53v12,13,34,32,67,32v41,0,41,-43,11,-55v-37,-15,-74,-25,-77,-82v-3,-66,83,-96,135,-61","w":175},"T":{"d":"9,-201r0,-46r173,0r0,46r-63,0r0,201r-47,0r0,-201r-63,0","w":191,"k":{"O":13,"M":7,"J":18,"A":29,",":45}},"U":{"d":"115,6v-44,0,-92,-24,-92,-87r0,-166r48,0r0,162v0,22,9,47,44,47v35,0,44,-25,44,-47r0,-162r47,0r0,166v0,63,-47,87,-91,87","w":229},"V":{"d":"50,-247r57,140r59,-140r52,0r-112,252r-110,-252r54,0","w":214,"k":{"W":-5,"O":9,"J":18,"A":31,".":43,",":45}},"W":{"d":"212,-96r66,-151r49,0r-115,253r-50,-110r-51,110r-115,-253r51,0r67,151r25,-58r-42,-93r49,0r17,39r17,-39r47,0r-42,91","w":323,"k":{"W":-7,"V":-5,"O":9,"M":7,"J":18,"A":36,".":43,",":47}},"X":{"d":"55,0r-55,0r80,-126r-76,-121r54,0r51,85r50,-85r57,0r-76,121r80,126r-57,0r-54,-90","w":219},"Y":{"d":"154,-247r51,0r-113,247r-50,0r40,-89r-84,-158r53,0r56,108","w":201,"k":{"A":36}},"Z":{"d":"18,-203r0,-44r181,0r-111,203r100,0r0,44r-181,0r113,-203r-102,0","w":205},"[":{"d":"23,65r0,-312r62,0r0,23r-31,0r0,266r31,0r0,23r-62,0","w":119},"\\":{"d":"25,-253r82,259r-31,0r-83,-259r32,0","w":100},"]":{"d":"97,-247r0,312r-62,0r0,-23r31,0r0,-266r-31,0r0,-23r62,0","w":119},"^":{"d":"64,-112r-39,0r65,-135r36,0r65,135r-40,0r-43,-95","w":216},"_":{"d":"0,27r180,0r0,18r-180,0r0,-18","w":180},"\u2018":{"d":"53,-162r-44,0r40,-85r30,0","w":91},"{":{"d":"3,-81r0,-24v10,-4,34,-9,34,-29r0,-72v6,-42,33,-50,70,-47r0,23v-23,0,-40,-4,-40,24r0,77v1,29,-27,33,-37,37v12,1,37,5,37,38r0,77v-2,27,16,26,40,25r0,23v-38,3,-70,-6,-70,-48r0,-72v0,-23,-24,-28,-34,-32","w":119},"|":{"d":"20,-270r40,0r0,360r-40,0r0,-360"},"}":{"d":"117,-105r0,24v-10,4,-34,9,-34,32r0,72v-6,42,-32,51,-70,48r0,-23v23,1,40,2,40,-25r0,-77v-1,-34,27,-35,37,-39v-12,-1,-37,-8,-37,-36v0,-41,22,-114,-40,-101r0,-23v38,-3,70,5,70,47r0,72v0,20,24,25,34,29","w":119},"~":{"d":"70,-122v24,-1,57,23,77,24v14,0,23,-13,31,-26r13,33v-11,15,-23,31,-45,31v-36,0,-90,-51,-108,1r-13,-32v8,-15,21,-31,45,-31","w":216},"\u00a2":{"d":"86,10r0,-69v-39,-12,-65,-38,-65,-78v0,-41,25,-68,65,-76r0,-55r31,-4r0,59v15,1,34,11,46,20r-25,30v-19,-17,-71,-17,-71,24v0,41,48,50,74,27r24,32v-13,12,-31,18,-48,22r0,66","w":200},"\u00a3":{"d":"31,-149v-4,-62,17,-104,69,-104v41,0,57,25,65,62r-43,9v-2,-15,-4,-27,-23,-28v-28,0,-21,34,-22,61r36,0r0,39r-36,0r0,67v46,1,68,-2,69,-49r43,10v0,54,-32,82,-85,82r-101,0r0,-43r28,0r0,-67r-26,0r8,-39r18,0","w":200},"\u2044":{"d":"120,-253r-151,259r-29,0r153,-259r27,0","w":60},"\u00a5":{"d":"127,0r-45,0v-1,-29,3,-64,-2,-89r-76,0r0,-32r60,0r-15,-27r-45,0r0,-32r30,0r-37,-66r49,-1r58,108r48,-108r51,1r-33,66r29,0r0,32r-42,0r-13,27r55,0r0,32r-68,0v-9,22,-2,60,-4,89","w":200},"\u0192":{"d":"81,-117r-41,0r0,-41r50,0v9,-56,39,-118,110,-87r-8,40v-4,-1,-8,-7,-22,-7v-25,1,-30,29,-33,54r46,0r0,41r-54,0v-8,47,-16,94,-28,140v-13,51,-52,62,-101,49r5,-44v35,19,51,2,60,-51","w":200},"\u00a7":{"d":"99,-123v-10,-13,-36,-24,-37,0v4,23,28,35,39,51v6,9,31,23,37,4v0,-18,-28,-41,-39,-55xm35,31r32,-23v4,24,50,36,50,5v0,-22,-98,-85,-98,-130v0,-25,16,-45,42,-46v-32,-28,-23,-90,37,-90v30,0,50,14,66,32r-33,23v-4,-16,-46,-36,-46,-7v0,23,96,83,96,129v0,25,-20,42,-41,46v38,31,17,95,-39,95v-27,0,-52,-10,-66,-34","w":200},"\u00a4":{"d":"6,-54r21,-21v-22,-23,-23,-79,0,-102r-21,-21r22,-22r21,21v22,-20,78,-21,100,-1r21,-20r23,23r-19,20v20,23,20,79,-1,102r20,21r-21,21r-20,-21v-24,22,-81,23,-104,0r-20,21xm101,-177v-29,0,-50,22,-50,51v0,29,21,51,49,51v28,0,49,-23,49,-51v0,-28,-20,-51,-48,-51","w":200},"'":{"d":"20,-149r0,-98r40,0r0,98r-40,0"},"\u201c":{"d":"108,-162r-44,0r40,-85r30,0xm47,-162r-44,0r40,-85r30,0","w":140},"\u00ab":{"d":"138,-34r-43,-57r42,-58r43,0r-41,58r42,57r-43,0xm61,-34r-42,-57r41,-58r43,0r-41,58r43,57r-44,0","w":200},"\u2039":{"d":"69,-34r-42,-57r41,-58r43,0r-41,58r43,57r-44,0","w":140},"\u203a":{"d":"71,-149r42,58r-41,57r-43,0r41,-57r-43,-58r44,0","w":140},"\u2013":{"d":"0,-100r0,-41r180,0r0,41r-180,0","w":180},"\u2020":{"d":"91,-157r-68,17r0,-52r68,17r-16,-72r51,0r-17,72r67,-17r0,52r-67,-17r17,67r-17,155r-18,0r-16,-155","w":200},"\u2021":{"d":"90,-10r-67,15r0,-52r67,17r-17,-67r17,-62r-67,16r0,-51r67,17r-13,-70r51,0r-17,70r65,-17r0,51r-65,-16r15,62r-17,67r67,-17r0,52r-67,-15r16,75r-53,0","w":200},"\u00b7":{"d":"50,-64v-16,0,-28,-11,-28,-27v0,-15,12,-29,28,-29v15,0,28,14,28,29v0,16,-13,27,-28,27","w":100},"\u00b6":{"d":"80,65r0,-185v-51,0,-80,-23,-80,-62v0,-89,114,-60,197,-65r0,312r-40,0r0,-281r-37,0r0,281r-40,0","w":223},"\u2022":{"d":"152,-123v0,34,-28,61,-62,61v-34,0,-62,-26,-62,-61v0,-35,27,-62,62,-62v34,0,62,27,62,62","w":180},"\u201a":{"d":"22,-31r30,-18v34,28,5,70,-18,92r-22,-15v14,-14,30,-42,10,-59"},"\u201e":{"d":"80,-29r32,-20v1,-1,16,17,16,35v0,19,-22,43,-34,57r-22,-13v13,-17,31,-44,8,-59xm24,-31r30,-18v34,28,5,70,-18,92r-22,-15v14,-14,30,-42,10,-59","w":140},"\u201d":{"d":"39,-247r43,0r-40,85r-29,0xm100,-247r44,0r-40,85r-30,0","w":140},"\u00bb":{"d":"62,-149r43,58r-42,57r-42,0r41,-57r-43,-58r43,0xm139,-149r42,58r-41,57r-43,0r41,-57r-43,-58r44,0","w":200},"\u2026":{"d":"28,-29r32,-35r32,35r-32,35xm148,-29r32,-35r32,35r-32,35xm268,-29r32,-35r32,35r-32,35","w":360},"\u2030":{"d":"246,-57v0,-31,25,-56,57,-56v31,0,57,25,57,56v0,32,-26,57,-57,57v-32,0,-57,-25,-57,-57xm303,-77v-12,0,-21,8,-21,20v0,12,9,21,21,21v12,0,21,-9,21,-21v0,-12,-9,-20,-21,-20xm117,-57v0,-31,24,-56,56,-56v31,0,57,25,57,56v0,32,-26,57,-57,57v-32,0,-56,-25,-56,-57xm173,-77v-12,0,-20,8,-20,20v0,12,8,21,20,21v12,0,21,-9,21,-21v0,-12,-9,-20,-21,-20xm59,-247v38,0,42,31,85,29v21,0,42,-11,53,-35r24,0r-177,259r-29,0r146,-205v-15,6,-33,4,-47,-3v9,37,-21,68,-55,68v-32,0,-57,-24,-57,-56v0,-31,25,-57,57,-57xm59,-211v-12,0,-21,9,-21,21v0,12,9,20,21,20v12,0,21,-8,21,-20v0,-12,-9,-21,-21,-21","w":360},"`":{"d":"70,-212r-36,0r-54,-53r56,0"},"\u00b4":{"d":"46,-212r-36,0r34,-53r56,0"},"\u02c6":{"d":"18,-265r45,0r41,53r-41,0r-23,-30r-23,30r-40,0"},"\u02dc":{"d":"15,-259v0,0,58,30,67,-1r24,0v-5,22,-14,43,-40,43v0,0,-61,-30,-69,2r-23,0v3,-22,17,-44,41,-44"},"\u00af":{"d":"103,-222r-125,0r0,-28r125,0r0,28"},"\u02d8":{"d":"77,-265r23,0v-5,36,-28,53,-63,53v-33,0,-56,-19,-58,-53r24,0v5,36,69,37,74,0"},"\u02d9":{"d":"40,-267r29,29r-29,30r-30,-30"},"\u00a8":{"d":"-27,-238v0,-15,12,-26,27,-26v15,0,26,11,26,26v0,15,-11,27,-26,27v-15,0,-27,-12,-27,-27xm55,-238v0,-15,11,-26,26,-26v15,0,27,11,27,26v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27"},"\u02da":{"d":"40,-207v-21,0,-38,-17,-38,-38v0,-21,17,-38,38,-38v21,0,38,17,38,38v0,21,-17,38,-38,38xm40,-264v-10,0,-19,9,-19,19v0,10,9,19,19,19v10,0,19,-9,19,-19v0,-10,-9,-19,-19,-19"},"\u00b8":{"d":"6,73r7,-15v16,6,46,14,46,-9v0,-22,-33,-1,-37,-17r21,-32r19,0r-16,23v21,-6,46,2,45,25v-2,39,-56,40,-85,25"},"\u02dd":{"d":"15,-265r42,0r-47,53r-22,0xm68,-265r42,0r-47,53r-21,0"},"\u02db":{"d":"95,48r8,13v-25,22,-92,37,-92,-12v0,-38,54,-48,82,-53r0,4v-19,7,-51,21,-51,45v0,30,40,16,53,3"},"\u02c7":{"d":"104,-265r-41,53r-45,0r-41,-53r40,0r23,30r23,-30r41,0"},"\u2014":{"d":"0,-100r0,-41r360,0r0,41r-360,0","w":360},"\u00c6":{"d":"-23,0r165,-247r161,0r0,46r-86,0r0,49r70,0r0,46r-70,0r0,60r86,0r0,46r-134,0r0,-85r-77,0r-57,85r-58,0xm169,-131v-1,-24,2,-52,-1,-74r-47,74r48,0","w":320},"\u00aa":{"d":"15,-224r8,-26v33,-6,80,-6,80,28r0,82r-27,3r0,-10v-25,21,-75,10,-75,-28v0,-33,43,-46,73,-30v8,-33,-36,-29,-59,-19xm29,-175v1,22,44,22,45,1v0,-23,-44,-25,-45,-1","w":108},"\u0141":{"d":"104,-185r0,46r-32,16r0,77r90,0r-12,46r-126,0r0,-99r-23,12r0,-46r23,-12r0,-102r48,-6r0,84","w":159},"\u00d8":{"d":"79,-71r89,-128v-76,-30,-143,68,-89,128xm197,-181r-91,130v78,40,155,-69,91,-130xm48,32r-29,-17r31,-45v-25,-23,-40,-56,-40,-93v-2,-91,99,-161,186,-116r30,-43r29,17r-30,44v28,24,45,59,45,98v2,94,-105,161,-192,113","w":280},"\u0152":{"d":"217,-247r140,0r0,46r-92,0r0,53r85,0r0,45r-85,0r0,57r92,0r0,46r-140,0r0,-21v-78,65,-204,3,-204,-102v0,-104,125,-169,204,-103r0,-21xm62,-123v0,47,31,82,77,82v46,0,78,-35,78,-82v0,-47,-32,-83,-78,-83v-46,0,-77,36,-77,83","w":375},"\u00ba":{"d":"30,-194v0,19,17,32,36,32v19,0,36,-13,36,-32v0,-19,-17,-33,-36,-33v-19,0,-36,14,-36,33xm1,-194v0,-33,32,-59,65,-59v33,0,64,26,64,59v0,33,-31,58,-64,58v-33,0,-65,-25,-65,-58","w":132},"\u0131":{"d":"17,3r0,-186r46,-4r0,187"},"\u0142":{"d":"77,-177r0,36r-14,7r0,134r-46,3r0,-114r-14,7r0,-35r14,-8r0,-100r46,-6r0,83"},"\u00f7":{"d":"199,-71r-182,0r0,-41r182,0r0,41xm76,-168v0,-18,15,-31,32,-31v17,0,32,13,32,31v0,18,-15,32,-32,32v-17,0,-32,-14,-32,-32xm76,-15v0,-18,15,-32,32,-32v17,0,32,14,32,32v0,18,-15,32,-32,32v-17,0,-32,-14,-32,-32","w":216},"\u00be":{"d":"233,-116v-12,17,-19,38,-29,56r29,0r0,-56xm264,-148r0,88r28,0r-6,27r-22,0r0,33r-31,4r0,-37r-63,0r0,-13r58,-102r36,0xm254,-253r-149,259r-30,0r151,-259r28,0xm49,-166r0,-22v36,9,49,-37,13,-38v-12,0,-21,6,-27,15r-25,-14v20,-39,105,-39,107,13v1,18,-10,25,-25,34v54,21,25,80,-30,80v-21,0,-43,-9,-55,-25r24,-16v12,18,56,21,57,-5v1,-19,-18,-23,-39,-22","w":300},"\u00bc":{"d":"233,-116v-12,17,-19,38,-29,56r29,0r0,-56xm264,-148r0,88r28,0r-6,27r-22,0r0,33r-31,4r0,-37r-63,0r0,-13r58,-102r36,0xm237,-253r-149,259r-30,0r151,-259r28,0xm48,-205r-28,19r-12,-16r71,-51r0,152r-31,2r0,-106","w":300},"\u00b9":{"d":"62,-205r-28,19r-12,-16r71,-51r0,152r-31,2r0,-106","w":119},"\u00d7":{"d":"80,-91r-63,-63r28,-29r63,63r63,-63r28,29r-63,63r63,62r-28,29r-63,-63r-63,63r-28,-29","w":216},"\u00ae":{"d":"144,6v-69,0,-134,-48,-134,-129v0,-81,65,-130,134,-130v69,0,134,49,134,130v0,81,-65,129,-134,129xm238,-123v0,-59,-43,-99,-94,-99v-52,0,-94,40,-94,99v0,59,42,99,94,99v51,0,94,-40,94,-99xm122,-113r0,60r-31,0r0,-141v50,1,112,-10,112,42v0,26,-15,37,-39,38r37,61r-32,0r-33,-60r-14,0xm122,-136v22,-1,52,6,50,-19v-1,-22,-29,-15,-50,-16r0,35","w":288},"\u00de":{"d":"24,-247r48,-6r0,44v67,-9,105,39,103,78v-2,56,-41,86,-103,81r0,50r-48,3r0,-250xm72,-163r0,68v31,2,55,-3,55,-34v0,-30,-24,-36,-55,-34","w":180},"\u00a6":{"d":"20,-243r40,0r0,126r-40,0r0,-126xm20,-63r40,0r0,126r-40,0r0,-126"},"\u00d0":{"d":"112,-150r0,45r-44,0r0,59v61,9,93,-30,92,-77v-1,-54,-34,-85,-92,-78r0,51r44,0xm21,-105r-20,0r0,-45r20,0r0,-97r75,0v61,0,114,54,114,122v0,109,-83,134,-189,125r0,-105","w":219},"\u00bd":{"d":"177,0v25,-33,66,-61,79,-104v0,-14,-9,-21,-23,-21v-33,0,-33,43,-6,45r-20,24v-11,-6,-33,-17,-33,-49v0,-27,26,-47,56,-47v37,0,59,23,59,50v0,30,-32,54,-52,74r55,0r-8,28r-107,0xm224,-253r-148,259r-30,0r150,-259r28,0xm48,-205r-28,19r-12,-16r71,-51r0,152r-31,2r0,-106","w":300},"\u2212":{"d":"199,-71r-182,0r0,-41r182,0r0,41","w":216},"\u00f0":{"d":"52,-91v0,31,27,55,58,55v31,0,58,-24,58,-55v0,-31,-27,-56,-58,-56v-31,0,-58,25,-58,56xm54,-245r41,-8v8,5,15,11,23,16r54,-14r14,23r-43,11v38,32,69,72,69,126v0,55,-48,97,-102,97v-54,0,-101,-42,-101,-97v1,-58,51,-104,112,-97v-4,-6,-10,-12,-17,-18r-51,14r-14,-24r41,-11v-8,-6,-17,-12,-26,-18","w":219},"\u00b1":{"d":"88,-138r0,-45r40,0r0,45r71,0r0,41r-71,0r0,45r-40,0r0,-45r-71,0r0,-41r71,0xm17,0r0,-40r182,0r0,40r-182,0","w":216},"\u00c7":{"d":"85,73r6,-15v16,6,44,14,47,-9v-3,-21,-34,-2,-38,-17r18,-28v-62,-10,-105,-61,-105,-127v0,-89,93,-158,176,-118r0,51v-51,-35,-127,-3,-127,67v0,70,76,100,127,66r0,51v-10,6,-32,14,-53,11r-11,18v21,-6,45,3,44,25v-2,39,-55,40,-84,25","w":203},"\u00fe":{"d":"64,-253r0,88v53,-59,145,0,145,75v0,67,-85,129,-145,76r0,73r-45,6r0,-312xm60,-91v0,30,22,55,53,55v31,0,53,-25,53,-55v0,-30,-22,-56,-53,-56v-31,0,-53,26,-53,56","w":219},"\u00a9":{"d":"144,6v-69,0,-134,-48,-134,-129v0,-81,65,-130,134,-130v69,0,134,49,134,130v0,81,-65,129,-134,129xm238,-123v0,-59,-43,-99,-94,-99v-52,0,-94,40,-94,99v0,59,42,99,94,99v51,0,94,-40,94,-99xm180,-104r31,0v-5,35,-32,54,-62,54v-44,0,-72,-33,-72,-75v0,-81,123,-107,133,-22r-30,0v-15,-41,-71,-23,-67,22v-7,45,59,63,67,21","w":288},"\u00ac":{"d":"159,-32r0,-79r-142,0r0,-40r182,0r0,119r-40,0","w":216},"\u00b2":{"d":"7,-101v25,-34,66,-61,80,-104v0,-14,-10,-21,-24,-21v-33,0,-33,43,-6,45r-19,24v-11,-6,-34,-17,-34,-49v0,-27,27,-47,57,-47v37,0,59,23,59,50v0,30,-32,53,-52,73r54,0r-8,29r-107,0","w":119},"\u00b3":{"d":"46,-166r0,-22v35,8,49,-37,13,-38v-12,0,-22,6,-28,15r-25,-14v20,-38,106,-39,108,13v1,18,-10,25,-25,34v19,5,28,19,28,33v3,55,-88,61,-113,22r24,-16v11,17,54,22,56,-5v0,-19,-17,-23,-38,-22","w":119},"\u2122":{"d":"222,-247r34,90r33,-90r55,0r0,148r-38,0r-1,-101r-35,101r-29,0r-36,-101r0,101r-38,0r0,-148r55,0xm139,-247r0,31r-42,0r0,117r-40,0r0,-117r-41,0r0,-31r123,0","w":360},"\u00b0":{"d":"72,-166v18,0,33,-17,33,-35v0,-18,-15,-35,-33,-35v-18,0,-33,17,-33,35v0,18,15,35,33,35xm72,-150v-29,0,-51,-22,-51,-51v0,-29,22,-52,51,-52v29,0,51,23,51,52v0,29,-22,51,-51,51","w":144},"\u00c1":{"d":"195,0r-29,-57r-94,0r-27,57r-52,0r125,-253r130,253r-53,0xm125,-264r-36,0r33,-52r56,0xm118,-154r-27,55r54,0","w":240},"\u00c2":{"d":"195,0r-29,-57r-94,0r-27,57r-52,0r125,-253r130,253r-53,0xm96,-316r45,0r41,52r-41,0r-23,-29r-23,29r-40,0xm118,-154r-27,55r54,0","w":240},"\u00c4":{"d":"195,0r-29,-57r-94,0r-27,57r-52,0r125,-253r130,253r-53,0xm157,-240v0,-15,12,-27,27,-27v15,0,26,12,26,27v0,15,-11,27,-26,27v-15,0,-27,-12,-27,-27xm25,-240v0,-15,11,-27,26,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27xm118,-154r-27,55r54,0","w":240},"\u00c0":{"d":"195,0r-29,-57r-94,0r-27,57r-52,0r125,-253r130,253r-53,0xm148,-264r-36,0r-53,-52r55,0xm118,-154r-27,55r54,0","w":240},"\u00c5":{"d":"195,0r-29,-57r-94,0r-27,57r-52,0r115,-234v-40,-9,-35,-76,10,-76v45,0,52,69,9,76r121,234r-53,0xm118,-154r-27,55r54,0xm118,-291v-10,0,-18,9,-18,19v0,10,7,19,18,19v10,0,19,-9,19,-19v0,-10,-9,-19,-19,-19","w":240},"\u00c3":{"d":"195,0r-29,-57r-94,0r-27,57r-52,0r125,-253r130,253r-53,0xm94,-310v24,0,58,30,67,-2r23,0v-5,22,-14,43,-40,43v-23,0,-61,-29,-68,3r-23,0v3,-22,17,-44,41,-44xm118,-154r-27,55r54,0","w":240},"\u00c9":{"d":"25,-247r141,0r0,46r-93,0r0,53r85,0r0,45r-85,0r0,57r93,0r0,46r-141,0r0,-247xm98,-264r-36,0r34,-52r56,0","w":183},"\u00ca":{"d":"25,-247r141,0r0,46r-93,0r0,53r85,0r0,45r-85,0r0,57r93,0r0,46r-141,0r0,-247xm69,-316r45,0r42,52r-41,0r-23,-29r-23,29r-41,0","w":183},"\u00cb":{"d":"25,-247r141,0r0,46r-93,0r0,53r85,0r0,45r-85,0r0,57r93,0r0,46r-141,0r0,-247xm25,-289v0,-15,11,-27,26,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27xm107,-289v0,-15,11,-27,26,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27","w":183},"\u00c8":{"d":"25,-247r141,0r0,46r-93,0r0,53r85,0r0,45r-85,0r0,57r93,0r0,46r-141,0r0,-247xm122,-264r-36,0r-54,-52r56,0","w":183},"\u00cd":{"d":"73,0r-48,0r0,-247r48,0r0,247xm56,-264r-36,0r34,-52r56,0","w":97},"\u00ce":{"d":"73,0r-48,0r0,-247r48,0r0,247xm28,-316r45,0r41,52r-41,0r-23,-29r-23,29r-40,0","w":97},"\u00cf":{"d":"73,0r-48,0r0,-247r48,0r0,247xm-17,-289v0,-15,12,-27,27,-27v15,0,26,12,26,27v0,15,-11,27,-26,27v-15,0,-27,-12,-27,-27xm65,-289v0,-15,11,-27,26,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27","w":97},"\u00cc":{"d":"73,0r-48,0r0,-247r48,0r0,247xm80,-264r-36,0r-54,-52r56,0","w":97},"\u00d1":{"d":"71,0r-49,0r1,-253r151,146r0,-140r50,0r0,253v-54,-45,-101,-97,-153,-144r0,138xm96,-310v24,0,58,30,67,-2r23,0v-5,22,-14,43,-40,43v-23,0,-61,-28,-69,3r-23,0v3,-22,18,-44,42,-44","w":240},"\u00d3":{"d":"62,-123v0,47,31,82,77,82v46,0,78,-35,78,-82v0,-47,-32,-83,-78,-83v-46,0,-77,36,-77,83xm13,-123v0,-72,55,-130,126,-130v71,0,127,58,127,130v0,72,-56,129,-127,129v-71,0,-126,-57,-126,-129xm145,-264r-36,0r34,-52r56,0","w":278},"\u00d4":{"d":"62,-123v0,47,31,82,77,82v46,0,78,-35,78,-82v0,-47,-32,-83,-78,-83v-46,0,-77,36,-77,83xm13,-123v0,-72,55,-130,126,-130v71,0,127,58,127,130v0,72,-56,129,-127,129v-71,0,-126,-57,-126,-129xm117,-316r45,0r41,52r-41,0r-23,-29r-23,29r-40,0","w":278},"\u00d6":{"d":"15,-268v0,-15,11,-26,26,-26v15,0,27,11,27,26v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27xm215,-268v0,-15,12,-26,27,-26v15,0,27,11,27,26v0,15,-12,27,-27,27v-15,0,-27,-12,-27,-27xm62,-123v0,47,31,82,77,82v46,0,78,-35,78,-82v0,-47,-32,-83,-78,-83v-46,0,-77,36,-77,83xm13,-123v0,-72,55,-130,126,-130v71,0,127,58,127,130v0,72,-56,129,-127,129v-71,0,-126,-57,-126,-129","w":278},"\u00d2":{"d":"62,-123v0,47,31,82,77,82v46,0,78,-35,78,-82v0,-47,-32,-83,-78,-83v-46,0,-77,36,-77,83xm13,-123v0,-72,55,-130,126,-130v71,0,127,58,127,130v0,72,-56,129,-127,129v-71,0,-126,-57,-126,-129xm169,-264r-36,0r-53,-52r55,0","w":278},"\u00d5":{"d":"62,-123v0,47,31,82,77,82v46,0,78,-35,78,-82v0,-47,-32,-83,-78,-83v-46,0,-77,36,-77,83xm13,-123v0,-72,55,-130,126,-130v71,0,127,58,127,130v0,72,-56,129,-127,129v-71,0,-126,-57,-126,-129xm115,-310v24,0,58,30,67,-2r23,0v-5,22,-14,43,-40,43v-23,0,-61,-28,-69,3r-23,0v3,-22,18,-44,42,-44","w":278},"\u0160":{"d":"222,-238r0,53v-15,-21,-84,-38,-86,6v0,25,33,31,51,40v23,12,48,30,48,68v0,75,-107,100,-149,52r0,-53v12,13,34,32,67,32v41,0,42,-43,12,-55v-38,-15,-75,-25,-78,-82v-3,-66,83,-96,135,-61xm168,-316r-41,52r-45,0r-41,-52r40,0r23,29r23,-29r41,0","w":180},"\u00da":{"d":"115,6v-44,0,-92,-24,-92,-87r0,-166r48,0r0,162v0,22,9,47,44,47v35,0,44,-25,44,-47r0,-162r47,0r0,166v0,63,-47,87,-91,87xm118,-264r-36,0r34,-52r55,0","w":229},"\u00db":{"d":"115,6v-44,0,-92,-24,-92,-87r0,-166r48,0r0,162v0,22,9,47,44,47v35,0,44,-25,44,-47r0,-162r47,0r0,166v0,63,-47,87,-91,87xm89,-316r45,0r41,52r-40,0r-23,-29r-23,29r-41,0","w":229},"\u00dc":{"d":"41,-289v0,-15,12,-27,27,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-27,-12,-27,-27xm134,-289v0,-15,11,-27,26,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27xm115,6v-44,0,-92,-24,-92,-87r0,-166r48,0r0,162v0,22,9,47,44,47v35,0,44,-25,44,-47r0,-162r47,0r0,166v0,63,-47,87,-91,87","w":229},"\u00d9":{"d":"115,6v-44,0,-92,-24,-92,-87r0,-166r48,0r0,162v0,22,9,47,44,47v35,0,44,-25,44,-47r0,-162r47,0r0,166v0,63,-47,87,-91,87xm141,-264r-36,0r-53,-52r56,0","w":229},"\u00dd":{"d":"142,-247r51,0r-113,247r-49,0r40,-89r-85,-158r53,0r56,108xm110,-264r-36,0r34,-52r56,0","w":180},"\u0178":{"d":"153,-247r51,0r-113,247r-50,0r40,-89r-84,-158r53,0r55,108xm37,-289v0,-15,12,-27,27,-27v15,0,26,12,26,27v0,15,-11,27,-26,27v-15,0,-27,-12,-27,-27xm119,-289v0,-15,11,-27,26,-27v15,0,27,12,27,27v0,15,-12,27,-27,27v-15,0,-26,-12,-26,-27","w":180},"\u017d":{"d":"59,-203r0,-44r181,0r-111,203r100,0r0,44r-181,0r113,-203r-102,0xm178,-316r-41,52r-45,0r-41,-52r40,0r23,29r23,-29r41,0","w":200},"\u00e9":{"d":"23,-247r141,0r0,46r-93,0r0,55r71,0r0,46r-71,0r0,54r93,0r0,46r-141,0r0,-247xm109,-266r-36,0r34,-53r56,0","w":200},"\u00ea":{"d":"23,-247r141,0r0,46r-93,0r0,55r71,0r0,46r-71,0r0,54r93,0r0,46r-141,0r0,-247xm73,-318r45,0r41,52r-41,0r-23,-29r-23,29r-40,0","w":200},"\u00eb":{"d":"23,-247r141,0r0,46r-93,0r0,55r71,0r0,46r-71,0r0,54r93,0r0,46r-141,0r0,-247xm25,-295v0,-15,12,-26,27,-26v15,0,26,11,26,26v0,15,-11,27,-26,27v-15,0,-27,-12,-27,-27xm107,-295v0,-15,12,-26,27,-26v15,0,26,11,26,26v0,15,-11,27,-26,27v-15,0,-27,-12,-27,-27","w":200},"\u00e8":{"d":"23,-247r141,0r0,46r-93,0r0,55r71,0r0,46r-71,0r0,54r93,0r0,46r-141,0r0,-247xm137,-266r-36,0r-54,-53r56,0","w":200},"\u00f1":{"d":"137,-285v24,0,58,30,67,-2r24,0v-5,22,-14,44,-40,44v-23,0,-61,-30,-69,2r-23,0v3,-22,17,-44,41,-44xm315,0r-51,0r-33,-129r-72,134r-73,-134r-32,129r-50,0r64,-253r91,164r92,-164","w":318},"\u00f3":{"d":"116,-212r-36,0r34,-53r56,0","w":219},"\u00f4":{"d":"88,-265r45,0r41,53r-41,0r-23,-30r-23,30r-40,0","w":219},"\u00f6":{"d":"43,-238v0,-15,12,-26,27,-26v15,0,26,11,26,26v0,15,-11,27,-26,27v-15,0,-27,-12,-27,-27xm125,-238v0,-15,12,-26,27,-26v15,0,26,11,26,26v0,15,-11,27,-26,27v-15,0,-27,-12,-27,-27","w":219},"\u00f2":{"d":"140,-212r-36,0r-54,-53r56,0","w":219},"\u00f5":{"d":"86,-259v22,0,58,29,67,-1r23,0v-5,22,-14,43,-40,43v0,0,-61,-30,-69,2r-23,0v3,-22,18,-44,42,-44","w":219},"\u0161":{"d":"144,-265r-12,15v9,2,18,5,26,10r0,53v-14,-20,-84,-34,-84,7v0,25,33,32,51,43v23,14,47,32,47,69v0,74,-106,95,-146,49r0,-54v12,13,33,33,66,33v43,-1,38,-44,7,-54v-33,-19,-72,-33,-73,-84v0,-21,7,-37,19,-50r-28,-37r40,0r15,19v6,-3,14,-4,21,-5r10,-14r41,0","w":159},"\u00fd":{"d":"188,-179r-109,242r-45,-6r38,-80r-80,-156r45,-10r58,117r49,-117xm96,-212r-36,0r34,-53r56,0","w":180},"\u017e":{"d":"14,-143r9,-40r133,0r-84,143r84,0r-8,40r-145,0r84,-143r-73,0xm144,-265r-41,53r-45,0r-41,-53r40,0r23,30r23,-30r41,0","w":159},"m":{"d":"55,0r-51,0r65,-253r91,164r92,-164r63,253r-50,0r-32,-129r-74,134r-72,-134","w":318},"o":{"d":"62,-123v0,47,31,82,77,82v46,0,78,-35,78,-82v0,-47,-32,-83,-78,-83v-46,0,-77,36,-77,83xm13,-123v0,-72,55,-130,126,-130v71,0,127,58,127,130v0,72,-56,129,-127,129v-71,0,-126,-57,-126,-129","w":278},"a":{"d":"195,0r-29,-57r-94,0r-27,57r-52,0r125,-253r130,253r-53,0xm118,-154r-27,55r54,0","w":240},"n":{"d":"227,0r-50,0r0,-138r-152,144r0,-253r50,0r0,140r152,-146r0,253","w":252},"b":{"d":"131,-146r0,-55v-29,-2,-58,1,-58,27v0,26,28,31,58,28xm179,-247r0,247r-94,0v-83,5,-98,-108,-32,-129v-50,-30,-45,-113,43,-118r83,0xm131,-108v-34,-2,-69,0,-69,31v0,31,35,33,69,31r0,-62","w":203},"c":{"d":"190,-123v0,89,-93,157,-176,117r0,-51v50,34,127,4,127,-66v0,-70,-75,-102,-127,-67r0,-51v81,-40,176,28,176,118","w":199},"d":{"d":"60,-123v0,55,37,83,95,78r0,-157v-59,-5,-95,24,-95,79xm201,0r-63,0v-79,0,-125,-55,-125,-123v0,-68,46,-124,125,-124r63,0r0,247","w":225},"e":{"d":"18,-247r140,0r0,247r-140,0r0,-46r93,0r0,-57r-86,0r0,-45r86,0r0,-53r-93,0r0,-46","w":183},"f":{"d":"144,-247r0,247r-47,0r0,-99r-86,0r0,-46r86,0r0,-57r-90,0r0,-45r137,0","w":169},"g":{"d":"181,-123v0,-82,-101,-105,-150,-59r0,-54v83,-47,199,11,199,113v0,72,-55,129,-126,129v-44,0,-73,-16,-86,-30r0,-117r104,0r0,45r-57,0r0,47v51,25,116,-11,116,-74","w":243},"h":{"d":"73,-247r0,97r100,0r0,-97r47,0r0,247r-47,0r0,-105r-100,0r0,105r-48,0r0,-247r48,0","w":245},"i":{"d":"73,0r-48,0r0,-247r48,0r0,247","w":97},"j":{"d":"23,-247r48,0r0,167v1,42,28,41,56,35r0,45v-55,15,-104,-15,-104,-72r0,-175","w":134},"k":{"d":"-1,-247r59,0r83,110r0,-110r47,0r0,247r-47,0r0,-129r-84,129r-60,0r90,-131","w":213},"l":{"d":"145,0r-138,0r0,-46r90,0r0,-201r48,0r0,247","w":169},"p":{"d":"62,-169v0,30,30,36,63,33r0,-66v-33,-2,-63,3,-63,33xm125,0r0,-91v-64,4,-112,-16,-112,-78v0,-81,78,-82,159,-78r0,247r-47,0","w":197},"q":{"d":"38,-40v-67,-77,-8,-213,97,-213v71,0,127,58,127,130v0,96,-107,162,-192,111r-31,33r-30,-29xm135,-206v-64,0,-97,78,-64,131r38,-40r32,29r-37,39v55,22,109,-18,109,-76v0,-47,-32,-83,-78,-83","w":275},"r":{"d":"135,0r0,-131r-73,131r-57,0r61,-103v-21,-6,-50,-27,-50,-66v0,-82,83,-82,166,-78r0,247r-47,0xm65,-169v0,33,35,35,70,33r0,-66v-35,-2,-70,0,-70,33","w":207},"s":{"d":"24,-185r0,-53v51,-35,138,-5,134,61v-3,57,-40,67,-77,82v-31,12,-30,55,12,55v33,0,54,-19,66,-32r0,53v-12,14,-38,25,-64,25v-52,0,-84,-31,-84,-77v1,-54,42,-68,79,-82v32,-12,21,-54,-14,-54v-22,0,-42,11,-52,22","w":175},"t":{"d":"182,-247r0,46r-63,0r0,201r-47,0r0,-201r-63,0r0,-46r173,0","w":191},"u":{"d":"115,6v-44,0,-92,-24,-92,-87r0,-166r48,0r0,162v0,22,9,47,44,47v35,0,44,-25,44,-47r0,-162r47,0r0,166v0,63,-47,87,-91,87","w":229},"v":{"d":"108,-107r56,-140r54,0r-110,252r-112,-252r52,0","w":214},"w":{"d":"45,-247r67,151r26,-60r-42,-91r48,0r17,39r16,-39r50,0r-43,93r26,58r66,-151r51,0r-115,253r-50,-110r-51,110r-115,-253r49,0","w":323},"x":{"d":"220,0r-55,0r-54,-90r-54,90r-57,0r80,-126r-76,-121r56,0r51,85r51,-85r54,0r-76,121","w":219},"y":{"d":"-4,-247r52,0r47,108r56,-108r52,0r-84,158r40,89r-50,0","w":201},"z":{"d":"188,-247r0,44r-102,0r113,203r-181,0r0,-44r100,0r-111,-203r181,0","w":205},"\u00e1":{"d":"73,-101r0,55v29,2,58,-1,58,-27v0,-26,-28,-31,-58,-28xm25,0r0,-247r93,0v83,-5,99,107,33,129v49,30,44,113,-43,118r-83,0xm73,-139v34,2,68,0,68,-31v0,-31,-34,-33,-68,-31r0,62","w":203},"\u00e0":{"d":"166,0r-141,0r0,-247r141,0r0,46r-93,0r0,57r85,0r0,45r-85,0r0,53r93,0r0,46","w":183},"\u00e2":{"d":"25,-247r50,0r0,138r152,-144r0,253r-50,0r0,-140r-152,146r0,-253","w":252},"\u00e4":{"d":"-7,-253r52,0r27,57r94,0r29,-57r53,0r-131,253xm118,-99r27,-55r-54,0","w":240},"\u00e3":{"d":"25,-247r138,0r0,46r-90,0r0,201r-48,0r0,-247","w":169},"\u00a0":{"w":100}}});


Cufon.DOM.ready(function() {
	cuf();
});

function cuf() {
	
	return; 

    ua = navigator.userAgent;
    ual = navigator.userAgent.toLowerCase();
	
	version = $.browser.version.split('.');
	if(
		(
//			( ual.search('firefox') > -1 && parseInt(version[0]) <= 1 && parseInt(version[1]) <= 9 && parseInt(version[2]) <= 0) ) ||
			( ual.search('firefox') > -1 )  ||			
//			( ual.search('msie') > -1  ) ||
			( ual.search('android') > -1 && parseInt(version[0]) < 533 ) ||		
			( ual.search('iphone') > -1 && parseInt(version[0]) < 533 ) //assume!	
		)
	)
	{
		Cufon.set('AMBKabelCufon').replace("h1, #article .title, a:not(a:has(.ingress):not(a:has(.ajax))), .manifesto h2, .manifesto p");
	}	
}

(function($) {
$.fn.reverseOrder = function() {
	return this.each(function() {
		$(this).prependTo( $(this).parent() );
	});
};
})(jQuery);

$.fn.matchUntil = function(expr) {
    var match = [];
    this.each(function(){
        match = [this];
        for ( var i = this.nextSibling; i; i = i.nextSibling ) {
                if ( i.nodeType != 1 ) { continue; }
                if ( $(i).filter(expr).length > 0 ) { break; }
                match.push( i );
        }
    });
    return this.pushStack( match );
};


/*
 * jQuery.appear
 * http://code.google.com/p/jquery-appear/
 *
 * Copyright (c) 2009 Michael Hixson
 * Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
*/
(function($){$.fn.appear=function(f,o){var s=$.extend({one:true},o);return this.each(function(){var t=$(this);t.appeared=false;if(!f){t.trigger('appear',s.data);return;}var w=$(window);var c=function(){if(!t.is(':visible')){t.appeared=false;return;}var a=w.scrollLeft();var b=w.scrollTop();var o=t.offset();var x=o.left;var y=o.top;if(y+t.height()>=b&&y<=b+w.height()&&x+t.width()>=a&&x<=a+w.width()){if(!t.appeared)t.trigger('appear',s.data);}else{t.appeared=false;}};var m=function(){t.appeared=true;if(s.one){w.unbind('scroll',c);var i=$.inArray(c,$.fn.appear.checks);if(i>=0)$.fn.appear.checks.splice(i,1);}f.apply(this,arguments);};if(s.one)t.one('appear',s.data,m);else t.bind('appear',s.data,m);w.scroll(c);$.fn.appear.checks.push(c);(c)();});};$.extend($.fn.appear,{checks:[],timeout:null,checkAll:function(){var l=$.fn.appear.checks.length;if(l>0)while(l--)($.fn.appear.checks[l])();},run:function(){if($.fn.appear.timeout)clearTimeout($.fn.appear.timeout);$.fn.appear.timeout=setTimeout($.fn.appear.checkAll,20);}});$.each(['append','prepend','after','before','attr','removeAttr','addClass','removeClass','toggleClass','remove','css','show','hide'],function(i,n){var u=$.fn[n];if(u){$.fn[n]=function(){var r=u.apply(this,arguments);$.fn.appear.run();return r;}}});})(jQuery);


/*************************************************
**  jQuery Masonry version 1.3.2
**  Copyright David DeSandro, licensed MIT
**  http://desandro.com/resources/jquery-masonry
**************************************************/
(function(e){var n=e.event,o;n.special.smartresize={setup:function(){e(this).bind("resize",n.special.smartresize.handler)},teardown:function(){e(this).unbind("resize",n.special.smartresize.handler)},handler:function(j,l){var g=this,d=arguments;j.type="smartresize";o&&clearTimeout(o);o=setTimeout(function(){jQuery.event.handle.apply(g,d)},l==="execAsap"?0:100)}};e.fn.smartresize=function(j){return j?this.bind("smartresize",j):this.trigger("smartresize",["execAsap"])};e.fn.masonry=function(j,l){var g=
{getBricks:function(d,b,a){var c=a.itemSelector===undefined;b.$bricks=a.appendedContent===undefined?c?d.children():d.find(a.itemSelector):c?a.appendedContent:a.appendedContent.filter(a.itemSelector)},placeBrick:function(d,b,a,c,h){b=Math.min.apply(Math,a);for(var i=b+d.outerHeight(true),f=a.length,k=f,m=c.colCount+1-f;f--;)if(a[f]==b)k=f;d.applyStyle({left:c.colW*k+c.posLeft,top:b},e.extend(true,{},h.animationOptions));for(f=0;f<m;f++)c.colY[k+f]=i},setup:function(d,b,a){g.getBricks(d,a,b);if(a.masoned)a.previousData=
d.data("masonry");a.colW=b.columnWidth===undefined?a.masoned?a.previousData.colW:a.$bricks.outerWidth(true):b.columnWidth;a.colCount=Math.floor(d.width()/a.colW);a.colCount=Math.max(a.colCount,1)},arrange:function(d,b,a){var c;if(!a.masoned||b.appendedContent!==undefined)a.$bricks.css("position","absolute");if(a.masoned){a.posTop=a.previousData.posTop;a.posLeft=a.previousData.posLeft}else{d.css("position","relative");var h=e(document.createElement("div"));d.prepend(h);a.posTop=Math.round(h.position().top);
a.posLeft=Math.round(h.position().left);h.remove()}if(a.masoned&&b.appendedContent!==undefined){a.colY=a.previousData.colY;for(c=a.previousData.colCount;c<a.colCount;c++)a.colY[c]=a.posTop}else{a.colY=[];for(c=a.colCount;c--;)a.colY.push(a.posTop)}e.fn.applyStyle=a.masoned&&b.animate?e.fn.animate:e.fn.css;b.singleMode?a.$bricks.each(function(){var i=e(this);g.placeBrick(i,a.colCount,a.colY,a,b)}):a.$bricks.each(function(){var i=e(this),f=Math.ceil(i.outerWidth(true)/a.colW);f=Math.min(f,a.colCount);
if(f===1)g.placeBrick(i,a.colCount,a.colY,a,b);else{var k=a.colCount+1-f,m=[];for(c=0;c<k;c++){var p=a.colY.slice(c,c+f);m[c]=Math.max.apply(Math,p)}g.placeBrick(i,k,m,a,b)}});a.wallH=Math.max.apply(Math,a.colY);d.applyStyle({height:a.wallH-a.posTop},e.extend(true,[],b.animationOptions));a.masoned||setTimeout(function(){d.addClass("masoned")},1);l.call(a.$bricks);d.data("masonry",a)},resize:function(d,b,a){a.masoned=!!d.data("masonry");var c=d.data("masonry").colCount;g.setup(d,b,a);a.colCount!=c&&
g.arrange(d,b,a)}};return this.each(function(){var d=e(this),b={};b.masoned=!!d.data("masonry");var a=b.masoned?d.data("masonry").options:{},c=e.extend({},e.fn.masonry.defaults,a,j),h=a.resizeable;b.options=c.saveOptions?c:a;l=l||function(){};g.getBricks(d,b,c);if(!b.$bricks.length)return this;g.setup(d,c,b);g.arrange(d,c,b);!h&&c.resizeable&&e(window).bind("smartresize.masonry",function(){g.resize(d,c,b)});h&&!c.resizeable&&e(window).unbind("smartresize.masonry")})};e.fn.masonry.defaults={singleMode:false,
columnWidth:undefined,itemSelector:undefined,appendedContent:undefined,saveOptions:true,resizeable:true,animate:false,animationOptions:{}}})(jQuery);

/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

/*
 * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
 *
 * Uses the built in easing capabilities added In jQuery 1.1
 * to offer multiple easing options
 *
 * TERMS OF USE - jQuery Easing
 * 
 * Open source under the BSD License. 
 * 
 * Copyright Â© 2008 George McGinley Smith
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
*/

// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];

jQuery.extend( jQuery.easing,
{
	def: 'easeOutQuad',
	swing: function (x, t, b, c, d) {
		//alert(jQuery.easing.default);
		return jQuery.easing[jQuery.easing.def](x, t, b, c, d);
	},
	easeInQuad: function (x, t, b, c, d) {
		return c*(t/=d)*t + b;
	},
	easeOutQuad: function (x, t, b, c, d) {
		return -c *(t/=d)*(t-2) + b;
	},
	easeInOutQuad: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t + b;
		return -c/2 * ((--t)*(t-2) - 1) + b;
	},
	easeInCubic: function (x, t, b, c, d) {
		return c*(t/=d)*t*t + b;
	},
	easeOutCubic: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t + 1) + b;
	},
	easeInOutCubic: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t + b;
		return c/2*((t-=2)*t*t + 2) + b;
	},
	easeInQuart: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t + b;
	},
	easeOutQuart: function (x, t, b, c, d) {
		return -c * ((t=t/d-1)*t*t*t - 1) + b;
	},
	easeInOutQuart: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t + b;
		return -c/2 * ((t-=2)*t*t*t - 2) + b;
	},
	easeInQuint: function (x, t, b, c, d) {
		return c*(t/=d)*t*t*t*t + b;
	},
	easeOutQuint: function (x, t, b, c, d) {
		return c*((t=t/d-1)*t*t*t*t + 1) + b;
	},
	easeInOutQuint: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b;
		return c/2*((t-=2)*t*t*t*t + 2) + b;
	},
	easeInSine: function (x, t, b, c, d) {
		return -c * Math.cos(t/d * (Math.PI/2)) + c + b;
	},
	easeOutSine: function (x, t, b, c, d) {
		return c * Math.sin(t/d * (Math.PI/2)) + b;
	},
	easeInOutSine: function (x, t, b, c, d) {
		return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b;
	},
	easeInExpo: function (x, t, b, c, d) {
		return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b;
	},
	easeOutExpo: function (x, t, b, c, d) {
		return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b;
	},
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	},
	easeInCirc: function (x, t, b, c, d) {
		return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b;
	},
	easeOutCirc: function (x, t, b, c, d) {
		return c * Math.sqrt(1 - (t=t/d-1)*t) + b;
	},
	easeInOutCirc: function (x, t, b, c, d) {
		if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b;
		return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b;
	},
	easeInElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
	},
	easeOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d)==1) return b+c;  if (!p) p=d*.3;
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
	},
	easeInOutElastic: function (x, t, b, c, d) {
		var s=1.70158;var p=0;var a=c;
		if (t==0) return b;  if ((t/=d/2)==2) return b+c;  if (!p) p=d*(.3*1.5);
		if (a < Math.abs(c)) { a=c; var s=p/4; }
		else var s = p/(2*Math.PI) * Math.asin (c/a);
		if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
		return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b;
	},
	easeInBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*(t/=d)*t*((s+1)*t - s) + b;
	},
	easeOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158;
		return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
	},
	easeInOutBack: function (x, t, b, c, d, s) {
		if (s == undefined) s = 1.70158; 
		if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
		return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
	},
	easeInBounce: function (x, t, b, c, d) {
		return c - jQuery.easing.easeOutBounce (x, d-t, 0, c, d) + b;
	},
	easeOutBounce: function (x, t, b, c, d) {
		if ((t/=d) < (1/2.75)) {
			return c*(7.5625*t*t) + b;
		} else if (t < (2/2.75)) {
			return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
		} else if (t < (2.5/2.75)) {
			return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
		} else {
			return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
		}
	},
	easeInOutBounce: function (x, t, b, c, d) {
		if (t < d/2) return jQuery.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b;
		return jQuery.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b;
	}
});

/*
 *
 * TERMS OF USE - EASING EQUATIONS
 * 
 * Open source under the BSD License. 
 * 
 * Copyright Â© 2001 Robert Penner
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without modification, 
 * are permitted provided that the following conditions are met:
 * 
 * Redistributions of source code must retain the above copyright notice, this list of 
 * conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright notice, this list 
 * of conditions and the following disclaimer in the documentation and/or other materials 
 * provided with the distribution.
 * 
 * Neither the name of the author nor the names of contributors may be used to endorse 
 * or promote products derived from this software without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY 
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 *  COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 *  GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 
 * OF THE POSSIBILITY OF SUCH DAMAGE. 
 *
 */	

/**
 * jQuery xcolor plugin
 * Copyright (c) 2010, Robert Eisele (robert@xarg.org)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * Date: 06/21/2010
 *
 * @author Robert Eisele
 * @version 1.5
 *
 * @see http://www.xarg.org/project/jquery-color-plugin-xcolor/
 **/

(function ($) {

	// http://www.w3.org/TR/css3-color/#svg-color
	var color_names = {
		transparent: 16777216,
		aliceblue: 15792383,
		antiquewhite: 16444375,
		aqua: 65535,
		aquamarine: 8388564,
		azure: 15794175,
		beige: 16119260,
		bisque: 16770244,
		black: 0,
		blanchedalmond: 16772045,
		blue: 255,
		blueviolet: 9055202,
		brown: 10824234,
		burlywood: 14596231,
		cadetblue: 6266528,
		chartreuse: 8388352,
		chocolate: 13789470,
		coral: 16744272,
		cornflowerblue: 6591981,
		cornsilk: 16775388,
		crimson: 14423100,
		cyan: 65535,
		darkblue: 139,
		darkcyan: 35723,
		darkgoldenrod: 12092939,
		darkgray: 11119017,
		darkgreen: 25600,
		darkgrey: 11119017,
		darkkhaki: 12433259,
		darkmagenta: 9109643,
		darkolivegreen: 5597999,
		darkorange: 16747520,
		darkorchid: 10040012,
		darkred: 9109504,
		darksalmon: 15308410,
		darkseagreen: 9419919,
		darkslateblue: 4734347,
		darkslategray: 3100495,
		darkslategrey: 3100495,
		darkturquoise: 52945,
		darkviolet: 9699539,
		deeppink: 16716947,
		deepskyblue: 49151,
		dimgray: 6908265,
		dimgrey: 6908265,
		dodgerblue: 2003199,
		firebrick: 11674146,
		floralwhite: 16775920,
		forestgreen: 2263842,
		fuchsia: 16711935,
		gainsboro: 14474460,
		ghostwhite: 16316671,
		gold: 16766720,
		goldenrod: 14329120,
		gray: 8421504,
		green: 32768,
		greenyellow: 11403055,
		grey: 8421504,
		honeydew: 15794160,
		hotpink: 16738740,
		indianred: 13458524,
		indigo: 4915330,
		ivory: 16777200,
		khaki: 15787660,
		lavender: 15132410,
		lavenderblush: 16773365,
		lawngreen: 8190976,
		lemonchiffon: 16775885,
		lightblue: 11393254,
		lightcoral: 15761536,
		lightcyan: 14745599,
		lightgoldenrodyellow: 16448210,
		lightgray: 13882323,
		lightgreen: 9498256,
		lightgrey: 13882323,
		lightpink: 16758465,
		lightsalmon: 16752762,
		lightseagreen: 2142890,
		lightskyblue: 8900346,
		lightslategray: 7833753,
		lightslategrey: 7833753,
		lightsteelblue: 11584734,
		lightyellow: 16777184,
		lime: 65280,
		limegreen: 3329330,
		linen: 16445670,
		magenta: 16711935,
		maroon: 8388608,
		mediumaquamarine: 6737322,
		mediumblue: 205,
		mediumorchid: 12211667,
		mediumpurple: 9662683,
		mediumseagreen: 3978097,
		mediumslateblue: 8087790,
		mediumspringgreen: 64154,
		mediumturquoise: 4772300,
		mediumvioletred: 13047173,
		midnightblue: 1644912,
		mintcream: 16121850,
		mistyrose: 16770273,
		moccasin: 16770229,
		navajowhite: 16768685,
		navy: 128,
		oldlace: 16643558,
		olive: 8421376,
		olivedrab: 7048739,
		orange: 16753920,
		orangered: 16729344,
		orchid: 14315734,
		palegoldenrod: 15657130,
		palegreen: 10025880,
		paleturquoise: 11529966,
		palevioletred: 14381203,
		papayawhip: 16773077,
		peachpuff: 16767673,
		peru: 13468991,
		pink: 16761035,
		plum: 14524637,
		powderblue: 11591910,
		purple: 8388736,
		red: 16711680,
		rosybrown: 12357519,
		royalblue: 4286945,
		saddlebrown: 9127187,
		salmon: 16416882,
		sandybrown: 16032864,
		seagreen: 3050327,
		seashell: 16774638,
		sienna: 10506797,
		silver: 12632256,
		skyblue: 8900331,
		slateblue: 6970061,
		slategray: 7372944,
		slategrey: 7372944,
		snow: 16775930,
		springgreen: 65407,
		steelblue: 4620980,
		tan: 13808780,
		teal: 32896,
		thistle: 14204888,
		tomato: 16737095,
		turquoise: 4251856,
		violet: 15631086,
		wheat: 16113331,
		white: 16777215,
		whitesmoke: 16119285,
		yellow: 16776960,
		yellowgreen: 10145074
	};

	/**
     * @constructor
     */
	function xColor(color) {

		function _normalize(n, s) {

			var m;

			if (void 0 !== n) {
				n = parseFloat(n);
			}

			if (void 0 === s) {
				s = 255;
				m = 255;
			} else if (1 === s) {

				if (void 0 === n || 1 === n) {
					return 1;
				}
				s = 100;
				m = 1;
			} else {
				m = s;
			}

			if (isNaN(n) || n <= 0) {
				return 0;
			}

			if (s < n) {
				return m;
			}

			if (n < 1 || 1 === s) {
				if (m === 1) {
					return n;
				} else {
					return (n * m) | 0;
				}
			}
			return n * m / s;
		}

		function _hsl(h,s,l) {

			h = _normalize(h, 360) / 360;
			s = _normalize(s, 1);
			l = _normalize(l, 1);

			if (0 === s) {
				l = Math.round(l * 255);
				return [l, l, l];
			}

			function _hue(v1, v2, h) {
				if (h < 0) ++h;
				if (h > 1) --h;
				if (6 * h < 1) return v1 + (v2 - v1) * 6 * h;
				if (2 * h < 1) return v2;
				if (3 * h < 2) return v1 + (v2 - v1) * (4 - 6 * h);
				return v1;
			}

			var v = l < 0.5 ? (l + l * s) : (l + s - l * s);
			var m = l + l - v;

			return [
			Math.round(255 *_hue(m, v, h + 1 / 3)),
			Math.round(255 *_hue(m, v, h)),
			Math.round(255 *_hue(m, v, h - 1 / 3)) ];
		}

		function _hsv(h,s,v) {

			h = _normalize(h, 360) / 60;
			s = _normalize(s, 1);
			v = _normalize(v, 1);

			var hi = h|0;
			var f = h - hi;

			f = (h & 1) ? f : 1 - f;

			var m = Math.round(255 * (v * (1 - s)));
			var n = Math.round(255 * (v * (1 - s * f)));

			v = Math.round(255 * v);

			switch (hi) {
				case 6:
				case 0:
					return [v, n, m];
				case 1:
					return [n, v, m];
				case 2:
					return [m, v, n];
				case 3:
					return [m, n, v];
				case 4:
					return [n, m, v];
				case 5:
					return [v, m, n];
			}
		}

		this.setColor = function (color) {

			this.success = true;

			if (typeof color === "number") {

				this.a =((color >> 24) & 0xff) / 255;
				this.r = (color >> 16) & 0xff;
				this.g = (color >>  8) & 0xff;
				this.b = (color      ) & 0xff;
				return;
			}

			while (typeof color === "object") {

				if (0 in color && 1 in color && 2 in color) {
					this.a = _normalize(color[3], 1);
					this.r = _normalize(color[0]);
					this.g = _normalize(color[1]);
					this.b = _normalize(color[2]);
					return;
				} else if ('r' in color && 'g' in color && 'b' in color) {
					this.a = _normalize(color.a, 1);
					this.r = _normalize(color.r);
					this.g = _normalize(color.g);
					this.b = _normalize(color.b);
					return;
				} else if ('h' in color && 's' in color) {

					var rgb;

					if ('l' in color) {
						rgb = _hsl(color.h, color.s, color.l);
					} else if ('v' in color) {
						rgb = _hsv(color.h, color.s, color.v);
					} else if ('b' in color) {
						rgb = _hsv(color.h, color.s, color.b);
					} else {
						break;
					}

					this.a = _normalize(color.a, 1);
					this.r = rgb[0];
					this.g = rgb[1];
					this.b = rgb[2];
					return;
				}
				break;
			}

			if (typeof color !== "string") {
				this.success = false;
				return;
			}

			color = color.toLowerCase().replace(/[^a-z0-9,.()#%]/g, '');

			var part, c;

			if (color in color_names) {

				c = color_names[color];

				this.a =(!((c >> 24) & 0xff))|0;
				this.r =  ((c >> 16) & 0xff);
				this.g =  ((c >>  8) & 0xff);
				this.b =  ((c      ) & 0xff);
				return;
			}

			// 53892983
			if (part = /^([1-9]\d*)$/.exec(color)) {

				c = parseInt(part[1], 10);

				this.a =(((c >> 24) & 0xff) || 255) / 255;
				this.r = ((c >> 16) & 0xff);
				this.g = ((c >>  8) & 0xff);
				this.b = ((c      ) & 0xff);
				return;
			}

			// #ff9000, #ff0000
			if (part = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/.exec(color)) {
				this.a = 1;
				this.r = parseInt(part[1], 16);
				this.g = parseInt(part[2], 16);
				this.b = parseInt(part[3], 16);
				return;
			}

			// #f00, fff
			if (part = /^#?([0-9a-f])([0-9a-f])([0-9a-f])$/.exec(color)) {
				this.a = 1;
				this.r = parseInt(part[1] + part[1], 16);
				this.g = parseInt(part[2] + part[2], 16);
				this.b = parseInt(part[3] + part[3], 16);
				return;
			}

			// rgb(1, 234, 56)
			if (part = /^rgba?\((\d{1,3}),(\d{1,3}),(\d{1,3})(,([0-9.]+))?\)$/.exec(color)) {
				this.a = _normalize(part[5], 1);
				this.r = _normalize(part[1]);
				this.g = _normalize(part[2]);
				this.b = _normalize(part[3]);
				return;
			}

			// rgb(66%, 55%, 44%) in [0,100]%, [0,100]%, [0,100]%
			if (part = /^rgba?\(([0-9.]+\%),([0-9.]+\%),([0-9.]+\%)(,([0-9.]+)\%?)?\)$/.exec(color)) {
				this.a = _normalize(part[5], 1);
				this.r = Math.round(_normalize(part[1], 100) * 2.55);
				this.g = Math.round(_normalize(part[2], 100) * 2.55);
				this.b = Math.round(_normalize(part[3], 100) * 2.55);
				return;
			}

			// hsv(64, 40, 16) in [0, 360], [0,100], [0,100]
			if (part = /^hs([bvl])a?\((\d{1,3}),(\d{1,3}),(\d{1,3})(,([0-9.]+))?\)$/.exec(color)) {
				var func;
				if (part[1] === "l") {
					func = _hsl;
				} else {
					func = _hsv;
				}

				c = func(parseInt(part[2], 10), parseInt(part[3], 10), parseInt(part[4], 10));

				this.a = _normalize(part[6], 1);
				this.r = c[0];
				this.g = c[1];
				this.b = c[2];
				return;
			}

			// 1, 234, 56
			if (part = /^(\d{1,3}),(\d{1,3}),(\d{1,3})(,([0-9.]+))?$/.exec(color)) {
				this.a = _normalize(part[5], 1);
				this.r = _normalize(part[1]);
				this.g = _normalize(part[2]);
				this.b = _normalize(part[3]);
				return;
			}

			this.success = false;
		}

		this.getColor = function (type) {

			if (void 0 !== type) switch (type.toLowerCase()) {
				case "rgb":
					return this.getRGB();
				case "hsv":
				case "hsb":
					return this.getHSV();
				case "hsl":
					return this.getHSL();
				case "int":
					return this.getInt();
				case "array":
					return this.getArray();
				case "fraction":
					return this.getFraction();
				case "css":
				case "style":
					return this.getCSS();
				case "name":
					return this.getName();
			}
			return this.getHex();
		}

		this.getRGB = function () {

			if (this.success) {

				return {
					r: this.r,
					g: this.g,
					b: this.b,
					a: this.a
				};
			}
			return null;
		}

		this.getCSS = function () {

			if (this.success) {

				if (this.a == 1) {
					return 'rgb(' + this.r + ', ' + this.g + ', ' + this.b + ')';
				}
				return 'rgba(' + this.r + ', ' + this.g + ', ' + this.b + ', ' + this.a + ')';
			}
			return null;
		}

		this.getArray = function () {

			if (this.success) {
				return [this.r, this.g, this.b, this.a * 100 | 0];
			}
			return null;
		}

		this.getName = function () {

			if (this.success) {

				var lowest = null;
				var lowest_ndx;

				var table = color_names;

				var a = this.getHSL();

				for (var i in table) {

					/* We do not handle transparency */
					var b = new xColor(table[i]).getHSL();

					var tmp = Math.sqrt(0.5 * (a.h - b.h) * (a.h - b.h) + 0.5 * (a.s - b.s) * (a.s - b.s) + (a.l - b.l) * (a.l - b.l));

					if (null === lowest || tmp < lowest) {
						lowest = tmp;
						lowest_ndx = i;
					}
				}
				return lowest_ndx;
			}
			return null;
		}

		this.getFraction = function () {

			if (this.success) {

				return {
					r: this.r / 255,
					g: this.g / 255,
					b: this.b / 255,
					a: this.a
				};
			}
			return null;
		}

		this.getHSL = function () {

			// inspiration: http://130.113.54.154/~monger/hsl-rgb.html
			if (this.success) {

				var r = this.r / 255;
				var g = this.g / 255;
				var b = this.b / 255;

				var min = Math.min(r, g, b);
				var max = Math.max(r, g, b);
				var delta = max - min;

				var h, s, l = (max + min) / 2;

				if (0 == delta) {
					h = 0;
					s = 0;
				} else {

					if (max == r) {
						h = (g - b) / delta;
					} else if (max == g) {
						h = 2 + (b - r) / delta;
					} else if (max == b) {
						h = 4 + (r - g) / delta;
					}

					if (h < 0) {
						h+= 6;
					}
					s = delta / (l < 0.5 ? max + min : 2 - max - min);
				}
				return {
					h: Math.round(h * 60),
					s: Math.round(s * 100),
					l: Math.round(l * 100),
					a: this.a
				};
			}
			return null;
		}

		this.getHSV = function () {

			if (this.success) {

				var r = this.r / 255;
				var g = this.g / 255;
				var b = this.b / 255;

				var min = Math.min(r, g, b);
				var max = Math.max(r, g, b);
				var delta = max - min;

				var h, s, v = max;

				if (0 == delta) {
					h = 0;
					s = 0;
				} else {
					s = delta / max;

					delta*= 6;

					var dR = .5 + (max - r) / delta;
					var dG = .5 + (max - g) / delta;
					var dB = .5 + (max - b) / delta;

					if (r == max) {
						h = dB - dG;
					} else if (g == max) {
						h = 1 / 3 + dR - dB;
					} else if (b == max) {
						h = 2 / 3 + dG - dR;
					}

					if (h < 0) ++h;
					if (h > 1) --h;
				}

				return {
					h: Math.round(h * 360),
					s: Math.round(s * 100),
					v: Math.round(v * 100),
					a: this.a
				};
			}
			return null;
		}

		this.getHex = function () {

			if (this.success) {

				var chars = "0123456789abcdef";

				var r1 = this.r >> 4;
				var g1 = this.g >> 4;
				var b1 = this.b >> 4;

				var r2 = this.r & 0xf;
				var g2 = this.g & 0xf;
				var b2 = this.b & 0xf;

				if (0 === ((r1 ^ r2) | (g1 ^ g2) | (b1 ^ b2))) {
					return '#' + chars.charAt(r1) + chars.charAt(g1) + chars.charAt(b1);
				}
				return '#'
				+ chars.charAt(r1) + chars.charAt(r2)
				+ chars.charAt(g1) + chars.charAt(g2)
				+ chars.charAt(b1) + chars.charAt(b2);
			}
			return null;
		}

		this.getInt = function (alpha) {

			if (this.success) {
				if (void 0 !== alpha) {
					return ((this.a * 100 | 0) << 24 ^ this.r << 16 ^ this.g << 8 ^ this.b);
				}
				return (this.r << 16 ^ this.g << 8 ^ this.b) & 0xffffff;
			}
			return null;
		}

		this.toString = function () {
			return this.getHex();
		}

		this.setColor(color);
	}

	$.each(['color', 'backgroundColor', 'borderColor', 'borderTopColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'outlineColor'], function(i, attr) {

		$.fx.step[attr] = function(fx) {

			if (fx.xinit === void 0) {

				if (typeof fx.end === "string" && -1 !== fx.end.indexOf(";")) {

					var x, arr = fx.end.split(";");

					if (arr.length > 2) {

						for (x in arr) {
							if (-1 === arr[x].indexOf('native')) {
								arr[x] = new xColor(arr[x]);
							} else {
								arr[x] = findColor(fx.elem, attr);
							}
						}
						fx.start = null;
						fx.end = arr;
					} else {
						fx.start = new xColor(arr[0]);
						fx.end = new xColor(arr[1]);
					}
				} else {
					fx.start = findColor(fx.elem, attr);
					fx.end = new xColor(fx.end);
				}

				fx.xinit = 1;
			}

			var S = fx.start;
			var E = fx.end;
			var P = fx.pos;

			if (null === S) {
				var m = P * (E.length - 1), n = P < 1 ? m | 0 : E.length - 2;
				S = E[n];
				E = E[n + 1];
				P = m - n;
			}

			if ($.support.opacity) {
				fx.elem.style[attr] = "rgba("
				+ ((S.r + (E.r - S.r) * P)|0) + ","
				+ ((S.g + (E.g - S.g) * P)|0) + ","
				+ ((S.b + (E.b - S.b) * P)|0) + ","
				+ ((S.a + (E.a - S.a) * P)) + ")";
			} else {
				fx.elem.style[attr] = "rgb("
				+ ((S.r + (E.r - S.r) * P)|0) + ","
				+ ((S.g + (E.g - S.g) * P)|0) + ","
				+ ((S.b + (E.b - S.b) * P)|0) + ")";
			}
		}
	});

	function findColor(elem, attr) {

		var color = "";

		do {
			color = $.curCSS(elem, attr);

			if ("" !== color && "transparent" !== color && "rgba(0, 0, 0, 0)" !== color || $.nodeName(elem, "body")) break;

		} while (elem = elem.parentNode);

		if ("" === color) {

			if ($.support.opacity) {
				color = "transparent";
			} else if ("backgroundColor" === attr) {
				color = "white";
			} else {
				color = "black";
			}
		}
		return new xColor(color);
	}

	/**
     * @constructor
     */
	function xColorMix() {

		this.test = function (col) {

			var c = new xColor(col);

			if (c.success) {
				return c;
			}
			return null;
		}

		this.red = function (col) {

			var c = new xColor(col);

			if (c.success) {
				c.g = 0xff;
				c.b = 0xff;
				return c;
			}
			return null;
		}

		this.blue = function (col) {

			var c = new xColor(col);

			if (c.success) {
				c.r = 0xff;
				c.g = 0xff;
				return c;
			}
			return null;
		}

		this.green = function (col) {

			var c = new xColor(col);

			if (c.success) {
				c.r = 0xff;
				c.b = 0xff;
				return c;
			}
			return null;
		}

		this.sepia = function(col) {

			var c = new xColor(col);

			// Microsoft's sepia function http://msdn.microsoft.com/en-us/magazine/cc163866.aspx
			if (c.success) {

				var r = c.r, g = c.g, b = c.b;

				c.r = Math.round(r * 0.393 + g * 0.769 + b * 0.189);
				c.g = Math.round(r * 0.349 + g * 0.686 + b * 0.168);
				c.b = Math.round(r * 0.272 + g * 0.534 + b * 0.131);

				return c;
			}
			return null;
		}

		this.random = function () {

			return new xColor([
				(255 * Math.random())|0,
				(255 * Math.random())|0,
				(255 * Math.random())|0
				]);
		}

		this.inverse = function (col) {

			var c = new xColor(col);

			if (c.success) {
				c.r^= 0xff;
				c.g^= 0xff;
				c.b^= 0xff;
				return c;
			}
			return null;
		}

		this.opacity = function (x, y, o) {

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {

				if (o > 1) {
					o/= 100;
				}

				o = Math.max(o - 1 + b.a, 0);

				a.r = Math.round((b.r - a.r) * o + a.r);
				a.g = Math.round((b.g - a.g) * o + a.g);
				a.b = Math.round((b.b - a.b) * o + a.b);

				return a;
			}
			return null;
		}

		this.greyfilter = function (col, formula) {

			var v, c = new xColor(col);

			if (c.success) {
				switch (formula) {
					case 1:
						// My own formula
						v = .35 + 13 * (c.r + c.g + c.b) / 60;
						break;
					case 2:
						// Sun's formula: (1 - avg) / (100 / 35) + avg)
						v = (13 * (c.r + c.g + c.b) + 5355) / 60;
						break;
					default:
						v = c.r * .3 + c.g * .59 + c.b * .11;
				}
				c.r = c.g = c.b = Math.min(v|0, 255);

				return c;
			}
			return null;
		}

		this.webround = function (col) {

			var c = new xColor(col);

			if (c.success) {
				if ((c.r+= 0x33 - c.r % 0x33) > 0xff) c.r = 0xff;
				if ((c.g+= 0x33 - c.g % 0x33) > 0xff) c.g = 0xff;
				if ((c.b+= 0x33 - c.b % 0x33) > 0xff) c.b = 0xff;
				return c;
			}
			return null;
		}

		this.distance = function (x, y) {

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {
				// Approximation attempt of http://www.compuphase.com/cmetric.htm
				return Math.sqrt(3 * (b.r - a.r) * (b.r - a.r) + 4 * (b.g - a.g) * (b.g - a.g) + 2 * (b.b - a.b) * (b.b - a.b));
			}
			return null;
		}

		this.readable = function (bg, col) {

			var a = new xColor(col);
			var b = new xColor(bg);

			if (a.success & b.success) {
				return (
					(b.r - a.r) * (b.r - a.r) +
					(b.g - a.g) * (b.g - a.g) +
					(b.b - a.b) * (b.b - a.b)) > 0x28A4;
			}
			return null;
		}

		this.combine = function (x, y) {

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {
				a.r^= b.r;
				a.g^= b.g;
				a.b^= b.b;
				return a;
			}
			return null;
		}

		this.breed = function (x, y) {

			var a = new xColor(x);
			var b = new xColor(y);

			var mask = 0;

			if (a.success & b.success) {

				for (var i = 0; i < 6; ++i) {
					if (Math.random() < .5) {
						mask|= 0x0f << (i << 2);
					}
				}

				a.r = (a.r & ((mask >> 0x10) & 0xff)) | (b.r & (((mask >> 0x10) & 0xff) ^ 0xff));
				a.g = (a.g & ((mask >> 0x08) & 0xff)) | (b.g & (((mask >> 0x08) & 0xff) ^ 0xff));
				a.b = (a.b & ((mask >> 0x00) & 0xff)) | (b.b & (((mask >> 0x00) & 0xff) ^ 0xff));
				return a;
			}
			return null;
		}

		this.additive = function (x, y) {

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {

				if ((a.r+= b.r) > 0xff) a.r = 0xff;
				if ((a.g+= b.g) > 0xff) a.g = 0xff;
				if ((a.b+= b.b) > 0xff) a.b = 0xff;

				return a;
			}
			return null;
		}

		this.subtractive = function (x, y) {

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {

				if ((a.r+= b.r - 0xff) < 0) a.r = 0;
				if ((a.g+= b.g - 0xff) < 0) a.g = 0;
				if ((a.b+= b.b - 0xff) < 0) a.b = 0;

				return a;
			}
			return null;
		}

		this.subtract = function (x, y) {

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {

				if ((a.r-= b.r) < 0) a.r = 0;
				if ((a.g-= b.g) < 0) a.g = 0;
				if ((a.b-= b.b) < 0) a.b = 0;

				return a;
			}
			return null;
		}

		this.multiply = function (x, y) {

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {
				a.r = (a.r / 255 * b.r)|0;
				a.g = (a.g / 255 * b.g)|0;
				a.b = (a.b / 255 * b.b)|0;
				return a;
			}
			return null;
		}

		this.average = function (x, y) {

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {
				a.r = (a.r + b.r) >> 1;
				a.g = (a.g + b.g) >> 1;
				a.b = (a.b + b.b) >> 1;
				return a;
			}
			return null;
		}

		this.triad = function (col) {

			var c = new xColor(col);

			if (c.success) {

				return [c,
				new xColor([c.b, c.r, c.g]),
				new xColor([c.g, c.b, c.r])];
			}
			return null;
		}

		this.tetrad = function (col) {

			var c = new xColor(col);

			if (c.success) {

				return [c,
				new xColor([c.b, c.r, c.b]),
				new xColor([c.b, c.g, c.r]),
				new xColor([c.r, c.b, c.r])];
			}
			return null;
		}

		this.gradientlevel = function (x, y, level, deg) {

			if (level > deg) return null;

			var a = new xColor(x);
			var b = new xColor(y);

			if (a.success & b.success) {

				a.r = (a.r + ((b.r - a.r) / deg) * level)|0;
				a.g = (a.g + ((b.g - a.g) / deg) * level)|0;
				a.b = (a.b + ((b.b - a.b) / deg) * level)|0;

				return a;
			}
			return null;
		}

		this.gradientarray = function (arr, ndx, size) {

			if (ndx > size) return null;

			var e = (ndx * (arr.length - 1) / size)|0;
			var m = (ndx - size * e / (arr.length - 1)) / size;

			var a = new xColor(arr[e]);
			var b = new xColor(arr[e + 1]);

			if (a.success & b.success) {

				a.r = (a.r + arr.length * (b.r - a.r) * m)|0;
				a.g = (a.g + arr.length * (b.g - a.g) * m)|0;
				a.b = (a.b + arr.length * (b.b - a.b) * m)|0;

				return a;
			}
			return null;
		}

		this.nearestname = function (a) {

			a = new xColor(a);

			if (a.success) {
				return a.getName();
			}
			return null;
		}

		this.darken = function (col, by, shade) {

			if (by === void 0) {
				by = 1;
			} else if (by < 0) return this.lighten(col, -by, shade);

			if (shade === void 0) {
				shade = 32;
			}

			var c = new xColor(col);

			if (c.success) {
				if ((c.r-= shade * by) < 0) c.r = 0;
				if ((c.g-= shade * by) < 0) c.g = 0;
				if ((c.b-= shade * by) < 0) c.b = 0;
				return c;
			}
			return null;
		}

		this.lighten = function (col, by, shade) {

			if (by === void 0) {
				by = 1;
			} else if (by < 0) return this.darken(col, -by, shade);

			if (shade === void 0) {
				shade = 32;
			}

			var c = new xColor(col);

			if (c.success) {
				if ((c.r+= shade * by) > 0xff) c.r = 0xff;
				if ((c.g+= shade * by) > 0xff) c.g = 0xff;
				if ((c.b+= shade * by) > 0xff) c.b = 0xff;
				return c;
			}
			return null;
		}

		this.analogous = function (col, results, slices) {

			if (results === void 0) {
				results = 8;
			}

			if (slices === void 0) {
				slices = 30;
			}

			var c = new xColor(col);

			if (c.success) {

				var hsv = c.getHSV();
				var part = 360 / slices, ret = [ c ];

				for (hsv.h = ((hsv.h - (part * results >> 1)) + 720) % 360; --results; ) {
					hsv.h+= part;
					hsv.h%= 360;
					ret.push(new xColor(hsv));
				}
				return ret;
			}
			return null;
		}

		this.complementary = function(col) {

			var c = new xColor(col);

			if(c.success) {

				var hsl = c.getHSL();

				hsl.h = (hsl.h + 180) % 360;

				return new xColor(hsl);
			}
			return null;
		}

		this.splitcomplement = function (col) {

			var c = new xColor(col);

			if (c.success) {

				var hsv = c.getHSV();
				var ret = [ c ];

				hsv.h+= 72;
				hsv.h%= 360;
				ret.push(new xColor(hsv));

				hsv.h+= 144;
				hsv.h%= 360;
				ret.push(new xColor(hsv));

				return ret;
			}
			return null;
		}

		this.monochromatic = function (col, results) {

			if (results === void 0) {
				results = 6;
			}

			var c = new xColor(col);

			if (c.success) {

				var hsv = c.getHSV();
				var ret = [ c ];

				while (--results) {
					hsv.v+= 20;
					hsv.v%= 100;
					ret.push(new xColor(hsv));
				}
				return ret;
			}
			return null;
		}
	}

	$.xcolor = new xColorMix();

	$.fn.isReadable = function () {

		var elem = this[0];
		var f = "";
		var b = "";

		do {

			if ("" === f && ("transparent" === (f = $.curCSS(elem, "color")) || "rgba(0, 0, 0, 0)" === f)) {
				f = "";
			}

			if ("" === b && ("transparent" === (b = $.curCSS(elem, "backgroundColor")) || "rgba(0, 0, 0, 0)" === b)) {
				b = "";
			}

			if ("" !== f && "" !== b || $.nodeName(elem, "body")) {
				break;
			}

		} while (elem = elem.parentNode);

		if ("" === f) {
			f = "black";
		}

		if ("" === b) {
			b = "white";
		}

		// todo: if alpha != 1, use opacity() to calculate correct color on certain element and it's parent
		return $.xcolor.readable(b, f);
	}

})(jQuery);



